@charset "UTF-8";
:root{--nav:#142c3b;--nav-soft:#203c4b;--ink:#1c2d3c;--muted:#657481;--line:#dfe6e9;--bg:#f3f6f7;--card:#fff;--teal:#087b72;--teal-dark:#065f58;--mint:#e6f4ef;--amber:#93621b;--red:#b83f40;--radius:12px;--shadow:0 6px 25px #16324308;font-family:Inter,"Segoe UI","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);font-size:15px;line-height:1.6;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button,a{transition:background .18s,color .18s,box-shadow .18s}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #4eac9e;outline-offset:3px}input,select,textarea{width:100%;border:1px solid #cfd9df;border-radius:8px;padding:11px 12px;min-height:44px;background:#fff;color:var(--ink)}textarea{resize:vertical;min-height:96px;line-height:1.7}input[type=checkbox],input[type=radio]{width:18px;min-height:18px;accent-color:var(--teal)}label{display:grid;gap:7px;font-size:14px;font-weight:600}label small{font-weight:400;color:var(--muted)}h1,h2,h3,p{margin:0}h1{font-size:28px;letter-spacing:-.6px;line-height:1.4;font-weight:650}h2{font-size:18px;font-weight:650}h3{font-size:16px;font-weight:650}small{font-size:12px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.muted{color:var(--muted)}.mono{font-family:Consolas,monospace;letter-spacing:.3px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--teal)}.skip-link{position:fixed;top:-60px;left:250px;background:#fff;padding:12px;z-index:100}.skip-link:focus{top:8px}
.sidebar{width:234px;position:fixed;inset:0 auto 0 0;background:var(--nav);color:#c5d3dc;display:flex;flex-direction:column;padding:29px 18px 18px;z-index:30}.brand{display:flex;align-items:center;gap:11px;color:#fff;font-size:17px;font-weight:650;line-height:1.35}.brand-icon{display:grid;place-items:center;background:#73c7b6;color:#102e34;border-radius:10px;width:38px;height:42px;font-size:27px;font-weight:750;flex-shrink:0}.brand small{display:block;font-size:8px;font-weight:500;letter-spacing:1.8px;color:#a6bdc8;margin-top:6px}.nav-section{font-size:10px;color:#91a8b6;letter-spacing:2px;margin:36px 14px 12px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:7px;min-height:46px;font-size:14px}.sidebar nav a:hover{background:var(--nav-soft);color:#fff}.sidebar nav a.active{background:#264b55;color:#a4e8d7;box-shadow:inset 3px 0 #80cfba}.sidebar nav a.active svg{color:#a4e8d7}.sidebar-bottom{margin-top:auto;padding-top:35px}.connection{display:flex;gap:10px;border-bottom:1px solid #36505c;padding:15px 8px 22px;font-size:12px;align-items:flex-start}.status-dot{display:inline-block;background:#63bca4;width:7px;height:7px;border-radius:50%;margin-top:6px;flex-shrink:0}.connection small{display:block;color:#96aebc;margin-top:4px;font-size:10px}.profile{display:flex;gap:12px;align-items:center;padding:21px 8px 5px}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#34525e;color:#d5ede8;font-size:14px;flex-shrink:0}.profile strong{font-size:13px;color:#e7f0f5;font-weight:500}.profile small{display:block;color:#95aebb;font-size:10px}.workspace{margin-left:234px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:#fff;border-bottom:1px solid var(--line)}.topbar-left,.topbar-right{display:flex;align-items:center;gap:18px}.topbar-right{font-size:12px}.breadcrumb{color:var(--muted);font-size:12px}.breadcrumb span{margin:0 13px;color:#b1bec4}.breadcrumb strong{color:var(--ink);font-weight:500}.topbar form{display:flex}.icon-button{width:38px;height:38px;padding:8px;display:grid;place-items:center;border:0;background:transparent;border-radius:7px;color:var(--muted)}.icon-button:hover{background:var(--bg);color:var(--ink)}.mobile-menu{display:none}#content{padding:32px 38px;max-width:1620px;width:100%;margin:0 auto;flex:1}.workspace-footer{font-size:10px;color:#7b8b95;display:flex;justify-content:space-between;padding:4px 38px 22px}.page-head{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:28px}.page-head .eyebrow{display:block;margin-bottom:7px}.page-head p{color:var(--muted);font-size:13px;margin-top:8px}.head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:10px 17px;min-height:44px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-weight:600;font-size:13px;white-space:nowrap}.button:hover{background:#f3f7f6;border-color:#a8bfbb}.button.primary{background:var(--teal);border-color:var(--teal);color:#fff}.button.primary:hover{background:var(--teal-dark)}.button.dark{background:var(--nav);color:#fff;border-color:var(--nav)}.button.light{background:#eff9f4;color:#21554d;border-color:#eff9f4}.button.danger{color:var(--red);border-color:#edcccc}.button.small{min-height:34px;padding:5px 10px;font-size:12px}.button svg{width:17px;height:17px}.full{width:100%}.link{color:var(--teal);font-size:13px;font-weight:600;background:none;border:0;padding:8px;min-height:36px}.link:hover{text-decoration:underline}.badge{display:inline-flex;align-items:center;gap:6px;background:var(--mint);color:#116958;padding:3px 8px;border-radius:4px;font-size:11px;line-height:1.8;font-weight:600;white-space:nowrap}.badge.neutral{background:#edf1f4;color:#586e7d}.badge.warning{background:#fff3dd;color:var(--amber)}.badge.danger{background:#fbecec;color:var(--red)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:25px}.stat-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:20px 22px;box-shadow:var(--shadow)}.stat-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.stat-top svg{color:#56877e;width:18px}.stat-number{font-family:"Segoe UI",sans-serif;font-size:32px;font-weight:600;letter-spacing:-1px;line-height:1.5;margin-top:9px;display:flex;align-items:baseline;gap:7px}.stat-number span{font-size:12px;color:var(--muted);font-family:inherit;letter-spacing:0;font-weight:400}.stat-foot{color:#6a808a;font-size:11px;margin-top:6px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(260px,1fr);gap:23px;margin-bottom:25px}.hero-panel{border-radius:var(--radius);padding:29px 32px;background:var(--nav);color:#fff;position:relative;overflow:hidden;min-height:247px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.hero-panel .eyebrow{color:#9bccbd;font-size:10px}.hero-panel h2{font-size:25px;line-height:1.5;max-width:75%;margin:12px 0 7px;letter-spacing:-.5px}.hero-panel p{color:#abc0c9;font-size:12px;max-width:75%;line-height:1.9}.hero-panel .button{margin-top:22px}.hero-circuit{position:absolute;right:-10px;top:0;width:240px;height:100%;opacity:.35;pointer-events:none;stroke:#78b9ab;stroke-width:1}.hero-circuit circle{fill:var(--nav);stroke:#94d8bf}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:19px 23px;border-bottom:1px solid #edf1f3}.panel-head h2{font-size:15px}.panel-body{padding:22px 23px}.panel-body>p{font-size:13px}.readiness{padding:20px 23px}.ready-row{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid #edf1f3;font-size:12px}.ready-row:last-child{border:0}.ready-row svg{width:17px;color:var(--teal)}.ready-row>span:nth-child(2){flex:1}.table-wrap{width:100%;overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{color:#6c7c86;background:#f8fafb;font-size:11px;font-weight:500;white-space:nowrap;padding:12px 18px;border-bottom:1px solid var(--line)}td{padding:15px 18px;border-bottom:1px solid #edf1f3;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcfc}td strong{font-weight:600}td small{display:block;color:var(--muted);font-size:10px;margin-top:4px}td.actions{white-space:nowrap}td .link{font-size:12px;padding:6px}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.empty svg{width:32px;height:32px;color:#97b1bc;margin-bottom:12px}.empty h3{color:#536977;margin-bottom:5px}.empty p{font-size:12px}.empty .button{margin-top:18px}.equipment-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.equipment-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 16px;min-height:153px;display:flex;flex-direction:column;gap:9px;text-align:left;cursor:pointer;position:relative}.equipment-card:hover{border-color:#62ad9d;background:#f9fdfb}.equipment-card.selected{border:2px solid var(--teal);padding:19px 15px;background:#f2faf7}.equipment-card .paper-letter{font-size:18px;color:var(--teal);font-family:Consolas,monospace;font-weight:600}.equipment-card .paper-top{display:flex;align-items:center;justify-content:space-between}.paper-top svg{color:#8aaba7}.equipment-card strong{font-size:14px}.equipment-card small{color:var(--muted);font-weight:400;font-size:10px}.equipment-card input{position:absolute;opacity:0;top:0;left:0}.equipment-card:has(input:focus-visible){outline:3px solid #4eac9e;outline-offset:3px}.equipment-card.unavailable{background:#f6f8f9;color:#84929b;cursor:not-allowed}.section-label{display:flex;align-items:center;gap:10px;margin:26px 0 15px;font-weight:600;font-size:14px}.step-number{font-family:Consolas,monospace;font-size:11px;color:var(--teal);background:var(--mint);padding:3px 8px;border-radius:4px}.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.level-card{position:relative;display:flex;align-items:center;gap:14px;border:1px solid var(--line);background:#fff;padding:20px;border-radius:9px;cursor:pointer}.level-card:has(input:checked){border-color:var(--teal);background:#f2faf7}.level-card strong{display:block;font-size:15px}.level-card small{color:var(--muted);font-size:11px}.level-count{margin-left:auto;font-size:25px;font-weight:600;color:#244c4e}.level-count small{font-size:11px;margin-left:5px}.setup-footer{margin-top:25px;display:flex;align-items:center;justify-content:space-between;gap:20px}.setup-footer p{font-size:12px;color:var(--muted)}.notice{border:1px solid #c7e4dc;background:#eef9f5;color:#216b5c;padding:13px 16px;border-radius:7px;font-size:12px;margin-bottom:18px;line-height:1.8}.notice.warning{border-color:#eedbb7;background:#fff8eb;color:#896126}.notice.error{border-color:#efcccc;background:#fff2f2;color:#a83131}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:0 0 20px}.toolbar input{max-width:290px}.toolbar select{width:auto;min-width:125px}.toolbar label{font-weight:400;font-size:11px;gap:4px}.toolbar .search-field{position:relative;flex:1;min-width:180px;max-width:300px}.search-field input{padding-left:37px}.search-field svg{position:absolute;left:12px;top:13px;width:17px;color:#7f929c}.toolbar .spacer{flex:1}.table-caption{font-size:12px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.span-2{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.check-label{display:flex;align-items:center;gap:10px;font-weight:400}.help{font-size:11px;color:var(--muted);margin-top:7px}.split{display:grid;grid-template-columns:1fr 1fr;gap:22px}.exam-grid{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.3fr);gap:24px}.device-board{background:#172f3c;color:#d9e9ec;border-radius:var(--radius);padding:23px}.device-board .panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.device-board h2{font-size:15px}.device-board .badge{background:#304b53;color:#bbddd6}.device-tile{border:1px solid #3b5963;background:#203e4a;padding:17px;border-radius:8px;margin-bottom:12px}.device-tile>div{display:flex;justify-content:space-between;align-items:center}.device-tile strong{font-size:13px}.device-tile small{color:#bad0d5;font-size:11px}.device-track{display:flex;gap:6px;margin-top:14px}.device-track i{height:5px;border-radius:2px;flex:1;background:#ba9958}.device-track i.done{background:#67c3a6}.device-board p{font-size:11px;color:#a9c1c9;line-height:1.9;margin:18px 0}.device-board .button{width:100%;margin-top:4px}.answer-form{display:grid;gap:19px}.clue-label{display:flex;align-items:center;gap:10px;margin-bottom:7px;font-size:13px;font-weight:600}.clue-label span{font-family:Consolas,monospace;color:#74a59b;font-size:12px}.answer-feedback{padding:14px;background:var(--mint);color:var(--teal-dark);border-radius:7px;margin-top:16px;font-size:13px}.answer-feedback.wrong{background:#fff3df;color:#865c24}.exam-timer{font-family:Consolas,monospace;font-size:22px;letter-spacing:1px}.exam-progress{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 22px;background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:23px}.progress-bar{height:7px;background:#e9efee;border-radius:6px;overflow:hidden;margin-top:7px;min-width:200px}.progress-bar>i{display:block;background:var(--teal);height:100%;border-radius:6px}.measurement{border:1px solid #dde6e4;padding:13px;margin-bottom:10px;border-radius:7px;font-size:13px}.measurement strong{display:block;margin-bottom:5px}.measurement .badge{margin-left:8px}.result-hero{display:flex;align-items:center;gap:28px;padding:30px;background:var(--nav);color:#fff;border-radius:var(--radius);margin-bottom:23px}.score-ring{width:118px;height:118px;border:6px solid #53867b;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;flex-shrink:0}.score-ring strong{font-size:35px;line-height:1.2}.score-ring small{color:#a9cac2;font-size:10px}.result-hero h2{font-size:23px;margin-bottom:6px}.result-hero p{font-size:12px;color:#b9ccd3;line-height:1.9}.tabs{display:flex;border-bottom:1px solid var(--line);gap:24px;margin-bottom:23px;overflow:auto}.tab{padding:12px 0;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);white-space:nowrap;min-height:44px;font-size:13px}.tab.active{border-bottom-color:var(--teal);color:var(--teal);font-weight:650}.setting-section{padding:22px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:20px}.setting-section h3{margin-bottom:17px}.rule-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:17px;align-items:center;padding:12px 0;border-bottom:1px solid #edf1f3}.rule-row:last-child{border:0}.dict-row{display:grid;grid-template-columns:170px 1fr;gap:17px;align-items:start;padding:15px 0;border-bottom:1px solid #edf1f3}.dict-row textarea{min-height:110px;font-size:13px}.member-options{display:flex;gap:18px;flex-wrap:wrap}.chart-bars{height:160px;display:flex;gap:15px;align-items:flex-end;border-bottom:1px solid var(--line);margin:20px 0 32px}.chart-col{flex:1;position:relative;text-align:center;height:100%;display:flex;flex-direction:column;justify-content:flex-end}.chart-col i{display:block;background:#80b7a7;border-radius:4px 4px 0 0;min-height:3px;width:65%;margin:0 auto}.chart-col b{font-size:11px;font-weight:500;margin-bottom:5px}.chart-col small{position:absolute;bottom:-25px;left:0;right:0;color:var(--muted);font-size:10px}.category-stat{margin:17px 0}.category-stat>div{display:flex;justify-content:space-between;font-size:12px}.category-stat .progress-bar{min-width:0;height:6px}.toast{position:fixed;bottom:25px;left:calc(50% + 117px);transform:translateX(-50%);max-width:min(620px,90vw);background:#153e36;color:#fff;padding:14px 23px;border-radius:9px;box-shadow:0 10px 35px #1237;z-index:80;font-size:13px}.toast.error{background:#873c37}dialog{border:1px solid var(--line);border-radius:14px;padding:0;width:min(720px,94vw);max-height:90vh;box-shadow:0 20px 80px #102e3840;color:var(--ink)}dialog::backdrop{background:#0e263b70;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:18px}.dialog-body{padding:23px 25px;overflow:auto}.dialog-body .table-wrap{max-height:320px}.dialog-body .form-actions{position:sticky;bottom:-23px;background:#fff;padding:16px 0;margin-bottom:-16px}.loading{padding:70px;text-align:center;color:var(--muted)}.error-page{padding:15vh 12vw}.error-page h1{margin:20px 0}.auth-body{background:#fff}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.auth-story{background:var(--nav);padding:55px 12%;color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.auth-story .eyebrow{color:#90c4b4;font-size:10px}.auth-story h1{font-size:44px;line-height:1.45;margin:20px 0;letter-spacing:-1px}.auth-story p{font-size:14px;color:#adc3cd;line-height:2}.auth-foot{color:#93aebc;font-size:11px;letter-spacing:2px}.auth-form{display:flex;align-items:center;justify-content:center;padding:45px}.auth-form-inner{width:100%;max-width:365px}.auth-form h2{font-size:26px;margin:10px 0}.auth-form .muted{font-size:13px;margin-bottom:28px}.auth-form form{display:grid;gap:20px}.auth-form .button{margin-top:6px}.auth-help{font-size:11px;color:var(--muted);margin-top:24px;line-height:1.8}.mode-note{display:flex;gap:8px;align-items:center;margin-top:42px;font-size:11px;color:var(--muted)}.mode-note .status-dot{margin:0}.circuit-art{height:120px;margin-top:40px;display:flex;align-items:center;gap:15px;position:relative}.circuit-art i{position:absolute;left:0;width:100%;height:1px;background:#3f6470}.circuit-art i:nth-child(2){transform:translateY(-23px);width:80%}.circuit-art i:nth-child(3){transform:translateY(23px);width:85%}.circuit-art b{border:1px solid #69918d;background:var(--nav);width:54px;height:64px;display:grid;place-items:center;color:#90bdaf;font:19px Consolas;z-index:1;margin-right:23px}.nav-shade{position:fixed;inset:0;background:#0c273d70;z-index:25;border:0}
@media(min-width:1600px){#content{padding-top:40px}.hero-panel{min-height:280px}}
@media(max-width:1200px){.sidebar{width:210px;padding-left:13px;padding-right:13px}.brand{font-size:15px}.workspace{margin-left:210px}#content{padding:25px}.topbar{padding:0 25px}.stats-grid{gap:12px}.stat-card{padding:16px}.dashboard-grid{grid-template-columns:1.5fr 1fr}.hero-panel{padding:25px}.hero-circuit{right:-60px}.equipment-grid{grid-template-columns:repeat(3,1fr)}.hero-panel h2{font-size:22px}.toast{left:calc(50% + 105px)}}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:translateX(0)}.workspace{margin-left:0}.mobile-menu{display:grid}.topbar{height:65px}.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.hero-panel{min-height:220px}.hero-circuit{right:0}.exam-grid{grid-template-columns:.8fr 1.2fr}.topbar-right #date{display:none}.toast{left:50%}.auth-story{padding:40px 10%}.auth-story h1{font-size:34px}.equipment-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){#content{padding:23px 16px}.topbar{padding:0 16px}.topbar-right{gap:7px}.breadcrumb{font-size:11px}.breadcrumb span{margin:0 7px}.page-head{align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:22px}h1{font-size:25px}.stat-number{font-size:29px}.stat-card{padding:16px}.stat-top{font-size:11px}.stat-foot{font-size:10px}.dashboard-grid{gap:18px}.hero-panel{padding:24px;min-height:235px}.hero-panel h2{max-width:90%}.hero-panel p{max-width:80%;font-size:11px}.hero-circuit{right:-85px}.equipment-grid{grid-template-columns:repeat(2,1fr);gap:10px}.equipment-card{min-height:135px;padding:16px}.equipment-card.selected{padding:15px}.levels{gap:9px;grid-template-columns:1fr}.level-card{padding:13px 16px}.setup-footer{align-items:stretch;flex-direction:column}.exam-grid,.split{grid-template-columns:1fr}.exam-progress{padding:15px;flex-wrap:wrap}.progress-bar{min-width:140px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.panel-body{padding:18px}.panel-head{padding:16px 18px}.result-hero{padding:22px;gap:19px}.score-ring{width:90px;height:90px}.score-ring strong{font-size:29px}.result-hero h2{font-size:19px}.workspace-footer{padding:8px 16px 20px;font-size:9px}.toolbar{gap:9px}.toolbar select{min-width:100px;max-width:100%}.toolbar input{max-width:100%}.rule-row{grid-template-columns:1fr 1fr}.rule-row>strong{grid-column:1/-1}.dict-row{grid-template-columns:1fr;gap:10px}.auth-layout{grid-template-columns:1fr}.auth-story{display:none}.auth-form{min-height:100vh;padding:35px 25px}.auth-form-inner{max-width:390px}.dialog-body{padding:20px}.dialog-head{padding:17px 20px}.topbar .badge{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.sidebar,.topbar,.workspace-footer,.head-actions,.no-print,.toast{display:none!important}.workspace{margin:0}body{background:#fff}#content{padding:0}.panel{box-shadow:none;break-inside:avoid}.result-hero{color:#000;background:#fff;border:1px solid #aaa}.result-hero p{color:#333}table{font-size:10px}.table-wrap{overflow:visible}}

.level-card.unavailable{opacity:.55;cursor:not-allowed;background:#f0f3f4}.dict-row>[data-remove-category]{grid-column:1/-1;justify-self:start;margin-top:-4px}
