:root{--bg:#f6f7f9;--panel:#fff;--border:#e2e6eb;--text:#1c2430;--muted:#6b7684;--accent:#2f6fed;--accent-d:#2559c9;--warn-bg:#fff4e0;--warn-br:#f0c26a;--danger:#c23b3b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text)}button,.btn{font:inherit;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:7px;padding:8px 14px;text-decoration:none;display:inline-block}button:hover,.btn:hover{background:var(--accent-d)}button:disabled{opacity:.55;cursor:default}button.ghost,.btn.ghost{color:var(--text);border-color:var(--border);background:#fff}button.ghost:hover,.btn.ghost:hover{background:#f0f2f5}button.primary{background:#1f9d55;border-color:#1f9d55}button.primary:hover{background:#198048}input,select,textarea{font:inherit;border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:7px;padding:8px 10px}textarea{resize:vertical}.muted{color:var(--muted);font-size:13px}.error{color:var(--danger);margin:4px 0;font-size:13px}.gate{place-items:center;min-height:100%;padding:20px;display:grid}.gate-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;width:340px;padding:28px;display:flex}.gate-card h1{margin:0;font-size:20px}.app{max-width:1200px;margin:0 auto;padding:16px}header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:8px 4px 16px;display:flex}header h1{margin:0 0 6px;font-size:22px}.brand{flex-direction:column;display:flex}.tabs{gap:4px;display:flex}.tab{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:7px;padding:6px 12px;font-size:14px}.tab:hover{color:var(--text);background:#eef1f5}.tab.active{color:var(--accent-d);background:#e2ecff;border-color:#cfe0ff}.single{max-width:640px}.list-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.list-head h2{margin:0}.list-head select{width:auto;padding:5px 8px;font-size:13px}.group{margin-bottom:10px}.group-head{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:4px 2px;font-size:12px;font-weight:600}.upload-btn{text-align:center;border:1px dashed var(--border);cursor:pointer;color:var(--text);border-radius:7px;margin-top:8px;padding:9px;font-size:14px;display:block}.upload-btn:hover{border-color:var(--accent);background:#f4f6f9}.criterion{border:1px solid var(--border);border-radius:8px;margin-bottom:8px;padding:10px}.criterion-top{align-items:center;gap:8px;margin-bottom:6px;display:flex}.crit-title{flex:1}.crit-max{text-align:right;width:80px}.crit-of{color:var(--muted);font-size:13px}button.del{color:var(--danger);border-color:var(--border);padding:6px 9px}.class-row{border-top:1px solid var(--border);align-items:center;gap:10px;padding:8px 0;display:flex}.class-row:first-of-type{border-top:none}.class-name{flex:1;font-size:14px}.class-row select{width:auto;max-width:220px;padding:5px 8px;font-size:13px}.cols{grid-template-columns:340px 1fr;align-items:start;gap:16px;display:grid}@media (width<=820px){.cols{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:16px}.card h2{margin:0 0 12px;font-size:15px}.upload label,.section label,.gate-card label{color:var(--muted);margin-bottom:10px;font-size:13px;display:block}.upload label input,.upload label select{margin-top:4px}.list .row{width:100%;color:var(--text);border:1px solid var(--border);text-align:left;background:#fff;border-radius:8px;align-items:center;gap:8px;margin-bottom:8px;padding:9px 11px;display:flex}.list .row:hover{background:#f4f6f9}.list .row.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.row-no{color:var(--muted);white-space:nowrap;background:#eef1f5;border-radius:6px;flex:none;padding:2px 7px;font-size:11px;font-weight:600}.row-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.row-score{font-variant-numeric:tabular-nums;flex:none;font-weight:600}.badge{flex:none}.subgroup{margin:2px 0 8px}.subgroup-head{color:var(--text);border-left:2px solid var(--border);margin-bottom:4px;padding:4px 2px 4px 8px;font-size:12px;font-weight:600}.badge{text-transform:capitalize;color:var(--muted);background:#eef1f5;border-radius:20px;padding:2px 7px;font-size:11px}.badge.marked{color:#2559c9;background:#e2ecff}.badge.finalized{color:#1f7a44;background:#e2f6e9}main{min-height:300px}.empty{background:var(--panel);border:1px dashed var(--border);text-align:center;color:var(--muted);border-radius:12px;padding:48px 20px}.detail-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.detail-head h2{margin:0 0 3px;font-size:18px}.detail-head .actions{align-items:center;gap:10px;display:flex}.total{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.mark-cta{background:var(--panel);border:1px solid var(--border);text-align:center;border-radius:12px;padding:32px}.toolbar{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-bottom:14px;display:flex}.section{background:var(--panel);border:1px solid var(--border);border-radius:12px;margin-bottom:14px;padding:16px}.section-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.section-head h3{margin:0;font-size:15px}.section .score{white-space:nowrap;align-items:center;gap:6px;display:flex}.section .score input{text-align:right;width:74px;font-weight:600}.section h3{margin:0 0 8px}.sw{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=640px){.sw{grid-template-columns:1fr}}.field{margin-bottom:10px}.field-label{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:4px;font-size:13px;display:flex}.copy-btn{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:6px;padding:2px 9px;font-size:12px}.copy-btn:hover{background:#f0f2f5}.flag{background:var(--warn-bg);border:1px solid var(--warn-br);color:#8a5a12;border-radius:8px;margin-bottom:10px;padding:8px 10px;font-size:13px}
