:root{--blue:#1769e0;--blue-dark:#0d3f91;--blue-soft:#eaf3ff;--ink:#162033;--muted:#667085;--line:#e3e8ef;--bg:#f5f7fb;--green:#168a53;--red:#c33a3a;--orange:#c56b13;--white:#fff;--radius:14px;--shadow:0 8px 30px rgba(20,43,83,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}.container{width:min(1120px,calc(100% - 32px));margin:auto}.site-header{background:linear-gradient(120deg,var(--blue-dark),var(--blue));color:#fff;box-shadow:0 2px 14px rgba(13,63,145,.24)}.header-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center;color:#fff;text-decoration:none}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.18);font-size:21px;font-weight:800}.brand strong,.brand small{display:block}.brand small{opacity:.78;font-size:12px}.header-user{display:flex;align-items:center;gap:16px}.header-user form{margin:0}.link-button{border:0;background:transparent;color:#fff;cursor:pointer;padding:8px}.page-main{min-height:calc(100vh - 130px);padding:38px 0}.site-footer{text-align:center;color:#8a93a3;padding:18px}.card,.metric-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.button{display:inline-flex;min-height:44px;padding:0 22px;border:0;border-radius:10px;align-items:center;justify-content:center;text-decoration:none;font:inherit;font-weight:700;cursor:pointer}.button-primary{background:var(--blue);color:#fff}.button-primary:hover{background:#0f5cc9}.button-secondary{background:var(--blue-soft);color:var(--blue-dark)}.button-block{width:100%}.alert{padding:12px 16px;border-radius:10px;margin-bottom:18px}.alert-error{background:#fff0f0;color:var(--red);border:1px solid #f4c7c7}.eyebrow{color:var(--blue);font-size:13px;font-weight:800;letter-spacing:.08em}.login-shell{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center;min-height:560px}.login-intro h1{font-size:48px;line-height:1.2;margin:12px 0}.login-intro p{font-size:17px;max-width:590px;color:var(--muted)}.login-card{padding:32px}.login-card h2{margin-top:0}.login-card label{display:block;font-weight:700;margin:16px 0}.login-card input{display:block;width:100%;height:48px;margin-top:7px;border:1px solid #cfd6e0;border-radius:9px;padding:0 12px;font:inherit;outline:none}.login-card input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,105,224,.12)}.help-text{font-size:12px;color:var(--muted);margin-bottom:0}.page-heading,.section-heading,.callout{display:flex;align-items:center;justify-content:space-between;gap:20px}.page-heading{margin-bottom:22px}.page-heading h1,.section-heading h2{margin:4px 0}.status-pill{padding:6px 12px;border-radius:999px;font-weight:800}.status-ok{background:#e8f7ef;color:var(--green)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.metric-card{padding:22px}.metric-card span,.metric-card small{display:block;color:var(--muted)}.metric-card strong{font-size:34px;display:block;margin:8px 0}.metric-card .metric-text{font-size:28px}.card{padding:26px;margin-bottom:20px}.section-heading p{margin:0;color:var(--muted)}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}.feature{border-radius:11px;border:1px solid var(--line);padding:18px;background:#fafbfc}.feature strong,.feature span{display:block}.feature span{margin-top:7px;color:var(--muted)}.feature-done{background:#eef9f3;border-color:#c7ead7}.callout{background:linear-gradient(120deg,#fff,#edf5ff)}.callout h2,.callout p{margin:0}.callout code{color:var(--blue-dark)}.welcome{max-width:760px;margin:60px auto;padding:52px}.welcome h1{font-size:38px}.welcome p{color:var(--muted);font-size:17px}.error-page{text-align:center;margin:60px auto;max-width:600px}.error-page>strong{font-size:70px;color:var(--blue)}
@media(max-width:800px){.login-shell{grid-template-columns:1fr;gap:18px}.login-intro h1{font-size:36px}.metric-grid{grid-template-columns:repeat(2,1fr)}.feature-grid{grid-template-columns:1fr}.page-heading,.callout{align-items:flex-start;flex-direction:column}}@media(max-width:480px){.container{width:min(100% - 22px,1120px)}.header-user>span{display:none}.metric-grid{grid-template-columns:1fr}.page-main{padding-top:24px}.card{padding:20px}}
.admin-nav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.nav-scroll{display:flex;gap:5px;overflow:auto;padding-top:9px;padding-bottom:9px}.nav-scroll a{white-space:nowrap;text-decoration:none;color:var(--ink);padding:7px 11px;border-radius:8px}.nav-scroll a:hover{background:var(--blue-soft);color:var(--blue-dark)}.alert-success{background:#eaf8f0;color:var(--green);border:1px solid #bfe5d0}.action-row,.filter-row,.inline-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.action-row form{margin:0}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{background:#f1f5fa;color:#344054;text-align:left;font-weight:700}.data-table th,.data-table td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}.data-table tr:hover td{background:#fafcff}.data-table .stem{max-width:430px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1/-1}.form-field label{font-weight:700}.form-field input,.form-field select,.form-field textarea,.filter-row input,.filter-row select,.inline-form input,.inline-form select{min-height:42px;border:1px solid #cfd6e0;border-radius:8px;padding:8px 10px;font:inherit;background:#fff}.form-field textarea{min-height:100px;resize:vertical}.inline-form input{max-width:160px}.inline-form .wide{max-width:260px}.muted{color:var(--muted)}.text-green{color:var(--green);font-weight:700}.text-red{color:var(--red);font-weight:700}.text-orange{color:var(--orange);font-weight:700}.tag{display:inline-block;padding:3px 8px;border-radius:999px;background:var(--blue-soft);color:var(--blue-dark);font-size:12px}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.button-small{min-height:34px;padding:0 12px;font-size:13px}.button-danger{background:#fff0f0;color:var(--red)}.stack{display:grid;gap:14px}.question-review{border-left:4px solid var(--line);padding:8px 16px;background:#fafbfc;border-radius:8px}.question-review.wrong{border-left-color:var(--red)}.question-review.correct{border-left-color:var(--green)}.summary-table{max-width:680px}.code-note{background:#f5f7fb;padding:12px;border-radius:8px;font-family:Consolas,monospace;white-space:pre-wrap}.empty{text-align:center;color:var(--muted);padding:36px}.mini-metrics{display:flex;gap:14px;flex-wrap:wrap}.mini-metrics span{background:var(--blue-soft);padding:8px 12px;border-radius:8px}.danger-note{background:#fff5e8;border:1px solid #f0d0a6;padding:12px;border-radius:9px;color:#8d4c0d}@media(max-width:800px){.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.admin-nav{position:static}}
.admin-nav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.nav-scroll{display:flex;gap:5px;overflow:auto;padding-top:9px;padding-bottom:9px}.nav-scroll a{white-space:nowrap;text-decoration:none;color:var(--ink);padding:7px 11px;border-radius:8px}.nav-scroll a:hover{background:var(--blue-soft);color:var(--blue-dark)}.alert-success{background:#eaf8f0;color:var(--green);border:1px solid #bfe5d0}.action-row,.filter-row,.inline-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.action-row form{margin:0}.filter-row select{min-width:180px}.status-filters{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 8px}.status-filter,.status-label{display:inline-flex;align-items:center;min-height:34px;border-radius:999px;padding:4px 13px;text-decoration:none;font-weight:700;white-space:nowrap;background:#eef2f6;color:#475467}.status-filter.active{outline:2px solid var(--blue);outline-offset:1px}.status-passed{background:#e8f7ef;color:var(--green)}.status-failed{background:#fff0f0;color:var(--red)}.status-excellent{background:#fff3d7;color:#9a5a00}.status-not_examined{background:#eef2f6;color:#475467}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{background:#f1f5fa;color:#344054;text-align:left;font-weight:700}.data-table th,.data-table td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}.data-table tr:hover td{background:#fafcff}.data-table .stem{max-width:430px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1/-1}.form-field label{font-weight:700}.form-field input,.form-field select,.form-field textarea,.filter-row input,.filter-row select,.inline-form input,.inline-form select{min-height:42px;border:1px solid #cfd6e0;border-radius:8px;padding:8px 10px;font:inherit;background:#fff}.form-field textarea{min-height:100px;resize:vertical}.inline-form input{max-width:160px}.inline-form .wide{max-width:260px}.muted{color:var(--muted)}.text-green{color:var(--green);font-weight:700}.text-red{color:var(--red);font-weight:700}.text-orange{color:var(--orange);font-weight:700}.tag{display:inline-block;padding:3px 8px;border-radius:999px;background:var(--blue-soft);color:var(--blue-dark);font-size:12px}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.button-small{min-height:34px;padding:0 12px;font-size:13px}.button-danger{background:#fff0f0;color:var(--red)}.stack{display:grid;gap:14px}.question-review{border-left:4px solid var(--line);padding:8px 16px;background:#fafbfc;border-radius:8px}.question-review.wrong{border-left-color:var(--red)}.question-review.correct{border-left-color:var(--green)}.summary-table{max-width:680px}.code-note{background:#f5f7fb;padding:12px;border-radius:8px;font-family:Consolas,monospace;white-space:pre-wrap}.empty{text-align:center;color:var(--muted);padding:36px}.mini-metrics{display:flex;gap:14px;flex-wrap:wrap}.mini-metrics span{background:var(--blue-soft);padding:8px 12px;border-radius:8px}.danger-note{background:#fff5e8;border:1px solid #f0d0a6;padding:12px;border-radius:9px;color:#8d4c0d}@media(max-width:800px){.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.admin-nav{position:static}}
.admin-nav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.nav-scroll{display:flex;gap:5px;overflow:auto;padding-top:9px;padding-bottom:9px}.nav-scroll a{white-space:nowrap;text-decoration:none;color:var(--ink);padding:7px 11px;border-radius:8px}.nav-scroll a:hover{background:var(--blue-soft);color:var(--blue-dark)}.alert-success{background:#eaf8f0;color:var(--green);border:1px solid #bfe5d0}.action-row,.filter-row,.inline-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.action-row form{margin:0}.filter-row select{min-width:180px}.status-filters{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 8px}.status-filter,.status-label{display:inline-flex;align-items:center;min-height:34px;border-radius:999px;padding:4px 13px;text-decoration:none;font-weight:700;white-space:nowrap;background:#eef2f6;color:#475467}.status-filter.active{outline:2px solid var(--blue);outline-offset:1px}.status-passed{background:#e8f7ef;color:var(--green)}.status-failed{background:#fff0f0;color:var(--red)}.status-excellent{background:#fff3d7;color:#9a5a00}.status-not_examined{background:#eef2f6;color:#475467}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{background:#f1f5fa;color:#344054;text-align:left;font-weight:700}.data-table th,.data-table td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}.data-table tr:hover td{background:#fafcff}.data-table .stem{max-width:430px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1/-1}.form-field label{font-weight:700}.form-field input,.form-field select,.form-field textarea,.filter-row input,.filter-row select,.inline-form input,.inline-form select{min-height:42px;border:1px solid #cfd6e0;border-radius:8px;padding:8px 10px;font:inherit;background:#fff}.form-field textarea{min-height:100px;resize:vertical}.inline-form input{max-width:160px}.inline-form .wide{max-width:260px}.muted{color:var(--muted)}.text-green{color:var(--green);font-weight:700}.text-red{color:var(--red);font-weight:700}.text-orange{color:var(--orange);font-weight:700}.tag{display:inline-block;padding:3px 8px;border-radius:999px;background:var(--blue-soft);color:var(--blue-dark);font-size:12px}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.button-small{min-height:34px;padding:0 12px;font-size:13px}.button-danger{background:#fff0f0;color:var(--red)}.stack{display:grid;gap:14px}.question-review{border-left:4px solid var(--line);padding:8px 16px;background:#fafbfc;border-radius:8px}.question-review.wrong{border-left-color:var(--red)}.question-review.correct{border-left-color:var(--green)}.summary-table{max-width:680px}.code-note{background:#f5f7fb;padding:12px;border-radius:8px;font-family:Consolas,monospace;white-space:pre-wrap}.log-details{display:block;max-width:480px;max-height:120px;overflow:auto;white-space:pre-wrap;word-break:break-all}.backup-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:20px}.empty{text-align:center;color:var(--muted);padding:36px}.mini-metrics{display:flex;gap:14px;flex-wrap:wrap}.mini-metrics span{background:var(--blue-soft);padding:8px 12px;border-radius:8px}.danger-note{background:#fff5e8;border:1px solid #f0d0a6;padding:12px;border-radius:9px;color:#8d4c0d}@media(max-width:800px){.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.admin-nav{position:static}}
.question-picker-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(160px,220px) minmax(140px,180px) auto;gap:10px;margin-bottom:12px}.question-picker-toolbar input,.question-picker-toolbar select{min-height:42px;border:1px solid #cfd6e0;border-radius:8px;padding:8px 10px;font:inherit;background:#fff}.required-question-list{max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff}.required-question-row{display:grid;grid-template-columns:auto minmax(100px,130px) auto auto minmax(240px,1fr);align-items:start;gap:10px;padding:11px 12px;border-bottom:1px solid var(--line);cursor:pointer}.required-question-row:last-child{border-bottom:0}.required-question-row:hover{background:#f7faff}.required-question-row input{margin-top:5px}.required-question-code{font-family:Consolas,monospace;font-size:13px;word-break:break-all}.required-question-stem{line-height:1.55}.compact-empty{padding:20px}.required-question-row[hidden]{display:none}@media(max-width:900px){.question-picker-toolbar{grid-template-columns:1fr 1fr}.required-question-row{grid-template-columns:auto minmax(100px,1fr) auto}.required-question-stem{grid-column:2/-1}.required-question-row .tag:last-of-type{display:none}}@media(max-width:560px){.question-picker-toolbar{grid-template-columns:1fr}.required-question-row{grid-template-columns:auto 1fr}.required-question-row .tag{display:none}.required-question-stem{grid-column:2}}
