:root{--tg-bg:#fff;--tg-text:#10131a;--tg-hint:#5c6470;--tg-link:#1f4fd1;--tg-button:#1f4fd1;--tg-button-text:#fff;--tg-secondary-bg:#f2f4f8;--safe-top:0px;--safe-bottom:0px;--safe-left:0px;--safe-right:0px;--tabbar-height:60px;--radius:12px}:root[data-scheme=dark]{--tg-bg:#17191c;--tg-text:#f2f4f8;--tg-hint:#a8b0bd;--tg-secondary-bg:#23262b}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--tg-bg);color:var(--tg-text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;overflow-x:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{min-height:100%;padding-left:var(--safe-left);padding-right:var(--safe-right);flex-direction:column;display:flex}.shell--centered{text-align:center;justify-content:center;align-items:center;padding:24px}.shell__content{padding:calc(16px + var(--safe-top)) 16px calc(var(--tabbar-height) + var(--safe-bottom) + 16px);flex:1}.screen__header{margin-bottom:20px}.screen__title{margin:0;font-size:1.5rem;font-weight:650}.screen__subtitle{color:var(--tg-hint);margin:4px 0 0;font-size:.95rem}.screen-state{text-align:center;color:var(--tg-hint);flex-direction:column;align-items:center;gap:12px;padding:32px 16px;display:flex}.screen-state__title{color:var(--tg-text);margin:0;font-size:1.05rem;font-weight:600}.screen-state__code{margin:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85rem}.screen-state--error .screen-state__title{color:#b3261e}:root[data-scheme=dark] .screen-state--error .screen-state__title{color:#f2b8b5}.spinner{border:3px solid var(--tg-secondary-bg);border-top-color:var(--tg-button);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.card{background:var(--tg-secondary-bg);border-radius:var(--radius);margin-bottom:12px;padding:16px}.field__label{margin:0 0 8px;font-size:.9rem;font-weight:600;display:block}.field__hint{color:var(--tg-hint);margin:0;font-size:.85rem}.field__control{border:1px solid var(--tg-hint);background:var(--tg-bg);width:100%;min-height:44px;color:var(--tg-text);border-radius:10px;padding:10px 12px;font-size:1rem}.role-list{color:var(--tg-hint);margin:0;padding-left:20px;font-size:.9rem}.badge{border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-block}.badge--warning{color:#664d03;background:#fff3cd;border:1px solid #997404}.banner{border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:.9rem;display:flex}.banner--warning{color:#664d03;background:#fff3cd;border:1px solid #997404}.notice{border-left:3px solid var(--tg-hint);background:var(--tg-secondary-bg);color:var(--tg-hint);border-radius:0 8px 8px 0;margin:20px 0 0;padding:12px;font-size:.85rem}.btn{cursor:pointer;border:1px solid #0000;border-radius:10px;min-height:44px;padding:10px 18px;font-size:1rem;font-weight:600}.btn:focus-visible{outline:3px solid var(--tg-link);outline-offset:2px}.btn--primary{background:var(--tg-button);color:var(--tg-button-text)}.btn--ghost{color:var(--tg-link);border-color:var(--tg-hint);background:0 0}.btn--block{width:100%;display:block}.tabbar{background:var(--tg-bg);border-top:1px solid var(--tg-secondary-bg);padding-bottom:var(--safe-bottom);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar__item{min-height:var(--tabbar-height);color:var(--tg-hint);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 2px;font-size:.7rem;display:flex}.tabbar__item:focus-visible{outline:3px solid var(--tg-link);outline-offset:-3px}.tabbar__item--active{color:var(--tg-link);box-shadow:inset 0 2px 0 0 var(--tg-link);font-weight:700}.tabbar__icon{font-size:1.15rem;line-height:1}.tabbar__label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}
