:root{color:#1f2933;background:#f4f6f8;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;padding:24px}.app-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.app-header h1{margin:0 0 4px;font-size:1.75rem}.app-header p{color:#52606d;margin:0}.scene-meta{color:#52606d;text-align:right;gap:6px;display:grid}.validation-panel,.panel{background:#fff;border:1px solid #d9e2ec;border-radius:10px;padding:16px}.validation-panel{background:#fff5f5;border-color:#f7b4b4;margin-bottom:20px}.validation-panel-inline{margin-top:20px;margin-bottom:0}.validation-panel h2,.panel h2{margin-top:0}.app-grid{grid-template-columns:220px minmax(0,1fr) 320px;gap:20px;display:grid}.panel-wide{min-width:0}.character-list,.tone-list,.editor-stack{gap:12px;display:grid}.character-card,.tone-list-row{background:#f8fafc;border:1px solid #d9e2ec;border-radius:8px;gap:12px;padding:10px 12px;display:grid}.timeline-editor{gap:16px;display:grid}.timeline-header,.timeline-scrubber,.inspector-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.timeline-surface{min-height:140px;padding:16px 0;position:relative}.timeline-track{background:#cbd2d9;border-radius:999px;height:4px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.timeline-preview-marker{background:#52606d;width:2px;position:absolute;top:20px;bottom:20px}.event-marker{color:#102a43;cursor:ew-resize;white-space:nowrap;background:#fff;border:1px solid #9fb3c8;border-radius:8px;min-width:96px;padding:8px 10px;position:absolute;transform:translate(-50%)}.event-marker.selected,.timeline-event-row.selected{background:#e9f2f9;border-color:#486581}.timeline-event-list{gap:8px;display:grid}.timeline-lane-spacer{width:100%}.timeline-event-list-header{color:#52606d;grid-template-columns:56px 1fr 64px;gap:12px;padding:0 12px;font-size:.85rem;display:grid}.timeline-event-row{text-align:left;background:#fff;border:1px solid #d9e2ec;border-radius:8px;grid-template-columns:56px 1fr 64px;align-items:center;gap:12px;padding:10px 12px;display:grid}.timeline-event-row.selected{box-shadow:inset 0 0 0 1px #486581}.timeline-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.inspector,.inspector-empty,.preview-panel{gap:14px;display:grid}.inspector{border-top:1px solid #d9e2ec;padding-top:8px}.field{gap:6px;display:grid}.field input[type=number],.field input[type=text],.field select,.text-area{background:#fff;border:1px solid #bcccdc;border-radius:6px;width:100%;padding:8px 10px}.text-area{resize:vertical;min-height:140px}.field-help,.section-copy{color:#52606d;margin:0;font-size:.92rem}.section-row,.button-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.checkbox-field{align-items:center;gap:10px;display:flex}.secondary-button,.ghost-button,.export-button,.file-button{cursor:pointer;border-radius:8px;padding:10px 12px}.secondary-button,.file-button{color:#102a43;background:#fff;border:1px solid #bcccdc}.ghost-button{color:#52606d;background:#f8fafc;border:1px solid #d9e2ec}.ghost-button:disabled,.secondary-button:disabled{opacity:.55;cursor:not-allowed}.preview-block{gap:6px;display:grid}.preview-label{color:#52606d;font-size:.9rem}.tone-bar{background:#d9e2ec;border-radius:999px;height:12px;overflow:hidden}.tone-bar-fill{background:#486581;height:100%}.tone-interpretation{color:#486581;font-weight:600}.tone-legend{color:#52606d;gap:4px;font-size:.88rem;display:grid}.export-button{color:#fff;background:#486581;border:1px solid #486581;border-radius:8px}.export-button:disabled{opacity:.5;cursor:not-allowed}.json-preview{background:#f8fafc;border:1px solid #d9e2ec;border-radius:8px;max-height:260px;margin:0;padding:12px;font-size:.85rem;overflow:auto}.preview-muted,.inspector-empty{color:#7b8794;margin:0}.preview-note{color:#52606d;margin:0;font-size:.9rem}.error-text{color:#b42318;margin:0}.file-button{display:inline-flex;position:relative}.file-button input{opacity:0;cursor:pointer;position:absolute;inset:0}@media (width<=980px){.app-grid{grid-template-columns:1fr}.scene-meta{text-align:left}.app-header{flex-direction:column}.section-row,.button-row,.timeline-toolbar{flex-direction:column;align-items:stretch}}
