@font-face{font-family:AaltoSans;src:url(/fonts/AaltoSansEssential-SemiBold.ttf) format("truetype");font-weight:600 700;font-style:normal;font-display:swap}@font-face{font-family:AaltoSans;src:url(/fonts/AaltoSansEssentialAlt-Regular.ttf) format("truetype");font-weight:300 400 500;font-style:normal;font-display:swap}:root{--purple-deep: #361B56;--purple-mid: #763BBC;--purple-soft: #A78BFA;--purple-tint: #EFE6FF;--orange: #FC7262;--orange-soft: #FFA67D;--bg: #F7F4FB;--surface: #FFFFFF;--surface-hover: #EFE6FF;--surface-raised: #F0EBF8;--border: #E9E2F4;--border-subtle: #F3EEF9;--text: #2B1B3F;--muted: #763BBC;--accent: #FC7262;--accent-hover: #FFA67D;--danger: #e53e3e;--danger-bg: rgba(229, 62, 62, .08);--ok: #2f855a;--ok-bg: rgba(47, 133, 90, .08);--nav-bg: #1e1133;--nav-surface: #2a1850;--nav-border: #3d2b6e;--nav-text: rgba(255, 255, 255, .55);--nav-text-hover: rgba(255, 255, 255, .92);--nav-label: rgba(167, 139, 250, .5);--nav-active-bg: rgba(252, 114, 98, .14);--nav-active-text: #FFA67D;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,Roboto,sans-serif;font-size:16px;line-height:1.6;color:var(--text);background:var(--bg)}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}a{color:var(--purple-mid);text-decoration:none}a:hover{color:var(--purple-deep);text-decoration:underline}h1,h2,h3,legend,.toolbar h2,.nav-section-label,.filter-label,th{font-family:AaltoSans,-apple-system,BlinkMacSystemFont,sans-serif}button{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1.125rem;border-radius:8px;font:inherit;font-size:.9375rem;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);transition:background .12s,border-color .12s,color .12s,box-shadow .12s;white-space:nowrap}button:hover:not(:disabled){background:var(--surface-hover);border-color:var(--purple-soft)}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:linear-gradient(135deg,var(--orange-soft),var(--orange));border-color:var(--orange);color:#fff;font-weight:600;font-family:AaltoSans,sans-serif}button.primary:hover:not(:disabled){background:linear-gradient(135deg,#ffb89a,#ff7060);border-color:var(--orange-soft);box-shadow:0 2px 8px #fc726259}button.danger{background:transparent;border-color:var(--border);color:var(--muted)}button.danger:hover:not(:disabled){background:var(--danger-bg);border-color:#e53e3e66;color:var(--danger)}button.btn-confirm{background:var(--danger-bg);border-color:#e53e3e66;color:var(--danger);padding:.2rem .625rem;font-size:.8125rem}button.btn-confirm:hover:not(:disabled){background:var(--danger);color:#fff}button.btn-ghost{background:transparent;border-color:transparent;color:var(--muted);padding:.2rem .5rem}button.btn-ghost:hover:not(:disabled){background:var(--surface-raised);color:var(--text);border-color:var(--border)}input,select,textarea{font:inherit;font-size:.9375rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.375rem .75rem;width:100%;transition:border-color .12s,box-shadow .12s;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--purple-mid);box-shadow:0 0 0 3px #763bbc26}input[type=checkbox]{width:1.125rem;height:1.125rem;accent-color:var(--orange);cursor:pointer}select{cursor:pointer}textarea{resize:vertical}.layout{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.nav{background:var(--nav-bg);border-right:1px solid var(--nav-border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.nav-header{padding:1.25rem 1.125rem;border-bottom:1px solid var(--nav-border)}.nav-logo-row{display:flex;align-items:center;gap:.75rem}.nav-logo-img{width:38px;height:38px;object-fit:contain;flex-shrink:0;background:#fff;border-radius:10px;padding:4px}.nav-logo-text{font-family:AaltoSans,sans-serif;font-weight:600;font-size:1.125rem;line-height:1.1;display:flex;gap:.2em}.nav-logo-text .word-sensei{color:#fff}.nav-logo-text .word-panda{color:var(--orange)}.nav-subtitle{font-size:.75rem;color:var(--nav-label);margin-top:.35rem;padding-left:calc(38px + .75rem);letter-spacing:.02em}.nav-section{padding:1rem .75rem .375rem}.nav-section-label{font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--nav-label);padding:0 .375rem;margin-bottom:.375rem}.nav a{display:flex;align-items:center;gap:.5rem;padding:.5rem .625rem;border-radius:8px;color:var(--nav-text);font-size:.9375rem;text-decoration:none;transition:background .1s,color .1s;margin-bottom:.125rem}.nav a:hover{background:var(--nav-surface);color:var(--nav-text-hover);text-decoration:none}.nav a.active{background:var(--nav-active-bg);color:var(--nav-active-text);font-weight:500}.nav-footer{margin-top:auto;padding:.75rem 1.125rem;border-top:1px solid var(--nav-border)}.nav-api{font-size:.75rem;color:var(--nav-label);word-break:break-all;font-family:ui-monospace,Cascadia Code,monospace}main{padding:2rem 2.5rem;overflow:auto}table{width:100%;border-collapse:collapse;font-size:.875rem;background:var(--surface);border-radius:12px;overflow:hidden;border:1px solid var(--border)}thead{background:var(--surface-raised)}th{text-align:left;padding:.625rem 1rem;color:var(--purple-mid);font-weight:600;font-size:.8125rem;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--border)}td{padding:.75rem 1rem;border-bottom:1px solid var(--border-subtle);vertical-align:middle;color:var(--text)}tbody tr{transition:background .08s}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover td{background:var(--surface-hover)}tbody tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:999px;font-size:.8125rem;font-weight:600;border:1px solid transparent;white-space:nowrap;font-family:AaltoSans,sans-serif}.badge-ok{background:var(--ok-bg);color:var(--ok);border-color:#2f855a33}.badge-muted{background:var(--surface-raised);color:var(--muted);border-color:var(--border)}.badge-modality-material{background:var(--purple-tint);color:var(--purple-deep);border-color:#361b5626}.badge-modality-lesson{background:#e8f4fd;color:#1a6fa8;border-color:#1a6fa833}.badge-modality-exercise{background:#fff0ed;color:#c14a35;border-color:#fc726240}.badge-modality-practice{background:#fff5e0;color:#a06000;border-color:#fcba034d}.toolbar{display:flex;gap:.625rem;flex-wrap:wrap;align-items:center;margin-bottom:1.5rem}.toolbar h2{font-size:1.375rem;font-weight:600;color:var(--purple-deep);letter-spacing:-.01em}.delete-confirm-group{display:flex;align-items:center;gap:.375rem;background:var(--danger-bg);border:1px solid rgba(229,62,62,.25);border-radius:8px;padding:.25rem .625rem;font-size:.8125rem;color:var(--muted)}.form-grid{display:grid;gap:1.25rem;max-width:44rem}.form-grid label,.form-grid .form-field{display:flex;flex-direction:column;gap:.4rem;font-size:.9375rem;color:var(--text)}.form-grid label>span:first-child,.form-grid .form-field>span:first-child{font-size:.875rem;color:var(--muted);font-weight:500}.form-grid input[type=checkbox]{width:auto}.checkbox-row{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.875rem;color:var(--text);cursor:pointer;border-radius:6px}.checkbox-row input[type=checkbox]{flex-shrink:0}.chip-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.chip{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border-radius:999px;border:1.5px solid var(--border);background:var(--surface-raised);color:var(--text);font-size:.875rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,border-color .15s,color .15s}.chip:hover{border-color:var(--purple-mid);color:var(--purple-mid)}.chip.chip-selected{background:var(--purple-tint);border-color:var(--purple-mid);color:var(--purple-deep);font-weight:600}fieldset{border:1px solid var(--border);border-radius:12px;padding:1.125rem 1.25rem;background:var(--surface)}legend{padding:0 .5rem;font-size:1rem;font-weight:600;color:var(--purple-mid);letter-spacing:.01em}.filters-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.125rem 1.25rem;margin-bottom:1.25rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem;align-items:end}.filter-field{display:flex;flex-direction:column;gap:.4rem}.filter-label{font-size:.75rem;font-weight:600;color:var(--purple-mid);text-transform:uppercase;letter-spacing:.07em}.error{color:var(--danger);background:var(--danger-bg);border:1px solid rgba(229,62,62,.25);border-radius:8px;padding:.625rem .875rem;font-size:.875rem;white-space:pre-wrap;margin-bottom:1rem}.muted{color:var(--muted);font-size:.9375rem}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:1rem;height:1rem;border:2px solid var(--border);border-top-color:var(--orange);border-radius:50%;animation:spin .65s linear infinite;flex-shrink:0}.loading{display:flex;align-items:center;justify-content:center;gap:.625rem;color:var(--muted);padding:2.5rem 1rem;font-size:.875rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--muted);font-size:.875rem;background:var(--surface);border:1px solid var(--border);border-radius:12px}.count-bar{font-size:.8125rem;color:var(--muted);margin-bottom:.75rem}.detail-section{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:1rem;overflow:hidden;container-type:inline-size;container-name:detail-section}.detail-section table{border:none;border-radius:0}.detail-section-title{font-family:AaltoSans,sans-serif;font-weight:600;font-size:.8125rem;color:var(--purple-mid);text-transform:uppercase;letter-spacing:.06em;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--surface-raised)}.detail-row{display:grid;grid-template-columns:minmax(5.25rem,28%) minmax(0,1fr);gap:.65rem 1rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border-subtle);align-items:start}.detail-row:last-child{border-bottom:none}.detail-label{font-size:.8125rem;font-weight:600;color:var(--purple-mid);font-family:AaltoSans,sans-serif;padding-top:.1rem;min-width:0;-webkit-hyphens:auto;hyphens:auto}.detail-value{font-size:.9375rem;color:var(--text);word-break:break-word;line-height:1.5;min-width:0}.detail-value a{color:var(--purple-mid);word-break:break-all}:root{--material-transcript-ts-min: 9.25rem;--material-transcript-line-gap: .55rem;--material-reference-inter-paragraph-gap: 2.26875rem ;--material-reference-before-first-para: 1.64875rem }.material-transcript-line{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--material-transcript-line-gap, .55rem);align-items:start}.material-transcript-ts{box-sizing:border-box;min-width:var(--material-transcript-ts-min, 9.25rem)}.material-reference-vs-transcript-para-gap{display:flex;flex-direction:column;gap:var(--material-reference-inter-paragraph-gap);min-width:0;padding-top:var(--material-reference-before-first-para);box-sizing:border-box}.detail-empty{color:var(--muted);font-style:italic}.pack-detail{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.pack-detail>.detail-section{flex:1;min-width:0;margin-bottom:0}.pack-detail-side{flex:0 0 168px;display:flex;flex-direction:column;gap:.5rem}.pack-detail-actions{display:flex;flex-direction:column;gap:.4rem}.pack-detail-actions button{width:100%;justify-content:center;white-space:normal;line-height:1.2;padding:.45rem .5rem;font-size:.8125rem}.pack-image-catalog{padding:1rem 1.25rem}.pack-detail-thumb img,.pack-detail-thumb .pack-thumb-empty{width:168px;height:168px;border-radius:12px}.pack-list-thumb-cell{width:60px;padding-right:.25rem}.pack-list-thumb,.pack-detail-thumb img,.pack-thumb-empty{display:block;object-fit:cover;background:var(--surface-raised);border:1px solid var(--border);box-sizing:border-box}.pack-list-thumb{width:44px;height:44px;border-radius:8px}@container detail-section (max-width: 720px){.detail-row{grid-template-columns:1fr;gap:.35rem}.detail-label{padding-top:0}.material-transcript-line{grid-template-columns:1fr;gap:.15rem;align-items:stretch}.material-transcript-ts{padding-top:0!important;white-space:normal!important;min-width:unset!important}.material-reference-vs-transcript-para-gap{padding-top:1.36875rem}}.material-transcript-editor{min-width:0;width:100%;padding-bottom:.15rem}.material-transcript-editor-head{display:grid;grid-template-columns:minmax(4.25rem,5rem) minmax(4.25rem,5rem) minmax(0,1fr);gap:.35rem;font-size:.65rem;padding-left:.1rem;margin-bottom:.2rem}.material-transcript-editor-rows{display:flex;flex-direction:column;gap:.4rem}.material-transcript-editor-row{display:grid;grid-template-columns:minmax(4.25rem,5rem) minmax(4.25rem,5rem) minmax(0,1fr);gap:.35rem;align-items:start}.material-transcript-editor-cell label{display:flex;flex-direction:column;gap:.12rem;margin:0;min-width:0;font-size:.68rem}.material-transcript-editor-cell input[type=number]{width:100%;box-sizing:border-box;padding:.28rem .35rem;font-size:.8rem;line-height:1.2;min-width:0}.material-transcript-editor-cell textarea{width:100%;min-width:0;min-height:2.5rem;max-height:7rem;padding:.3rem .4rem;font-family:inherit;font-size:1rem;line-height:1.6;resize:vertical;box-sizing:border-box}@container detail-section (min-width: 721px){.material-transcript-editor-field-label{display:none}}@container detail-section (max-width: 720px){.material-transcript-editor-head{display:none}.material-transcript-editor-row{grid-template-columns:1fr 1fr;grid-template-areas:"start end" "text text";gap:.45rem .55rem;padding:.55rem 0;border-bottom:1px solid var(--border-subtle)}.material-transcript-editor-row:last-child{border-bottom:none}.material-transcript-editor-start{grid-area:start;min-width:0}.material-transcript-editor-end{grid-area:end;min-width:0}.material-transcript-editor-text{grid-area:text;min-width:0}.material-transcript-editor-field-label{font-size:.68rem;font-weight:600;color:var(--muted)}}@container detail-section (max-width: 420px){.material-transcript-editor-row{grid-template-columns:1fr;grid-template-areas:"start" "end" "text";gap:.4rem}}.detail-list{display:flex;flex-direction:column}.detail-list-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border-subtle);color:var(--text);text-decoration:none;transition:background .08s;font-size:.9375rem}.detail-list-item:last-child{border-bottom:none}.detail-list-item:hover{background:var(--surface-hover);text-decoration:none;color:var(--purple-deep)}.detail-item-id{font-size:.8125rem;color:var(--muted);font-family:ui-monospace,monospace;flex-shrink:0;min-width:2.5rem}.detail-tags{display:flex;flex-wrap:wrap;gap:.5rem;padding:.875rem 1.25rem}.detail-tag{background:var(--purple-tint);color:var(--purple-deep);border:1px solid var(--border);border-radius:999px;padding:.25rem .75rem;font-size:.875rem;font-weight:500}.detail-day-row{display:grid;grid-template-columns:64px 1fr;gap:1rem;padding:.6rem 1.25rem;border-bottom:1px solid var(--border-subtle);align-items:center}.detail-day-row:last-child{border-bottom:none}.detail-day-num{font-size:.8125rem;font-weight:600;color:var(--orange);font-family:AaltoSans,sans-serif}.login-layout{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:var(--bg)}.login-card{width:100%;max-width:22rem;display:grid;gap:1rem;padding:2rem 1.75rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #361b5614}.login-card label{display:flex;flex-direction:column;gap:.4rem;font-size:.9375rem}.login-card label>span:first-child{font-size:.875rem;color:var(--muted);font-weight:500}.login-card .error{margin:0}.nav-user{font-size:.75rem;color:var(--nav-label);word-break:break-all;margin-bottom:.4rem}.nav-signout{font-size:.75rem;padding:.2rem .5rem;margin-bottom:.5rem}.sos-audio-field{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;margin-top:.15rem}.sos-audio-field audio{display:block;width:100%;max-width:360px;height:36px}.field-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.8125rem}
