.q-card{flex-direction:column;gap:12px;min-width:0;display:flex}.q-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.q-points{color:var(--tg-hint);font-variant-numeric:tabular-nums;margin:0;font-size:.85rem}.q-prompt{flex-direction:column;gap:8px;min-width:0;display:flex}.q-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.q-figure{min-width:0;margin:0}.q-img{border-radius:8px;max-width:100%;height:auto;display:block}.q-caption{color:var(--tg-hint);overflow-wrap:anywhere;font-size:.85rem}.q-flag{color:#664d03;overflow-wrap:anywhere;background:#fff3cd;border:1px solid #997404;border-radius:10px;align-items:flex-start;gap:8px;margin:0;padding:8px 10px;font-size:.85rem;display:flex}.q-flag--inline{padding:4px 8px;font-size:.8rem;display:inline-flex}.q-note{border-left:3px solid var(--tg-hint);background:var(--tg-secondary-bg);color:var(--tg-hint);border-radius:0 8px 8px 0;align-items:flex-start;gap:8px;margin:0;padding:8px 10px;font-size:.85rem;display:flex}.q-locked{color:var(--tg-hint);align-items:center;gap:8px;margin:0;font-size:.85rem;font-weight:600;display:flex}.q-fieldset{border:0;min-width:0;margin:0;padding:0}.q-legend{margin:0 0 8px;padding:0;font-size:.9rem;font-weight:600}.q-options{flex-direction:column;gap:8px;display:flex}.q-option{border:1px solid var(--tg-hint);background:var(--tg-bg);border-radius:10px;align-items:center;gap:10px;min-width:0;padding:0 12px;display:flex}.q-option--on{box-shadow:inset 0 0 0 2px var(--tg-button);font-weight:600}.q-option:focus-within{outline:3px solid var(--tg-link);outline-offset:2px}.q-option__control{width:22px;height:22px;accent-color:var(--tg-button);flex:none;margin:0}.q-option__label{cursor:pointer;flex-wrap:wrap;flex:auto;align-items:center;gap:4px 8px;min-width:0;min-height:44px;padding:10px 0;display:flex}.q-option__letter{min-width:1.5em;color:var(--tg-hint);flex:none;font-weight:700}.q-option__body{overflow-wrap:anywhere;flex-direction:column;gap:4px;min-width:0;display:flex}.q-option__mark{color:var(--tg-link);flex:none;font-size:.8rem;font-weight:700}.q-field{flex-direction:column;gap:6px;min-width:0;display:flex}.q-label{font-size:.9rem;font-weight:600}.q-hint{color:var(--tg-hint);margin:0;font-size:.8rem}.q-input,.q-textarea,.q-select{border:1px solid var(--tg-hint);background:var(--tg-bg);width:100%;min-width:0;min-height:44px;color:var(--tg-text);font:inherit;border-radius:10px;padding:10px 12px;font-size:1rem}.q-textarea{resize:vertical;min-height:140px;line-height:1.5}.q-input:focus-visible,.q-textarea:focus-visible,.q-select:focus-visible{outline:3px solid var(--tg-link);outline-offset:1px}.q-match{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.q-match__row{flex-direction:column;gap:6px;min-width:0;display:flex}.q-match__label{overflow-wrap:anywhere;cursor:pointer;align-items:baseline;gap:8px;min-width:0;font-weight:600;display:flex}.q-match__index{color:var(--tg-hint);flex:none}.q-order{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.q-order__row{border:1px solid var(--tg-hint);background:var(--tg-bg);border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:6px 8px;display:grid}.q-order__pos{text-align:center;min-width:1.75em;color:var(--tg-hint);font-variant-numeric:tabular-nums;flex:none;font-weight:700}.q-order__body{overflow-wrap:anywhere;min-width:0}.q-order__buttons{flex:none;gap:4px;display:flex}.q-iconbtn{border:1px solid var(--tg-hint);background:var(--tg-bg);width:44px;height:44px;color:var(--tg-text);cursor:pointer;border-radius:10px;padding:0;font-size:1rem;line-height:1}.q-iconbtn:focus-visible{outline:3px solid var(--tg-link);outline-offset:2px}.q-parts{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.q-part{border-left:3px solid var(--tg-hint);flex-direction:column;gap:8px;min-width:0;padding-left:12px;display:flex}.q-part__title{overflow-wrap:anywhere;margin:0;font-size:.9rem;font-weight:700}.q-fieldset:disabled .q-option,.q-fieldset:disabled .q-order__row{opacity:.65}.q-fieldset:disabled .q-option__label,.q-fieldset:disabled .q-match__label{cursor:default}.q-input:disabled,.q-textarea:disabled,.q-select:disabled,.q-iconbtn:disabled{opacity:.65;cursor:default}@media (width>=520px){.q-match__row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:12px;display:grid}}.attempt{--attempt-ok:#1b5e20;--attempt-ok-bg:#e7f4e8;--attempt-warn:#664d03;--attempt-warn-bg:#fff3cd;--attempt-danger:#8c1d18;--attempt-danger-bg:#fcebea;--attempt-chip:44px;min-width:0;max-width:100%;padding-bottom:8px}.attempt__main{flex-direction:column;gap:12px;min-width:0;max-width:100%;display:flex}.attempt__main[inert]{opacity:.6}:root[data-scheme=dark] .attempt{--attempt-ok:#a5d6a7;--attempt-ok-bg:#1f2d21;--attempt-warn:#ffd98a;--attempt-warn-bg:#332a10;--attempt-danger:#f2b8b5;--attempt-danger-bg:#3a1f1d}.attempt__bar{top:var(--safe-top);z-index:2;background:var(--tg-bg);border-bottom:1px solid var(--tg-secondary-bg);flex-direction:column;gap:6px;padding:8px 0;display:flex;position:sticky}.attempt__bar-row{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.attempt__position{white-space:nowrap;margin:0;font-size:1rem;font-weight:650}.attempt__subtitle{color:var(--tg-hint);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.8rem;overflow:hidden}.attempt__timer{border:1px solid var(--tg-secondary-bg);background:var(--tg-secondary-bg);border-radius:10px;flex-direction:column;align-items:flex-end;gap:2px;min-width:0;padding:4px 10px;display:flex}.attempt__timer-label{color:var(--tg-hint);white-space:nowrap;font-size:.7rem}.attempt__timer-value{font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.1rem;font-weight:700;line-height:1.2}.attempt__timer--urgent{background:var(--attempt-warn-bg);border-color:var(--attempt-warn);color:var(--attempt-warn)}.attempt__timer--stopped{color:var(--tg-hint)}.attempt__timer-note{font-size:.7rem;font-weight:600}.attempt__save{align-items:center;gap:8px;min-width:0;min-height:24px;font-size:.85rem;display:flex}.attempt__save-mark{text-align:center;flex:none;width:18px}.attempt__save-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attempt__save--saved{color:var(--attempt-ok)}.attempt__save--pending{color:var(--tg-hint)}.attempt__save--failed,.attempt__save--conflict{color:var(--attempt-danger);font-weight:600}.attempt__save-code{color:var(--tg-hint);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.75rem}.attempt__nav{-webkit-overflow-scrolling:touch;scrollbar-width:thin;min-width:0;max-width:100%;overflow:auto hidden}.attempt__chips{gap:8px;margin:0;padding:2px;list-style:none;display:flex}.attempt__chip{min-width:var(--attempt-chip);min-height:var(--attempt-chip);border:1px solid var(--tg-hint);background:var(--tg-bg);color:var(--tg-text);cursor:pointer;border-radius:10px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:0;padding:2px 4px;font-size:.95rem;font-weight:600;display:flex}.attempt__chip:focus-visible{outline:3px solid var(--tg-link);outline-offset:2px}.attempt__chip--current{border-color:var(--tg-link);box-shadow:inset 0 -3px 0 0 var(--tg-link);border-width:2px}.attempt__chip--answered{background:var(--attempt-ok-bg);color:var(--attempt-ok)}.attempt__chip--pending{background:var(--tg-secondary-bg)}.attempt__chip--failed,.attempt__chip--conflict{background:var(--attempt-danger-bg);color:var(--attempt-danger)}.attempt__chip-no{line-height:1.1}.attempt__chip-mark{font-size:.7rem;line-height:1}.attempt__banner{border:1px solid #0000;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;padding:10px 12px;font-size:.85rem;display:flex}.attempt__banner-text{flex:auto;min-width:0}.attempt__banner--info{background:var(--tg-secondary-bg);color:var(--tg-text);border-color:var(--tg-secondary-bg)}.attempt__banner--warning{background:var(--attempt-warn-bg);color:var(--attempt-warn);border-color:var(--attempt-warn)}.attempt__banner--danger{background:var(--attempt-danger-bg);color:var(--attempt-danger);border-color:var(--attempt-danger)}.attempt__banner-count{font-variant-numeric:tabular-nums;font-weight:700}.attempt__body{min-width:0;max-width:100%}.attempt__conflict{border:2px solid var(--attempt-danger);border-radius:var(--radius);background:var(--attempt-danger-bg);color:var(--attempt-danger);flex-direction:column;gap:8px;margin-bottom:12px;padding:12px;display:flex}.attempt__conflict-title{margin:0;font-size:.95rem;font-weight:700}.attempt__conflict-body{margin:0;font-size:.85rem}.attempt__conflict-actions{flex-wrap:wrap;gap:8px;display:flex}.attempt__conflict-actions .btn{flex:160px}.attempt__tools{justify-content:flex-end;margin-top:8px;display:flex}.attempt__notice{border-left:3px solid var(--tg-hint);background:var(--tg-secondary-bg);color:var(--tg-hint);border-radius:0 8px 8px 0;margin:12px 0 0;padding:10px 12px;font-size:.8rem}.attempt__controls{bottom:var(--attempt-bottom-gap,0px);z-index:2;padding:10px 0 calc(10px + var(--safe-bottom));background:var(--tg-bg);border-top:1px solid var(--tg-secondary-bg);grid-template-columns:1fr 1fr;gap:8px;display:grid;position:sticky}.attempt__controls .btn{width:100%}.attempt__controls-submit{grid-column:1/-1}.btn[disabled]{opacity:.55;cursor:not-allowed}.attempt__dialog-backdrop{z-index:10;padding:16px;padding-bottom:calc(16px + var(--safe-bottom));background:#00000080;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.attempt__dialog{border-radius:var(--radius);background:var(--tg-bg);width:100%;max-width:420px;max-height:80vh;color:var(--tg-text);padding:16px;overflow-y:auto}.attempt__dialog-title{margin:0 0 8px;font-size:1.15rem;font-weight:700}.attempt__dialog-list{margin:0 0 12px;padding:0;font-size:.9rem;list-style:none}.attempt__dialog-row{border-bottom:1px solid var(--tg-secondary-bg);justify-content:space-between;gap:12px;padding:6px 0;display:flex}.attempt__dialog-row--warning{color:var(--attempt-danger);font-weight:600}.attempt__dialog-note{color:var(--tg-hint);margin:0 0 12px;font-size:.85rem}.attempt__dialog-actions{flex-direction:column;gap:8px;display:flex}@media (width>=380px){.attempt__dialog-actions{flex-direction:row-reverse}.attempt__dialog-actions .btn{flex:1 1 0}}@media (prefers-reduced-motion:reduce){.attempt__timer--urgent{transition:none}}.cat{--cat-ok:#1b5e20;--cat-accent-bg:#e8edfb;--cat-line:#5c647059;flex-direction:column;gap:20px;min-width:0;max-width:100%;display:flex}:root[data-scheme=dark] .cat{--cat-ok:#a5d6a7;--cat-accent-bg:#1d2435;--cat-line:#a8b0bd59}.cat__header{flex-direction:column;gap:6px;min-width:0;margin-bottom:0;display:flex}.cat__back{align-self:flex-start;padding-left:12px;padding-right:12px}.cat__section{flex-direction:column;gap:12px;min-width:0;display:flex}.cat__section-title{margin:0;font-size:1.1rem;font-weight:650}.cat__actions{flex-direction:column;gap:8px;margin-top:12px;display:flex}.cat__reason{background:var(--tg-secondary-bg);border-radius:var(--radius);color:var(--tg-hint);overflow-wrap:anywhere;margin:0;padding:12px;font-size:.9rem}.cat__more{flex-direction:column;gap:8px;padding-top:4px;display:flex}.cat__more-note{color:var(--tg-hint);margin:0;font-size:.85rem}.cat__more-failed{color:#664d03;background:#fff3cd;border:1px solid #997404;border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}:root[data-scheme=dark] .cat__more-failed{color:#ffd98a;background:#332a10;border-color:#ffd98a}.resume{border-radius:var(--radius);background:var(--cat-accent-bg);border:1px solid var(--tg-button);flex-direction:column;gap:10px;min-width:0;padding:16px;display:flex}.resume__title{margin:0;font-size:1.05rem;font-weight:650}.resume__subject{overflow-wrap:anywhere;margin:0;font-weight:600}.resume__row{color:var(--tg-text);flex-wrap:wrap;gap:4px 16px;margin:0;font-size:.9rem;display:flex}.resume__answered,.resume__time{min-width:0}.resume__time{font-variant-numeric:tabular-nums}.subj__list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.subj__item{flex-direction:column;gap:6px;min-width:0;display:flex}.subj__btn{border:1px solid var(--cat-line);border-radius:var(--radius);background:var(--tg-secondary-bg);width:100%;min-height:56px;color:var(--tg-text);text-align:left;font:inherit;cursor:pointer;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;padding:12px 14px;display:grid}.subj__btn:focus-visible{outline:3px solid var(--tg-link);outline-offset:2px}.subj__name{overflow-wrap:anywhere;min-width:0;margin:0;font-size:1rem;font-weight:600}.subj__code{color:var(--tg-hint);overflow-wrap:anywhere;grid-column:1;margin:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem}.subj__go{color:var(--tg-link);grid-area:1/2/span 2;font-size:1.2rem}.subj__warn{overflow-wrap:anywhere;white-space:normal;text-align:left;align-self:flex-start;margin:0}.subj__card{flex-direction:column;gap:6px;min-width:0;margin-bottom:0;display:flex}.tree{flex-direction:column;gap:10px;min-width:0;display:flex}.tree__list{min-width:0;margin:0;padding:0;list-style:none}.tree__list .tree__list{border-inline-start:2px solid var(--cat-line);margin-inline-start:4px;padding-inline-start:14px}.tree__item{min-width:0}.tree__node{flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;padding:8px 0;display:flex}.tree__title{overflow-wrap:anywhere;min-width:0;font-size:.95rem}.tree__level{border:1px solid var(--cat-line);color:var(--tg-hint);border-radius:999px;flex:none;padding:1px 8px;font-size:.72rem}.aset__list{flex-direction:column;gap:12px;min-width:0;display:flex}.aset{border-radius:var(--radius);background:var(--tg-secondary-bg);flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}.aset__title{overflow-wrap:anywhere;margin:0;font-size:1rem;font-weight:650}.aset__meta{flex-direction:column;gap:4px;margin:0;font-size:.9rem;display:flex}.aset__meta-row{justify-content:space-between;gap:12px;min-width:0;display:flex}.aset__meta-row dt{color:var(--tg-hint);min-width:0}.aset__meta-row dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-weight:600}.aset__failure{color:#664d03;background:#fff3cd;border:1px solid #997404;border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}:root[data-scheme=dark] .aset__failure{color:#ffd98a;background:#332a10;border-color:#ffd98a}.aset__failure-text{overflow-wrap:anywhere;margin:0;font-size:.85rem}@media (width>=640px){.cat{width:100%;max-width:640px;margin-inline:auto}}.res,.prof{--res-ok:#1b5e20;--res-warn-bg:#fff3cd;--res-warn-fg:#664d03;--res-warn-line:#997404;--res-line:#5c647059;flex-direction:column;gap:20px;min-width:0;max-width:100%;display:flex}:root[data-scheme=dark] .res,:root[data-scheme=dark] .prof{--res-ok:#a5d6a7;--res-warn-bg:#332a10;--res-warn-fg:#ffd98a;--res-warn-line:#ffd98a;--res-line:#a8b0bd59}.res__list{flex-direction:column;gap:12px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.res__card{border:1px solid var(--res-line);border-radius:var(--radius);background:var(--tg-secondary-bg);flex-direction:column;gap:12px;min-width:0;padding:14px;display:flex}.res__head{flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0;display:flex}.res__date{overflow-wrap:anywhere;min-width:0;margin:0;font-size:1rem;font-weight:650}.res__date-label{color:var(--tg-hint);font-size:.75rem;font-weight:500;display:block}.res__status{border:1px solid var(--res-line);background:var(--tg-bg);border-radius:999px;padding:3px 10px;font-size:.78rem;font-weight:650;display:inline-block}.res__status--pending,.res__status--void,.res__status--unknown{background:var(--res-warn-bg);color:var(--res-warn-fg);border-color:var(--res-warn-line)}.res__note{border:1px solid var(--res-warn-line);background:var(--res-warn-bg);color:var(--res-warn-fg);overflow-wrap:anywhere;border-radius:10px;margin:0;padding:10px 12px;font-size:.85rem}.res__score{flex-direction:column;gap:6px;min-width:0;display:flex}.res__score-row{flex-wrap:wrap;align-items:baseline;gap:6px;min-width:0;display:flex}.res__score-label{color:var(--tg-hint);font-size:.85rem}.res__score-value{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:1.25rem;font-weight:700}.res__percent-value{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:700}.res__bar{background:var(--tg-bg);border:1px solid var(--res-line);border-radius:999px;height:8px;overflow:hidden}.res__bar-fill{background:var(--res-ok);height:100%;display:block}.res__measure-note{color:var(--tg-hint);overflow-wrap:anywhere;margin:0;font-size:.78rem}.res__counts{grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:8px;min-width:0;margin:0;display:grid}.res__count{border:1px solid var(--res-line);background:var(--tg-bg);border-radius:10px;flex-direction:column;gap:2px;min-width:0;padding:8px;display:flex}.res__count-label{color:var(--tg-hint);overflow-wrap:anywhere;margin:0;font-size:.72rem}.res__count-value{font-variant-numeric:tabular-nums;margin:0;font-size:1.1rem;font-weight:700}.res__count--unanswered{border-style:dashed}.res__count--pending{background:var(--res-warn-bg);color:var(--res-warn-fg);border-color:var(--res-warn-line)}.res__count--pending .res__count-label{color:inherit}.res__topics{flex-direction:column;gap:8px;min-width:0;display:flex}.res__topics-title{margin:0;font-size:.88rem;font-weight:650}.res__topic-list{flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.res__topic{border-left:3px solid var(--res-line);background:var(--tg-bg);border-radius:0 8px 8px 0;flex-direction:column;gap:4px;min-width:0;padding:8px 10px;display:flex}.res__topic-name{overflow-wrap:anywhere;font-size:.9rem;font-weight:600}.res__topic-figures{color:var(--tg-hint);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 10px;font-size:.82rem;display:flex}.res__topic--low{border-left-color:var(--res-warn-line)}.res__topic-low{color:var(--res-warn-fg);font-size:.82rem;font-weight:650}:root[data-scheme=dark] .res__topic-low{color:var(--res-warn-fg)}.res__topic-low-note{color:var(--tg-hint);overflow-wrap:anywhere;margin:0;font-size:.78rem}.res__meta{border-top:1px solid var(--res-line);color:var(--tg-hint);flex-direction:column;gap:4px;min-width:0;margin:0;padding-top:8px;font-size:.76rem;display:flex}.res__meta-row{flex-wrap:wrap;gap:4px 8px;min-width:0;display:flex}.res__meta-term{margin:0;font-weight:600}.res__meta-value{overflow-wrap:anywhere;min-width:0;margin:0;font-family:ui-monospace,SF Mono,Menlo,monospace}.res__meta-value--plain{font-family:inherit}.prof__card{border-radius:var(--radius);background:var(--tg-secondary-bg);flex-direction:column;gap:10px;min-width:0;padding:16px;display:flex}.prof__card-title{margin:0;font-size:1rem;font-weight:650}.prof__row{flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;margin:0;display:flex}.prof__row-term{color:var(--tg-hint);margin:0;font-size:.85rem}.prof__row-value{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-size:.95rem}.prof__save-state{overflow-wrap:anywhere;margin:0;font-size:.85rem;font-weight:600}.prof__save-state--saved{color:var(--res-ok)}.prof__save-state--failed{color:#b3261e}:root[data-scheme=dark] .prof__save-state--failed{color:#f2b8b5}.prof__save-code{color:var(--tg-hint);overflow-wrap:anywhere;margin:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem}.prof__roles{flex-wrap:wrap;gap:6px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.prof__role{border:1px solid var(--res-line);background:var(--tg-bg);overflow-wrap:anywhere;border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:600}.prof__role-code{color:var(--tg-hint);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.7rem;font-weight:500;display:block}: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}
