/* CTOJ UI v1 — scoped additions; retains existing themes/editor/verdict colors. */
html.ctoj-ui{--cu-surface:#fff;--cu-ink:#172b44;--cu-border:#d9e5f0;--cu-soft:#edf5fc;--cu-accent:#1765a8;--cu-top:64px;--cu-size:17px}
html.ctoj-ui[data-cu-dark="true"]{--cu-surface:#192738;--cu-ink:#e8f0fa;--cu-border:#405268;--cu-soft:#22374c;--cu-accent:#8ecbff}
.ctoj-ui .ivu-card{border-radius:14px;box-shadow:0 3px 16px #132b4510;overflow:visible}
.ctoj-ui .ivu-card-head{padding:17px 22px}
.ctoj-ui .ivu-card-body{padding:22px}
.ctoj-ui .ivu-input:not(textarea){min-height:38px;border-radius:8px}
.ctoj-ui .ivu-btn{min-height:36px;border-radius:8px}
.ctoj-ui .ivu-btn:disabled{cursor:not-allowed}
.ctoj-ui :is(a,button,input,select,[tabindex]):focus-visible{outline:3px solid #2589df;outline-offset:3px}
.ctoj-ui .ivu-table-wrapper{border-radius:10px}
.ctoj-ui .ivu-table-cell{padding-top:11px;padding-bottom:11px;line-height:1.5}
.ctoj-ui .ivu-table a[href*="/problem/"]{font-weight:600;text-underline-offset:3px}
.ctoj-ui .ivu-table a[href*="/problem/"]:hover{text-decoration:underline}
.ctoj-ui .ivu-page-item,.ctoj-ui .ivu-page-next,.ctoj-ui .ivu-page-prev{min-width:36px;min-height:36px;line-height:34px;border-radius:8px}
.ctoj-ui #problem-content{font-size:var(--cu-size);line-height:1.85;overflow-wrap:break-word}
.ctoj-ui #problem-content h3{font-size:1.18em;margin:1.5em 0 .7em;scroll-margin-top:145px}
.ctoj-ui #problem-content p{margin-bottom:1em}
.ctoj-ui #problem-content pre{overflow:auto;max-width:100%;padding:16px;border-radius:9px;line-height:1.65}
.ctoj-ui #problem-content img{max-width:100%;height:auto}
.ctoj-ui #problem-content table{display:block;max-width:100%;overflow-x:auto}
.ctoj-ui #submit-code{scroll-margin-top:145px}
.ctoj-ui.cu-compact .ivu-table-cell{padding-top:5px;padding-bottom:5px}
.ctoj-ui.cu-compact .ivu-card-body{padding:14px}
.cu-toolbar{position:sticky;top:var(--cu-top);z-index:900;display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px auto;padding:10px 14px;width:calc(100% - 32px);max-width:1480px;box-sizing:border-box;background:var(--cu-surface);color:var(--cu-ink);border:1px solid var(--cu-border);border-radius:12px;box-shadow:0 4px 16px #142d4812;font:14px/1.45 system-ui,sans-serif}
.cu-toolbar .cu-brand{font-weight:750;margin-right:auto;letter-spacing:.02em}
.cu-toolbar button,.cu-toolbar a,.cu-dialog button,.cu-dialog a.cu-action{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:6px 11px;border:1px solid var(--cu-border);border-radius:8px;background:var(--cu-soft);color:var(--cu-ink);font:inherit;text-decoration:none;cursor:pointer;box-sizing:border-box}
.cu-toolbar button:hover,.cu-toolbar a:hover{border-color:var(--cu-accent);color:var(--cu-accent)}
.cu-toolbar [hidden]{display:none!important}
.cu-toolbar .cu-primary{background:var(--cu-accent);color:var(--cu-surface)}
.cu-toolbar button[aria-pressed="true"]{box-shadow:inset 0 0 0 2px var(--cu-accent)}
.cu-dialog{background:var(--cu-surface);color:var(--cu-ink);border:1px solid var(--cu-border);border-radius:16px;width:min(560px,calc(100vw - 36px));max-height:80vh;padding:24px;box-shadow:0 16px 70px #0004;font:15px/1.6 system-ui,sans-serif}
.cu-dialog::backdrop{background:#10203088}
.cu-dialog h2{font-size:21px;margin:0 0 12px}.cu-dialog ul{list-style:none;padding:0}.cu-dialog li{padding:10px 0;border-bottom:1px solid var(--cu-border)}.cu-dialog li a{color:var(--cu-accent)}.cu-dialog p{margin:10px 0}.cu-dialog .cu-close{float:right;margin-left:12px}
.cu-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:10010;max-width:90vw;padding:12px 18px;border-radius:10px;background:var(--cu-surface);color:var(--cu-ink);border:1px solid var(--cu-border);box-shadow:0 6px 25px #0003;font:14px/1.5 system-ui,sans-serif;pointer-events:none}
@media(max-width:760px){.cu-toolbar{width:calc(100% - 16px);gap:6px;padding:8px}.cu-toolbar .cu-brand{width:100%;font-size:13px}.cu-toolbar button,.cu-toolbar a{min-height:40px;font-size:13px;padding:6px 9px}.ctoj-ui .ivu-card-body{padding:14px}.ctoj-ui .ivu-card-head{padding:14px}.ctoj-ui .ivu-table-body,.ctoj-ui .ivu-table-header{overflow-x:auto}.ctoj-ui #problem-content{font-size:max(16px,var(--cu-size))}}
@media(prefers-reduced-motion:no-preference){.cu-toolbar button{transition:border-color .15s,color .15s}}
@media print{.cu-toolbar,.cu-dialog,.cu-toast{display:none!important}.ctoj-ui .ivu-card{box-shadow:none}}

/* v1.1: compact, task-based navigation */
.ctoj-ui #header{height:60px!important;z-index:1100!important}
.ctoj-ui #header > ul.ivu-menu{display:flex!important;align-items:center;flex-wrap:nowrap;gap:4px;height:60px!important;padding:0 22px!important;box-sizing:border-box;border-bottom:1px solid var(--cu-border)}
.ctoj-ui #header > ul.ivu-menu::before,.ctoj-ui #header > ul.ivu-menu::after{display:none!important}
.ctoj-ui #header > ul > .logo{float:none!important;display:flex!important;align-items:center;flex:0 0 auto;height:60px!important;margin:0 18px 0 0!important;max-width:160px}
.ctoj-ui #header .logo > a{display:inline-flex!important;align-items:center;height:44px!important;line-height:1!important}
.ctoj-ui #header .logo img{height:40px!important;width:auto!important;max-width:150px!important;object-fit:contain}
.ctoj-ui #header > ul > .ivu-menu-item,.ctoj-ui #header > ul > .ivu-menu-submenu{float:none!important;flex:0 0 auto;height:44px!important;line-height:44px!important;padding:0 15px!important;font:500 15px/44px system-ui,sans-serif!important;border-radius:9px;border-bottom:0!important}
.ctoj-ui #header .ivu-menu-submenu-title{font:inherit!important;line-height:44px!important}
.ctoj-ui #header > ul > .ivu-menu-item-active{background:var(--cu-soft)!important;color:var(--cu-accent)!important;box-shadow:inset 0 -2px 0 var(--cu-accent)}
.ctoj-ui #header > ul > .ivu-menu-item:hover{background:var(--cu-soft)}
.ctoj-ui #header > ul > .btn-menu{float:none!important;flex:0 0 auto;margin-left:auto!important;margin-right:0!important;line-height:44px!important;white-space:nowrap}
.ctoj-ui #header .ivu-select-dropdown{border-radius:10px;box-shadow:0 8px 24px #172c4525;z-index:1150}
.ctoj-ui #header .ivu-menu-drop-list > .ivu-menu-item{min-height:40px;line-height:40px;padding:0 16px;font:14px/40px system-ui,sans-serif}
.ctoj-ui #header .ivu-menu-submenu[data-cu-expanded="true"] > .ivu-select-dropdown{display:block!important}
.ctoj-ui #header .ivu-menu-submenu[data-cu-expanded="false"] > .ivu-select-dropdown{display:none!important}
.cu-nav-toggle{display:none}
.ctoj-ui .content-app{margin-top:12px!important}
.ctoj-ui .cu-toolbar{position:relative!important;top:auto!important;z-index:950;min-height:48px;max-width:none;width:calc(100% - 44px);margin:72px 22px 14px;padding:6px 12px;box-shadow:none;gap:6px;border-radius:10px}
.ctoj-ui .cu-toolbar .cu-brand{width:auto!important;font-size:13px;color:var(--cu-ink)}
.ctoj-ui .cu-toolbar > button{min-height:34px;padding:5px 10px;font-size:13px;white-space:nowrap}
.ctoj-ui .cu-toolbar .cu-primary{font-weight:600}
.cu-tools-panel{position:absolute;right:0;top:calc(100% + 7px);display:grid;grid-template-columns:1fr 1fr;gap:8px;width:min(340px,calc(100vw - 24px));padding:16px;background:var(--cu-surface);border:1px solid var(--cu-border);border-radius:12px;box-shadow:0 12px 32px #142d4825;box-sizing:border-box}
.cu-tools-panel p,.cu-tools-panel small{grid-column:1/-1;margin:0;padding:2px 0;font-size:13px}
.cu-tools-panel p{font-weight:700}.cu-tools-panel small{font-size:12px;line-height:1.55}
.cu-tools-panel button{justify-content:flex-start!important;min-height:40px!important;font-size:13px!important}
@media(max-width:1200px) and (min-width:1121px){.ctoj-ui #header > ul.ivu-menu{padding:0 14px!important}.ctoj-ui #header > ul > .ivu-menu-item,.ctoj-ui #header > ul > .ivu-menu-submenu{padding:0 10px!important;font-size:14px!important}.ctoj-ui #header > ul > .logo{margin-right:8px!important;max-width:125px}.ctoj-ui #header .logo img{max-width:125px!important}}
@media(max-width:1120px){
 .ctoj-ui #header{height:56px!important}
 .ctoj-ui #header > ul.ivu-menu{height:56px!important;min-height:56px;display:flex!important;flex-wrap:wrap;padding:0 12px 0 98px!important;gap:0;align-items:center;overflow:visible}
 .ctoj-ui #header > ul > .logo{height:56px!important;margin:0!important;max-width:125px;flex:1 1 auto}
 .ctoj-ui #header .logo img{height:34px!important;max-width:116px!important}
 .ctoj-ui #header > ul > .btn-menu{max-width:calc(100% - 120px);font-size:13px;line-height:44px!important;display:flex;align-items:center;gap:4px}
 .ctoj-ui #header .btn-menu .ivu-btn{padding:0 8px!important;font-size:12px!important;min-height:34px}
 .ctoj-ui #header > ul > .ivu-menu-item,.ctoj-ui #header > ul > .ivu-menu-submenu{display:none!important}
 .cu-nav-toggle{display:block!important;position:absolute;z-index:2;left:10px;top:9px;height:38px;padding:0 10px;border:1px solid var(--cu-border);border-radius:8px;background:var(--cu-surface);color:var(--cu-ink);font:600 13px system-ui,sans-serif;cursor:pointer}
 .ctoj-ui.cu-nav-open #header > ul.ivu-menu{height:auto!important;max-height:calc(100dvh - 12px);overflow-y:auto;padding-bottom:10px!important;box-shadow:0 12px 24px #10203025;align-content:start}
 .ctoj-ui.cu-nav-open #header > ul > .logo{order:0}
 .ctoj-ui.cu-nav-open #header > ul > .btn-menu{order:1}
 .ctoj-ui.cu-nav-open #header > ul > .ivu-menu-item,.ctoj-ui.cu-nav-open #header > ul > .ivu-menu-submenu{display:block!important;order:2;flex:0 0 100%;width:100%;min-height:44px!important;height:auto!important;margin:2px 0!important;padding:0 12px!important}
 .ctoj-ui #header .ivu-menu-submenu > .ivu-select-dropdown{position:static!important;transform:none!important;float:none!important;min-width:0;width:100%;box-shadow:none;margin:0 0 8px;padding:0;border-left:2px solid var(--cu-border)}
 .ctoj-ui #header .ivu-menu-submenu:not([data-cu-expanded="true"]) > .ivu-select-dropdown{display:none!important}
 .ctoj-ui #header .ivu-menu-submenu-title{display:block;min-height:44px}
 .ctoj-ui .cu-toolbar{margin:66px 12px 10px;width:calc(100% - 24px);padding:6px 8px;flex-wrap:wrap}
 .ctoj-ui .cu-toolbar .cu-brand{flex:1 1 auto}
 .ctoj-ui .content-app{margin-top:10px!important;padding-left:12px!important;padding-right:12px!important}
}
@media(max-width:480px){
 .ctoj-ui #header > ul.ivu-menu{padding-left:86px!important;padding-right:8px!important}
 .cu-nav-toggle{left:8px;padding:0 8px;font-size:12px}
 .ctoj-ui #header > ul > .logo{max-width:92px}.ctoj-ui #header .logo img{height:31px!important;max-width:90px!important}
 .ctoj-ui #header > ul > .btn-menu{max-width:calc(100% - 92px)}
 .ctoj-ui .cu-toolbar > button{min-height:36px;padding:5px 8px;font-size:12px}
 .ctoj-ui .cu-toolbar .cu-brand{font-size:12px}
 .ctoj-ui .cu-toolbar > .cu-primary{order:1}.ctoj-ui .cu-toolbar > button{flex:0 0 auto}
}

@media(max-width:1120px){.ctoj-ui.cu-nav-open #header > ul.ivu-menu{padding-left:12px!important}.ctoj-ui.cu-nav-open #header > ul > .logo{margin-left:86px!important}}
@media(max-width:480px){.ctoj-ui.cu-nav-open #header > ul > .logo{margin-left:74px!important}}

/* v1.2: utilities share the logo/navigation/account row. */
.ctoj-ui #header > ul > .cu-toolbar{position:relative!important;top:auto!important;display:flex!important;align-items:center;flex:0 0 auto;flex-wrap:nowrap;width:auto!important;max-width:none;height:44px;min-height:0;margin:0 10px 0 auto!important;padding:0!important;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;z-index:1160;gap:6px;font:13px/1.4 system-ui,sans-serif}
.ctoj-ui #header > ul > .cu-toolbar .cu-brand{display:none!important}
.ctoj-ui #header > ul > .cu-toolbar > button{height:34px;min-height:34px;line-height:1.3;padding:5px 9px!important}
.ctoj-ui #header > ul > .btn-menu{margin-left:0!important}
.ctoj-ui #header .cu-tools-panel{line-height:1.5;white-space:normal;z-index:1170}
.ctoj-ui #header .cu-tools-panel button{font:13px/1.45 system-ui,sans-serif;white-space:normal}
.ctoj-ui .content-app{margin-top:80px!important}
@media(max-width:1120px){
 .ctoj-ui #header > ul > .cu-toolbar{order:1;margin:0 6px!important;height:44px;flex:0 0 auto}
 .ctoj-ui #header > ul > .btn-menu,.ctoj-ui.cu-nav-open #header > ul > .btn-menu{order:2}
 .ctoj-ui.cu-nav-open #header > ul > .ivu-menu-item,.ctoj-ui.cu-nav-open #header > ul > .ivu-menu-submenu{order:3!important}
 .ctoj-ui #header > ul > .logo{flex:1 1 auto;min-width:45px}
 .ctoj-ui #header .cu-tools-panel{position:fixed!important;top:64px!important;left:12px!important;right:12px!important;width:auto!important;max-width:420px;max-height:calc(100dvh - 80px);overflow-y:auto;margin-left:auto}
 .ctoj-ui .content-app{margin-top:72px!important}
}
@media(max-width:480px){
 .ctoj-ui #header > ul.ivu-menu{padding-left:50px!important}
 .ctoj-ui #header .cu-nav-toggle{width:34px;padding:0;font-size:0}
 .ctoj-ui #header .cu-nav-toggle::before{content:'☰';font:18px system-ui,sans-serif}
 .ctoj-ui #header > ul > .cu-toolbar > button{min-width:34px;font-size:20px;padding:0 7px!important}
 .ctoj-ui #header > ul > .logo{max-width:90px}
 .ctoj-ui.cu-nav-open #header > ul > .logo{margin-left:38px!important}
 .ctoj-ui #header > ul > .btn-menu{max-width:calc(100% - 120px)}
}

/* v1.2.1: logged-in drop-menu/change-menu must reserve their own flex space. */
.ctoj-ui #header > ul > :is(.drop-menu,.change-menu,.btn-menu){position:relative!important;inset:auto!important;float:none!important;display:flex!important;align-items:center;flex:0 0 auto;gap:6px;width:auto!important;height:44px!important;max-width:none;margin:0!important;padding:0!important;white-space:nowrap;line-height:44px!important;transform:none!important}
.ctoj-ui #header > ul > :is(.drop-menu,.change-menu){margin-left:6px!important}
.ctoj-ui #header .drop-menu-title,.ctoj-ui #header .change-menu-title{font:500 14px/40px system-ui,sans-serif!important;white-space:nowrap}
.ctoj-ui #header > ul > :is(.drop-menu,.change-menu) > .ivu-select-dropdown{right:0!important;left:auto!important;z-index:1180}
@media(max-width:1120px){
 .ctoj-ui #header > ul > .change-menu{order:2;flex:0 1 auto}
 .ctoj-ui #header > ul > .drop-menu{order:2;flex:0 1 auto;min-width:0;max-width:180px}
 .ctoj-ui #header .drop-menu-title{display:block;max-width:170px;overflow:hidden;text-overflow:ellipsis}
 .ctoj-ui #header .change-menu-title{font-size:12px!important}
}
@media(max-width:480px){
 .ctoj-ui #header > ul > .drop-menu{max-width:132px}
 .ctoj-ui #header .drop-menu-title{max-width:130px;font-size:13px!important}
 .ctoj-ui #header > ul > .change-menu{max-width:40px;overflow:visible}
}

/* Personal palettes; default school mode leaves the administrator's colors intact. */
html.ctoj-ui[data-cu-appearance="sky"]{--cp-bg:#edf5fd;--cp-panel:#ffffff;--cp-text:#203b55;--cp-muted:#526b80;--cp-stroke:#d1e2f2;--cp-brand:#1763a1;--cp-soft:#e2effb}
html.ctoj-ui[data-cu-appearance="mint"]{--cp-bg:#eef7f2;--cp-panel:#ffffff;--cp-text:#20463b;--cp-muted:#526e65;--cp-stroke:#cde4d9;--cp-brand:#126d59;--cp-soft:#def2e8}
html.ctoj-ui[data-cu-appearance="violet"]{--cp-bg:#f3f0fa;--cp-panel:#ffffff;--cp-text:#393050;--cp-muted:#6b607e;--cp-stroke:#ddd4ee;--cp-brand:#67459a;--cp-soft:#ece4f8}
html.ctoj-ui[data-cu-appearance="sand"]{--cp-bg:#faf5e9;--cp-panel:#fffdf7;--cp-text:#4b3c27;--cp-muted:#75664c;--cp-stroke:#e7dcc3;--cp-brand:#805714;--cp-soft:#f3e9d2}
html.ctoj-ui[data-cu-appearance="dark"]{--cp-bg:#101b2a;--cp-panel:#19283b;--cp-text:#e4edf8;--cp-muted:#aebfd3;--cp-stroke:#3c526a;--cp-brand:#98c8ff;--cp-soft:#283e56;color-scheme:dark}
html.ctoj-ui[data-cu-appearance]{--cu-surface:var(--cp-panel)!important;--cu-ink:var(--cp-text)!important;--cu-border:var(--cp-stroke)!important;--cu-soft:var(--cp-soft)!important;--cu-accent:var(--cp-brand)!important}
.ctoj-ui[data-cu-appearance] body,.ctoj-ui[data-cu-appearance] .content-app{background:var(--cp-bg)!important;color:var(--cp-text)!important}
.ctoj-ui[data-cu-appearance] :is(.ivu-card,.ivu-card-body,.ivu-card-head,#header,#header > .ivu-menu,.ivu-menu-drop-list,.ivu-select-dropdown,.ivu-dropdown-menu){background:var(--cp-panel)!important;color:var(--cp-text)!important;border-color:var(--cp-stroke)!important}
.ctoj-ui[data-cu-appearance] :is(.panel-title,.panel-title h2,.ivu-card-head p,.markdown-body,.ivu-table,.ivu-table th,.ivu-table td,.ivu-table-header,.ivu-table-body,.ivu-table-tip){background-color:var(--cp-panel)!important;color:var(--cp-text)!important;border-color:var(--cp-stroke)!important}
.ctoj-ui[data-cu-appearance] .ivu-table th{background:var(--cp-soft)!important}
.ctoj-ui[data-cu-appearance] .ivu-table-row-hover td{background:var(--cp-soft)!important}
.ctoj-ui[data-cu-appearance] :is(.ivu-table-wrapper,.ivu-card,.ivu-page-item){border-color:var(--cp-stroke)!important}
.ctoj-ui[data-cu-appearance] :is(.ivu-input,.ivu-select-selection,.ivu-page-item){background:var(--cp-panel)!important;color:var(--cp-text)!important;border-color:var(--cp-stroke)!important}
.ctoj-ui[data-cu-appearance] input::placeholder{color:var(--cp-muted)!important;opacity:1}
.ctoj-ui[data-cu-appearance] :is(.ivu-menu-item,.ivu-menu-submenu-title,.ivu-dropdown-item,.ivu-select-item){color:var(--cp-text)}
.ctoj-ui[data-cu-appearance] :is(.ivu-dropdown-item:hover,.ivu-select-item:hover,.ivu-menu-item:hover){background:var(--cp-soft)!important}
.ctoj-ui[data-cu-appearance] :is(.markdown-body a,.ivu-table a,.ivu-card-body > a){color:var(--cp-brand)!important}
.ctoj-ui[data-cu-appearance] .markdown-body pre{background:var(--cp-soft)!important;color:var(--cp-text)!important}
/* Font changes avoid icon fonts, formulas and code editor internals. */
.ctoj-ui[data-cp-font] :is(.content-app,.panel-title,.markdown-body,.ivu-table,.ivu-input,.ivu-select,.ivu-btn,.ivu-page,.cu-toolbar,.cu-dialog){font-family:var(--cp-font)!important}
.ctoj-ui[data-cp-font] #header > ul > :is(.ivu-menu-item,.ivu-menu-submenu),.ctoj-ui[data-cp-font] #header :is(.drop-menu-title,.change-menu-title,.ivu-menu-drop-list > .ivu-menu-item),.ctoj-ui[data-cp-font] .cu-toolbar button{font-family:var(--cp-font)!important}
.ctoj-ui[data-cp-font] #problem-content{line-height:var(--cp-line,1.85)!important}
.ctoj-ui[data-cp-font] :is(.CodeMirror,.CodeMirror pre,.CodeMirror code){font-family:var(--cp-code-font)!important;font-size:var(--cp-code-size)!important}
.ctoj-ui[data-cp-calm="true"] .vue-canvas-nest-element{display:none!important}
.ctoj-ui[data-cp-calm="true"] :is(.ivu-card,.ivu-btn){transition:none!important;animation:none!important}
.cp-dialog{width:min(740px,calc(100vw - 24px));max-height:calc(100dvh - 28px);padding:24px;overflow:auto}
.cp-intro,.cp-status{font-size:14px}.cp-status{padding:10px 12px;border-radius:8px;background:var(--cu-soft)}
.cp-palettes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:12px;border:1px solid var(--cu-border);border-radius:10px;margin:18px 0}
.cp-palettes legend{padding:0 7px;font-weight:650}
.cp-swatch{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--cu-border);border-radius:9px;cursor:pointer;font-size:13px}
.cp-swatch:has(input:checked){outline:2px solid var(--cu-accent);outline-offset:1px;background:var(--cu-soft)}
.cp-swatch input{accent-color:var(--cu-accent)}.cp-dot{width:18px;height:18px;border-radius:50%;flex:0 0 18px;border:1px solid #0002}
.cp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cp-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}
.cp-field select{min-height:42px;border:1px solid var(--cu-border);border-radius:8px;background:var(--cu-surface);color:var(--cu-ink);padding:8px;font:14px var(--cp-font,system-ui);width:100%}
.cp-calm{display:block;margin:18px 0;font-size:14px;cursor:pointer}.cp-calm input{accent-color:var(--cu-accent)}
.cp-sample{background:var(--cu-soft);padding:18px;border-radius:10px;border:1px solid var(--cu-border)}
.cp-sample pre{white-space:pre-wrap;background:var(--cu-surface);color:var(--cu-ink);padding:12px;border-radius:8px;margin:12px 0 0}
.cp-actions{display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end;margin-top:20px}.cp-actions .cp-save{background:var(--cu-accent);color:var(--cu-surface);font-weight:650}
@media(max-width:600px){.cp-dialog{padding:16px}.cp-palettes{grid-template-columns:1fr 1fr}.cp-grid{grid-template-columns:1fr}.cp-actions button{min-height:42px}.cp-swatch{padding:9px 7px;font-size:12px}}
.ctoj-ui[data-cu-appearance] .ivu-btn-primary{background:var(--cp-brand)!important;border-color:var(--cp-brand)!important;color:var(--cp-panel)!important}
.ctoj-ui[data-cu-appearance] .ivu-btn-default{background:var(--cp-panel)!important;border-color:var(--cp-stroke)!important;color:var(--cp-text)!important}

/* Practice drawer: non-modal so students can keep reading/coding. */
.cs-drawer{position:fixed;right:16px;top:72px;bottom:16px;z-index:1200;width:min(400px,calc(100vw - 24px));padding:20px;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--cu-border);border-radius:16px;background:var(--cu-surface);color:var(--cu-ink);box-shadow:0 15px 55px #142d4833;font:14px/1.6 var(--cp-font,system-ui,sans-serif)}
.cs-drawer[hidden]{display:none!important}
.cs-drawer .cs-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cs-drawer h2{font-size:21px;margin:0}.cs-drawer h3{font-size:16px;margin:20px 0 10px}
.cs-drawer p{margin:10px 0}.cs-muted{opacity:.8}.cs-local{font-size:12px;padding:10px 12px;border-radius:9px;background:var(--cu-soft)}
.cs-drawer button{min-height:38px;padding:6px 10px;border:1px solid var(--cu-border);border-radius:8px;background:var(--cu-soft);color:var(--cu-ink);font:inherit;cursor:pointer}
.cs-drawer button:hover{border-color:var(--cu-accent)}
.cs-drawer .cs-start{width:100%;background:var(--cu-accent);color:var(--cu-surface);font-weight:650;margin:10px 0}
.cs-label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;margin:15px 0 9px}
.cs-drawer :is(input,select,textarea){box-sizing:border-box;width:100%;min-height:40px;border:1px solid var(--cu-border);border-radius:8px;background:var(--cu-surface);color:var(--cu-ink);padding:9px;font:14px/1.5 var(--cp-font,system-ui,sans-serif)}
.cs-drawer textarea{resize:vertical;min-height:115px}
.cs-timer{margin-top:16px;padding:14px;background:var(--cu-soft);border-radius:12px;text-align:center}
.cs-timer-name{font-weight:650}.cs-time{display:block;font:650 42px/1.4 ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums}
.cs-actions{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.cs-actions button{font-size:12px;flex:1 1 auto}
.cs-timer small{display:block;font-size:11px;line-height:1.6;text-align:left}
.cs-progress{display:block;width:100%;height:12px;accent-color:var(--cu-accent)}.cs-count{font-size:12px}
.cs-task-list{list-style:none;padding:0;margin:12px 0}
.cs-task{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 0;border-bottom:1px solid var(--cu-border)}
.cs-task a{grid-column:1/-1;color:var(--cu-accent);font-weight:600;text-decoration:none;overflow-wrap:anywhere}
.cs-task a:hover{text-decoration:underline}.cs-task select{font-size:12px}
.cs-status{font-size:12px;color:var(--cu-ink);padding:8px;border-radius:7px;background:var(--cu-soft)}
@media(max-width:600px){.cs-drawer{right:12px;left:12px;width:auto;top:64px;bottom:12px;padding:16px}.cs-drawer button{min-height:42px}}
@media print{.cs-drawer{display:none!important}}

/* Compact session timer and submission-column readability. */
.cs-heading-actions{display:flex;gap:6px;flex:0 0 auto}.cs-heading-actions button{font-size:12px;min-height:34px;padding:5px 8px}
.cs-mini{position:fixed;right:18px;bottom:18px;z-index:1200;display:flex;align-items:center;gap:4px;padding:5px;border:1px solid var(--cu-border);border-radius:12px;background:var(--cu-surface);color:var(--cu-ink);box-shadow:0 5px 22px #10203026;font:14px/1.4 var(--cp-font,system-ui,sans-serif)}
.cs-mini[hidden]{display:none!important}.cs-mini button{min-height:38px;padding:5px 10px;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;border-radius:7px}.cs-mini-open{font-variant-numeric:tabular-nums}.cs-mini button:hover{background:var(--cu-soft)}
.ctoj-ui .cu-submissions .ivu-table-header{overflow-x:hidden!important}
.ctoj-ui .cu-submissions .ivu-table-body{overflow-x:auto!important}
.ctoj-ui .cu-submissions .ivu-table-cell{white-space:nowrap!important;word-break:normal!important}
.ctoj-ui .cu-submissions td:first-child .ivu-table-cell{font-size:12.5px;font-variant-numeric:tabular-nums}
.ctoj-ui .cu-submissions .ivu-table-cell a{display:inline-block;max-width:100%;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-dialog{width:min(820px,calc(100vw - 24px));max-height:calc(100dvh - 28px);overflow:auto}.cd-intro,.cd-note{font-size:13px}.cd-note{background:var(--cu-soft);padding:12px;border-radius:8px}
.cd-label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:650;margin:14px 0 9px}
.cd-dialog :is(select,textarea){width:100%;min-height:40px;padding:9px;border:1px solid var(--cu-border);border-radius:8px;background:var(--cu-surface);color:var(--cu-ink);font:14px/1.5 var(--cp-font,system-ui,sans-serif)}
.cd-dialog textarea{font-family:ui-monospace,Consolas,monospace;resize:vertical;min-height:150px;white-space:pre;overflow:auto}
.cd-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.cd-loose{display:block;font-size:13px;margin:12px 0}.cd-loose input,.cd-checklist input{accent-color:var(--cu-accent)}
.cd-checklist{list-style:none;padding:0}.cd-checklist li{margin:8px 0;padding:9px;border:1px solid var(--cu-border);border-radius:7px;font-size:13px}.cd-checklist label{display:block;cursor:pointer}
.cd-actions{display:flex;gap:9px;margin:16px 0}.cd-actions .cd-run{background:var(--cu-accent);color:var(--cu-surface);font-weight:650}
.cd-result{background:var(--cu-soft);padding:14px;border-radius:9px;overflow-wrap:anywhere}.cd-result:empty{display:none}
.cd-result p{white-space:pre-wrap;font:13px/1.6 ui-monospace,Consolas,monospace}
@media(max-width:600px){.cd-grid{grid-template-columns:1fr}.cd-dialog{padding:16px}.cs-mini{right:12px;bottom:12px}.cs-heading h2{font-size:19px}}
@media print{.cs-mini{display:none!important}}

/* v1.5.1: one compact utility launcher, grouped task palette. */
.ctoj-ui #header .cu-tools-panel{display:block;position:fixed!important;left:var(--cu-tools-left,12px)!important;top:var(--cu-tools-top,68px)!important;right:auto!important;width:min(380px,calc(100vw - 24px))!important;max-width:none!important;max-height:calc(100dvh - var(--cu-tools-top,68px) - 14px);overflow-y:auto;margin:0!important;padding:14px!important;border:1px solid var(--cu-border);border-radius:14px;background:var(--cu-surface)!important;color:var(--cu-ink);box-shadow:0 14px 40px #182d4826}
.ctoj-ui #header .cu-tools-panel[hidden]{display:none!important}
.ctoj-ui #header .cu-tools-heading{font:700 15px/1.4 var(--cp-font,system-ui,sans-serif);margin:0;padding:1px 4px 10px}
.cu-tool-group{padding:9px 0;border-top:1px solid var(--cu-border)}
.cu-tool-group h3{font:650 11px/1.5 var(--cp-font,system-ui,sans-serif);letter-spacing:.06em;text-transform:uppercase;opacity:.75;margin:0 4px 7px}
.cu-tool-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px}
.ctoj-ui #header .cu-tools-panel .cu-tool-grid button{display:flex!important;align-items:center;justify-content:flex-start!important;gap:9px;width:100%;min-height:42px!important;margin:0;padding:9px!important;border:1px solid transparent!important;border-radius:9px;background:transparent!important;color:var(--cu-ink)!important;font:500 13px/1.35 var(--cp-font,system-ui,sans-serif)!important;text-align:left;white-space:normal;box-shadow:none}
.ctoj-ui #header .cu-tools-panel .cu-tool-grid button:hover{background:var(--cu-soft)!important;color:var(--cu-accent)!important}
.ctoj-ui #header .cu-tools-panel .cu-tool-grid button:focus-visible{outline:2px solid var(--cu-accent);outline-offset:-2px;background:var(--cu-soft)!important}
.ctoj-ui #header .cu-tools-panel .cu-tool-grid button[aria-pressed="true"]{background:var(--cu-soft)!important;border-color:var(--cu-border)!important;color:var(--cu-accent)!important}
.cu-tool-grid button svg{display:block;width:19px;height:19px;flex:0 0 19px;color:var(--cu-accent)}
.cu-tool-grid button span{min-width:0;overflow-wrap:break-word}
.ctoj-ui #header .cu-tools-panel .cu-tools-note{display:block;margin:7px 4px 0;padding:9px 0 1px;border-top:1px solid var(--cu-border);font:11px/1.55 var(--cp-font,system-ui,sans-serif);opacity:.75}
.ctoj-ui #header .cu-context-group .cu-tool-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.ctoj-ui #header .cu-context-group .cu-tool-grid button{grid-column:span 3;justify-content:center!important;font-size:12px!important;min-height:34px!important;padding:7px 5px!important;background:var(--cu-soft)!important}
.ctoj-ui #header .cu-context-group .cu-tool-grid button:nth-child(n+3){grid-column:span 2}
.ctoj-ui #header .cu-context-group .cu-tool-grid .cu-primary{background:var(--cu-accent)!important;color:var(--cu-surface)!important}
@media(max-width:480px){.ctoj-ui #header .cu-tools-panel{padding:11px!important}.ctoj-ui #header .cu-tools-panel .cu-tool-grid button{min-height:44px!important;font-size:13px!important}.cu-tool-group{padding:8px 0}}

/* v1.6 — task hub inspired by the CTOJ MathX guide. */
.ctoj-ui #header .cu-tools-panel{padding:0 12px 12px!important;width:min(400px,calc(100vw - 24px))!important}
.cu-tools-hero{margin:0 -12px 5px;padding:15px 15px 13px;border-radius:13px 13px 0 0;background:linear-gradient(115deg,#145f4c,#172a3f);color:#fff}
.ctoj-ui #header .cu-tools-hero .cu-tools-heading{padding:0;margin:0;color:#fff;font-size:16px}
.ctoj-ui #header .cu-tools-hero .cu-tools-intro{display:block;padding:3px 0 9px;margin:0;color:#d6e9e3;font:12px/1.5 var(--cp-font,system-ui,sans-serif)}
.ctoj-ui #header .cu-tools-search{display:block;width:100%;height:38px;box-sizing:border-box;border:1px solid #d4e3df;border-radius:9px;background:#fff;color:#173b37;padding:8px 11px;font:13px var(--cp-font,system-ui,sans-serif);line-height:1.4}
.ctoj-ui #header .cu-tools-search::placeholder{color:#5a736d!important;opacity:1}
.cu-categories{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}
.ctoj-ui #header .cu-tools-panel .cu-categories .cu-category{display:block;flex:0 0 auto;width:auto;min-height:28px!important;padding:4px 9px!important;border:1px solid #ffffff55;border-radius:20px;background:#ffffff12;color:#f1f8f5;font:500 11px/1.3 var(--cp-font,system-ui,sans-serif);box-shadow:none}
.ctoj-ui #header .cu-tools-panel .cu-categories .cu-category[aria-pressed="true"]{background:#e4f4ed;color:#164f3b;border-color:#e4f4ed;font-weight:700}
.ctoj-ui #header .cu-tools-panel .cu-categories .cu-category:focus-visible{outline:2px solid white;outline-offset:2px}
.ctoj-ui #header .cu-tools-empty{margin:14px 5px;padding:13px;border-radius:9px;background:var(--cu-soft);color:var(--cu-ink);font:13px/1.6 var(--cp-font,system-ui,sans-serif)}
.ctoj-ui #header .cu-tool-group{padding:9px 0}
@media(max-width:480px){.ctoj-ui #header .cu-tools-panel{padding:0 11px 11px!important}.cu-tools-hero{margin:0 -11px 5px;padding:14px}.ctoj-ui #header .cu-tools-panel .cu-categories .cu-category{min-height:32px!important}}

.ctoj-ui #header .cu-tools-panel .cu-tool-grid button[hidden],.ctoj-ui #header .cu-tools-panel .cu-tool-group[hidden],.ctoj-ui #header .cu-tools-panel .cu-tools-empty[hidden]{display:none!important}

/* v1.7: full content page, not a floating menu. */
.ctoj-ui.cu-utility-page .content-app,.ctoj-ui.cu-utility-page #app > .footer{display:none!important}
.ctoj-ui .cu-tools-panel.cu-tools-page{position:relative!important;inset:auto!important;display:block;width:calc(100% - 48px)!important;max-width:1280px!important;max-height:none!important;height:auto!important;overflow:visible!important;margin:80px auto 36px!important;padding:0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;font:15px/1.65 var(--cp-font,system-ui,sans-serif);color:var(--cu-ink);z-index:auto}
.ctoj-ui .cu-tools-panel.cu-tools-page[hidden],.ctoj-ui .cu-tools-page [hidden]{display:none!important}
.cu-tools-page .cu-tools-hero{margin:0 0 22px;padding:28px 32px;border-radius:18px;background:linear-gradient(115deg,#145f4c,#172a3f);color:#fff}
.cu-tools-page .cu-tools-heading{margin:8px 0 4px;padding:0;color:#fff;font:750 30px/1.35 var(--cp-font,system-ui,sans-serif)}
.cu-tools-page .cu-tools-intro{display:block;color:#d6e9e3;font:15px/1.6 var(--cp-font,system-ui,sans-serif);padding:3px 0 15px}
.cu-tools-page .cu-tools-search{display:block;width:100%;max-width:620px;height:46px;box-sizing:border-box;padding:10px 14px;background:#fff;color:#173b37;border:1px solid #d4e3df;border-radius:10px;font:15px var(--cp-font,system-ui,sans-serif)}
.cu-tools-page .cu-tools-search::placeholder{color:#5a736d!important;opacity:1}
.cu-tools-page .cu-page-back{display:inline-flex;min-height:32px;padding:5px 9px;border:1px solid #ffffff55;border-radius:7px;background:transparent;color:#f3fbf7;font:13px var(--cp-font,system-ui,sans-serif);cursor:pointer}
.cu-tools-page .cu-categories{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 0}
.cu-tools-page .cu-category{min-height:35px;padding:7px 14px;border:1px solid #ffffff55;border-radius:20px;background:#ffffff12;color:#f1f8f5;font:500 13px var(--cp-font,system-ui,sans-serif);cursor:pointer}
.cu-tools-page .cu-category[aria-pressed="true"]{background:#e4f4ed;color:#164f3b;border-color:#e4f4ed;font-weight:700}
.cu-tools-page .cu-tool-group{margin:0 0 20px;padding:0;border:0}
.cu-tools-page .cu-tool-group h3{margin:0 0 10px;opacity:1;text-transform:none;letter-spacing:0;font:700 18px/1.5 var(--cp-font,system-ui,sans-serif);color:var(--cu-ink)}
.cu-tools-page .cu-tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.cu-tools-page .cu-tool-grid button{display:flex;align-items:center;justify-content:flex-start;gap:15px;width:100%;min-height:102px;box-sizing:border-box;padding:20px;border:1px solid var(--cu-border);border-radius:13px;background:var(--cu-surface);color:var(--cu-ink);text-align:left;font:650 16px/1.4 var(--cp-font,system-ui,sans-serif);cursor:pointer}
.cu-tools-page .cu-tool-grid button:hover{border-color:var(--cu-accent);background:var(--cu-soft)}
.cu-tools-page .cu-tool-grid button svg{width:30px;height:30px;flex:0 0 30px;color:var(--cu-accent)}
.cu-tools-page .cu-tool-text{display:flex;flex-direction:column;gap:5px}.cu-tools-page .cu-tool-text small{font:400 13px/1.6 var(--cp-font,system-ui,sans-serif);opacity:.8}
.cu-tools-page .cu-tool-grid button[aria-pressed="true"]{border-color:var(--cu-accent);background:var(--cu-soft)}
.cu-tools-page .cu-context-group .cu-tool-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.cu-tools-page .cu-context-group button{min-height:48px;padding:12px;justify-content:center;font-size:14px}
.cu-tools-page .cu-tools-note{display:block;margin:14px 0 0;padding:12px 0;border-top:1px solid var(--cu-border);font:12px/1.6 var(--cp-font,system-ui,sans-serif)}
.cu-tools-page .cu-tools-empty{padding:24px;border-radius:12px;background:var(--cu-surface);border:1px solid var(--cu-border)}
.cu-tool-workspace:empty{display:none}
.cu-tool-workspace > [data-cu-docked="true"]{display:block!important;position:static!important;inset:auto!important;width:100%!important;max-width:none!important;max-height:none!important;height:auto!important;box-sizing:border-box;margin:0!important;overflow:visible!important;padding:26px!important;border:1px solid var(--cu-border);border-radius:14px;background:var(--cu-surface);color:var(--cu-ink);box-shadow:none!important;scroll-margin-top:78px}
.cu-tools-page.cu-detail-mode .cu-tool-group,.cu-tools-page.cu-detail-mode .cu-tools-empty,.cu-tools-page.cu-detail-mode .cu-tools-search,.cu-tools-page.cu-detail-mode .cu-categories{display:none!important}
.cu-tools-page.cu-detail-mode .cu-tools-hero{padding:18px 26px}.cu-tools-page.cu-detail-mode .cu-tools-heading{font-size:25px}.cu-tools-page.cu-detail-mode .cu-tools-intro{padding-bottom:0}
.cu-workspace-back{display:block;min-height:36px;margin:0 0 18px;padding:6px 12px;border:1px solid var(--cu-border);border-radius:8px;background:var(--cu-soft);color:var(--cu-ink);font:14px var(--cp-font,system-ui,sans-serif);cursor:pointer}
.cu-tool-workspace .cs-timer{max-width:520px}.cu-tool-workspace .cs-task-list{max-width:900px}
.cu-tool-workspace [data-cu-docked] .cs-heading{justify-content:space-between}
.ctoj-ui #header .cu-toolbar > button[aria-current="page"]{background:var(--cu-soft);color:var(--cu-accent);border-color:var(--cu-accent)}
.ctoj-ui.cu-utility-page #header > ul > .ivu-menu-item-active{background:transparent!important;box-shadow:none;color:inherit!important}
@media(max-width:760px){.ctoj-ui .cu-tools-panel.cu-tools-page{width:calc(100% - 24px)!important;margin-top:70px!important}.cu-tools-page .cu-tools-hero{padding:20px}.cu-tools-page .cu-tools-heading{font-size:25px}.cu-tools-page .cu-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cu-tools-page .cu-tool-grid button{min-height:100px;padding:14px;gap:10px;font-size:14px}.cu-tools-page .cu-tool-grid button svg{width:24px;height:24px;flex-basis:24px}.cu-tool-workspace > [data-cu-docked="true"]{padding:18px!important}}
@media(max-width:480px){.cu-tools-page .cu-tool-grid{grid-template-columns:1fr}.cu-tools-page .cu-tool-grid button{min-height:82px}.cu-tools-page .cu-context-group .cu-tool-grid{grid-template-columns:1fr 1fr}.ctoj-ui #header > ul > .cu-toolbar > button{font-size:12px!important;min-width:52px}.cu-tools-page .cu-tools-hero{padding:18px}}
@media print{.cu-tools-page .cu-tools-hero{background:none;color:#000}.cu-tools-page .cu-page-back,.cu-workspace-back{display:none!important}}

/* v1.8 IDE: preserve Vue/CodeMirror DOM and runner, restyle as a workbench. */
.ctoj-ui.ci-active .content-app{padding:0 16px!important;margin-top:74px!important}
.ctoj-ui.ci-active .content-app > .flex-container{display:block!important}
.ctoj-ui.ci-active .ci-workbench{--ci-bg:#f8fafc;--ci-panel:#ffffff;--ci-side:#f0f3f7;--ci-ink:#24364b;--ci-line:#d5dde7;--ci-accent:#1765ad;display:grid!important;grid-template-columns:220px minmax(0,1fr);grid-template-rows:auto minmax(340px,1fr) 220px 34px;width:100%!important;max-width:none!important;flex:none!important;height:calc(100dvh - 92px);min-height:670px;border:1px solid var(--ci-line);border-radius:10px;overflow:hidden;background:var(--ci-bg);color:var(--ci-ink);box-shadow:0 4px 20px #10203015;font:13px/1.5 var(--cp-font,system-ui,sans-serif)}
.ctoj-ui.ci-active .ci-workbench[data-ci-scheme="dark"]{--ci-bg:#1e1e1e;--ci-panel:#1e1e1e;--ci-side:#252526;--ci-ink:#d4d4d4;--ci-line:#414141;--ci-accent:#5baff1;color-scheme:dark}
.ci-titlebar{grid-column:1/-1;grid-row:1;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;border-bottom:1px solid var(--ci-line);background:var(--ci-side);color:var(--ci-ink)}
.ci-titlebar strong{margin-right:auto;font-size:13px;letter-spacing:.01em}
.ci-titlebar button,.ci-explorer button{min-height:32px;padding:5px 9px;border:1px solid var(--ci-line);border-radius:5px;background:var(--ci-panel);color:var(--ci-ink);font:12px/1.4 var(--cp-font,system-ui,sans-serif);cursor:pointer}
.ci-titlebar button:disabled{opacity:.55;cursor:wait}.ci-titlebar button:hover,.ci-explorer button:hover{border-color:var(--ci-accent)}
.ci-titlebar .ci-run{background:#1765ad;color:#fff;border-color:#1765ad;font-weight:650}
.ci-explorer{grid-column:1;grid-row:2/4;overflow:auto;padding:12px;border-right:1px solid var(--ci-line);background:var(--ci-side);color:var(--ci-ink)}
.ci-explorer h2,.ci-explorer h3{font-size:11px;font-weight:650;letter-spacing:.05em;margin:4px 0 12px;color:var(--ci-ink)}
.ci-explorer h3{margin-top:24px}.ci-explorer small{display:block;font-size:11px;line-height:1.6;margin:10px 0;opacity:.8}
.ci-explorer > button{display:block;width:100%;text-align:left;margin:7px 0}
.ci-explorer .ci-file-entry{border-color:var(--ci-accent);font:13px/1.5 ui-monospace,Consolas,monospace}
.ci-test-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}
.ci-test-tabs button{min-width:55px}.ci-test-tabs button[aria-pressed="true"]{background:#1765ad;border-color:#1765ad;color:white}
.ci-expected-label{display:flex;flex-direction:column;gap:7px;font-size:12px;margin:16px 0 10px}
.ci-explorer textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:100px;padding:8px;border:1px solid var(--ci-line);border-radius:5px;background:var(--ci-panel);color:var(--ci-ink);font:12px/1.6 ui-monospace,Consolas,monospace}
.ci-comparison{white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.6 ui-monospace,Consolas,monospace;margin:10px 0}.ci-comparison:empty{display:none}
.ctoj-ui.ci-active #submit-code.ci-editor-card{grid-column:2;grid-row:2;display:flex;flex-direction:column;min-height:0;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:var(--ci-panel)!important;color:var(--ci-ink)!important;overflow:hidden}
.ctoj-ui.ci-active #submit-code.ci-editor-card > .ivu-card-head{display:none!important}
.ctoj-ui.ci-active #submit-code.ci-editor-card > .ivu-card-body{display:flex;flex-direction:column;flex:1;min-height:0;padding:10px!important;background:var(--ci-panel)!important;color:var(--ci-ink)!important}
.ctoj-ui.ci-active #submit-code.ci-editor-card > .ivu-card-body > div:first-child{display:flex;flex-direction:column;flex:1;min-height:0;margin:0!important}
.ctoj-ui.ci-active #submit-code .header.ivu-row-flex{flex:0 0 auto;margin-bottom:10px;color:var(--ci-ink)}
.ctoj-ui.ci-active #submit-code .vue-codemirror-wrap{flex:1;min-height:0}
.ctoj-ui.ci-active #submit-code .CodeMirror{height:100%!important;min-height:260px;border:1px solid var(--ci-line);border-radius:5px}
.ctoj-ui.ci-active #submit-code .ci-native-run{display:none!important}
.ctoj-ui.ci-active #submit-code :is(.ivu-select-selection,.ivu-btn){background:var(--ci-side)!important;color:var(--ci-ink)!important;border-color:var(--ci-line)!important}
.ctoj-ui.ci-active .ci-io{grid-column:2;grid-row:3;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;margin:0!important;min-height:0;border-top:1px solid var(--ci-line)}
.ctoj-ui.ci-active .ci-io > .ivu-col{float:none!important;width:auto!important;padding:0!important;min-height:0}
.ctoj-ui.ci-active .ci-io .ivu-card{display:flex;flex-direction:column;height:100%;margin:0!important;border:0;border-radius:0;box-shadow:none;background:var(--ci-panel)!important;color:var(--ci-ink)!important}
.ctoj-ui.ci-active .ci-io .ivu-card-head{padding:6px 12px!important;border-color:var(--ci-line);background:var(--ci-side)!important;color:var(--ci-ink)!important;font-size:12px}
.ctoj-ui.ci-active .ci-io .ivu-card-head p{font-size:12px;color:var(--ci-ink)!important;background:transparent!important}
.ctoj-ui.ci-active .ci-io .ivu-card-extra{position:static;display:flex;gap:15px;padding:3px 12px;font:11px/1.2 system-ui;color:var(--ci-ink)}
.ctoj-ui.ci-active .ci-io .ivu-card-extra p{margin:0}
.ctoj-ui.ci-active .ci-io .ivu-card-body{display:flex;flex:1;min-height:0;padding:8px!important;background:var(--ci-panel)!important}
.ctoj-ui.ci-active .ci-io .ivu-input-wrapper{height:100%;width:100%}
.ctoj-ui.ci-active .ci-io textarea{height:100%!important;min-height:70px!important;max-height:none!important;resize:none;background:var(--ci-panel)!important;color:var(--ci-ink)!important;border-color:var(--ci-line)!important;font:13px/1.5 ui-monospace,Consolas,monospace}
.ci-input-col{border-right:1px solid var(--ci-line)}
.ci-status{grid-column:1/-1;grid-row:4;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 12px;background:#1765ad;color:#fff;font:11px/1.5 var(--cp-font,system-ui,sans-serif);overflow:auto;white-space:nowrap}
.ci-cursor{margin-left:auto;font-variant-numeric:tabular-nums}
.ctoj-ui.ci-active .ci-workbench.ci-sidebar-off{grid-template-columns:minmax(0,1fr)}
.ci-sidebar-off .ci-explorer{display:none}
.ctoj-ui.ci-active .ci-sidebar-off #submit-code,.ctoj-ui.ci-active .ci-sidebar-off .ci-io{grid-column:1}
.ctoj-ui.ci-active .ci-workbench.ci-maximized{position:fixed;inset:0;width:100vw!important;height:100dvh!important;min-height:0;z-index:1500;border-radius:0}
.ctoj-ui.ci-active .content-app > .footer{display:none}
@media(max-width:1000px){.ctoj-ui.ci-active .ci-workbench{grid-template-columns:180px minmax(0,1fr)}.ci-titlebar strong{flex:0 0 100%}.ctoj-ui.ci-active #submit-code .header.ivu-row-flex{gap:5px}.ctoj-ui.ci-active #submit-code .header > .ivu-col{width:100%;flex:0 0 100%}.ctoj-ui.ci-active #submit-code .fl-right{float:none!important}}
@media(max-width:650px){.ctoj-ui.ci-active .content-app{padding:0 8px!important}.ctoj-ui.ci-active .ci-workbench{height:auto;min-height:0;display:flex!important;flex-direction:column}.ci-titlebar{order:0}.ci-explorer{order:3;max-height:350px;border-right:0;border-top:1px solid var(--ci-line)}.ctoj-ui.ci-active #submit-code.ci-editor-card{order:1;min-height:480px}.ctoj-ui.ci-active .ci-io{order:2;min-height:240px}.ci-status{order:4;min-height:34px}.ci-titlebar button{min-height:38px}.ctoj-ui.ci-active .ci-workbench.ci-maximized{overflow-y:auto}.ctoj-ui.ci-active #submit-code .CodeMirror{height:340px!important}}

/* v1.8.1: disable iView clearfix grid items; place I/O explicitly. */
.ctoj-ui.ci-active .ci-io::before,.ctoj-ui.ci-active .ci-io::after{content:none!important;display:none!important}
.ctoj-ui.ci-active .ci-io > .ci-input-col{grid-column:1!important;grid-row:1!important}
.ctoj-ui.ci-active .ci-io > .ci-output-col{grid-column:2!important;grid-row:1!important}
.ctoj-ui.ci-active .ci-io > .ivu-col{position:relative!important;inset:auto!important;height:100%!important;min-width:0!important;min-height:0!important;overflow:hidden!important;align-self:stretch}
.ctoj-ui.ci-active .ci-io .ivu-card{position:relative!important;height:100%!important;max-height:100%!important;min-height:0!important;overflow:hidden!important}
.ctoj-ui.ci-active .ci-io .ivu-card-head{flex:0 0 auto;min-height:34px;box-sizing:border-box}
.ctoj-ui.ci-active .ci-io .ivu-card-extra{flex:0 0 auto;max-height:32px;line-height:1.5;overflow:hidden}
.ctoj-ui.ci-active .ci-io .ivu-card-body{flex:1 1 0!important;height:auto!important;min-height:0!important;overflow:hidden!important;box-sizing:border-box}
.ctoj-ui.ci-active .ci-io .ivu-input-wrapper{display:block!important;flex:1 1 auto;min-height:0!important;height:100%!important;max-height:100%!important}
.ctoj-ui.ci-active .ci-io textarea{display:block!important;box-sizing:border-box;height:100%!important;max-height:100%!important;min-height:0!important;overflow:auto!important}
@media(max-width:650px){.ctoj-ui.ci-active .ci-io{height:260px!important;min-height:260px!important;flex:0 0 260px}}

/* v1.9: editor left, test tools and native I/O right. */
@media(min-width:801px){
.ctoj-ui.ci-active .ci-workbench{grid-template-columns:minmax(0,1.9fr) minmax(300px,1fr);grid-template-rows:auto minmax(190px,.8fr) minmax(290px,1.2fr) 34px;min-height:660px}
.ctoj-ui.ci-active #submit-code.ci-editor-card{grid-column:1;grid-row:2/4;border-right:1px solid var(--ci-line)!important}
.ctoj-ui.ci-active .ci-explorer{grid-column:2;grid-row:2;border-right:0;border-bottom:1px solid var(--ci-line);padding:10px 12px}
.ctoj-ui.ci-active .ci-io{grid-column:2;grid-row:3;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1.2fr);border-top:0}
.ctoj-ui.ci-active .ci-io > .ci-input-col{grid-column:1!important;grid-row:1!important;border-right:0;border-bottom:1px solid var(--ci-line)}
.ctoj-ui.ci-active .ci-io > .ci-output-col{grid-column:1!important;grid-row:2!important}
.ctoj-ui.ci-active .ci-workbench.ci-sidebar-off{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(480px,1fr) 34px}
.ctoj-ui.ci-active .ci-sidebar-off #submit-code.ci-editor-card{grid-column:1;grid-row:2;border-right:0!important}
.ctoj-ui.ci-active .ci-sidebar-off .ci-io{display:none!important}
.ctoj-ui.ci-active .ci-sidebar-off .ci-status{grid-row:3}
}
.ci-explorer .ci-file-entry,.ci-explorer > h3,.ci-explorer > h2 + button + small{display:none}
.ci-explorer h2{font-size:12px;letter-spacing:.07em;border-bottom:1px solid var(--ci-line);padding-bottom:9px;margin-bottom:10px}
.ci-explorer > button{display:inline-flex;width:auto;margin:4px 5px 4px 0}
.ci-explorer .ci-expected-label{margin:10px 0}
.ci-explorer textarea{min-height:65px;max-height:180px}
.ci-titlebar button:focus-visible,.ci-explorer button:focus-visible,.ci-explorer textarea:focus-visible{outline:2px solid var(--ci-accent);outline-offset:2px}
@media(max-width:800px){
.ctoj-ui.ci-active .ci-workbench{display:flex!important;flex-direction:column;height:auto;min-height:0}
.ci-titlebar{order:0}.ctoj-ui.ci-active #submit-code.ci-editor-card{order:1;min-height:450px}
.ctoj-ui.ci-active #submit-code .CodeMirror{height:340px!important}
.ci-explorer{order:2;max-height:350px;border-right:0;border-top:1px solid var(--ci-line)}
.ctoj-ui.ci-active .ci-io{order:3;height:340px!important;min-height:340px!important;flex:0 0 340px;grid-template-columns:minmax(0,1fr);grid-template-rows:1fr 1fr}
.ctoj-ui.ci-active .ci-io > .ci-input-col{grid-column:1!important;grid-row:1!important;border-right:0}
.ctoj-ui.ci-active .ci-io > .ci-output-col{grid-column:1!important;grid-row:2!important}
.ci-status{order:4;min-height:34px}.ctoj-ui.ci-active .ci-sidebar-off .ci-io{display:none!important}
.ctoj-ui.ci-active .ci-workbench.ci-maximized{overflow-y:auto}
}

/* v1.9.1: adjustable width and viewport-aware height. */
.ci-ratio-label{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:12px;color:var(--ci-ink)}
.ci-ratio-label select{min-height:32px;padding:4px 6px;border:1px solid var(--ci-line);border-radius:5px;background:var(--ci-panel);color:var(--ci-ink);font:inherit}
.ci-ratio-label select:focus-visible{outline:2px solid var(--ci-accent);outline-offset:2px}
@media(min-width:801px){
.ctoj-ui.ci-active .ci-workbench{grid-template-columns:minmax(0,var(--ci-code-share,70fr)) minmax(300px,var(--ci-tools-share,30fr));grid-template-rows:auto minmax(175px,.32fr) minmax(280px,.68fr) 30px;height:calc(100dvh - var(--ci-top,74px) - 12px);min-height:590px}
.ctoj-ui.ci-active .ci-workbench.ci-sidebar-off{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(450px,1fr) 30px}
.ci-explorer{padding:8px 10px}
.ci-explorer h2{padding-bottom:6px;margin-bottom:6px}
.ci-explorer .ci-test-tabs{margin-bottom:5px}
.ci-explorer .ci-expected-label{margin:5px 0;gap:4px}
.ci-explorer textarea{height:62px;min-height:50px;max-height:110px}
.ci-explorer > small:last-child{margin:4px 0;font-size:10px}
.ci-explorer > button{min-height:28px;padding:4px 7px;margin:3px 3px 3px 0}
.ctoj-ui.ci-active .ci-io{grid-template-rows:minmax(0,1fr) minmax(0,1.2fr)}
}

/* v1.10: submission editor and statement share the workspace. */
.ctoj-ui.csw-active .content-app{padding:0 16px!important;margin-top:74px!important}
.ctoj-ui.csw-active .csw-container{display:block!important}
.ctoj-ui.csw-active .csw-main{display:grid!important;grid-template-columns:minmax(0,var(--csw-code,70fr)) minmax(300px,var(--csw-task,30fr));grid-template-rows:auto max(480px,calc(100dvh - var(--csw-top,74px) - 110px)) auto;width:100%!important;max-width:none!important;flex:none!important;gap:0;background:var(--cu-surface);border:1px solid var(--cu-border);border-radius:9px;overflow:hidden;color:var(--cu-ink)}
.csw-toolbar{grid-column:1/-1;grid-row:1;display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:8px 10px;background:var(--cu-soft);border-bottom:1px solid var(--cu-border)}
.csw-toolbar strong{margin-right:auto;font-size:13px}.csw-toolbar label{font-size:12px;display:flex;align-items:center;gap:4px}
.csw-toolbar button,.csw-toolbar select{font:12px var(--cp-font,system-ui,sans-serif);min-height:32px;padding:5px 8px;border:1px solid var(--cu-border);border-radius:5px;background:var(--cu-surface);color:var(--cu-ink);cursor:pointer}
.csw-toolbar :is(button,select):focus-visible{outline:2px solid var(--cu-accent);outline-offset:2px}
.ctoj-ui.csw-active #submit-code.csw-editor{grid-column:1;grid-row:2;display:flex!important;flex-direction:column;min-height:0;min-width:0;margin:0!important;border:0!important;border-right:1px solid var(--cu-border)!important;border-radius:0!important;overflow:hidden;box-shadow:none!important}
.csw-editor > .ivu-card-body{display:flex;flex:1;flex-direction:column;min-height:0;padding:12px!important}
.csw-editor > .ivu-card-body > div:first-child{display:flex;flex:1;flex-direction:column;min-height:0;margin-bottom:10px!important}
.csw-editor .header{flex:0 0 auto;margin-bottom:10px}.csw-editor .vue-codemirror-wrap{flex:1;min-height:0}
.ctoj-ui.csw-active .csw-editor .CodeMirror{height:100%!important;min-height:200px}
.csw-editor > .ivu-card-body > .ivu-row-flex{flex:0 0 auto;padding-top:8px;border-top:1px solid var(--cu-border)}
.csw-editor .ivu-btn-warning{min-height:36px!important;min-width:110px}
.ctoj-ui.csw-active .csw-statement{grid-column:2;grid-row:2;min-height:0;min-width:0;overflow:auto;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;overscroll-behavior:contain}
.csw-statement > .ivu-card-head{padding:14px!important}.csw-statement > .ivu-card-body{padding:18px!important}
.csw-statement .problem-title{font-size:19px!important}.csw-statement #problem-content{overflow-wrap:anywhere}
.csw-statement .sample{flex-direction:column!important;gap:10px}.csw-statement .sample > div{width:100%!important;max-width:100%}
.csw-statement pre{max-width:100%;overflow:auto}.csw-statement img{max-width:100%}
.csw-status{grid-column:1/-1;grid-row:3;padding:7px 12px;background:var(--cu-accent);color:white;font-size:12px}
.ctoj-ui.csw-active .csw-below{grid-column:1/-1;margin-top:16px!important}
.ctoj-ui.csw-active .csw-info{width:100%!important;max-width:none!important;margin:18px 0!important}
.ctoj-ui.csw-active .csw-main.csw-full{position:fixed;inset:0;z-index:1500;height:100dvh;width:100vw!important;grid-template-rows:auto minmax(0,1fr) auto;border-radius:0}
.csw-full .csw-below{display:none!important}
@media(max-width:1000px){.csw-editor .header{gap:8px}.csw-editor .header > .ivu-col{width:100%!important;flex:0 0 100%}.csw-editor .header .fl-right{float:none!important}}
@media(max-width:800px){
.ctoj-ui.csw-active .csw-main{display:flex!important;flex-direction:column}
.csw-toolbar{order:0}.ctoj-ui.csw-active .csw-statement{order:1;max-height:50dvh;border-bottom:1px solid var(--cu-border)!important}
.ctoj-ui.csw-active #submit-code.csw-editor{order:2;min-height:480px;border-right:0!important}.ctoj-ui.csw-active .csw-editor .CodeMirror{height:340px!important}
.csw-status{order:3}.csw-below{order:4}.ctoj-ui.csw-active .csw-main.csw-full{overflow:auto}.csw-toolbar button{min-height:38px}
}

/* v1.11: full statement above; editor + trial I/O below. */
.ctoj-ui.csw-active .csw-main{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto}
.ctoj-ui.csw-active .csw-statement{grid-column:1;grid-row:1;overflow:visible;max-height:none;border-bottom:1px solid var(--cu-border)!important}
.csw-statement .sample{flex-direction:row!important}.csw-statement .sample > div{width:50%!important}
.csw-toolbar{grid-column:1;grid-row:2}
.ctoj-ui.csw-active #submit-code.csw-editor{grid-column:1;grid-row:3;min-height:570px;height:75dvh;border-right:0!important}
.csw-editor > .ivu-card-body{display:grid;grid-template-columns:minmax(0,var(--csw-code,70fr)) minmax(290px,var(--csw-task,30fr));grid-template-rows:minmax(0,1fr) auto;gap:10px}
.csw-editor > .ivu-card-body > div:first-child{grid-column:1;grid-row:1;min-width:0}
.csw-editor > .ivu-card-body > .ivu-row-flex{grid-column:1;grid-row:2;min-width:0}
.csw-tests{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;gap:8px;min-height:0;overflow:auto;border-left:1px solid var(--cu-border);padding-left:12px;color:var(--cu-ink)}
.csw-tests h3{font-size:12px;letter-spacing:.05em;margin:0;padding-bottom:8px;border-bottom:1px solid var(--cu-border)}
.csw-tests label{display:flex;flex-direction:column;gap:5px;font-size:12px}
.csw-tests textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:65px;padding:8px;border:1px solid var(--cu-border);border-radius:5px;background:var(--cu-surface);color:var(--cu-ink);font:13px/1.5 var(--cp-codefont,Consolas,monospace)}
.csw-tests button{min-height:34px;padding:6px 10px;border:1px solid var(--cu-border);border-radius:5px;background:var(--cu-soft);color:var(--cu-ink);cursor:pointer}
.csw-tests button:first-of-type{background:var(--cu-accent);color:white}.csw-tests button:disabled{opacity:.6;cursor:wait}
.csw-tests small{font-size:11px;line-height:1.6}.csw-report{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;margin:0}.csw-report:empty{display:none}
.csw-status{grid-column:1;grid-row:4}
.ctoj-ui.csw-active .csw-main.csw-full{grid-template-rows:auto minmax(0,1fr) auto}
.csw-full .csw-statement{display:none!important}.csw-full .csw-toolbar{grid-row:1}.ctoj-ui.csw-active .csw-full #submit-code.csw-editor{grid-row:2;height:auto;min-height:0}.csw-full .csw-status{grid-row:3}
@media(max-width:800px){
.csw-toolbar{order:1}.ctoj-ui.csw-active .csw-statement{order:0;max-height:none}
.ctoj-ui.csw-active #submit-code.csw-editor{height:auto;min-height:0;overflow:visible}
.csw-editor > .ivu-card-body{display:flex;flex-direction:column}.csw-tests{border-left:0;border-top:1px solid var(--cu-border);padding:12px 0 0;max-height:none;overflow:visible}
.csw-statement .sample{flex-direction:column!important}.csw-statement .sample > div{width:100%!important}
.ctoj-ui.csw-active .csw-full #submit-code.csw-editor{min-height:700px}
}

/* v1.12: reference workspace, statement left/editor right, trial panel below code. */
@media(min-width:801px){
.ctoj-ui.csw-active .csw-main{grid-template-columns:minmax(300px,var(--csw-task,45fr)) minmax(0,var(--csw-code,55fr));grid-template-rows:auto max(650px,calc(100dvh - 160px)) auto}
.csw-toolbar{grid-column:1/-1;grid-row:1}
.ctoj-ui.csw-active .csw-statement{grid-column:1;grid-row:2;overflow:auto;border-bottom:0!important;border-right:1px solid var(--cu-border)!important;overscroll-behavior:contain}
.ctoj-ui.csw-active #submit-code.csw-editor{grid-column:2;grid-row:2;height:100%;min-height:0;overflow:hidden}
.csw-editor > .ivu-card-body{display:flex;flex-direction:column;overflow:auto;min-height:0;overscroll-behavior:contain}
.csw-editor > .ivu-card-body > div:first-child{flex:0 0 auto;height:var(--csw-editor-height,clamp(280px,45dvh,580px));min-height:260px}
.ctoj-ui.csw-active .csw-editor .CodeMirror{height:100%!important;min-height:180px}
.csw-editor > .ivu-card-body > .ivu-row-flex{flex:0 0 auto;margin-bottom:10px}
.csw-status{grid-column:1/-1;grid-row:3}
.ctoj-ui.csw-active .csw-main.csw-classic{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto}
.ctoj-ui.csw-active .csw-classic .csw-statement{grid-column:1;grid-row:1;overflow:visible;border-right:0!important}
.csw-classic .csw-toolbar{grid-column:1;grid-row:2}
.ctoj-ui.csw-active .csw-classic #submit-code.csw-editor{grid-column:1;grid-row:3;height:auto;min-height:0}
.csw-classic .csw-status{grid-column:1;grid-row:4}
.ctoj-ui.csw-active .csw-main.csw-full{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}
.csw-full .csw-toolbar{grid-column:1;grid-row:1}
.ctoj-ui.csw-active .csw-full #submit-code.csw-editor{grid-column:1;grid-row:2;height:100%;min-height:0}
.csw-full .csw-status{grid-column:1;grid-row:3}
}
.csw-tests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;flex:0 0 auto;overflow:visible;border-left:0;border-top:1px solid var(--cu-border);padding:10px 0 0;align-items:start}
.csw-tests h3{grid-column:1/-1;grid-row:1}
.csw-tests > button:first-of-type{grid-column:1/-1;grid-row:2;justify-self:end;min-width:130px}
.csw-tests .csw-trial-input{grid-column:1;grid-row:3;min-width:0}
.csw-tests .csw-trial-output{grid-column:2;grid-row:3;min-width:0}
.csw-tests .csw-trial-expected{grid-column:1/-1;grid-row:4}
.csw-tests > button:nth-of-type(2){grid-column:1/-1;grid-row:5;justify-self:start}
.csw-tests .csw-report{grid-column:1/-1;grid-row:6}.csw-tests > small{grid-column:1/-1;grid-row:7}
.csw-tests textarea{height:110px;max-height:400px}.csw-tests .csw-trial-expected textarea{height:65px}
@media(max-width:800px){.csw-tests{display:flex;flex-direction:column;align-items:stretch}.csw-tests label{width:100%}.csw-tests textarea{height:110px}.csw-editor > .ivu-card-body > div:first-child{flex:none;height:var(--csw-editor-height,420px)}.ctoj-ui.csw-active .csw-editor .CodeMirror{height:100%!important;min-height:180px}}

/* v1.13: shared color roles across navigation, pages and workspaces. */
html.ctoj-ui{--cu-accent:var(--ctoj-primary,#1765a8);--cu-page:#edf5fc;--cu-on-accent:#fff;--cu-muted:#52677d;--cu-hero-ink:#fff}
html.ctoj-ui[data-cu-dark="true"]{--cu-page:#101b2a;--cu-muted:#b6c6d8}
html.ctoj-ui[data-cu-appearance]{--cu-page:var(--cp-bg);--cu-muted:var(--cp-muted)}
.ctoj-ui body,.ctoj-ui .content-app{background:var(--cu-page)!important;color:var(--cu-ink)!important}
.ctoj-ui :is(.ivu-card,.ivu-card-head,.ivu-card-body,.ivu-modal-content,.ivu-modal-header,.ivu-modal-footer,.ivu-select-dropdown,.ivu-dropdown-menu,.ivu-menu-drop-list){background:var(--cu-surface)!important;color:var(--cu-ink)!important;border-color:var(--cu-border)!important}
.ctoj-ui :is(.ivu-card-head p,.ivu-modal-header-inner,.panel-title,.panel-title h2,.problem-title,.markdown-body){color:var(--cu-ink)!important}
.ctoj-ui #header,.ctoj-ui #header > ul.ivu-menu{background:var(--cu-surface)!important;color:var(--cu-ink)!important;border-color:var(--cu-border)!important}
.ctoj-ui #header > ul > :is(.ivu-menu-item,.ivu-menu-submenu),.ctoj-ui #header .ivu-menu-submenu-title{color:var(--cu-ink)!important}
.ctoj-ui #header > ul > .ivu-menu-item-active,.ctoj-ui #header > ul > .ivu-menu-item:hover,.ctoj-ui #header .ivu-menu-submenu-title:hover{color:var(--cu-accent)!important;background:var(--cu-soft)!important}
.ctoj-ui :is(.ivu-dropdown-item,.ivu-select-item){color:var(--cu-ink)!important}
.ctoj-ui :is(.ivu-dropdown-item:hover,.ivu-select-item:hover,.ivu-select-item-selected){background:var(--cu-soft)!important;color:var(--cu-accent)!important}
.ctoj-ui :is(.ivu-input,.ivu-select-selection,.ivu-input-number,.ivu-page-item,.ivu-page-prev,.ivu-page-next){background:var(--cu-surface)!important;color:var(--cu-ink)!important;border-color:var(--cu-border)!important}
.ctoj-ui :is(input,textarea)::placeholder{color:var(--cu-muted)!important;opacity:1}
.ctoj-ui :is(.ivu-input:focus,.ivu-select-visible .ivu-select-selection){border-color:var(--cu-accent)!important}
.ctoj-ui .ivu-btn-default{background:var(--cu-surface)!important;color:var(--cu-ink)!important;border-color:var(--cu-border)!important}
.ctoj-ui .ivu-btn-default:hover{background:var(--cu-soft)!important;color:var(--cu-accent)!important;border-color:var(--cu-accent)!important}
.ctoj-ui .ivu-btn-primary,.ctoj-ui #submit-code .ivu-btn-warning,.ctoj-ui .ci-titlebar .ci-run,.ctoj-ui .csw-tests > button:first-of-type,.ctoj-ui .cp-actions .cp-save{background:var(--cu-accent)!important;color:var(--cu-on-accent)!important;border-color:var(--cu-accent)!important}
.ctoj-ui :is(.ivu-table,.ivu-table td,.ivu-table-body,.ivu-table-tip){background:var(--cu-surface)!important;color:var(--cu-ink)!important;border-color:var(--cu-border)!important}
.ctoj-ui :is(.ivu-table th,.ivu-table-header){background:var(--cu-soft)!important;color:var(--cu-ink)!important;border-color:var(--cu-border)!important}
.ctoj-ui .ivu-table-row-hover td{background:var(--cu-soft)!important}
.ctoj-ui .ivu-table-wrapper{border-color:var(--cu-border)!important}
.ctoj-ui .ivu-page-item-active{border-color:var(--cu-accent)!important}
.ctoj-ui .ivu-page-item-active a,.ctoj-ui .ivu-tabs-nav .ivu-tabs-tab-active,.ctoj-ui #problem-content h3{color:var(--cu-accent)!important}
.ctoj-ui .ivu-tabs-ink-bar{background:var(--cu-accent)!important}
.ctoj-ui #problem-content pre{background:var(--cu-soft)!important;color:var(--cu-ink)!important;border:1px solid var(--cu-border)}
.ctoj-ui .cu-tools-page .cu-tools-hero{background:var(--cu-accent)!important;color:var(--cu-on-accent)!important}
.ctoj-ui .cu-tools-page :is(.cu-tools-heading,.cu-tools-intro,.cu-page-back,.cu-category){color:var(--cu-on-accent)!important}
.ctoj-ui .cu-tools-page .cu-category[aria-pressed="true"]{background:var(--cu-surface)!important;color:var(--cu-accent)!important;border-color:var(--cu-surface)!important}
.ctoj-ui .cu-tools-page .cu-tools-search{background:var(--cu-surface)!important;color:var(--cu-ink)!important;border-color:var(--cu-border)!important}
.ctoj-ui .cu-tools-page .cu-tools-search::placeholder{color:var(--cu-muted)!important}
.ctoj-ui :is(.csw-toolbar,.csw-tests,.ci-titlebar,.ci-explorer){color:var(--cu-ink)}
.ctoj-ui :is(.csw-status,.ci-status){background:var(--cu-accent)!important;color:var(--cu-on-accent)!important}
.ctoj-ui .ci-test-tabs button[aria-pressed="true"]{background:var(--cu-accent)!important;color:var(--cu-on-accent)!important;border-color:var(--cu-accent)!important}
.ctoj-ui.ci-active .ci-workbench:not([data-ci-scheme="dark"]){--ci-bg:var(--cu-page);--ci-panel:var(--cu-surface);--ci-side:var(--cu-soft);--ci-ink:var(--cu-ink);--ci-line:var(--cu-border);--ci-accent:var(--cu-accent)}
.ctoj-ui :is(button,input,select,textarea,a,[tabindex]):focus-visible{outline-color:var(--cu-accent)!important}
.ctoj-ui .content-app > .footer{color:var(--cu-muted)!important;background:transparent!important}
