:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f7fb;color:#15213b}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#f8fbff,#eef3ff)}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;padding:24px}.app-header,.hero-card,.panel-card,.room-card{border:1px solid #dfe7fb;background:#ffffffeb;box-shadow:0 14px 40px #1b356c14;border-radius:24px}.app-header{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:24px 28px;margin-bottom:20px}h1,h2,h3,p{margin:0}h1{font-size:28px}h2{font-size:30px;line-height:1.2}h3{font-size:18px;margin-bottom:12px}.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#5b6f9e;margin-bottom:8px}.page-grid{display:grid;gap:20px}.hero-card{padding:28px;display:grid;gap:16px}.hero-actions,.top-actions,.action-row,.side-actions,.stat-row,.tag-row{display:flex;flex-wrap:wrap;gap:12px}.room-grid,.two-col-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.room-card,.panel-card{padding:20px}.room-top{display:flex;justify-content:space-between;margin-bottom:12px}.room-badge,.room-count,.tag{display:inline-flex;align-items:center;border-radius:999px;padding:6px 12px;background:#edf3ff;color:#2a4a88;font-size:13px}.room-title{font-weight:700;margin-bottom:6px}.room-subtitle{color:#5d6a85;margin-bottom:12px}.primary-button,.ghost-button,.choice-chip{border-radius:18px;padding:10px 16px;border:1px solid #cad8fd;cursor:pointer;transition:.18s ease}.primary-button{background:linear-gradient(135deg,#3777ff,#6f58ff);color:#fff;border-color:transparent}.ghost-button,.choice-chip{background:#fff;color:#23355d}.primary-button:hover,.ghost-button:hover,.choice-chip:hover{transform:translateY(-1px);box-shadow:0 8px 20px #3865ff26}.primary-button:disabled,.ghost-button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.play-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,.9fr);gap:20px}.play-main,.play-side{min-width:0}.sticky-top{display:grid;gap:16px}.play-headline{display:flex;justify-content:space-between;gap:16px}.stat-pill{border-radius:18px;padding:10px 14px;background:#f3f6ff;min-width:92px;display:grid;gap:4px}.stat-pill span{font-size:12px;color:#6274a3}.banner{border-radius:16px;padding:12px 14px;display:grid;gap:6px}.tone-info{background:#edf6ff;color:#184a8b}.tone-success{background:#effcf1;color:#196436}.tone-warning{background:#fff8ea;color:#9d5f00}.tone-error{background:#fff0f0;color:#a02222}.stem-blocks,.panel-section{display:grid;gap:12px}.text-block{border-radius:18px;padding:14px 16px;background:#f7f9ff;line-height:1.65}.text-title,.text-subtitle,.text-callout{font-weight:700}.resource-box,.placeholder-box,.hint-box{border-radius:18px;padding:14px 16px;background:#f8fbff;border:1px dashed #c9d7fd;display:grid;gap:6px;color:#516485}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(144px,1fr));gap:12px}.choice-chip{text-align:left;display:grid;gap:6px}.choice-chip.is-active{background:#245eff;color:#fff;border-color:transparent}.choice-value{font-size:12px;opacity:.8}.field-label{font-size:13px;color:#596a8d;margin-bottom:6px}.number-input,.select-input,.json-textarea,.grid-select{width:100%;border-radius:16px;border:1px solid #cdd8f7;padding:12px 14px;background:#fff}.json-textarea{min-height:120px;resize:vertical}.slot-list{display:grid;gap:12px}.slot-item{display:grid;gap:6px}.grid-board{display:grid;gap:8px}.grid-cell{min-height:56px;border-radius:16px;background:#f8fbff;border:1px solid #d5dff8;display:flex;align-items:center;justify-content:center;padding:6px}.grid-cell.is-locked{background:#e9efff;color:#3158a5;font-weight:700}.meta-list{margin:0;padding-left:18px;display:grid;gap:8px;color:#475a7d}.review-title{font-weight:700;margin-bottom:10px}.summary-table{display:grid;gap:10px}.summary-row{display:grid;grid-template-columns:96px minmax(0,1fr) 88px 64px;gap:12px;border-radius:14px;padding:12px 14px;background:#f8fbff}@media (max-width: 980px){.play-layout{grid-template-columns:1fr}.app-header,.play-headline{grid-template-columns:1fr;display:grid}}.wrap-actions{flex-wrap:wrap}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.quick-grid{gap:12px}.quick-row{width:100%;border:1px solid #dbe5ff;background:#f8fbff;cursor:pointer;text-align:left}.quick-row span:nth-child(2){color:#5d6a85}.paper-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.paper-card{border-radius:18px;border:1px solid #dfe7fb;background:#f8fbff;padding:18px;display:grid;gap:14px}.paper-card h4{margin:0 0 6px;font-size:18px}@media (max-width: 980px){.summary-row,.quick-row{grid-template-columns:1fr}}.figure-stage{border-radius:24px;border:1px solid #d9e6ff;background:linear-gradient(180deg,#fbfdff,#f3f8ff);padding:16px;display:grid;gap:14px}.figure-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.figure-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:12px;color:var(--figure-accent, #3777ff);background:color-mix(in srgb,var(--figure-accent, #3777ff) 10%,white);margin-bottom:8px}.figure-title{display:block;font-size:15px;color:#21345d}.figure-canvas-wrap{position:relative;overflow:hidden;border-radius:20px;border:1px solid #d7e3fb;background:#fff;min-height:260px}.figure-canvas-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(96,131,197,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(96,131,197,.05) 1px,transparent 1px);background-size:24px 24px;pointer-events:none}.figure-image{position:relative;z-index:1;display:block;width:100%;height:auto;object-fit:contain}.family-spatial .figure-canvas-wrap,.family-logic .figure-canvas-wrap{background:linear-gradient(180deg,#fff,#f8fbff)}.family-dynamic .figure-canvas-wrap{background:linear-gradient(180deg,#fffefe,#fff6f6)}.aspect-square .figure-image{aspect-ratio:1 / 1}.aspect-wide .figure-image{aspect-ratio:16 / 9}.aspect-tall .figure-image{aspect-ratio:3 / 4}.figure-hints,.image-modal-hints{display:flex;flex-wrap:wrap;gap:10px}.figure-hint-chip{display:inline-flex;align-items:center;border-radius:999px;padding:7px 12px;background:#eef4ff;color:#44639f;font-size:12px}.image-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f192e8f;display:grid;place-items:center;padding:24px;z-index:1000}.image-modal-card{width:min(1180px,100%);max-height:calc(100vh - 48px);background:#fff;border-radius:28px;border:1px solid #dbe6ff;box-shadow:0 24px 48px #0f23503d;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.image-modal-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;border-bottom:1px solid #edf2ff}.image-modal-body{overflow:auto;background:linear-gradient(180deg,#f8fbff,#f2f7ff);padding:20px}.image-modal-img{display:block;width:100%;height:auto;object-fit:contain;border-radius:18px;background:#fff}.image-modal-hints{padding:16px 22px 22px;border-top:1px solid #edf2ff}.grid-preview-box{gap:14px}.mini-grid{display:grid;gap:4px;width:min(280px,100%)}.mini-grid-cell{border-radius:8px;min-height:32px;display:grid;place-items:center;background:#f6f9ff;border:1px solid #d5e1f4;color:#325185;font-size:12px}.mini-grid-cell.is-locked{background:#e9eff8;font-weight:700}@media (max-width: 1080px){.play-layout{grid-template-columns:1fr}.play-headline,.figure-toolbar,.image-modal-head{flex-direction:column;align-items:flex-start}}.figure-toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.figure-counter{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:#ffffffd6;border:1px solid rgba(55,119,255,.18);font-weight:700;color:#23406d}.figure-layer-bar{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.figure-layer-chip{border:1px solid #d3ddf4;background:#f4f8ff;color:#36527c;border-radius:999px;padding:8px 14px;font-weight:700;cursor:pointer}.figure-layer-chip.is-active{background:linear-gradient(135deg,#3777ff2e,#3777ff14);border-color:#3777ff7a;color:#133d88}.figure-canvas-wrap.is-interactive{position:relative;overflow:hidden}.figure-hotspot-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.image-modal-figure-wrap{position:relative;max-width:min(1120px,100%);margin:0 auto}.figure-hotspot-svg.is-modal{pointer-events:none}.hotspot-group{cursor:pointer}.hotspot-shape{fill:#fff0;stroke:#3777ff6b;stroke-width:.006;vector-effect:non-scaling-stroke;transition:fill .16s ease,stroke .16s ease,opacity .16s ease}.hotspot-group:hover .hotspot-shape{fill:#3777ff1f;stroke:#3777ffe6}.hotspot-group.is-active .hotspot-shape{fill:#3777ff3d;stroke:#174ab5}.hotspot-group.style-dot .hotspot-shape{fill:#3777ff0f}.hotspot-group.style-square-outline .hotspot-shape{fill:#3777ff0a;stroke-dasharray:.01 .008}.hotspot-group.style-tile-gap .hotspot-shape{fill:#ffb14229;stroke:#e48600f2;stroke-dasharray:.014 .01}.hotspot-group.style-ghost-cube .hotspot-shape{fill:#14a44d1f;stroke:#14a44de6;stroke-dasharray:.014 .012}.hotspot-label{fill:#183567;font-size:.042px;font-weight:800;pointer-events:none;-webkit-user-select:none;user-select:none}.click-answer-card{display:flex;justify-content:space-between;align-items:center;gap:16px;border-radius:18px;background:linear-gradient(180deg,#f8fbff,#f2f7ff);border:1px solid #d9e4f8;padding:16px 18px}.review-status-banner{margin:12px 0;border-radius:16px;padding:12px 14px;background:#f5f8ff;border:1px solid #d9e3f7;color:#4a5f87}.review-status-banner.is-open{background:#eef7ff;border-color:#bed6ff;color:#174a8b}.review-step-list{margin:0;padding-left:18px;display:grid;gap:12px;color:#4a5f87}.review-step-list p{margin-top:4px;color:#627394}.review-feedback-box{margin-top:14px;border-radius:18px;padding:14px 16px;background:#fff8ec;border:1px solid #f0d399;display:grid;gap:8px}.meta-list.compact{gap:6px}.replay-panel{display:grid;gap:12px;padding:14px 16px;border-radius:18px;background:linear-gradient(180deg,#fffdf5,#fff7e5);border:1px solid #f2d496}.replay-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.replay-panel-actions,.replay-step-row{display:flex;flex-wrap:wrap;gap:8px}.replay-step-chip{border-radius:999px;border:1px solid #e2c98f;background:#fffdf7;color:#775000;cursor:pointer;padding:8px 12px;font-weight:700}.replay-step-chip.is-active{background:linear-gradient(135deg,#ffd76f,#ffbf47);border-color:#e6aa14;color:#5b3900}.replay-step-card{border-radius:16px;padding:14px 16px;background:#ffffffc7;border:1px solid rgba(232,189,95,.6)}.replay-step-card p{margin-top:6px;color:#61593f}.figure-canvas-wrap.is-reviewing{box-shadow:inset 0 0 0 1px #f3b63433}.hotspot-group.is-answer .hotspot-shape{fill:#22c55e2e;stroke:#169648f2}.hotspot-group.is-wrong-selected .hotspot-shape{fill:#f54e4e33;stroke:#cf2d2df2}.hotspot-group.is-review-dim .hotspot-shape{opacity:.28}.hotspot-group.is-replay-focus .hotspot-shape{opacity:1;stroke-width:.009;animation:hotspotPulse 1.1s ease-in-out infinite}@keyframes hotspotPulse{0%{filter:drop-shadow(0 0 0 rgba(255,191,71,0))}50%{filter:drop-shadow(0 0 10px rgba(255,191,71,.8))}to{filter:drop-shadow(0 0 0 rgba(255,191,71,0))}}@media (max-width: 1080px){.replay-panel-head{flex-direction:column}}.primary-button.subtle{background:linear-gradient(135deg,#ffcc61,#ffb347);color:#5a3400}.figure-hint-chip.is-warning{background:#fff3d8;color:#8a5a00}.pinpoint-panel{display:grid;gap:12px;border-radius:18px;padding:14px 16px;background:linear-gradient(180deg,#fff8fb,#fff3f7);border:1px solid #f3c7d7}.pinpoint-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.pinpoint-chip-row{display:flex;flex-wrap:wrap;gap:8px}.pinpoint-chip{border-radius:999px;border:1px solid transparent;padding:8px 12px;cursor:pointer;font-weight:700;transition:.18s ease}.pinpoint-chip.tone-missed{background:#fff0d6;border-color:#efc77f;color:#7b5300}.pinpoint-chip.tone-extra{background:#ffe6e6;border-color:#f0aaaa;color:#8a2828}.pinpoint-chip.is-active{box-shadow:0 10px 20px #73300224;transform:translateY(-1px)}.pinpoint-card{border-radius:16px;padding:14px 16px;display:grid;gap:6px;background:#ffffffd6}.pinpoint-card.tone-missed{border:1px solid #efcc8c}.pinpoint-card.tone-extra{border:1px solid #f1b3b3}.pinpoint-card p{margin:0;color:#68594b}.pinpoint-card-meta{font-size:12px;color:#7a6c60}.hotspot-group.is-pinpoint-focus .hotspot-shape{opacity:1;stroke-width:.009;animation:hotspotPinpointPulse 1s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(255,103,103,.75))}@keyframes hotspotPinpointPulse{0%{transform-box:fill-box;transform-origin:center;transform:scale(1)}50%{transform-box:fill-box;transform-origin:center;transform:scale(1.03)}to{transform-box:fill-box;transform-origin:center;transform:scale(1)}}.queue-summary-box,.queue-chip-list,.similar-list,.wrongbook-entry-list{display:grid;gap:10px}.queue-chip{border:1px dashed rgba(120,140,200,.45);background:#788cc814;color:inherit;border-radius:999px;padding:8px 12px;text-align:left}.divider-line{height:1px;background:#ffffff14;margin:12px 0}.muted-text{margin:0;color:#ffffffad}.similar-card,.wrongbook-entry-card{display:grid;gap:6px;padding:12px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a}.similar-card span,.wrongbook-entry-card p{margin:0;color:#ffffffb8}.ghost-button.is-success{border-color:#5adca073;background:#5adca01f}
