:root{color-scheme:light;font-family:Segoe UI,Aptos,sans-serif;--bg: #f4f6f8;--surface: #ffffff;--surface-soft: #eef2f6;--text: #172033;--muted: #657186;--border: rgba(23, 32, 51, .13);--primary: #2458a6;--success: #137a45;--warning: #b7651e;--danger: #b42318;--shadow: 0 10px 24px rgba(23, 32, 51, .08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button{font:inherit}.admin-shell{display:grid;gap:16px;min-height:100dvh;max-width:1180px;margin:0 auto;padding:24px}.topbar,.environment-strip,.panel-head,.guardrail-list,.segmented-control,.action-list{display:flex}.topbar,.environment-strip{align-items:center;justify-content:space-between;gap:16px}.topbar h1,.ops-panel h2,.auth-boundary h2{margin:0}.topbar h1{font-size:1.6rem;line-height:1.1}.eyebrow,.label{margin:0 0 4px;color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.role-pill{border-radius:8px;padding:9px 12px;font-size:.82rem;font-weight:800}.role-pill.ok{background:#137a451a;color:var(--success)}.role-pill.blocked{background:#b423181a;color:var(--danger)}.environment-strip,.auth-boundary,.ops-panel{border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.environment-strip{padding:14px 16px}.environment-strip strong,.environment-strip span{display:block}.environment-strip span,.panel-head p,.auth-boundary p{margin:4px 0 0;color:var(--muted);line-height:1.45}.segmented-control{gap:4px;border:1px solid rgba(23,32,51,.1);border-radius:8px;background:var(--surface-soft);padding:4px}.segmented-control button,.action-list button{border:0;border-radius:6px;cursor:pointer;font-weight:800}.segmented-control button{min-width:112px;padding:9px 12px;background:transparent;color:var(--muted)}.segmented-control button.active{background:var(--surface);color:var(--text);box-shadow:0 4px 12px #17203314}.auth-boundary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px}.auth-boundary code{border-radius:8px;background:#172033;color:#fff;padding:10px 12px;white-space:nowrap}.auth-form{display:grid;grid-template-columns:minmax(220px,320px) auto auto;align-items:end;gap:10px}.auth-methods{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;border:1px solid rgba(23,32,51,.1);border-radius:8px;background:var(--surface-soft);padding:4px}.auth-form label{display:grid;gap:6px;color:var(--muted);font-weight:700}.auth-form input{min-width:0;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);padding:10px 11px;font:inherit}.auth-form button,.auth-methods button{min-height:42px;border:0;border-radius:8px;background:var(--primary);color:#fff;cursor:pointer;padding:10px 14px;font-weight:800}.auth-methods button{background:transparent;color:var(--muted)}.auth-methods button.active{background:#fff;color:var(--text);box-shadow:0 4px 12px #17203314}.auth-form button:disabled{cursor:not-allowed;background:#17203314;color:var(--muted)}.auth-form .error-line{grid-column:1 / -1}.ops-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ops-panel{display:grid;gap:16px;min-height:230px;padding:18px}.ops-panel.wide{grid-column:1 / -1;min-height:150px}.panel-head{align-items:flex-start;gap:12px}.status-dot{flex:0 0 auto;width:12px;height:12px;margin-top:6px;border-radius:999px}.status-dot.ready{background:var(--success)}.status-dot.locked{background:var(--warning)}.metric-list{display:grid;gap:10px;margin:0}.metric-list div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;border-top:1px solid rgba(23,32,51,.08);padding-top:10px}.metric-list dt{color:var(--muted);font-weight:700}.metric-list dd{margin:0;min-width:0;overflow-wrap:anywhere;font-weight:800}.action-list{flex-direction:column;gap:10px}.action-list button{min-height:44px;padding:11px 12px;background:var(--primary);color:#fff;text-align:left}.action-list button:disabled{cursor:not-allowed;background:#17203314;color:var(--muted)}.guardrail-list{flex-wrap:wrap;gap:8px}.import-form,.word-toolbar,.json-transfer-grid,.word-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.import-form label,.word-toolbar label,.json-transfer-grid label,.word-editor label{display:grid;gap:6px;color:var(--muted);font-weight:700}.import-form input,.word-toolbar input,.word-toolbar select,.json-transfer-grid input,.json-transfer-grid select,.json-transfer-grid textarea,.word-editor input,.word-editor select{min-width:0;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);padding:10px 11px;font:inherit}.word-toolbar{grid-template-columns:minmax(220px,1.5fr) repeat(6,minmax(140px,1fr)) auto auto;align-items:end}.json-transfer-grid{grid-template-columns:auto minmax(180px,1fr) minmax(170px,.6fr) minmax(150px,.4fr);align-items:end}.json-transfer-grid button,.word-editor button{min-height:42px;border:1px solid var(--border);border-radius:8px;background:var(--primary);color:#fff;padding:10px 12px;cursor:pointer;font-weight:800}.json-transfer-grid button:disabled,.word-editor button:disabled{cursor:not-allowed;background:#17203314;color:var(--muted)}.json-textarea{grid-column:1 / -1}.json-transfer-grid textarea{min-height:150px;resize:vertical;font-family:Cascadia Mono,Consolas,monospace}.file-action input{padding:8px}.checkbox-row{grid-template-columns:auto 1fr;align-items:center;align-self:end}.checkbox-row input{width:18px;height:18px;accent-color:var(--primary)}.report-card,.source-table,.coverage-dashboard,.coverage-list{display:grid;gap:10px;border-radius:8px;padding:12px}.report-card.valid{border:1px solid rgba(19,122,69,.2);background:#137a4514}.report-card.invalid{border:1px solid rgba(180,35,24,.2);background:#b4231814}.report-grid,.source-table div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.source-table{border:1px solid var(--border);background:#17203308}.source-table div{border-top:1px solid rgba(23,32,51,.08);padding-top:8px}.source-table div:first-child{border-top:0;padding-top:0}.source-table span{min-width:0;overflow-wrap:anywhere;color:var(--muted)}.word-assignment-table{display:grid;gap:10px;border:1px solid var(--border);border-radius:8px;background:#17203308;padding:12px}.word-table-summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;color:var(--muted)}.word-table-summary strong{color:var(--text);font-size:1.25rem}.word-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.8fr) minmax(260px,1fr);gap:12px;align-items:center;border:1px solid rgba(23,32,51,.1);border-radius:8px;background:#fff;padding:12px}.word-editor{grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr)) repeat(2,auto);align-items:end;border-top:1px solid rgba(23,32,51,.1);padding-top:12px}.word-main{display:grid;gap:3px}.word-main strong{font-size:1.2rem}.word-main span,.word-main p,.empty-line{margin:0;color:var(--muted)}.word-meta,.jlpt-actions{display:flex;flex-wrap:wrap;gap:6px}.word-meta span{border-radius:999px;background:#17203312;padding:5px 8px;color:var(--muted);font-size:.78rem;font-weight:800}.jlpt-actions{justify-content:flex-end}.jlpt-actions button{min-width:44px;min-height:36px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);cursor:pointer;font-weight:800}.jlpt-actions button.active{border-color:var(--primary);background:var(--primary);color:#fff}.jlpt-actions button:disabled{cursor:not-allowed;opacity:.58}.coverage-dashboard{border:1px solid var(--border);background:#17203308}.coverage-summary,.coverage-columns{display:grid;gap:10px}.coverage-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.coverage-summary span,.coverage-list{border:1px solid rgba(23,32,51,.1);background:#fff}.coverage-summary span{display:grid;gap:4px;border-radius:8px;padding:10px;color:var(--muted);font-weight:700}.coverage-summary strong{color:var(--text);font-size:1.2rem}.coverage-table{display:grid;overflow:hidden;border:1px solid rgba(23,32,51,.1);border-radius:8px;background:#fff}.coverage-row{display:grid;grid-template-columns:minmax(180px,1fr) 110px 110px 110px;gap:10px;align-items:center;border-top:1px solid rgba(23,32,51,.08);padding:10px}.coverage-row:first-child{border-top:0}.coverage-row.heading{background:var(--surface-soft);color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.coverage-row small{grid-column:1 / -1;color:var(--muted)}.coverage-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.coverage-list{align-content:start}.coverage-list h3,.coverage-list p{margin:0}.coverage-list h3{font-size:.95rem}.coverage-list div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;border-top:1px solid rgba(23,32,51,.08);padding-top:8px}.coverage-list strong,.coverage-list span{min-width:0;overflow-wrap:anywhere}.coverage-list span,.coverage-list p{color:var(--muted)}.status-label{width:fit-content;border-radius:999px;padding:4px 8px;font-size:.78rem;font-weight:800}.status-label.ready{background:#137a451a;color:var(--success)}.status-label.limited{background:#b7651e1f;color:var(--warning)}.status-label.blocked{background:#b423181a;color:var(--danger)}.secondary-action{width:fit-content;min-height:42px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--primary);padding:10px 12px;cursor:pointer;font-weight:800}.secondary-action:disabled{cursor:not-allowed;color:var(--muted)}.error-line{margin:0;color:var(--danger);font-weight:800}.guardrail-list span{border:1px solid rgba(36,88,166,.18);border-radius:8px;background:#2458a614;color:var(--primary);padding:8px 10px;font-size:.86rem;font-weight:800}@media(max-width:760px){.admin-shell{padding:14px}.topbar,.environment-strip,.auth-boundary{align-items:stretch;grid-template-columns:1fr;flex-direction:column}.segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.segmented-control button{min-width:0}.ops-grid{grid-template-columns:1fr}.metric-list div{grid-template-columns:1fr;gap:4px}.import-form,.auth-form,.word-toolbar,.json-transfer-grid,.word-editor,.report-grid,.source-table div,.coverage-summary,.coverage-columns,.coverage-row,.coverage-list div,.word-row{grid-template-columns:1fr}.jlpt-actions{justify-content:flex-start}.auth-boundary code{white-space:normal}}
