.auth{min-height:100dvh;padding:var(--space-xl) var(--space-lg);padding-top:calc(env(safe-area-inset-top) + var(--space-xxl));padding-bottom:calc(env(safe-area-inset-bottom) + var(--space-xl));gap:var(--space-xl);flex-direction:column;display:flex}.auth__brand{text-align:center}.auth__logo{width:88px;height:88px;box-shadow:var(--shadow-card);border-radius:24px}.auth__title{margin-top:var(--space-md);font-size:var(--font-xxl);font-weight:var(--weight-bold)}.auth__title--sm{font-size:var(--font-xl);word-break:keep-all}.auth__form{gap:var(--space-lg);flex-direction:column;display:flex}.auth__actions{gap:var(--space-sm);flex-direction:column;margin-top:auto;display:flex}.auth__section-title{font-size:var(--font-sm);font-weight:var(--weight-bold);color:var(--color-accent);margin:var(--space-sm) 0 0}.invite-code{font-size:36px;font-weight:var(--weight-bold);letter-spacing:8px;text-align:center;padding:var(--space-lg) 0;color:var(--color-accent)}.invite-input{text-transform:uppercase;letter-spacing:6px;text-align:center;font-weight:var(--weight-bold);font-size:var(--font-xl)!important}.btn{min-height:var(--layout-touch-min);padding:0 var(--space-xl);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-md);font-weight:var(--weight-bold);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-sm);border:none;transition:transform 80ms,opacity .15s;display:inline-flex}a.btn{text-decoration:none}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn--block{width:100%}.btn--primary{background:var(--color-accent);color:var(--color-accent-text)}.btn--secondary{background:var(--color-accent-soft);color:var(--color-text)}.btn--ghost{color:var(--color-text-sub);background:0 0}.btn--danger{color:var(--color-danger);border:1px solid var(--color-border);background:0 0}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-lg)}.field{gap:var(--space-xs);flex-direction:column;display:flex}.field__label{font-size:var(--font-sm);font-weight:var(--weight-medium);color:var(--color-text-sub)}.field__input{min-height:var(--layout-touch-min);padding:0 var(--space-md);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--font-md);appearance:none;outline:none;width:100%}.field__input:focus{border-color:var(--color-accent)}.field__input[aria-invalid=true]{border-color:var(--color-danger)}.field__hint{font-size:var(--font-xs);color:var(--color-text-sub)}.field__error{font-size:var(--font-xs);color:var(--color-danger)}.choice-group{gap:var(--space-sm);display:flex}.choice-group__item{min-height:var(--layout-touch-min);border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--font-md);cursor:pointer;flex:1}.choice-group__item[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent-soft);font-weight:var(--weight-bold)}.tab-bar{width:100%;max-width:var(--layout-max-width);height:calc(var(--layout-tab-bar-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--color-surface);box-shadow:var(--shadow-bar);z-index:10;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab-bar__item{color:var(--color-text-sub);font-size:var(--font-xs);min-height:var(--layout-touch-min);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.tab-bar__item.active{color:var(--color-accent);font-weight:var(--weight-bold)}.tab-bar__icon{width:24px;height:24px}.tab-bar__write{border-radius:var(--radius-full);background:var(--color-accent);width:48px;height:48px;color:var(--color-accent-text);justify-content:center;align-items:center;display:flex}.banner{top:calc(env(safe-area-inset-top) + var(--space-sm));width:calc(100% - var(--space-xl));max-width:calc(var(--layout-max-width) - var(--space-xl));background:var(--color-text);color:var(--color-bg);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);justify-content:space-between;align-items:center;gap:var(--space-md);z-index:50;box-shadow:var(--shadow-card);display:flex;position:fixed;left:50%;transform:translate(-50%)}.banner .btn{min-height:40px;padding:0 var(--space-lg)}.empty{text-align:center;color:var(--color-text-sub);padding:var(--space-xxl) var(--space-lg)}.empty__emoji{margin-bottom:var(--space-md);font-size:40px}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font-family);font-size:var(--font-md);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}#root{min-height:100%}.app-shell{max-width:var(--layout-max-width);background:var(--color-bg);flex-direction:column;min-height:100dvh;margin:0 auto;display:flex;position:relative}.safe-top{padding-top:env(safe-area-inset-top)}.screen{padding:var(--space-lg);padding-bottom:calc(var(--layout-tab-bar-height) + env(safe-area-inset-bottom) + var(--space-lg));flex:1}.screen--no-tabs{padding-bottom:calc(env(safe-area-inset-bottom) + var(--space-lg))}h1,h2,h3{margin:0 0 var(--space-md);font-weight:var(--weight-bold)}h1{font-size:var(--font-xxl)}h2{font-size:var(--font-xl)}p{margin:0 0 var(--space-md);line-height:1.6}.text-sub{color:var(--color-text-sub);font-size:var(--font-sm)}.text-danger{color:var(--color-danger);font-size:var(--font-sm)}.stack{gap:var(--space-md);flex-direction:column;display:flex}.row{gap:var(--space-sm);align-items:center;display:flex}@keyframes shimmer{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.skeleton{background:var(--color-surface-sub);border-radius:var(--radius-md);animation:1.4s ease-in-out infinite shimmer}
