:root{--background: #12232b;--surface: #1b3441;--surface-light: #24455a;--text: #eaf2f5;--text-muted: #9db4bf;--accent: #35c66b;--warning: #e0a437;--error: #e05c5c;--radius: 12px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--background);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100dvh}#app{display:flex;flex-direction:column;min-height:100dvh}.app-header{padding:env(safe-area-inset-top) 1rem .5rem;background:var(--surface)}.app-header h1{margin:.5rem 0;font-size:1.2rem}.app-content{flex:1;padding:1rem;max-width:40rem;width:100%;margin:0 auto}.app-nav{display:flex;background:var(--surface);padding-bottom:env(safe-area-inset-bottom);overflow-x:auto}.app-nav a{flex:1 0 auto;min-width:5.2rem;text-align:center;padding:.9rem .5rem;color:var(--text-muted);text-decoration:none;font-size:.9rem}.app-nav a.active{color:var(--accent);font-weight:600}.card{background:var(--surface);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1rem}.card h2,.card h3{margin-top:0;font-size:1.05rem}.status-list{list-style:none;padding:0;display:flex;gap:1.5rem}.status-list strong{color:var(--accent);font-size:1.3rem;display:block}.hint{color:var(--text-muted);font-size:.9rem}.hint a{color:var(--accent)}.warning{color:var(--warning)}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}button,.file-picker,input,textarea,select,fieldset{font:inherit}button,.file-picker,input,textarea,select{border:none;border-radius:var(--radius);padding:.65rem .9rem;font-size:.95rem;cursor:pointer;background:var(--surface-light);color:var(--text)}textarea,input,select{width:100%;cursor:text}button.primary{background:var(--accent);color:#0b1a12;font-weight:600}.file-picker{display:inline-block}.message:empty{display:none}.message{padding:.6rem .9rem;border-radius:var(--radius);background:var(--surface-light)}.message[data-type=error]{color:var(--error)}.message[data-type=ok]{color:var(--accent)}.stack{display:grid;gap:.65rem}.inline{display:flex;align-items:center;gap:.5rem}.speech-field{display:grid;grid-template-columns:1fr auto;gap:.45rem;align-items:stretch}.speech-field>input,.speech-field>textarea{margin:0}.speech-btn{width:2.6rem;min-width:2.6rem;padding:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;line-height:1}.speech-btn.recording{background:#8e2f2f;color:#ffe1e1}fieldset{border:1px solid #2f5161;border-radius:var(--radius);padding:.7rem}legend{color:var(--text-muted);padding:0 .35rem}.compact{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.compact.selected{outline:1px solid var(--accent)}.top-gap{margin-top:.75rem}.split-layout{display:grid;gap:1rem}.sketch-wrap{margin-top:.75rem}.court-sketch{width:100%;max-width:340px;background:#132630;border-radius:var(--radius);padding:.45rem}.court-sketch rect,.court-sketch line{stroke:#7fa4b5;stroke-width:1.2;fill:none}.court-sketch circle{fill:var(--accent)}.sketch-editor-canvas .editor-point{cursor:pointer}.sketch-editor-canvas .editor-point circle{fill:#2a4a59;stroke:#9bc5d7;stroke-width:.6}.sketch-editor-canvas .editor-point text{font-size:4.6px;fill:#d7ebf3;pointer-events:none}.sketch-editor-canvas .editor-point:hover circle{fill:#3b6070}.sketch-editor-canvas .editor-edge{stroke:var(--accent);stroke-width:1.8}.sketch-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;color:#d9f6e4}.block-builder{display:grid;gap:.6rem}.block-item{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem;list-style:none;background:#16303d;border:1px solid #2a4a59;border-radius:var(--radius);padding:.55rem .7rem}.calendar-controls{display:grid;gap:.7rem;margin-bottom:.8rem}.calendar-head{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem;margin-bottom:.35rem}.calendar-head span{text-align:center;color:var(--text-muted);font-size:.78rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem}.calendar-cell{min-height:72px;background:#16303d;border:1px solid #2a4a59;border-radius:8px;padding:.3rem;display:grid;gap:.15rem;align-content:start}.calendar-cell.empty{background:transparent;border-style:dashed;opacity:.45}.calendar-cell.has-data{border-color:#46849f}.calendar-cell strong{font-size:.84rem}.badge{display:inline-block;width:fit-content;font-size:.72rem;line-height:1;border-radius:999px;padding:.18rem .45rem}.badge.planned{background:#5a4a1f;color:#ffdf87}.badge.done{background:#1e4f2f;color:#98ebb8}.feedback-row{border:1px solid #2a4a59;border-radius:var(--radius);padding:.6rem;background:#15303b;display:grid;gap:.45rem}.feedback-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.chart-wrap{display:grid;gap:.45rem}.line-chart{width:100%;max-width:360px}.line-chart rect{fill:#132630;stroke:#315264;stroke-width:1}.line-chart polyline{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.line-chart circle{fill:#d3f7e0}.line-chart circle.best-point{fill:#ffd27a}.radar-wrap{display:grid;gap:.45rem;margin-bottom:.6rem}.radar-chart{width:100%;max-width:360px}.radar-ring{fill:none;stroke:#2f5161;stroke-width:1}.radar-axis{stroke:#365868;stroke-width:1}.radar-shape{stroke-width:1.8}.radar-shape.current{fill:#35c66b33;stroke:#35c66b}.radar-shape.prev{fill:#e0a43724;stroke:#e0a437}.radar-label{font-size:8px;fill:#d3e8f1}.legend-chip{display:inline-block;border-radius:999px;padding:.1rem .45rem;font-size:.76rem}.legend-current{background:#35c66b33;color:#9bf1bc}.legend-prev{background:#e0a43733;color:#ffd98e}.result-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.7rem;border:1px solid #2a4a59;border-radius:10px;padding:.52rem .62rem;background:#15303b}.result-row p{margin:.2rem 0}.action-stack{min-width:132px}.hidden{display:none}.metric-row{display:grid;grid-template-columns:1fr auto auto;gap:.6rem;align-items:baseline;padding:.42rem .54rem;background:#15303b;border:1px solid #2a4a59;border-radius:10px}.volume-bars{display:grid;gap:.58rem}.volume-row{display:grid;grid-template-columns:minmax(78px,104px) 1fr auto;gap:.55rem;align-items:center}.volume-track{height:10px;background:#173644;border-radius:999px;overflow:hidden}.volume-fill{height:100%;background:linear-gradient(90deg,#2c9f58,#47d97e)}button.danger{background:#7f2f2f;color:#fff}@media (min-width: 860px){.app-content{max-width:62rem}.split-layout{grid-template-columns:1.2fr 1fr;align-items:start}.block-builder{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.calendar-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
