@font-face{font-family:Be Vietnam;src:url('/fonts/be-vietnam-pro-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Be Vietnam;src:url('/fonts/be-vietnam-pro-vietnamese-400-normal.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:Be Vietnam;src:url('/fonts/be-vietnam-pro-latin-600-normal.woff2') format('woff2');font-weight:500 700;font-display:swap}@font-face{font-family:Be Vietnam;src:url('/fonts/be-vietnam-pro-vietnamese-600-normal.woff2') format('woff2');font-weight:500 700;font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:Be Vietnam;src:url('/fonts/be-vietnam-pro-latin-800-normal.woff2') format('woff2');font-weight:800 900;font-display:swap}@font-face{font-family:Be Vietnam;src:url('/fonts/be-vietnam-pro-vietnamese-800-normal.woff2') format('woff2');font-weight:800 900;font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
:root{font-family:Be Vietnam,'Segoe UI',sans-serif;font-synthesis:none;--bg:#f4f6fb;--surface:white;--text:#172239;--muted:#657086;--line:#dce2ed;--accent:#244fd9;--accent-soft:#edf2ff;--green:#147b58;--green-bg:#edf8f2;--radius:14px;color:var(--text)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:14px;line-height:1.65}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit;text-decoration:none}button,a,input,textarea,select{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #c38010;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.35;letter-spacing:-.8px;font-weight:800}h2{font-size:20px;line-height:1.5;letter-spacing:-.4px}h3{font-size:15px}small{font-size:12px}input,select,textarea{border:1px solid #bbc5d6;border-radius:8px;background:white;color:var(--text);padding:10px 12px;width:100%;min-width:0}textarea{resize:vertical}input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--accent);padding:0;flex-shrink:0}label{display:grid;gap:7px;font-weight:500}button{color:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:10px 16px;min-height:42px;background:white;font-weight:600;white-space:nowrap;transition:background .15s}.btn:hover{background:var(--accent-soft)}.btn.primary{color:white;background:var(--accent);border-color:var(--accent)}.btn.primary:hover{background:#193db5}.btn.ghost{border-color:transparent;background:transparent}.btn.small{min-height:34px;padding:6px 11px;font-size:12px}.btn.block{width:100%}.btn.danger{color:#b32924}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:1.2px;font-weight:700;color:var(--muted)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}.row{display:flex;gap:12px;align-items:center}.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:20px}.badge{display:inline-flex;padding:4px 9px;font-size:11px;line-height:1.5;font-weight:600;border-radius:6px;background:var(--accent-soft);color:var(--accent)}.badge.green{background:var(--green-bg);color:var(--green)}.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:15px;line-height:1.4;white-space:nowrap}.brand small{display:block;font-size:9px;font-weight:500;letter-spacing:1px;color:var(--muted);margin-top:3px}.brand-mark{display:grid;place-items:center;width:37px;height:37px;background:var(--accent);border-radius:10px;color:white;font-size:25px;font-weight:600;flex-shrink:0}.topbar,.exam-header{display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line);gap:16px;padding:16px 30px}.topbar nav{display:flex;align-items:center;gap:10px}.user-name{font-size:12px;color:var(--muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page{max-width:1440px;margin:auto;padding:30px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;gap:18px}.page-heading .eyebrow{display:block;margin-bottom:6px}.dashboard{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);gap:24px}.round-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.round-card{padding:24px;display:flex;flex-direction:column;gap:12px}.round-number{font-size:30px;line-height:1;font-weight:800;color:#abb9df}.round-card h2{margin-top:8px}.round-card>p{color:var(--muted);font-size:13px}.round-card>small{margin-top:0;font-size:11px}.round-meta{padding:12px 0;display:flex;align-items:baseline;gap:6px;color:var(--muted)}.round-meta strong{font-size:24px;color:var(--text);font-weight:600}.round-meta span{margin-left:auto;font-size:12px}.info-panel{padding:24px}.info-panel>p{font-size:12px;margin-top:20px}.subject-list{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.subject-list span{border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:12px}.ranking{overflow:hidden}.ranking-body{max-height:650px;overflow:auto;min-height:260px}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:11px;color:var(--muted);background:#f9faff;font-weight:500}td,th{padding:12px 20px;border-bottom:1px solid var(--line)}td{font-size:12px}td strong{font-weight:600}td small{display:block;color:var(--muted);font-size:11px}.score{font-weight:700;color:var(--accent);text-align:right;font-variant-numeric:tabular-nums}.rank{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#f0f2f7}.rank.medal{color:#92600d;background:#fff1d5;font-weight:700}.ranking-foot{padding:14px 20px;font-size:12px;color:var(--muted)}.empty-state{text-align:center;padding:44px 22px;color:var(--muted)}.empty-state>span{display:block;font-size:42px;color:#a1afcb}.empty-state h3{color:var(--text);margin:10px 0}.empty-state p{font-size:12px}.result-strip{display:flex;align-items:center;justify-content:space-between;padding:10px 0}.result-strip>strong{font-size:28px;color:var(--accent)}.result-strip small{font-size:12px;color:var(--muted);font-weight:400}.auth-layout{display:grid;grid-template-columns:1fr 470px;gap:80px;max-width:1080px;margin:35px auto;align-items:center}.auth-intro h1{font-size:52px;line-height:1.25;margin-top:16px;letter-spacing:-1.6px}.auth-intro>p{font-size:15px;line-height:1.9;color:var(--muted)}.auth-rule{width:55px;height:4px;background:var(--accent);margin:24px 0}.round-outline{display:flex;gap:16px;align-items:center;margin-top:28px}.round-outline>span{font-size:23px;color:#8299cf;font-weight:600}.round-outline p{font-size:12px;color:var(--muted);margin-top:3px}.auth-panel{padding:28px 32px}.auth-panel h2{margin:22px 0}.tabs{display:flex;border-bottom:1px solid var(--line);gap:14px}.tabs .btn{border:0;border-radius:0;background:transparent;padding-left:0;padding-right:0;color:var(--muted)}.tabs .active{color:var(--accent);border-bottom:2px solid var(--accent)}.form-grid{display:grid;gap:17px}.form-grid label,.question-form label{font-size:12px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.error{color:#af2922;font-size:12px;min-height:5px}.account-panel{max-width:480px;padding:30px}.account-panel form{margin-top:25px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loading{display:grid;place-items:center;min-height:100vh;color:var(--muted)}
.exam-mode{overflow:hidden}.exam-header{height:72px;padding:14px 24px}.exam-round{font-size:13px;color:var(--muted);margin-right:auto;margin-left:24px}.save-state{font-size:12px;color:var(--green);white-space:nowrap}.save-state.pending{color:#925209}.save-state.error{color:#b32924}.exam-shell{display:grid;grid-template-columns:210px minmax(0,1fr) 216px;gap:18px;height:calc(100dvh - 72px);padding:20px 24px;max-width:1680px;margin:auto}.exam-nav{display:flex;flex-direction:column;min-height:0;overflow:auto}.exam-nav .panel-head{padding:18px 16px;gap:4px}.exam-nav h3{font-size:12px}.exam-nav .panel-head>span{font-size:11px;color:var(--muted)}.question-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:18px 15px}.qnum{border:1px solid #c8d1e0;background:white;border-radius:6px;padding:0;min-height:30px;font-size:12px}.qnum.answered{background:var(--accent-soft);border-color:#b1c1f3;color:#163cae}.qnum.current{background:var(--accent);border-color:var(--accent);color:white;font-weight:700;box-shadow:0 0 0 2px white,0 0 0 3px var(--accent)}.legend{padding:8px 16px;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px;font-size:10px}.nav-bottom{margin-top:auto;padding:20px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;font-size:12px}.nav-bottom small{color:var(--muted);font-size:11px}.question-panel{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.question-heading{padding:18px 24px;display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--line);flex-shrink:0}.question-scroll{overflow:auto;padding:24px;flex:1;min-height:0}.topic{font-size:12px;color:var(--accent);margin-bottom:12px;font-weight:600}.question-text{font-size:21px;font-weight:600;line-height:1.6;letter-spacing:-.4px;white-space:pre-wrap}.question-code{font:14px/1.65 Consolas,monospace;padding:16px 20px;margin:18px 0 0;border:1px solid var(--line);border-radius:8px;background:#f8faff;overflow:auto;white-space:pre-wrap}.answers{display:grid;gap:12px;border:0;padding:0;margin:24px 0 0}.answer{display:flex;align-items:center;gap:13px;padding:15px 18px;border:1px solid #c8d1e0;border-radius:9px;cursor:pointer;font-size:14px;font-weight:400;line-height:1.6}.answer:hover{border-color:#8a9edc}.answer.selected{background:var(--accent-soft);border-color:var(--accent)}.answer-letter{font-size:12px;font-weight:600;color:var(--muted)}.answer.selected .answer-letter{color:var(--accent)}.question-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:16px 24px;background:#fdfdff;gap:8px;flex-shrink:0}.question-footer>span{font-size:12px;color:var(--muted)}.exam-side{display:flex;flex-direction:column;gap:16px;min-width:0}.time-panel{padding:24px 20px}.time-panel .timer{display:block;font-size:38px;letter-spacing:-1px;font-weight:600;line-height:1.5;margin-top:8px}.timer{font-variant-numeric:tabular-nums}.timer.urgent{color:#b32924}.time-panel>p{color:var(--muted);font-size:11px;margin:9px 0 20px}.progress{height:5px;background:#e8edf6;border-radius:5px;overflow:hidden;margin-top:16px}.progress span{display:block;height:100%;background:var(--accent)}.exam-note{padding:20px;font-size:12px}.exam-note strong{font-size:12px}.exam-note p{font-size:11px;color:var(--muted);margin-top:10px}.exam-note .btn{margin-top:16px}.compact-timer{display:none}.short-answer{margin-top:24px;max-width:500px;font-size:12px}.question-media{display:block;max-width:100%;max-height:230px;object-fit:contain;margin:16px 0}.file-link{display:inline-block;color:var(--accent);text-decoration:underline;margin-top:16px}.practice-statement{white-space:pre-wrap;font-size:12px;margin:14px 0;line-height:1.85}.sample{background:#f6f8fd;border:1px solid var(--line);padding:10px 14px;font:12px/1.6 Consolas,monospace;border-radius:7px;white-space:pre-wrap;margin:10px 0 14px}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:8px;gap:10px}.language-label{max-width:190px}.language-label select{font-size:11px;padding:7px}.workbench{display:grid;min-height:210px}.code-editor{font:13px/1.65 Consolas,'Courier New',monospace;min-height:210px;tab-size:2;resize:vertical;background:#122039;color:#e1eafc;border-color:#263c5e;white-space:pre;overflow:auto;padding:14px}.web-workbench{grid-template-columns:1fr 1fr;gap:10px}.web-workbench iframe{border:1px solid var(--line);background:white;border-radius:8px;width:100%;height:100%;min-height:210px}.run-toolbar{margin-top:12px}.judge-output{font:12px/1.6 Consolas,monospace;white-space:pre-wrap;max-height:180px;overflow:auto;margin:12px 0 0;background:#f6f8fc;padding:12px;border-radius:7px;overflow-wrap:anywhere}.judge-output:empty{display:none}.fullscreen-overlay{position:fixed;inset:0;z-index:30;background:#f4f6fbf2;display:none;place-items:center;padding:24px}.fullscreen-overlay.visible{display:grid}.fullscreen-overlay section{padding:32px;max-width:420px;width:100%}.fullscreen-overlay h2{margin:20px 0 10px}.fullscreen-overlay p{color:var(--muted);margin-bottom:24px}
.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.admin-stats>div{padding:20px;display:flex;flex-direction:column}.admin-stats strong{font-size:28px;font-weight:600}.admin-stats span{font-size:12px;color:var(--muted)}.admin-round{padding:22px}.admin-round>p{color:var(--muted);margin:12px 0 18px;font-size:12px}.admin-caption{color:var(--muted);font-size:12px;margin:16px 0 24px}.bank-layout{display:grid;grid-template-columns: minmax(240px,.8fr) minmax(350px,1.2fr);max-height:860px}.bank-list{overflow:auto;border-right:1px solid var(--line)}.bank-list button{width:100%;text-align:left;background:white;border:0;border-bottom:1px solid var(--line);padding:15px 20px}.bank-list button:hover,.bank-list button:focus{background:var(--accent-soft)}.bank-list span{display:block;font-size:10px;color:var(--accent);margin-bottom:5px}.bank-list strong{font-size:12px;font-weight:500}.question-form{padding:24px;display:grid;gap:16px;overflow:auto}.question-form details summary{cursor:pointer;font-size:12px}.question-form details label{margin-top:12px}.question-form textarea.code-editor{font-size:11px}.question-form .two-fields{gap:16px}.admin-attempts{margin-top:24px}.table-scroll{overflow:auto}.table-scroll table{min-width:720px}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;max-width:480px;width:calc(100% - 36px);color:var(--text);box-shadow:0 24px 100px #17223933}dialog::backdrop{background:#12203966}dialog h2{font-size:21px}dialog p{font-size:13px;color:var(--muted);margin:16px 0 24px;line-height:1.8}dialog p.error{color:#b32924;margin:0 0 12px}.dialog-actions{justify-content:flex-end}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#172239;color:white;padding:13px 20px;border-radius:9px;max-width:min(600px,90vw);width:max-content;z-index:90;font-size:12px;opacity:0;pointer-events:none;transition:opacity .15s}#toast.show{opacity:1}
@media(min-width:1100px) and (max-height:800px){.exam-shell{padding:14px 18px;gap:14px;grid-template-columns:198px minmax(0,1fr) 198px}.exam-header{height:64px;padding:10px 20px}.exam-shell{height:calc(100dvh - 64px)}.question-heading{padding:12px 20px}.question-scroll{padding:18px 20px}.question-text{font-size:19px}.answers{margin-top:18px;gap:9px}.answer{padding:12px 16px}.question-footer{padding:12px 20px}.question-grid{gap:7px;padding:14px}.qnum{min-height:27px}.time-panel{padding:20px 16px}.time-panel .timer{font-size:33px}.code-editor,.workbench,.web-workbench iframe{min-height:170px}.practice-statement{font-size:11px}.question-code{font-size:13px;padding:12px 16px;margin-top:14px}}
@media(max-width:1100px){.topbar{padding:16px 20px}.page{padding:24px 20px}.dashboard{grid-template-columns:1fr}.ranking-body{max-height:600px}.auth-layout{gap:40px;grid-template-columns:1fr 440px}.auth-intro h1{font-size:44px}.exam-shell{grid-template-columns:170px minmax(0,1fr) 180px;padding:14px;gap:12px}.question-grid{gap:6px;padding:12px}.exam-round{margin-left:8px}.exam-header .user-name{display:none}.question-heading,.question-footer{padding:14px 18px}.question-scroll{padding:18px}.time-panel{padding:20px 14px}.time-panel .timer{font-size:32px}.question-text{font-size:19px}.answer{padding:12px}.exam-note{padding:16px}}
@media(max-width:850px){.auth-layout{grid-template-columns:1fr;max-width:500px;gap:28px;margin:10px auto}.auth-intro{display:none}.topbar .user-name{display:none}.brand{font-size:13px}.brand small{font-size:8px}.topbar nav{gap:4px}.topbar .btn.ghost{display:none}.exam-shell{grid-template-columns:140px minmax(0,1fr)}.exam-side{display:none}.compact-timer{display:block;font-size:20px}.exam-header{padding:12px 16px}.exam-round{display:none}.question-grid{grid-template-columns:repeat(4,1fr)}.exam-nav h3{font-size:11px}.exam-header .row{gap:14px}.question-footer:after{content:none}.exam-header .row:after{content:none}.question-panel .question-footer .btn{font-size:12px}.exam-nav:after{content:none}.bank-layout{grid-template-columns:240px 1fr}.admin-stats{gap:10px}.admin-stats>div{padding:16px}.admin-round .row{flex-wrap:wrap}}
@media(max-width:600px){.topbar{padding:12px 14px;gap:8px}.topbar nav{gap:5px}.topbar .brand small{display:none}.brand{font-size:11px}.brand-mark{width:32px;height:32px;font-size:22px;border-radius:8px}.topbar nav>.btn.small{font-size:10px;padding:6px 8px}.topbar nav>.btn.primary{font-size:12px;padding:8px 12px;min-height:36px}.page{padding:22px 14px}.page-heading{align-items:flex-start;margin-bottom:20px;flex-wrap:wrap}h1{font-size:25px}.page-heading .eyebrow{font-size:9px}.dashboard{gap:18px}.round-cards{grid-template-columns:1fr;gap:16px}.round-card{padding:22px}.info-panel{padding:22px}.ranking .panel-head{padding:16px}.ranking h2{font-size:18px}.ranking .badge{font-size:9px}td,th{padding:11px 14px}.auth-panel{padding:24px}.auth-layout{margin:0 auto}.exam-mode{overflow:auto}.exam-header{position:sticky;top:0;z-index:10;height:60px;padding:10px 12px}.exam-header .brand small{display:none}.exam-header .save-state{font-size:10px}.exam-header .row{gap:10px}.compact-timer{font-size:18px}.exam-shell{height:auto;display:flex;flex-direction:column;padding:10px;gap:10px}.exam-nav{max-height:155px;flex-shrink:0}.exam-nav .panel-head{padding:8px 12px}.question-grid{grid-template-columns:repeat(10,1fr);gap:6px;padding:9px 12px}.qnum{min-height:27px;font-size:10px}.nav-bottom,.legend{display:none}.question-panel{min-height:470px}.question-heading{padding:12px 16px}.question-heading .eyebrow,.question-heading .badge{font-size:10px}.question-scroll{overflow:visible;padding:18px 16px}.question-text{font-size:18px}.answers{gap:10px;margin-top:18px}.answer{padding:12px;font-size:13px}.question-footer{padding:12px 14px;position:sticky;bottom:0}.exam-side{display:block}.exam-side .time-panel{padding:14px}.time-panel .eyebrow,.time-panel .timer,.time-panel .progress,.time-panel>p,.exam-note{display:none}.web-workbench{grid-template-columns:1fr}.web-workbench iframe{height:220px}.admin-stats{grid-template-columns:1fr 1fr}.bank-layout{display:block;max-height:none}.bank-list{max-height:280px;border-bottom:1px solid var(--line)}.question-form{padding:20px}.two-fields{gap:10px}.question-footer .btn{padding:8px 10px}.account-panel{padding:24px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.compact-submit{display:none}@media(min-width:601px) and (max-width:850px){.compact-submit{display:inline-flex}}
@media(min-width:1100px) and (max-height:800px){.code-editor,.workbench,.web-workbench iframe{min-height:140px}.sample{font-size:11px;line-height:1.5;padding:8px 12px;margin:8px 0 10px}.judge-output{font-size:11px;line-height:1.5;padding:8px 12px;margin-top:8px}}
@media(max-width:600px){.topbar nav{flex-wrap:wrap;justify-content:flex-end;max-width:55%}}
@media(max-width:850px){.topbar .btn[data-action="admin"]{display:inline-flex;font-size:10px;padding:6px 8px;min-height:34px}}

/* Cổng thi: bố cục cố định trên desktop; chỉ danh sách bên trong cuộn. */
[hidden]{display:none!important}
:root{--radius:10px}
.page-heading h1{font-size:25px;font-weight:700;letter-spacing:-.5px}
.pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);flex-shrink:0}
.pagination>div{display:flex;gap:6px}.pagination .btn{min-width:34px}
.ranking{display:flex;flex-direction:column;min-height:0}.ranking .panel-head{flex-wrap:wrap;padding:16px 20px}
.ranking-body{display:flex;flex-direction:column;min-height:0;max-height:none;flex:1;overflow:hidden}
.ranking-table{flex:1;min-height:0;overflow:auto}.ranking td,.ranking th{padding:9px 18px}.ranking td strong{display:block;overflow-wrap:anywhere}.ranking td small{overflow-wrap:anywhere}
.ranking-foot{padding:9px 18px;font-size:11px}.ranking th:first-child{width:65px}.ranking th:last-child{width:65px}
.home-mode .page-heading{margin-bottom:20px}.home-mode .round-card{padding:20px;gap:10px}.home-mode .round-card h2{font-size:19px;margin-top:0}.home-mode .round-meta{padding:7px 0}
.home-mode .info-panel{padding:18px 20px}.home-mode .info-panel h2{font-size:16px}.home-mode .subject-list{margin-top:12px;gap:7px}.home-mode .subject-list span{padding:4px 8px;font-size:11px}.home-mode .info-panel>p{margin-top:14px}
.admin-summary{display:flex;gap:24px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin:-6px 0 12px}.admin-summary strong{color:var(--text);font-weight:700}
.admin-mode .page-heading{margin-bottom:14px}.admin-tabs{margin-bottom:18px;flex-shrink:0}.admin-tabs .btn{font-size:13px;padding:9px 2px}.admin-content{min-height:0;flex:1}
.bank-panel{height:100%;display:flex;flex-direction:column;min-height:0;overflow:hidden}.bank-toolbar{display:flex;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line);flex-shrink:0;flex-wrap:wrap}
.round-filter{display:flex;gap:4px}.round-filter .btn{font-size:12px;min-height:36px;padding:7px 12px;border-color:transparent;background:transparent}.round-filter .active{color:var(--accent);background:var(--accent-soft);border-color:#c5d1f5}.bank-total{font-size:11px;color:var(--muted);margin-right:auto}
.bank-layout{grid-template-columns:minmax(260px,.85fr) minmax(0,1.6fr);flex:1;min-height:0;max-height:none;overflow:hidden}
.bank-sidebar{min-width:0;min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--line)}.bank-list{border:0;flex:1;min-height:0;overflow:auto}.bank-list button{padding:12px 18px;border-left:3px solid transparent}.bank-list button.selected{background:var(--accent-soft);border-left-color:var(--accent)}.bank-list strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.65;overflow-wrap:anywhere;font-size:12px}.bank-list span{font-size:10px;margin-bottom:3px}.bank-sidebar .pagination{padding:10px 12px;font-size:10px}
.question-form{display:flex;flex-direction:column;padding:0;gap:0;overflow:hidden;min-width:0;min-height:0}.editor-heading{padding:14px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-shrink:0}.editor-heading span{font-size:10px}.editor-fields{overflow:auto;min-height:0;flex:1;padding:18px 20px;display:flex;flex-direction:column;gap:14px}.editor-fields>*,.editor-fields label{flex-shrink:0}.editor-fields input,.editor-fields select,.editor-fields textarea{font-size:12px;padding:8px 10px;line-height:1.6}.editor-fields label{font-size:11px;gap:5px}.editor-fields .code-editor{min-height:140px;font-size:12px}.editor-fields .mono{font:12px/1.6 Consolas,monospace}.editor-fields #choice-fields,.editor-fields #practice-fields{display:flex;flex-direction:column;gap:14px}.editor-fields #practice-fields>p{font-size:11px}.editor-actions{border-top:1px solid var(--line);padding:12px 20px;display:flex;gap:12px;align-items:center;flex-shrink:0;background:#fafbfe}.editor-actions span{font-size:11px;margin-left:auto}
.admin-attempts{margin:0;max-height:100%;display:flex;flex-direction:column;overflow:hidden}.admin-attempts .table-scroll{min-height:0}.admin-round .row{flex-wrap:wrap}
@media(min-width:1101px){.home-mode,.admin-mode{height:100dvh;overflow:hidden}.home-mode #app,.admin-mode #app{height:100%;display:flex;flex-direction:column}.home-mode .page,.admin-mode .page{width:100%;padding:22px 30px;flex:1;min-height:0;display:flex;flex-direction:column}.dashboard{min-height:0;flex:1;gap:22px}.dashboard>.stack{min-height:0;overflow:auto;gap:16px}.home-mode .ranking{height:100%}.admin-mode .admin-content{overflow:auto}.admin-mode .bank-layout{height:100%}}
@media(max-width:1100px){.home-mode .ranking{height:560px}.admin-mode .bank-panel{height:650px}.bank-toolbar{gap:10px}.bank-layout{grid-template-columns:minmax(220px,.8fr) minmax(0,1.3fr)}}
@media(min-width:1101px) and (max-height:740px){.home-mode .page,.admin-mode .page{padding:18px 24px}.home-mode .round-card{padding:16px;gap:6px}.home-mode .round-number{font-size:24px}.home-mode .round-meta{padding:4px 0}.home-mode .round-card .btn{min-height:36px}.home-mode .info-panel{padding:14px 16px}.home-mode .info-panel>p{margin-top:10px}.home-mode .subject-list{gap:5px;margin-top:8px}.ranking td,.ranking th{padding:7px 14px}.ranking .panel-head{padding:12px 16px}.ranking .panel-head h2{font-size:18px}}
@media(max-width:600px){.page-heading h1{font-size:22px}.home-mode .ranking{height:570px}.admin-mode .bank-panel{height:auto}.bank-toolbar{padding:12px}.round-filter{width:100%}.round-filter .btn{flex:1}.bank-layout{display:flex;flex-direction:column;overflow:visible}.bank-sidebar{height:400px;border-right:0;border-bottom:1px solid var(--line)}.bank-list{max-height:none}.question-form{height:620px}.editor-heading,.editor-actions{padding:12px 14px}.editor-fields{padding:16px 14px}.admin-summary{gap:8px 16px}.admin-tabs{gap:16px}.admin-tabs .btn{font-size:11px}.bank-total{font-size:10px}.admin-content{overflow:visible}.admin-attempts{max-height:650px}}
