:root{color:#332b25;font-synthesis:none;--ink:#332b25;--muted:#776c62;--paper:#fffdf8;--line:#e4ddd2;--accent:#d76b3f;--accent-dark:#a94726;--sage:#52715b;--shadow:0 18px 60px #4d3a2b17;background:#f5f1e8;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 20% 0,#fbf7ef 0,#0000 38%),#f5f1e8;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #d76b3f47}h1,h2,h3,p{margin-top:0}.loading-screen{text-align:center;min-height:100vh;color:var(--muted);place-content:center;display:grid}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:0 auto 14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.auth-shell{grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);align-items:center;gap:8vw;max-width:1280px;min-height:100vh;margin:auto;padding:6vw;display:grid}.hero{max-width:600px}.brand-mark{filter:drop-shadow(0 12px 22px #d76b3f38);width:58px;height:58px;display:block}.hero .eyebrow{margin-top:38px}.eyebrow{color:var(--accent-dark);letter-spacing:.14em;margin-bottom:10px;font-size:.72rem;font-weight:700}.hero h1{letter-spacing:-.045em;margin-bottom:0;font-family:Georgia,Noto Serif SC,serif;font-size:clamp(3rem,5.5vw,5.2rem);line-height:1.06}.auth-card,.panel{box-shadow:var(--shadow);background:#fffdf8e6;border:1px solid #ded5cae6;border-radius:24px}.auth-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:38px}.tabs{background:#eee9df;border-radius:12px;gap:6px;margin-bottom:34px;padding:5px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:9px;flex:1;padding:10px;font-weight:600}.tabs button.active{color:var(--ink);background:var(--paper);box-shadow:0 3px 12px #41322614}.section-heading h2,.panel h2{margin-bottom:9px;font-family:Georgia,Noto Serif SC,serif;font-size:1.85rem}.section-heading>p:last-child,.muted{color:var(--muted);line-height:1.65}.stack-form{gap:18px;display:grid}label{color:#564b42;gap:8px;font-size:.88rem;font-weight:600;display:grid}input,select{width:100%;color:var(--ink);background:#fffefa;border:1px solid #d9d1c6;border-radius:11px;padding:12px 14px;transition:border-color .2s,box-shadow .2s}input:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #d76b3f1a}.primary,.secondary,.ghost{border:1px solid #0000;border-radius:11px;padding:12px 17px;font-weight:650;transition:transform .15s,background .15s}.primary{color:#fff;background:var(--accent);box-shadow:0 9px 22px #d76b3f33}.primary:hover{background:var(--accent-dark);transform:translateY(-1px)}.secondary{color:var(--ink);background:#f0ebe2;border-color:#ded6ca}.secondary:hover,.ghost:hover{background:#e8e1d7}.ghost{color:var(--ink);border-color:var(--line);background:0 0}button:disabled{cursor:not-allowed;opacity:.55;transform:none!important}.notice{color:#35543d;background:#edf1ea;border:1px solid #d2dfd3;border-radius:11px;margin-top:18px;padding:12px 14px;font-size:.88rem;line-height:1.5}.notice.error{color:#8d351f;background:#faece7;border-color:#edcfc5}.notice.info{color:#685b50;background:#f2eee7;border-color:#e2dad0}.job-line,.task-banner{color:var(--muted);align-items:center;gap:9px;margin-top:14px;font-size:.85rem;display:flex}.pulse{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.3s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35;transform:scale(.8)}}.switch-row{justify-content:space-between;align-items:center;gap:18px;padding:15px 0;display:flex}.switch-row div{gap:4px;display:grid}.switch-row strong{font-size:.9rem}.switch-row small{color:var(--muted);font-weight:400;line-height:1.5}.switch{flex:none;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch span{background:#cfc7bc;border-radius:20px;width:44px;height:25px;transition:all .2s;position:relative}.switch span:after{content:"";background:#fff;border-radius:50%;width:19px;height:19px;transition:all .2s;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #0000002e}.switch input:checked+span{background:var(--sage)}.switch input:checked+span:after{transform:translate(19px)}.switch input:focus-visible+span{outline-offset:2px;outline:3px solid #52715b40}.app-shell{min-height:100vh}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1320px;height:76px;margin:auto;padding:0 28px;display:flex}.brand{color:var(--ink);align-items:center;gap:12px;text-decoration:none;display:flex}.brand-logo{filter:drop-shadow(0 7px 12px #d76b3f2e);flex:none;width:40px;height:40px}.brand>div{gap:2px;display:grid}.brand small{color:var(--muted);font-size:.69rem}.top-actions{align-items:center;gap:10px;display:flex}.role-pill,.status{border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:#eee9df;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:650}.status.on{color:#36553e;background:#e9f0e8;border-color:#cfddcf}.small{padding:7px 11px;font-size:.8rem}.global-notice,.task-banner{max-width:1264px;margin:18px auto 0}.global-notice{justify-content:space-between;align-items:center;display:flex}.global-notice button{color:inherit;background:0 0;border:0;font-size:1.25rem}.task-banner{color:#7e4c35;background:#fbf1e8;border:1px solid #e5d4c5;border-radius:12px;padding:11px 15px}.content{max-width:1320px;margin:auto;padding:54px 28px 72px}.welcome-row{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:34px;display:flex}.welcome-row h1{letter-spacing:-.035em;margin-bottom:8px;font-family:Georgia,Noto Serif SC,serif;font-size:clamp(2.2rem,4vw,3.6rem)}.welcome-row>div>p:last-child{color:var(--muted);margin:0}.compact{width:auto;padding:12px 20px}.metric-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.metric{background:var(--paper);border:1px solid var(--line);border-radius:20px;min-height:168px;padding:25px;position:relative;overflow:hidden}.metric small{color:var(--muted)}.metric strong{letter-spacing:-.04em;margin-top:20px;font-family:Georgia,serif;font-size:3.1rem;display:block}.metric strong.textual{letter-spacing:-.02em;font-family:Noto Serif SC,Georgia,serif;font-size:2.35rem}.metric span{color:#c9bfb3;letter-spacing:.13em;font-size:.66rem;font-weight:700;position:absolute;bottom:14px;right:18px}.metric.featured{color:#fff9ef;background:#3d352e;border-color:#3d352e}.metric.featured small{color:#d6cec3}.metric.featured span{color:#84766a}.panel{margin-top:18px;padding:26px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px;display:flex}.panel-heading h2{margin:0}.filters{gap:8px;width:min(430px,50%);display:flex}.filters select{width:150px}.table-wrap{margin:0 -26px -26px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:720px}th{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;text-align:left;border-block:1px solid var(--line);background:#f7f3ec;padding:12px 26px;font-size:.72rem}td{color:#5e534a;border-bottom:1px solid #ebe5dc;padding:16px 26px}td:first-child{color:var(--ink)}td small{color:var(--muted);margin-top:3px;display:block}.score{color:#8e452b;background:#f3e9df;border-radius:9px;place-items:center;min-width:44px;padding:5px 9px;font-weight:700;display:inline-grid}.empty-state{text-align:center;color:var(--muted);padding:45px 15px}.empty-state>span{color:var(--accent);font-size:2rem}.empty-state h3{color:var(--ink);margin:10px 0 7px}.settings-grid,.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;display:grid}.settings-grid .panel,.admin-grid .panel{margin-top:0}.settings-grid .panel{gap:14px;padding:22px 26px}.settings-grid .panel-heading{margin-bottom:10px}.settings-grid .switch-row{padding-block:8px}.field-error{color:#9b4027;margin:0;font-size:.82rem;line-height:1.5}.run-preview{border:1px solid var(--line);background:#f8f4ed;border-radius:12px;padding:14px}.run-preview small{color:var(--muted);font-weight:600}.run-preview ol{color:#5f544b;margin:10px 0 0;padding-left:22px;font-size:.86rem;line-height:1.8}.user-list{display:grid}.user-row{border-top:1px solid var(--line);grid-template-columns:minmax(190px,.8fr) minmax(300px,1.2fr) auto auto auto;align-items:center;gap:15px;padding:18px 0;display:grid}.user-identity{align-items:center;gap:12px;display:flex}.user-identity>span{color:#8b533b;background:#eee5da;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-weight:700;display:grid}.user-identity>div{gap:4px;display:grid}.user-identity small{color:var(--muted)}.inline-email{min-width:0}.inline-email label{color:var(--muted);font-size:.7rem}.inline-email input{padding:8px 10px}.row-actions{gap:7px;display:flex}.row-actions button{white-space:nowrap;padding:8px 10px;font-size:.78rem}.full-row{grid-column:1/-1}footer{text-align:center;color:#958a80;border-top:1px solid var(--line);padding:25px;font-size:.75rem}.email-verification{gap:10px;min-width:0;display:grid}.email-input-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.verification-send{min-width:112px;color:var(--ink);background:#f0ebe2;border:1px solid #ded6ca;border-radius:11px;padding:0 12px;font-size:.78rem;font-weight:650}.verification-send.trusted{color:#6f756f;background:#ebece8;border-color:#d9ddd7}.verification-code-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.verification-code-row .secondary{height:43px}.verification-hint{color:var(--muted);font-size:.75rem;line-height:1.5}.drawer-backdrop{z-index:30;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2d251f57;justify-content:flex-end;display:flex;position:fixed;inset:0}.grade-drawer{background:#f7f2e9;width:min(980px,92vw);height:100%;padding:30px;overflow-y:auto;box-shadow:-20px 0 70px #30251d33}.drawer-header{z-index:3;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7f2e9f2;justify-content:space-between;align-items:flex-end;gap:20px;margin:-30px -30px 24px;padding:28px 30px 20px;display:flex;position:sticky;top:-30px}.drawer-header h2{margin:0 0 6px;font-family:Georgia,Noto Serif SC,serif;font-size:2rem}.drawer-header p:last-child{color:var(--muted);margin:0;font-size:.85rem}.drawer-actions{align-items:center;gap:8px;display:flex}.drawer-close{width:42px;height:42px;padding:0;font-size:1.45rem}.drawer-loading{min-height:260px;color:var(--muted);place-content:center;justify-items:center;display:grid}@media (max-width:980px){.auth-shell{grid-template-columns:1fr;gap:44px;padding:48px 24px}.hero{max-width:none}.hero h1{font-size:clamp(2.8rem,9vw,4.5rem)}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.user-row{grid-template-columns:1fr auto auto}.inline-email{grid-column:1/-1}.row-actions{grid-column:1/-1;justify-content:flex-end}}@media (max-width:680px){.auth-shell{gap:24px;padding:24px 16px 36px}.auth-card{padding:25px 20px}.hero .brand-mark{width:46px;height:46px}.hero .eyebrow{margin-top:18px;margin-bottom:8px}.hero h1{font-size:2.2rem;line-height:1.08}.topbar{padding:0 16px}.brand small,.role-pill{display:none}.content{padding:36px 16px 56px}.welcome-row{align-items:start;display:grid}.welcome-row .primary{width:100%}.metric-grid{gap:9px}.metric{min-height:140px;padding:19px}.metric strong{font-size:2.4rem}.metric strong.textual{font-size:1.85rem}.settings-grid,.admin-grid{grid-template-columns:1fr}.panel{border-radius:18px;padding:20px}.panel-heading{display:grid}.filters{width:100%;display:grid}.filters select{width:100%}.table-wrap{margin-inline:-20px;margin-bottom:-20px}th,td{padding-inline:20px}.user-row{grid-template-columns:1fr auto}.inline-email{grid-column:1/-1}.user-row>.status{grid-column:1/-1;justify-self:start}.email-input-row,.verification-code-row{grid-template-columns:1fr}.verification-send{min-height:42px}.grade-drawer{width:100%;padding:20px 16px}.drawer-header{align-items:stretch;margin:-20px -16px 18px;padding:20px 16px 16px;top:-20px}.drawer-actions{align-self:end}.drawer-actions .primary{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
