/* DuyOJ Modern — standalone and responsive, no external stylesheets/fonts needed. */
:root{color-scheme:light;--bg:#f4f7fc;--surface:#fff;--surface2:#f8faff;--ink:#162540;--mute:#687994;--border:#e3eaf4;--blue:#306bf3;--blue-hover:#2158d1;--blue-light:#ecf2ff;--green:#087b53;--red:#c44051;--shadow:0 10px 32px rgba(35,60,111,.045);--navy:#101e37;--navy2:#1a3152;--input:#fff;--code-bg:#f9fbff;--code-border:#dee6f3;--ring:rgba(48,107,243,.19);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
:root[data-theme="dark"]{color-scheme:dark;--bg:#0d1729;--surface:#142239;--surface2:#182a45;--ink:#edf4ff;--mute:#9bacbf;--border:#283950;--blue:#6e9dff;--blue-hover:#90b3ff;--blue-light:#1e375d;--green:#72dbac;--red:#ff92a4;--shadow:0 12px 32px rgba(0,0,0,.13);--input:#172943;--code-bg:#101b2b;--code-border:#2b3d56;--ring:rgba(110,157,255,.21)}
[hidden]{display:none!important}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:var(--blue)}:focus-visible{outline:3px solid var(--blue);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.65rem,2.5vw,2.2rem);line-height:1.27;letter-spacing:-.8px}h2{font-size:19px;letter-spacing:-.25px}h3{font-size:16px}
.layout{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;min-height:590px;display:flex;flex-direction:column;overflow:hidden;color:#c9d9f2;background:radial-gradient(ellipse at -50% 5%,#244979 0%,transparent 52%),linear-gradient(165deg,#142744,#0b1830 90%);padding:28px 16px}.brand{display:flex;align-items:center;gap:11px;padding:4px 9px;color:#fff;font-size:27px;font-weight:850;letter-spacing:-1.1px}.brandmark{display:grid;place-items:center;width:43px;height:43px;flex:none;background:linear-gradient(140deg,#5c96ff,#2c6ef3);border:1px solid #76a9ff6b;box-shadow:0 9px 18px #071a3733;border-radius:14px;color:white;font-family:Consolas,monospace;font-size:17px;letter-spacing:-2px}.brandname small{font-size:9px;display:block;margin-top:-2px;letter-spacing:1.7px;font-weight:750;color:#93abcf}.accent{color:#86b7ff}.navlabel{font-size:10px;letter-spacing:1.5px;font-weight:800;color:#829abd;margin:48px 16px 13px}.sidebar nav{display:grid;gap:6px}.sidebar nav button{border:1px solid transparent;background:transparent;color:#becfe7;border-radius:12px;padding:13px 13px;font-weight:650;text-align:left;display:flex;align-items:center;gap:13px;width:100%;transition:background .16s,border-color .16s,color .16s}.sidebar nav button:hover{background:#ffffff14;color:#fff}.sidebar nav button.active{background:linear-gradient(90deg,#2e64b76a,#3b77c224);border-color:#82b1ff26;color:#fff}.sidebar nav button span:first-child{font-size:20px;width:25px;text-align:center;line-height:1}.sidebar-spotlight{margin:auto 6px 24px;padding:17px;background:linear-gradient(135deg,#254776,#1c3559);border:1px solid #6aa0ed23;border-radius:15px;display:grid;gap:7px}.spotlight-icon{font:700 24px Consolas,monospace;color:#93beff}.sidebar-spotlight strong{font-size:13px;color:#f4f8ff}.sidebar-spotlight small{color:#a5bfdc;font-size:11px}.sidebar-foot{padding:15px 12px 0;font-size:12px;line-height:1.75;border-top:1px solid #ffffff24}.sidebar-foot small{color:#8ba6c8}.status-dot{display:inline-block;width:8px;height:8px;background:#53d9a2;border-radius:50%;margin-right:7px;box-shadow:0 0 0 4px #53d9a216}
.workspace{min-width:0;display:flex;flex-direction:column}.topbar{min-height:79px;padding:13px clamp(18px,3vw,43px);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:15px}.top-left{min-width:0}.top-title{display:grid;gap:3px}.top-title strong{font-size:14px;letter-spacing:-.1px}.top-title small{font-size:12px;color:var(--mute)}.top-actions{display:flex;align-items:center;gap:12px;min-width:0}.header-chip{padding:7px 10px;color:var(--blue);font-size:11px;font-weight:850;letter-spacing:.4px;background:var(--blue-light);border-radius:8px;border:1px solid var(--border)}.theme-toggle{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;border-radius:12px;border:1px solid var(--border);background:var(--surface2);color:var(--ink);font-size:20px}.theme-toggle:hover{border-color:var(--blue)}.mobile-logo{display:none;font-size:21px;font-weight:850;letter-spacing:-.8px}.container{max-width:1220px;width:100%;margin:0 auto;flex:1;padding:clamp(18px,3.1vw,42px) clamp(17px,3.2vw,44px) 56px}.footer{padding:19px clamp(17px,3vw,44px);color:var(--mute);font-size:11px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:clamp(18px,2.2vw,27px);box-shadow:var(--shadow);margin-bottom:18px;min-width:0}.hero{position:relative;isolation:isolate;overflow:hidden;padding:clamp(28px,5vw,52px);background:linear-gradient(115deg,#112a50 5%,#1c4b8c 64%,#286ac0 100%);color:#fff;border:1px solid #507bb54f;min-height:290px;display:flex;flex-direction:column;justify-content:center}.hero:before{content:"</>";position:absolute;z-index:-1;right:-32px;top:-22px;font:850 clamp(130px,23vw,300px)/1 Consolas,monospace;color:#ffffff11;transform:rotate(-9deg);letter-spacing:-25px}.hero:after{content:"";position:absolute;z-index:-1;width:390px;height:390px;border:1px solid #ffffff12;border-radius:50%;right:-115px;bottom:-245px;box-shadow:0 0 0 57px #ffffff09,0 0 0 114px #ffffff05}.hero h1{max-width:730px;font-size:clamp(28px,4vw,42px);line-height:1.18;letter-spacing:-1.6px;margin-bottom:15px}.hero .lead{color:#cfdef3;max-width:640px;margin-bottom:22px}.hero .btn{background:#fff;color:#1f4c89;border-color:white;align-self:flex-start}.hero .btn:hover{background:#eff5ff}.hero-tags{display:flex;gap:9px;flex-wrap:wrap;margin-top:23px}.hero-tags span{font-size:11px;font-weight:700;border:1px solid #ffffff32;color:#e5f0ff;background:#ffffff12;padding:7px 10px;border-radius:30px}
.lead{color:var(--mute);line-height:1.7;font-size:14px}.eyebrow{color:var(--blue);font-size:11px;letter-spacing:1.5px;font-weight:850;margin-bottom:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:grid;gap:14px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.page-title{margin-bottom:24px}.page-title h1{margin-bottom:8px}.page-title .lead{margin:0}
.btn{border:1px solid var(--border);border-radius:11px;padding:11px 16px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:750;transition:background .15s,box-shadow .15s}.btn.primary{background:#2d6be8;color:#fff;border-color:#2d6be8;box-shadow:0 5px 15px #2d6be81e}.btn.primary:hover{background:#235dd4}.btn.danger{border-color:#ecb6c0;color:var(--red);background:var(--surface)}.btn:hover{background:var(--surface2)}.btn.small{padding:8px 11px;font-size:12px}.input{display:block;width:100%;min-width:0;border:1px solid var(--border);border-radius:11px;padding:12px 13px;background:var(--input);color:var(--ink)}textarea.input{resize:vertical;line-height:1.65}.input:focus{outline:2px solid var(--ring);outline-offset:1px;border-color:var(--blue)}.label{font-size:13px;font-weight:750;display:block;margin:8px 0 8px}.muted{color:var(--mute)}.small{font-size:13px}.pill{display:inline-flex;align-items:center;background:var(--blue-light);color:var(--blue);border-radius:8px;font-size:12px;font-weight:800;padding:5px 10px}.pill.ac{color:#087b53;background:#e3f8ee}.pill.fail{color:#b43e4e;background:#ffeeef}.pill.pending{color:#906315;background:#fff4db}:root[data-theme="dark"] .pill.ac{color:#81e8af;background:#174732}:root[data-theme="dark"] .pill.fail{color:#ff95a5;background:#512937}:root[data-theme="dark"] .pill.pending{color:#f6d084;background:#4b3c25}
.table-scroll{overflow:auto;max-width:100%;-webkit-overflow-scrolling:touch;border-radius:11px}.data{border-collapse:separate;border-spacing:0;width:100%;min-width:550px}.data th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.45px;color:var(--mute);font-weight:800;padding:14px 13px;background:var(--surface2);border-bottom:1px solid var(--border)}.data td{font-size:13px;padding:15px 13px;border-bottom:1px solid var(--border);vertical-align:middle}.data tbody tr:hover{background:var(--surface2)}.data tbody tr:last-child td{border-bottom:0}.text-link{color:var(--blue);background:none;border:0;padding:0;font-size:inherit;font-weight:750;text-align:left}.text-link:hover{text-decoration:underline}.detail{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;font-size:14px}.hint{background:var(--blue-light);border-left:3px solid var(--blue);padding:13px 16px;color:var(--ink);border-radius:10px;font-size:13px;line-height:1.6}.divider{border:0;border-top:1px solid var(--border);margin:24px 0}
.user{display:flex;align-items:center;gap:10px}.avatar{height:36px;width:36px;border-radius:50%;background:var(--surface2);object-fit:cover;border:1px solid var(--border)}.user-name{font-weight:750;font-size:12px;max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{color:var(--mute);font-size:11px}.toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.blank{padding:35px;text-align:center;color:var(--mute)}.codeoutput{white-space:pre-wrap;overflow-wrap:anywhere;background:#101f34;color:#dfebff;border-radius:12px;padding:18px;font:13px/1.65 Consolas,Monaco,monospace;max-height:260px;overflow:auto}.footer-actions{display:flex;justify-content:flex-end;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px}.footer-actions input[type="file"]{max-width:100%;font-size:12px;color:var(--mute)}.notice{padding:14px 16px;border-radius:11px;border:1px solid var(--border);background:var(--blue-light);color:var(--ink);margin:15px 0;line-height:1.65;font-size:13px}.notice.warn{border-color:#e5ce93;background:#fff6dd;color:#785916}:root[data-theme="dark"] .notice.warn{border-color:#645231;background:#3b2f1d;color:#f7d791}
#toast{position:fixed;right:20px;bottom:20px;max-width:min(390px,calc(100vw - 40px));display:none;z-index:30;padding:13px 18px;border-radius:12px;background:#182d4e;color:white;box-shadow:0 12px 30px #0003;font-size:13px}.empty-state{padding:30px;color:var(--mute);text-align:center}.mini-stat{font-size:12px;color:var(--mute);background:var(--surface2);padding:18px;border-radius:12px;border:1px solid var(--border)}.mini-stat strong{font-size:19px;color:var(--ink);display:block;margin-top:7px}
/* Native textarea fallback works even if CodeMirror does not load. */
.code{font-family:Consolas,Monaco,monospace!important;background:var(--code-bg);color:var(--ink);tab-size:4;font-size:13px;min-height:380px;border-color:var(--code-border)}.editor-frame{overflow:hidden;border:1px solid var(--code-border);border-radius:14px;background:var(--code-bg);margin-top:10px}.editor-toolbar{background:var(--surface2);display:flex;align-items:center;gap:9px;justify-content:space-between;padding:11px 15px;border-bottom:1px solid var(--code-border);flex-wrap:wrap}.editor-lang{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800}.editor-lang:before{content:"C++";display:inline-grid;place-items:center;width:34px;height:26px;color:#fff;border-radius:7px;background:#356cce;font-size:10px}.editor-tips{font-size:11px;color:var(--mute)}.editor-body{min-width:0}.editor-body>.code{border:0;border-radius:0;margin:0;resize:vertical;min-height:420px}.editor-frame .CodeMirror{height:420px!important;background:var(--code-bg);color:var(--ink);font:13.5px/1.7 Consolas,"SFMono-Regular",Monaco,monospace;touch-action:pan-x pan-y}.editor-frame .CodeMirror pre.CodeMirror-line,.editor-frame .CodeMirror pre.CodeMirror-line-like{padding:0 10px}.editor-frame .CodeMirror-gutters{border-right:1px solid var(--code-border);background:var(--surface2)}.editor-frame .CodeMirror-linenumber{color:var(--mute);padding:0 7px 0 5px}.editor-frame .CodeMirror-cursor{border-color:var(--blue)}.editor-frame .CodeMirror-focused .CodeMirror-selected{background:var(--ring)}.editor-frame .cm-s-eclipse.CodeMirror{background:#f9fbff;color:#202c40}.editor-frame .cm-s-eclipse .CodeMirror-gutters{background:#f2f6fd}.editor-frame .cm-s-material-darker.CodeMirror{background:#101c2e;color:#e8eefc}.editor-frame .cm-s-material-darker .CodeMirror-gutters{background:#14243a}.editor-meta{border-top:1px solid var(--code-border);padding:9px 14px;display:flex;justify-content:space-between;gap:9px;flex-wrap:wrap;color:var(--mute);background:var(--surface2);font-size:11px}.editor-meta .saved:before{content:"●";color:var(--green);margin-right:6px}
.feature-card{display:flex;align-items:flex-start;gap:15px}.feature-icon{width:43px;height:43px;flex:none;border-radius:14px;display:grid;place-items:center;background:var(--blue-light);color:var(--blue);font-size:22px;font-weight:800}.feature-card h3{margin:0 0 8px}.feature-card p{margin:0}.section-heading{margin:23px 0 15px;font-size:18px;font-weight:800}.badge-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.badge-line .pill{font-size:11px}
@media(max-width:1050px){.layout{grid-template-columns:220px minmax(0,1fr)}.sidebar{padding:21px 10px}.navlabel{margin-top:32px}.sidebar-spotlight{display:none}.sidebar-foot{margin-top:auto}.topbar{padding:12px 22px}.container{padding:24px 23px 42px}}
@media(max-width:800px){.layout{display:block}.sidebar{position:sticky;top:0;z-index:15;height:auto;min-height:0;overflow-x:auto;overflow-y:hidden;padding:8px 12px;background:#112440}.sidebar .brand,.sidebar .navlabel,.sidebar .sidebar-foot,.sidebar-spotlight{display:none}.sidebar nav{display:flex;align-items:center;gap:5px;min-width:max-content}.sidebar nav button{width:auto;white-space:nowrap;padding:10px 13px;font-size:12px;border-radius:9px}.sidebar nav button span:first-child{font-size:16px;width:auto}.topbar{min-height:63px;padding:11px 17px}.mobile-logo{display:block}.top-title{display:none}.container{padding:23px 17px 40px}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{min-height:270px}.footer{padding:15px 17px}}
@media(max-width:560px){.card{border-radius:15px;padding:17px}.hero{padding:25px 22px;min-height:280px}.hero h1{font-size:29px;letter-spacing:-.8px}.hero:before{font-size:180px;right:-65px;top:-3px}.grid2,.grid3{grid-template-columns:1fr;gap:12px}.row{align-items:flex-start;flex-wrap:wrap}.top-actions{gap:7px}.header-chip{display:none}.theme-toggle{width:35px;height:35px}.avatar{width:30px;height:30px}.user{gap:5px}.user-name,.user-role{display:none}.user .btn{padding:8px;font-size:11px}.container{padding:18px 12px 34px}.toolbar .input{flex:1 1 100%!important}.toolbar .btn{flex:1}.editor-frame .CodeMirror{height:360px!important;font-size:12px}.editor-body>.code{min-height:360px}.editor-tips{font-size:10px}.editor-toolbar{padding:9px 11px}.footer-actions{justify-content:stretch}.footer-actions .btn{flex:1}.footer-actions input[type="file"]{flex-basis:100%}.data{min-width:480px}.page-title{margin-bottom:16px}.footer span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* DuyOJ Contest & administration responsive additions */
.contest-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 6px;border-bottom:1px solid var(--border, #dce3ed)}
.contest-item:last-child{border-bottom:0}
.contest-item h3{margin:0 0 8px}
.contest-item p{margin:0}
#contest-detail .data td{vertical-align:middle}
#admin-email{min-width:160px}
@media(max-width:650px){.contest-item{align-items:flex-start;flex-direction:column}.contest-item button{width:100%}.toolbar{flex-wrap:wrap}#contest-detail .table-scroll{max-width:calc(100vw - 56px)}}

.taxonomy-item{display:flex;align-items:center;gap:8px;margin:7px 0;flex-wrap:wrap}.taxonomy-item>span{margin-right:auto;font-size:13px}.taxonomy-item button{padding:7px 10px}.contest-item .btn{flex-shrink:0}

/* Dedicated admin management and in-app contest invitations */
.account-found,.invite-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--border)}
.account-found p{margin:5px 0 0}.invite-row:last-child{border-bottom:0}
@media(max-width:560px){.account-found,.invite-row{flex-direction:column;align-items:stretch}.account-found .btn,.invite-row .btn{width:100%}}

/* Admin quick links & contest submissions */
.quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.contest-pager{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
@media(max-width:560px){.quick-actions>.btn{flex:1 1 100%}.contest-pager{justify-content:space-between}}

/* DuyOJ V4 — compact premium surfaces, editorial spacing & bulk import */
:root{--glow:rgba(49,112,244,.14)}
:root[data-theme="dark"]{--glow:rgba(110,157,255,.17)}
body{background:radial-gradient(ellipse 50% 38% at 85% -7%,var(--glow),transparent),var(--bg)}
.sidebar{background:radial-gradient(ellipse at -60% -10%,#3564a8 0%,transparent 54%),linear-gradient(168deg,#122c50 0%,#0c1931 82%);border-right:1px solid #ffffff0a}
.brandmark{box-shadow:0 10px 24px #347fff35}
#nav button{transition:background .16s ease,transform .16s ease}
#nav button:hover{transform:translateX(2px)}
.card{box-shadow:var(--shadow);transition:border-color .15s ease}
.card:hover{border-color:color-mix(in srgb,var(--border) 67%,var(--blue) 33%)}
.page-title h1{letter-spacing:-1px}
.btn.primary{background:linear-gradient(128deg,#326ef1,#2b80e1);border-color:#356de3;box-shadow:0 8px 18px rgba(49,106,232,.16)}
.btn.primary:hover{background:linear-gradient(128deg,#235bd3,#236dcc)}
.section-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px;flex-wrap:wrap}
.section-title-row h2{font-size:21px;letter-spacing:-.6px;margin:5px 0 6px}
.section-title-row p{margin:0}
.file-type-badge{padding:8px 12px;border-radius:10px;background:var(--blue-light);color:var(--blue);font:800 12px Consolas,monospace;white-space:nowrap}
.input-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0 9px}
.input-method{display:flex;gap:12px;text-align:left;align-items:center;background:var(--surface2);color:var(--ink);border:1px solid var(--border);border-radius:13px;padding:14px;min-width:0}
.input-method:hover,.input-method.selected{border-color:var(--blue);background:var(--blue-light)}
.input-method strong{font-size:13px;display:block}
.input-method small{font-size:11px;color:var(--mute);display:block;margin-top:4px}
.method-icon{flex:none;display:grid;place-items:center;border-radius:10px;background:var(--surface);border:1px solid var(--border);color:var(--blue);height:37px;width:37px;font-size:19px;font-weight:850}
.file-info{font-size:12px;color:var(--mute);padding:6px 0 13px}
.submit-panel .editor-frame{border-color:color-mix(in srgb,var(--code-border),var(--blue) 22%)}
.submit-panel .editor-toolbar{background:linear-gradient(90deg,var(--surface2),var(--code-bg))}
.manage-tabbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.manage-tab{display:inline-flex;align-items:center;gap:7px;padding:11px 17px;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:750;cursor:pointer}
.manage-tab:hover,.manage-tab.active{color:var(--blue);border-color:var(--blue);background:var(--blue-light)}
.bulk-guide{position:relative;margin-left:auto}
.bulk-guide>summary{list-style:none;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--blue);border-radius:50%;background:var(--blue-light);color:var(--blue);font-weight:900;cursor:pointer}
.bulk-guide>summary::-webkit-details-marker{display:none}
.guide-pop{position:absolute;right:0;top:40px;width:min(460px,calc(100vw - 55px));z-index:10;max-height:65vh;overflow:auto;box-shadow:0 18px 55px #0003;border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:20px;font-size:12px;line-height:1.6}
.guide-pop pre{padding:13px;max-height:280px;overflow:auto;background:var(--code-bg);color:var(--ink);border:1px solid var(--border);border-radius:10px;font:12px/1.5 Consolas,monospace}
.guide-pop code{background:var(--surface2);padding:1px 4px;border-radius:4px}
.guide-pop .btn{display:inline-block;text-decoration:none;margin-top:8px}
.bulk-drop{cursor:pointer;display:grid;place-items:center;gap:6px;text-align:center;padding:28px 20px;border:2px dashed var(--border);border-radius:15px;background:var(--surface2);color:var(--ink)}
.bulk-drop:hover,.bulk-drop:focus-within{border-color:var(--blue);background:var(--blue-light)}
.bulk-drop strong{font-size:15px}
.bulk-drop small{font-size:12px;color:var(--mute)}
.bulk-drop input{max-width:100%;font-size:12px;margin-top:12px;color:var(--mute)}
.bulk-graphic{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--blue-light);color:var(--blue);font-size:30px;font-weight:800}
.bulk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:20px}
.bulk-problem{display:flex;gap:12px;align-items:flex-start;padding:17px;border:1px solid var(--border);background:var(--surface2);border-radius:13px;cursor:pointer;min-width:0}
.bulk-problem:has(input:checked){border-color:var(--blue);background:var(--blue-light)}
.bulk-problem.is-disabled{opacity:.62;cursor:not-allowed}
.bulk-problem input{accent-color:var(--blue);margin-top:5px;width:16px;height:16px;flex:none}
.bulk-problem-body{min-width:0;display:grid;gap:6px}
.bulk-title{font-size:13px;overflow-wrap:anywhere}
.bulk-title b{font:850 12px Consolas,monospace;color:var(--blue);margin-right:6px}
.bulk-desc,.bulk-error,.bulk-ok{font-size:11px;line-height:1.5;color:var(--mute)}
.bulk-error{color:var(--red)}
.bulk-ok{color:var(--green)}
@media(max-width:710px){.bulk-grid{grid-template-columns:1fr}.input-methods{grid-template-columns:1fr}.guide-pop{right:-5px}}
@media(max-width:560px){.bulk-drop{padding:19px 12px}.section-title-row{gap:10px}.manage-tab{flex:1;justify-content:center;padding:10px}.submit-panel .footer-actions>.btn{flex:1 1 100%}}

/* DuyOJ V4.1 — compact problem catalogue and multi-select contest picker */
.problem-search-card{padding-bottom:20px}
.problem-count{white-space:nowrap;font-size:13px;font-weight:800;color:var(--blue);border:1px solid var(--border);border-radius:999px;padding:8px 13px;background:var(--blue-light)}
.problem-filter-grid{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(125px,1fr)) auto;gap:12px;align-items:end}
.problem-filter-grid>label{min-width:0}.problem-filter-grid .label{display:block;margin-bottom:6px}
.problem-filter-grid>.btn{height:43px;align-self:end}
.problem-filter-grid:has(#solve-filter){grid-template-columns:minmax(160px,2fr) repeat(4,minmax(110px,1fr)) auto}
.problem-filter-grid .input{width:100%}
.problems-card{padding:8px 18px}
.problem-list-head,.problem-row{display:grid;grid-template-columns:76px 108px minmax(180px,2.4fr) minmax(95px,1.1fr) minmax(95px,1fr) minmax(115px,1fr);gap:12px;align-items:center}
.problem-list-head{color:var(--mute);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.55px;padding:14px 10px;border-bottom:1px solid var(--border)}
.problem-row{min-height:61px;padding:10px;border-bottom:1px solid var(--border);font-size:12px;transition:background .15s}
.problem-row:last-child{border-bottom:0}.problem-row:hover{background:var(--surface2)}
.problem-slug{font-family:Consolas,ui-monospace,monospace;color:var(--blue);font-weight:850;overflow-wrap:anywhere}
.problem-main{min-width:0}.problem-title-link{font-size:13px;font-weight:750;text-align:left;line-height:1.45;white-space:normal}.problem-main small{display:none;font-size:10px;color:var(--mute);margin-top:4px}
.problem-topic,.problem-limits{font-size:11px;color:var(--mute);line-height:1.4}
.problem-difficulty{font-size:11px;justify-self:start;white-space:normal}
.problem-state{font-size:20px;color:var(--mute);font-weight:800}.problem-state[title="Đã giải AC"]{color:var(--green)}
.problem-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:2px 0 18px}
.problem-page-buttons{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.page-number{font-size:12px;font-weight:800;border-radius:8px;background:var(--surface);border:1px solid var(--border);padding:10px 12px;min-width:58px;text-align:center}
.list-loading{color:var(--mute);padding:28px;text-align:center}
.contest-picker{padding:20px;border-radius:17px;border:1px solid var(--border);background:var(--surface2);margin:14px 0 22px}
.contest-picker .section-title-row{margin-bottom:17px}
.contest-picker .section-title-row h3{margin:7px 0}
.picker-filter-grid{display:grid;grid-template-columns:minmax(160px,2fr) repeat(2,minmax(110px,1fr));gap:10px}
.picker-filter-grid .input{min-width:0;width:100%}
.picker-selectbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 2px 10px}
.picker-select-all{font-weight:750;font-size:12px;display:flex;align-items:center;gap:8px;cursor:pointer}
.picker-select-all input,.picker-option input{width:16px;height:16px;accent-color:var(--blue);flex-shrink:0}
.picker-results{border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}
.picker-option{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--border);cursor:pointer;font-size:12px}
.picker-option:last-child{border-bottom:0}.picker-option:hover{background:var(--surface2)}
.picker-option-main{min-width:0;display:grid;grid-template-columns:100px minmax(0,1fr);gap:6px 12px;align-items:center;flex:1}
.picker-option-main b{font-family:Consolas,ui-monospace,monospace;color:var(--blue);overflow-wrap:anywhere}
.picker-option-main span{font-size:12px;font-weight:750;overflow-wrap:anywhere}
.picker-option-main small{grid-column:2;color:var(--mute)}
.picker-attached{opacity:.6;cursor:not-allowed;background:var(--surface2)}
.picker-pager{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin:12px 0 20px}
.picker-selected-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.picker-selected-head strong{font-size:13px}
.picker-selected{display:grid;gap:7px;max-height:315px;overflow:auto}
.picker-selected-row{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:7px 10px}
.picker-label{background:var(--blue-light);color:var(--blue);border-radius:8px;padding:6px 9px;font-size:12px;font-weight:850;min-width:33px;text-align:center}
.picker-selected-title{font-size:12px;min-width:0;flex:1;overflow-wrap:anywhere}
.picker-selected-row .btn{padding:6px 10px}
.picker-submit{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:17px}
.picker-release-label{display:grid;gap:6px;flex:1;min-width:200px;max-width:430px}.picker-release-label .input{width:100%}
@media(max-width:1180px){.problem-filter-grid,.problem-filter-grid:has(#solve-filter){grid-template-columns:repeat(3,minmax(0,1fr))}.problem-filter-grid .field-search{grid-column:span 2}.problem-list-head,.problem-row{grid-template-columns:45px 88px minmax(145px,2fr) minmax(90px,1fr) minmax(100px,1fr)}.problem-list-head>span:nth-child(4),.problem-topic{display:none}}
@media(max-width:680px){.problem-filter-grid,.problem-filter-grid:has(#solve-filter){grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.problem-filter-grid .field-search{grid-column:span 2}.problem-filter-grid>.btn{width:100%}.problems-card{padding:8px 10px}.problem-list-head,.problem-row{grid-template-columns:25px minmax(0,1fr) auto;gap:10px}.problem-list-head{padding:12px 7px}.problem-list-head>span:nth-child(2),.problem-list-head>span:nth-child(4),.problem-list-head>span:nth-child(6),.problem-slug,.problem-limits,.problem-topic{display:none}.problem-row{padding:12px 7px}.problem-main small{display:block}.problem-title-link{font-size:13px}.problem-difficulty{max-width:105px;justify-self:end;text-align:center}.problem-pagination{align-items:stretch}.problem-pagination>span{width:100%}.problem-page-buttons{justify-content:space-between;width:100%}.problem-page-buttons .btn{padding:8px 10px}.picker-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.picker-filter-grid>input{grid-column:span 2}.contest-picker{padding:13px}.picker-option-main{display:grid;grid-template-columns:1fr;gap:4px}.picker-option-main small{grid-column:1}.picker-option{padding:11px 9px}.picker-selected-row{gap:5px;padding:6px}.picker-selected-row .btn{padding:5px 7px}.picker-submit>.btn{width:100%}}

/* V4.2: Editable user display name */
.profile-card{max-width:650px;margin:0 auto}
.profile-head{display:flex;align-items:center;gap:16px;padding-bottom:22px;margin-bottom:18px;border-bottom:1px solid var(--border)}
.profile-head h2{margin:0 0 5px;overflow-wrap:anywhere}
.profile-head p{margin:0}
.profile-avatar{width:68px;height:68px;flex:none;border-radius:50%;object-fit:cover;border:2px solid var(--border);background:var(--surface2)}
.profile-card .stack{gap:18px}
.profile-card input[readonly]{color:var(--mute);cursor:default;background:var(--surface2)}
@media(max-width:560px){.profile-card{padding:20px 16px}.profile-avatar{width:54px;height:54px}.profile-head h2{font-size:18px}#open-profile{padding:8px 6px;font-size:11px}}


/* DuyOJ 4.3 — streamlined administration, categories & account menu */
.account-menu{position:relative;min-width:0}
.account-summary{display:flex;align-items:center;gap:9px;border-radius:12px;border:1px solid var(--border);background:var(--surface);padding:5px 9px;cursor:pointer;color:var(--ink);list-style:none;max-width:250px}
.account-summary::-webkit-details-marker{display:none}
.account-summary-text{display:grid;gap:2px;min-width:0}
.account-summary-text b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-summary-text small{font-size:10px;color:var(--mute)}
.account-summary>span:last-child{color:var(--mute);font-weight:800}
.account-dropdown{position:absolute;right:0;top:calc(100% + 7px);width:200px;max-width:calc(100vw - 30px);z-index:35;padding:6px;background:var(--surface);box-shadow:0 18px 42px #0003;border:1px solid var(--border);border-radius:13px}
.account-dropdown>button{display:block;width:100%;text-align:left;padding:11px 12px;font-size:12px;font-weight:700;border:none;border-radius:8px;background:transparent;color:var(--ink);cursor:pointer}
.account-dropdown>button:hover,.account-dropdown>button:focus-visible{background:var(--blue-light);color:var(--blue)}
.admin-filter-grid{display:grid;grid-template-columns:minmax(160px,1.5fr) repeat(4,minmax(105px,1fr)) auto;gap:10px;align-items:center;margin:17px 0}
.admin-filter-grid .input{width:100%;min-width:0}
.admin-row-actions{display:flex;gap:5px;justify-content:flex-end;flex-wrap:wrap}
.admin-row-actions .btn{padding:7px 9px;white-space:nowrap}
.admin-table{min-width:700px}
.admin-table td:first-child{font:800 12px Consolas,ui-monospace,monospace;color:var(--blue)}
.admin-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px;flex-wrap:wrap}
.admin-pager>div{display:flex;gap:7px}
.admin-edit-card{margin:20px 0;padding:19px;border:1px solid var(--blue);border-radius:15px;background:var(--surface2)}
.admin-edit-card h3{margin:5px 0}
.taxonomy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}
.taxonomy-grid>div{min-width:0;background:var(--surface2);border-radius:13px;border:1px solid var(--border);padding:13px}
.taxonomy-grid h3{font-size:14px;margin:0 0 13px}
.taxonomy-item{overflow-wrap:anywhere}
.category-checklist{display:flex;flex-wrap:wrap;gap:7px;border:1px solid var(--border);border-radius:11px;padding:10px;background:var(--surface2);min-height:44px}
.category-checklist label{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:650;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:7px 10px;cursor:pointer}
.category-checklist label:has(input:checked){border-color:var(--blue);background:var(--blue-light);color:var(--blue)}
.category-checklist input{accent-color:var(--blue);width:15px;height:15px}
.bulk-classification{border-radius:14px;border:1px solid var(--border);background:var(--surface2);padding:18px;display:grid;gap:12px}
.bulk-classification h3{margin:0;font-size:15px}
.bulk-classification p{margin:0}
.bulk-problem-inner{display:grid;gap:8px;min-width:0;flex:1}
.bulk-custom{border-top:1px solid var(--border);padding-top:7px;min-width:0}
.bulk-custom summary{color:var(--blue);font-size:12px;font-weight:750;cursor:pointer}
.bulk-custom-toggle{display:flex;align-items:center;gap:7px;font-size:12px;margin:11px 0}
.bulk-custom .grid2{gap:9px;margin-bottom:10px}
.bulk-custom .input{min-width:0;width:100%}
.bulk-custom .category-checklist{margin:8px 0}
@media(max-width:1160px){.admin-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-filter-grid>input:first-child{grid-column:span 2}.taxonomy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:690px){.admin-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-filter-grid>input:first-child{grid-column:span 2}.admin-filter-grid>.btn{width:100%}.taxonomy-grid{grid-template-columns:1fr}.account-summary{padding:4px;gap:4px}.account-summary-text{display:none}.account-summary .avatar{width:32px;height:32px}.bulk-custom .grid2{grid-template-columns:1fr}.admin-pager .btn{padding:8px 10px}}

/* DuyOJ IDE editor — calm syntax palette inspired by Code::Blocks. */
.editor-frame .CodeMirror{font-family:Consolas,"Cascadia Code",monospace;font-size:14px;line-height:1.72}
.editor-frame .cm-s-eclipse.CodeMirror{background:#fbfcff;color:#273344}
.editor-frame .cm-s-eclipse .CodeMirror-gutters{background:#f2f5fa}
.editor-frame .cm-s-eclipse .cm-keyword{color:#365da5;font-weight:600}
.editor-frame .cm-s-eclipse .cm-type,.editor-frame .cm-s-eclipse .cm-variable-3{color:#365da5}
.editor-frame .cm-s-eclipse .cm-def,.editor-frame .cm-s-eclipse .cm-builtin,
.editor-frame .cm-s-eclipse .cm-variable,.editor-frame .cm-s-eclipse .cm-variable-2,
.editor-frame .cm-s-eclipse .cm-operator,.editor-frame .cm-s-eclipse .cm-atom,
.editor-frame .cm-s-eclipse .cm-number,.editor-frame .cm-s-eclipse .cm-meta{color:#273344;font-weight:400}
.editor-frame .cm-s-eclipse .cm-string,.editor-frame .cm-s-eclipse .cm-string-2{color:#ad6824}
.editor-frame .cm-s-eclipse .cm-comment{color:#647f69;font-style:italic}
.editor-frame .cm-s-eclipse .CodeMirror-activeline-background{background:#eaf2ff9e}
.editor-frame .cm-s-eclipse .CodeMirror-matchingbracket{outline:0;border-bottom:1px solid #4b80c5;color:#273344!important}
.editor-frame .cm-s-material-darker.CodeMirror{background:#111b2b;color:#e1e7f0}
.editor-frame .cm-s-material-darker .CodeMirror-gutters{background:#182438}
.editor-frame .cm-s-material-darker .cm-keyword{color:#9bbaff;font-weight:600}
.editor-frame .cm-s-material-darker .cm-type,.editor-frame .cm-s-material-darker .cm-variable-3{color:#9bbaff}
.editor-frame .cm-s-material-darker .cm-def,.editor-frame .cm-s-material-darker .cm-builtin,
.editor-frame .cm-s-material-darker .cm-variable,.editor-frame .cm-s-material-darker .cm-variable-2,
.editor-frame .cm-s-material-darker .cm-operator,.editor-frame .cm-s-material-darker .cm-atom,
.editor-frame .cm-s-material-darker .cm-number,.editor-frame .cm-s-material-darker .cm-meta{color:#e1e7f0;font-weight:400}
.editor-frame .cm-s-material-darker .cm-string,.editor-frame .cm-s-material-darker .cm-string-2{color:#f3b779}
.editor-frame .cm-s-material-darker .cm-comment{color:#8baf93;font-style:italic}
.editor-frame .cm-s-material-darker .CodeMirror-activeline-background{background:#2739537d}
.editor-frame .cm-s-material-darker .CodeMirror-matchingbracket{outline:0;border-bottom:1px solid #90b2f2;color:#e1e7f0!important}
.editor-frame .CodeMirror-matchingbracket{font-weight:700}
.editor-frame .editor-toolbar{gap:12px}
@media(max-width:560px){.editor-frame .CodeMirror{font-size:12.5px;line-height:1.65}}

/* V4.5: shared catalog and own uploads. */
.admin-collection-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}
.admin-collection-tabs .btn{min-width:145px}

.problem-judge-limits{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.problem-judge-limits span{border:1px solid var(--border,rgba(127,127,127,.25));border-radius:10px;padding:7px 11px;font-size:13px}

/* DOJ V5 — AtCoder × Modern Minimal: quiet, information-first UI. */
:root{
  --bg:#f6f7f9;--surface:#ffffff;--surface2:#f9fafb;--ink:#1d2735;
  --mute:#657386;--border:#e3e7ed;--blue:#205caa;--blue-hover:#174a91;
  --blue-light:#edf3fa;--green:#137650;--red:#b33d47;
  --navy:#19283c;--shadow:none;--glow:transparent;--input:#ffffff;
  --code-bg:#f7f9fc;--code-border:#dce3ec;--ring:rgba(36,94,167,.14)
}
:root[data-theme="dark"]{
  --bg:#10151c;--surface:#1a222e;--surface2:#202b39;--ink:#e7ecf3;
  --mute:#a0aec0;--border:#303b49;--blue:#86b9f4;--blue-hover:#a5cdff;
  --blue-light:#20354b;--green:#84d6ab;--red:#f69aa0;--shadow:none;
  --input:#1b2836;--code-bg:#171f2a;--code-border:#354255;--ring:rgba(125,173,231,.2)
}
body{background:var(--bg);font-size:14px}
.sidebar{background:var(--navy);border-right:1px solid #334052;box-shadow:none}
:root[data-theme="dark"] .sidebar{background:#141e2b}
.brand{font-size:24px;font-weight:780;letter-spacing:-.9px}
.brandmark{width:38px;height:38px;border-radius:8px;background:#294969;border:1px solid #41617e;box-shadow:none;font-size:13px}
.brandname small{font-size:9px;letter-spacing:1px;margin-top:2px}
.accent{color:#c9d9ee}
.sidebar nav button{border-radius:7px;padding:11px 12px;font-weight:560;transition:background .12s}
.sidebar nav button.active{background:#eaf1fa18;border-color:#bcccdc30;color:#fff}
.sidebar nav button:hover{transform:none;background:#ffffff13}
.sidebar-spotlight{display:none}
.navlabel{margin-top:32px}
.topbar{min-height:66px}
.top-title strong{font-weight:700}
.top-title small{color:var(--mute)}
.header-chip{border-radius:5px;background:var(--surface2);color:var(--mute)}
.card{border-radius:9px;box-shadow:none;padding:22px;transition:none}
.card:hover{border-color:var(--border)}
.page-title h1{letter-spacing:-.45px;font-weight:750}
.page-title{margin-bottom:18px}
.eyebrow{font-weight:720;letter-spacing:.9px;font-size:10px}
.btn,.input,.theme-toggle{border-radius:6px}
.btn{font-weight:630;box-shadow:none;transition:background .12s,border-color .12s}
.btn.primary,.btn.primary:hover{background:var(--blue);border:1px solid var(--blue);color:#fff;box-shadow:none}
.btn.primary:hover{filter:brightness(.93)}
.pill{border-radius:5px;font-weight:650}
.data th{font-size:11px;text-transform:none;font-weight:720;letter-spacing:0;padding:12px}
.data td{padding:13px 12px}
.data tbody tr:hover{background:var(--surface2)}
.hero,.hero:before,.hero:after{background:none;box-shadow:none;transform:none}
.hero{min-height:220px;isolation:auto;border:1px solid #d9e2ef;border-radius:9px;background:var(--surface);color:var(--ink);padding:35px}
.hero:before,.hero:after{display:none}
.hero h1{letter-spacing:-.7px;font-size:clamp(24px,3.5vw,36px);font-weight:760}
.hero .lead{color:var(--mute)}
.hero .btn{color:#fff;border-color:var(--blue);background:var(--blue)}
.hero .btn:hover{background:var(--blue-hover);color:#fff}
.hero-tags span{color:var(--blue);background:var(--blue-light);border-color:var(--border);border-radius:5px}
.feature-icon,.method-icon{border-radius:7px;box-shadow:none}
.input-method,.manage-tab,.bulk-problem,.bulk-drop{border-radius:8px}
.problem-count,.file-type-badge{border-radius:6px}
.codeoutput{border-radius:8px}
.section-title-row h2{font-weight:730}
.editor-toolbar,.submit-panel .editor-toolbar{background:var(--surface2)}
.editor-frame{border-radius:8px;overflow:hidden}
.guide-pop{border-radius:8px;box-shadow:0 12px 32px #0001}
.notice{border-radius:7px}
@media(max-width:800px){.sidebar{background:var(--navy)}.sidebar nav button{border-radius:6px}}
@media(max-width:560px){.card{padding:16px;border-radius:7px}.hero{padding:25px 20px;min-height:0}.hero h1{font-size:26px}}

/* DOJ V6 – personalized accents, readability, contest status and IDE layout */
:root{--mute:#52637b;--blue:#2563eb;--blue-hover:#1d4ed8}
:root[data-theme="dark"]{--mute:#b3c4da}
.btn.primary{background:var(--blue);border-color:var(--blue);box-shadow:0 5px 14px rgba(0,0,0,.08)}
.btn.primary:hover{background:var(--blue-hover);border-color:var(--blue-hover)}
.sidebar nav button.active{background:color-mix(in srgb,var(--blue) 26%,transparent);border-color:color-mix(in srgb,var(--blue) 35%,transparent)}
.brandmark{background:var(--blue);border-color:var(--blue)}
.sidebar-spotlight{background:linear-gradient(135deg,var(--navy2),#162842)}
.doj-theme-panel{position:absolute;z-index:100;right:22px;top:68px;width:min(340px,calc(100vw - 30px));padding:18px;background:var(--surface);box-shadow:0 12px 40px #0003;border:1px solid var(--border);border-radius:16px;color:var(--ink)}
.topbar{position:relative}.doj-theme-panel h3{margin-bottom:13px}.doj-theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}
.doj-swatch{border:1px solid var(--border);background:var(--surface2);padding:9px 11px;border-radius:10px;text-align:left;color:var(--ink);font-size:12px;display:flex;align-items:center;gap:8px}
.doj-swatch span{width:18px;height:18px;flex-shrink:0;border-radius:50%}
.doj-swatch:hover{border-color:var(--blue)}
.doj-filter-grid{display:grid;grid-template-columns:minmax(180px,2fr) minmax(120px,1fr) minmax(95px,1fr) minmax(95px,1fr);gap:10px;margin-bottom:20px}
.doj-pager{margin-top:18px}.doj-problem-layout.is-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;gap:14px}
.doj-problem-layout.is-split>.card{min-width:0}.doj-problem-layout.is-split .doj-statement{position:sticky;top:10px;max-height:calc(100vh - 35px);overflow:auto}
.doj-problem-layout.is-split .CodeMirror{height:550px!important}
.doj-note{margin-top:22px;border-top:1px solid var(--border);padding-top:14px}.doj-note .btn{margin-top:8px}
.doj-focus .sidebar,.doj-focus .topbar,.doj-focus .footer{display:none}.doj-focus .layout{display:block}.doj-focus .container{max-width:1700px}
.doj-solved .text-link{color:var(--mute);font-weight:600}.doj-solved td:first-child{color:var(--green)}
.diff-old{color:#ffb0b0;background:#71353560;white-space:pre-wrap}.diff-new{color:#a5f2bd;background:#17633960;white-space:pre-wrap}
.doj-bulk-detail{margin:12px 0;padding:15px;border:1px solid var(--border);background:var(--surface);border-radius:11px;max-height:360px;overflow:auto;font-size:13px}
.doj-bars{height:130px;display:flex;gap:3px;align-items:flex-end;padding:10px;border-bottom:1px solid var(--border)}.doj-bars div{width:12px;min-width:4px;background:var(--blue);border-radius:4px 4px 0 0}
.doj-ann{padding:12px;border-bottom:1px solid var(--border)}.doj-ann p{margin:8px 0;color:var(--mute)}
@media(max-width:940px){.doj-problem-layout.is-split{display:block}.doj-problem-layout.is-split .doj-statement{position:static;max-height:none}.doj-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.doj-filter-grid{grid-template-columns:1fr}.doj-theme-panel{right:5px}}

.doj-modal{position:fixed;z-index:120;inset:0;background:#070c1baa;display:grid;place-items:center;padding:18px}.doj-modal-card{width:min(620px,100%);max-height:93vh;overflow:auto;box-shadow:0 14px 45px #0004}

/* DOJ V6.2 – FULL-SITE user themes with stronger contrast and calmer palettes. */
:root[data-theme="light"][data-accent="blue"]{--bg:#eef4ff;--surface:#ffffff;--surface2:#edf3ff;--ink:#132842;--mute:#445970;--border:#c6d8ee;--blue:#1f5bbf;--blue-hover:#174999;--blue-light:#dce9ff;--navy:#123666;--navy2:#1b4f8c;--input:#ffffff;--code-bg:#f6faff;--code-border:#c7d8ee;--sidebar-ink:#f4f8ff;--sidebar-muted:#d4e2f3;--on-accent:#ffffff;--ring:color-mix(in srgb,#1f5bbf 26%,transparent);--shadow:0 10px 28px color-mix(in srgb,#123666 9%,transparent)}
:root[data-theme="light"][data-accent="classic"]{--bg:#f3f5f8;--surface:#ffffff;--surface2:#eef2f7;--ink:#1f2937;--mute:#4b596d;--border:#d4dce8;--blue:#1d4f91;--blue-hover:#143d72;--blue-light:#e3ecfa;--navy:#1e2d46;--navy2:#2c4163;--input:#ffffff;--code-bg:#f8fafc;--code-border:#d1dae6;--sidebar-ink:#f5f8fd;--sidebar-muted:#d0d9e7;--on-accent:#ffffff;--ring:color-mix(in srgb,#1d4f91 26%,transparent);--shadow:0 10px 28px color-mix(in srgb,#1e2d46 9%,transparent)}
:root[data-theme="light"][data-accent="emerald"]{--bg:#edf8f2;--surface:#ffffff;--surface2:#e9f5ee;--ink:#17372c;--mute:#476356;--border:#c7dfd1;--blue:#0d7658;--blue-hover:#0a6147;--blue-light:#d6efe3;--navy:#134533;--navy2:#1d694e;--input:#ffffff;--code-bg:#f5fbf7;--code-border:#c5decf;--sidebar-ink:#f3fff8;--sidebar-muted:#d3eee1;--on-accent:#ffffff;--ring:color-mix(in srgb,#0d7658 26%,transparent);--shadow:0 10px 28px color-mix(in srgb,#134533 9%,transparent)}
:root[data-theme="light"][data-accent="violet"]{--bg:#f6f1fd;--surface:#ffffff;--surface2:#efe8fb;--ink:#312648;--mute:#584a6b;--border:#dacff0;--blue:#6b3db0;--blue-hover:#542f8c;--blue-light:#e8ddfb;--navy:#3a275a;--navy2:#553b7d;--input:#ffffff;--code-bg:#faf8ff;--code-border:#d7caeb;--sidebar-ink:#faf5ff;--sidebar-muted:#ded0f0;--on-accent:#ffffff;--ring:color-mix(in srgb,#6b3db0 26%,transparent);--shadow:0 10px 28px color-mix(in srgb,#3a275a 9%,transparent)}
:root[data-theme="light"][data-accent="pink"]{--bg:#fef1f6;--surface:#fffbfd;--surface2:#fce6ee;--ink:#432537;--mute:#705061;--border:#ebcad8;--blue:#b42569;--blue-hover:#8f174f;--blue-light:#ffd8e7;--navy:#612540;--navy2:#843657;--input:#ffffff;--code-bg:#fff6fa;--code-border:#e7cbda;--sidebar-ink:#fff4f8;--sidebar-muted:#f0d1df;--on-accent:#ffffff;--ring:color-mix(in srgb,#b42569 26%,transparent);--shadow:0 10px 28px color-mix(in srgb,#612540 9%,transparent)}
:root[data-theme="light"][data-accent="orange"]{--bg:#fff5ec;--surface:#fffdfa;--surface2:#ffecd9;--ink:#4a3221;--mute:#745845;--border:#ebd2bc;--blue:#aa4d14;--blue-hover:#873d11;--blue-light:#ffdcbf;--navy:#61361a;--navy2:#844b24;--input:#ffffff;--code-bg:#fff9f3;--code-border:#ead0b9;--sidebar-ink:#fff8f1;--sidebar-muted:#efd9c4;--on-accent:#ffffff;--ring:color-mix(in srgb,#aa4d14 26%,transparent);--shadow:0 10px 28px color-mix(in srgb,#61361a 9%,transparent)}
:root[data-theme="light"][data-accent="midnight"]{--bg:#f1f5fa;--surface:#ffffff;--surface2:#eaf0f7;--ink:#1d3046;--mute:#4c6178;--border:#cedae8;--blue:#2758a5;--blue-hover:#1d4681;--blue-light:#dee8f7;--navy:#18283f;--navy2:#2b4567;--input:#ffffff;--code-bg:#f7faff;--code-border:#d0dce8;--sidebar-ink:#f4f8fd;--sidebar-muted:#d3deeb;--on-accent:#ffffff;--ring:color-mix(in srgb,#2758a5 26%,transparent);--shadow:0 10px 28px color-mix(in srgb,#18283f 9%,transparent)}
:root[data-theme="dark"][data-accent="blue"]{--bg:#0d1726;--surface:#16263a;--surface2:#20344d;--ink:#eff5ff;--mute:#c2d0e2;--border:#3a516c;--blue:#8ebcf2;--blue-hover:#bcd8ff;--blue-light:#27405e;--navy:#0f1c30;--navy2:#18304f;--input:#18293f;--code-bg:#122133;--code-border:#405a77;--sidebar-ink:#edf5ff;--sidebar-muted:#cedbee;--on-accent:#0d1726;--ring:color-mix(in srgb,#8ebcf2 28%,transparent);--shadow:0 10px 28px color-mix(in srgb,#0f1c30 12%,transparent)}
:root[data-theme="dark"][data-accent="classic"]{--bg:#141922;--surface:#1f2937;--surface2:#293445;--ink:#f2f5fb;--mute:#c3cddb;--border:#465367;--blue:#a6c0f2;--blue-hover:#cddfff;--blue-light:#31455d;--navy:#151c2a;--navy2:#26354b;--input:#222d3c;--code-bg:#1a2432;--code-border:#4b5d73;--sidebar-ink:#f4f7fd;--sidebar-muted:#d0d8e6;--on-accent:#10161f;--ring:color-mix(in srgb,#a6c0f2 28%,transparent);--shadow:0 10px 28px color-mix(in srgb,#151c2a 12%,transparent)}
:root[data-theme="dark"][data-accent="emerald"]{--bg:#0f1d17;--surface:#182f24;--surface2:#234338;--ink:#eefcf4;--mute:#c0d8ca;--border:#3d5e4f;--blue:#83d7aa;--blue-hover:#b2efcb;--blue-light:#2b4f3e;--navy:#10271d;--navy2:#1b4130;--input:#1c3429;--code-bg:#14281f;--code-border:#446654;--sidebar-ink:#eefdf5;--sidebar-muted:#cfe9db;--on-accent:#0f1813;--ring:color-mix(in srgb,#83d7aa 28%,transparent);--shadow:0 10px 28px color-mix(in srgb,#10271d 12%,transparent)}
:root[data-theme="dark"][data-accent="violet"]{--bg:#181220;--surface:#271d37;--surface2:#342848;--ink:#faf4ff;--mute:#d6c6e3;--border:#57406e;--blue:#ccb0f8;--blue-hover:#e2d2ff;--blue-light:#4a3660;--navy:#1e152f;--navy2:#312146;--input:#2a203c;--code-bg:#231931;--code-border:#604a76;--sidebar-ink:#faf4ff;--sidebar-muted:#e4d5f2;--on-accent:#140f1d;--ring:color-mix(in srgb,#ccb0f8 28%,transparent);--shadow:0 10px 28px color-mix(in srgb,#1e152f 12%,transparent)}
:root[data-theme="dark"][data-accent="pink"]{--bg:#21131b;--surface:#301c29;--surface2:#412535;--ink:#fff3f8;--mute:#e2c7d2;--border:#6b4455;--blue:#f5a5c8;--blue-hover:#ffd0e1;--blue-light:#593047;--navy:#291723;--navy2:#432436;--input:#35202d;--code-bg:#291923;--code-border:#765162;--sidebar-ink:#fff4f9;--sidebar-muted:#f2d7e1;--on-accent:#180f14;--ring:color-mix(in srgb,#f5a5c8 28%,transparent);--shadow:0 10px 28px color-mix(in srgb,#291723 12%,transparent)}
:root[data-theme="dark"][data-accent="orange"]{--bg:#22180f;--surface:#322418;--surface2:#453223;--ink:#fff7ef;--mute:#e5cfb8;--border:#69503a;--blue:#f4be88;--blue-hover:#fedebd;--blue-light:#58402a;--navy:#291c12;--navy2:#432a1b;--input:#36281c;--code-bg:#2a1d13;--code-border:#775540;--sidebar-ink:#fff8f1;--sidebar-muted:#f3dcc4;--on-accent:#1a120b;--ring:color-mix(in srgb,#f4be88 28%,transparent);--shadow:0 10px 28px color-mix(in srgb,#291c12 12%,transparent)}
:root[data-theme="dark"][data-accent="midnight"]{--bg:#0b1119;--surface:#132030;--surface2:#1d2d42;--ink:#f2f7fd;--mute:#c1ccd9;--border:#33485e;--blue:#93bff4;--blue-hover:#c6ddff;--blue-light:#233a54;--navy:#080f19;--navy2:#152538;--input:#162435;--code-bg:#101a27;--code-border:#3a526a;--sidebar-ink:#f1f7ff;--sidebar-muted:#cedbea;--on-accent:#0b121a;--ring:color-mix(in srgb,#93bff4 28%,transparent);--shadow:0 10px 28px color-mix(in srgb,#080f19 12%,transparent)}

/* Structural theme surfaces and readable navigation, not merely colored buttons. */
:root[data-theme] body{background:var(--bg);color:var(--ink)}
:root[data-theme] .sidebar{background:linear-gradient(155deg,var(--navy),var(--navy2));border-color:color-mix(in srgb,var(--sidebar-ink) 16%,transparent);color:var(--sidebar-ink)}
:root[data-theme] .sidebar .brand,:root[data-theme] .sidebar .brandname,:root[data-theme] .sidebar .sidebar-foot{color:var(--sidebar-ink)}
:root[data-theme] .sidebar .navlabel,:root[data-theme] .sidebar .sidebar-foot small,:root[data-theme] .sidebar .brandname small{color:var(--sidebar-muted)}
:root[data-theme] .sidebar nav button{color:var(--sidebar-ink)}
:root[data-theme] .sidebar nav button:hover{color:#fff;background:color-mix(in srgb,var(--sidebar-ink) 11%,transparent)}
:root[data-theme] .sidebar nav button.active{color:#fff;background:color-mix(in srgb,var(--sidebar-ink) 18%,transparent);border-color:color-mix(in srgb,var(--sidebar-ink) 27%,transparent)}
:root[data-theme] .brandmark{color:var(--on-accent);background:var(--blue);border-color:var(--blue)}
:root[data-theme] .topbar,:root[data-theme] .footer{background:var(--surface);border-color:var(--border);color:var(--ink)}
:root[data-theme] .card,:root[data-theme] .hero,:root[data-theme] .doj-modal-card{background:linear-gradient(145deg,var(--surface) 30%,color-mix(in srgb,var(--surface2) 76%,var(--surface)));color:var(--ink);border-color:var(--border);box-shadow:var(--shadow)}
:root[data-theme] .hero .eyebrow{color:var(--blue)}
:root[data-theme] .hero-tags span{background:var(--blue-light);border-color:var(--border);color:var(--blue)}
:root[data-theme] .btn.primary,:root[data-theme] .hero .btn{background:var(--blue);color:var(--on-accent);border-color:var(--blue)}
:root[data-theme] .btn.primary:hover,:root[data-theme] .hero .btn:hover{background:var(--blue-hover);border-color:var(--blue-hover);color:var(--on-accent)}
:root[data-theme] .btn:not(.primary):not(.danger),:root[data-theme] .theme-toggle{background:var(--surface);color:var(--ink);border-color:var(--border);box-shadow:0 1px 0 color-mix(in srgb,var(--surface2) 75%,transparent)}
:root[data-theme] .btn:not(.primary):not(.danger):hover{background:var(--surface2)}
:root[data-theme] .data th,:root[data-theme] .editor-toolbar,:root[data-theme] .submit-panel .editor-toolbar{background:var(--surface2);color:var(--ink);border-color:var(--border)}
:root[data-theme] .data td,:root[data-theme] .data th{border-color:var(--border)}
:root[data-theme] .data tbody tr:nth-child(even){background:color-mix(in srgb,var(--surface2) 54%,var(--surface))}
:root[data-theme] .data tbody tr:hover{background:color-mix(in srgb,var(--blue-light) 50%,var(--surface2))}
:root[data-theme] .input,:root[data-theme] select,:root[data-theme] textarea{background:var(--input);color:var(--ink);border-color:var(--border);box-shadow:inset 0 1px 0 color-mix(in srgb,#ffffff 28%,transparent)}
:root[data-theme] .input:focus-visible{outline-color:var(--blue)}
:root[data-theme] .codeoutput{background:var(--code-bg);color:var(--ink);border:1px solid var(--code-border)}
:root[data-theme] .editor-frame{border-color:var(--code-border)}
:root[data-theme] .CodeMirror,:root[data-theme] .CodeMirror-gutters{background:var(--code-bg);border-color:var(--code-border)}
:root[data-theme] .table-scroll,:root[data-theme] .editor-frame,:root[data-theme] .doj-theme-panel,:root[data-theme] .account-dropdown{box-shadow:var(--shadow)}
:root[data-theme] .CodeMirror{color:var(--ink)}
:root[data-theme] .CodeMirror-guttermarker,:root[data-theme] .CodeMirror-linenumber{color:var(--mute)}
:root[data-theme] .CodeMirror-activeline-background{background:color-mix(in srgb,var(--blue) 8%,transparent)}
:root[data-theme] .doj-swatch[aria-pressed="true"]{border-color:var(--blue);background:var(--blue-light);box-shadow:0 0 0 1px var(--blue)}
:root[data-theme] ::selection{background:var(--blue-light);color:var(--ink)}


/* DOJ V6 accessibility pass: tokens are tuned for readable light/dark controls. */
:root[data-theme="light"][data-accent]{--placeholder:#5c6d80}
:root[data-theme="dark"][data-accent]{--placeholder:#cbd4e0}

:root[data-theme="dark"][data-accent="emerald"]{--placeholder:#d0dfd6}
:root[data-theme="dark"][data-accent="violet"]{--placeholder:#e0d4ea}
:root[data-theme="dark"][data-accent="pink"]{--placeholder:#edd6df}
:root[data-theme="dark"][data-accent="orange"]{--placeholder:#eddcc9}
:root[data-theme] input::placeholder,:root[data-theme] textarea::placeholder,:root[data-theme] .input::placeholder{color:var(--placeholder);opacity:1}
:root[data-theme] input::-webkit-input-placeholder,:root[data-theme] textarea::-webkit-input-placeholder{color:var(--placeholder);opacity:1}
:root[data-theme] .sidebar nav button:hover,:root[data-theme] .sidebar nav button.active{color:var(--sidebar-ink)}
:root[data-theme] .sidebar .sidebar-spotlight small{color:var(--sidebar-muted)}
:root[data-theme] .data td{color:var(--ink)}
:root[data-theme] .data .muted,:root[data-theme] .data td small{color:var(--mute)}
:root[data-theme] .CodeMirror-cursor{border-left-color:var(--ink)}
:root[data-theme] .CodeMirror-selected{background:color-mix(in srgb,var(--blue) 24%,transparent)}
:root[data-theme] .CodeMirror-focused .CodeMirror-selected{background:color-mix(in srgb,var(--blue) 30%,transparent)}
:root[data-theme] .CodeMirror-matchingbracket{color:var(--ink)!important;background:color-mix(in srgb,var(--blue-light) 82%,var(--surface));text-decoration:underline}
:root[data-theme] .diff-old{color:#7e1e2b;background:#ffeaed}
:root[data-theme] .diff-new{color:#095d35;background:#e0f9e9}
:root[data-theme="dark"] .diff-old{color:#ffc1c9;background:#522331}
:root[data-theme="dark"] .diff-new{color:#a3f5c3;background:#163d2e}
:root[data-theme] .pill.ac{color:#0d6545;background:#dcf4e7}
:root[data-theme] .pill.fail{color:#9c2438;background:#ffebef}
:root[data-theme="dark"] .pill.ac{color:#acf3cc;background:#174534}
:root[data-theme="dark"] .pill.fail{color:#ffc0cb;background:#582b39}
:root[data-theme] .data th{color:color-mix(in srgb,var(--ink) 72%,var(--mute));}
:root[data-theme] .hint,:root[data-theme] .notice{background:color-mix(in srgb,var(--blue-light) 72%,var(--surface));border-color:color-mix(in srgb,var(--blue) 18%,var(--border));}
:root[data-theme] .notice.warn{background:color-mix(in srgb,#f7d791 24%,var(--surface));border-color:color-mix(in srgb,#f7d791 42%,var(--border));color:color-mix(in srgb,#7a5b15 75%,var(--ink));}
:root[data-theme="dark"] .notice.warn{background:color-mix(in srgb,#f7d791 18%,var(--surface));border-color:color-mix(in srgb,#f7d791 30%,var(--border));color:#f6deb0}
:root[data-theme] .account-summary,:root[data-theme] .account-dropdown,:root[data-theme] .doj-theme-panel{background:var(--surface);color:var(--ink);border-color:var(--border)}
:root[data-theme] .top-title small,:root[data-theme] .user-role,:root[data-theme] .editor-tips,:root[data-theme] .account-summary-text small{color:var(--mute)}
:root[data-theme] .sidebar nav button{font-weight:620}
:root[data-theme] .sidebar .accent{color:color-mix(in srgb,var(--sidebar-ink) 82%,#ffffff)}
:root[data-theme] .problem-title-link,:root[data-theme] .text-link,:root[data-theme] a{color:var(--blue)}
:root[data-theme] .problem-title-link:hover,:root[data-theme] .text-link:hover,:root[data-theme] a:hover{color:var(--blue-hover)}


/* DOJ 6.1.1 UI revision — consistent problem statements and bulk previews. */
.doj-problem-header{position:relative;text-align:center;padding:15px 8px 19px;margin-bottom:12px;border-bottom:1px solid var(--border)}
.doj-problem-header .doj-problem-back{position:absolute;left:0;top:8px}
.doj-problem-header h1{font-size:clamp(22px,2.4vw,30px);letter-spacing:-.5px;margin:4px auto 12px;max-width:850px;overflow-wrap:anywhere;line-height:1.3}
.doj-problem-header .eyebrow{margin:0 0 6px}
.doj-problem-header p{margin:10px auto 0;max-width:850px;line-height:1.55}
.doj-problem-header .problem-judge-limits{justify-content:center;gap:9px;margin:0 auto}
.doj-problem-header .problem-judge-limits span{background:var(--surface);color:var(--ink);border-color:var(--border);font-size:12px;font-weight:500}
.doj-statement-actions{margin-bottom:8px}
.doj-statement-actions .eyebrow{margin:0}
.doj-statement-content,.doj-bulk-detail{min-width:0}
.doj-markdown{white-space:normal;color:var(--ink);font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.doj-markdown h2,.doj-markdown h3{color:var(--ink);line-height:1.4;font-weight:750;letter-spacing:0;margin:19px 0 8px}
.doj-markdown h2{font-size:17px}
.doj-markdown h3{font-size:15px;padding-bottom:5px;border-bottom:1px solid var(--border)}
.doj-markdown h2:first-child,.doj-markdown h3:first-child{margin-top:4px}
.doj-markdown p{margin:0 0 10px;line-height:1.7}
.doj-markdown ul,.doj-markdown ol{margin:5px 0 12px;padding-left:22px}
.doj-markdown li{margin:3px 0}
.doj-markdown code:not(pre code){background:var(--surface2);color:var(--ink);border:1px solid var(--border);padding:1px 5px;border-radius:5px;font-family:Consolas,Monaco,monospace;font-size:.92em}
.doj-markdown pre,.doj-io-cell pre{background:var(--code-bg);color:var(--ink);border:1px solid var(--code-border);border-radius:8px;padding:12px 14px;font:13px/1.58 Consolas,Monaco,monospace;white-space:pre;overflow:auto;margin:8px 0 12px;tab-size:4;max-height:350px}
.doj-markdown pre code,.doj-io-cell pre code{font:inherit;color:inherit;background:transparent;border:0;padding:0}
.doj-io-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:10px 0 17px}
.doj-io-cell{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}
.doj-io-label{font-size:12px;font-weight:800;color:var(--ink);background:var(--surface2);padding:8px 12px;border-bottom:1px solid var(--border)}
.doj-io-cell pre{margin:0;border:0;border-radius:0;background:var(--code-bg);min-height:56px;max-height:400px}
.doj-md-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px;margin:8px 0 14px}
.doj-md-table{border-collapse:collapse;width:100%;font-size:13px}
.doj-md-table th{background:var(--surface2);font-weight:750;text-align:left}
.doj-md-table td,.doj-md-table th{border-bottom:1px solid var(--border);padding:9px 12px;vertical-align:top}
.doj-md-table tr:last-child td{border-bottom:0}
.doj-bulk-detail{white-space:normal;line-height:normal}
.doj-bulk-detail .doj-markdown{font-size:13px}
.doj-bulk-detail .doj-markdown h3{font-size:14px}
@media(max-width:800px){.doj-problem-header .doj-problem-back{position:static;text-align:left;margin-bottom:14px}}
@media(max-width:600px){.doj-io-grid{grid-template-columns:1fr;gap:9px}.doj-problem-header{padding:10px 0 15px}.doj-problem-header .problem-judge-limits{gap:6px}.doj-problem-header .problem-judge-limits span{padding:6px 8px;font-size:11px}}
.doj-preview-toggle{margin:12px 0;border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:11px 13px}
.doj-preview-toggle>summary{color:var(--blue);font-size:13px;font-weight:750;cursor:pointer}
.doj-live-preview{margin-top:12px;padding:14px 15px;border:1px solid var(--border);border-radius:9px;background:var(--surface2);max-height:480px;overflow:auto}
.doj-live-preview .doj-markdown h3{border-color:var(--border)}

/* Account password visibility: accessible and unobtrusive in all themes. */
.password-wrap{position:relative;display:flex;align-items:center;width:100%}
.password-wrap .input{width:100%;padding-right:78px}
.password-toggle{position:absolute;right:9px;top:50%;transform:translateY(-50%);border:1px solid var(--border);border-radius:7px;background:var(--surface, #fff);color:var(--ink);font:inherit;font-size:.85rem;cursor:pointer;padding:5px 11px;min-height:31px}
.password-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
