:root{--bg: #f4f6fb;--panel: #ffffff;--panel-soft: #eef3ff;--line: #d5ddee;--text: #1d2b45;--muted: #60708f;--brand: #1765e2;--brand-deep: #0d4aa8;--success: #1e9b68;--warning: #d97706;--danger: #c33d3d;--shadow: 0 18px 48px rgba(27, 52, 99, .12)}*{box-sizing:border-box}body{margin:0;font-family:Avenir Next,Hiragino Sans,Noto Sans JP,sans-serif;color:var(--text);background:radial-gradient(circle at top left,rgba(23,101,226,.12),transparent 30%),linear-gradient(180deg,#f8fbff 0%,var(--bg) 100%)}button,input,select,textarea{font:inherit}button{border:0;border-radius:14px;padding:12px 16px;cursor:pointer;background:var(--brand);color:#fff;font-weight:700}button.secondary{background:#dfe8fb;color:var(--brand-deep)}button.ghost{background:transparent;color:var(--brand);border:1px solid var(--line)}button.warn{background:var(--warning)}button:disabled{opacity:.55;cursor:not-allowed}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px}.app-shell{max-width:1360px;margin:0 auto;min-height:100vh;padding:24px}.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;margin-bottom:20px}.hero-card,.panel{background:var(--panel);border:1px solid rgba(213,221,238,.8);border-radius:24px;box-shadow:var(--shadow)}.hero-card{padding:28px;background:linear-gradient(135deg,#1765e214,#fffffff2),var(--panel)}.hero-card h1{margin:0 0 10px;font-size:34px}.hero-card p{margin:0;color:var(--muted);line-height:1.7}.hero-side{padding:24px;background:linear-gradient(180deg,#10284a,#183b6b);color:#fff}.hero-side h2{margin:0 0 10px;font-size:20px}.hero-side p,.hero-side li{color:#ffffffd6;line-height:1.6}.layout{display:grid;grid-template-columns:320px 1fr;gap:20px}.sidebar,.content{display:flex;flex-direction:column;gap:20px}.panel{padding:20px}.panel h3{margin:0 0 14px;font-size:18px}.label{display:block;margin-bottom:8px;font-size:13px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:12px}.row.wrap{flex-wrap:wrap}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.muted{color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:800;background:var(--panel-soft);color:var(--brand-deep)}.pill.success{background:#1e9b681f;color:var(--success)}.pill.warning{background:#d9770624;color:var(--warning)}.pill.danger{background:#c33d3d1f;color:var(--danger)}.card-list{display:grid;gap:14px}.mini-card{padding:16px;border-radius:18px;background:#fbfcff;border:1px solid var(--line)}.mini-card.active{border-color:var(--brand);box-shadow:inset 0 0 0 1px #1765e21a;background:#f7faff}.two-col{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.sentences{display:grid;gap:10px;margin-top:16px}.sentence{padding:12px 14px;border-radius:14px;background:#fafcff;border:1px solid var(--line)}.assignment-list button,.student-list button,.history-list button{width:100%;text-align:left}.status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.status-box{border-radius:18px;padding:16px;background:#fbfcff;border:1px solid var(--line)}.status-box strong{display:block;font-size:28px;margin-top:6px}.feedback-list,.info-list{display:grid;gap:8px;padding-left:18px}.record-box{padding:18px;border-radius:18px;background:linear-gradient(180deg,#f7fbff,#edf4ff);border:1px solid #cfe0ff}.record-indicator{font-size:14px;font-weight:700}.record-time{font-size:34px;font-weight:800;margin:12px 0}.hidden{display:none!important}.notice{border-radius:18px;padding:14px 16px;background:#1765e214;color:var(--brand-deep)}.error{background:#c33d3d14;color:var(--danger)}.success-box{background:#1e9b6814;color:var(--success)}.login-shell{max-width:1100px;margin:0 auto;min-height:100vh;display:grid;align-items:center;padding:24px}.login-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}.hero-side ul{padding-left:20px}@media(max-width:960px){.hero,.layout,.two-col,.login-grid{grid-template-columns:1fr}.status-grid{grid-template-columns:repeat(2,1fr)}}
