:root{--bg: #f7f5f0;--surface: #ffffff;--border: #e2ddd2;--text: #23262e;--muted: #6f6a5f;--faint: #9a9488;--amber: #c98a2e;--amber-soft: #f6ead6;--danger: #b23a48;--ok: #3f7d55;--radius: 10px;font-family:Alegreya Sans,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--amber)}.layout{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:4px}.sidebar h1{font-size:20px;margin:0 0 4px 10px}.sidebar .sub{font-size:12px;color:var(--faint);margin:0 0 20px 10px}.sidebar a{display:block;padding:9px 10px;border-radius:8px;color:var(--text);text-decoration:none;font-size:14.5px}.sidebar a:hover{background:var(--bg)}.sidebar a.active{background:var(--amber-soft);color:#7a5314;font-weight:600}.sidebar .spacer{flex:1}.main{flex:1;padding:28px 32px 60px;max-width:1200px}h2{font-size:26px;margin:0 0 4px;font-weight:800}.lede{color:var(--muted);margin:0 0 24px;font-size:14.5px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card .label{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--faint)}.card .value{font-size:30px;font-weight:800;margin-top:6px}.card .note{font-size:12.5px;color:var(--muted);margin-top:4px}table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}th,td{text-align:left;padding:10px 12px;font-size:14px;border-bottom:1px solid var(--border)}th{background:#faf8f4;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fdfcfa}button,.btn{font:inherit;padding:8px 14px;border-radius:8px;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text)}button.primary{background:var(--amber);border-color:var(--amber);color:#fff;font-weight:600}button.danger{color:var(--danger);border-color:#e6c9cd}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);width:100%}label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}.field{margin-bottom:14px}.row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.row>*{flex:1;min-width:140px}.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px}.pill.premium{background:var(--amber-soft);color:#7a5314}.pill.draft{background:#eee;color:var(--muted)}.pill.live{background:#e4f0e8;color:var(--ok)}.error{background:#fbeaec;color:var(--danger);padding:10px 12px;border-radius:8px;font-size:14px;margin-bottom:14px}.ok{background:#e4f0e8;color:var(--ok);padding:10px 12px;border-radius:8px;font-size:14px;margin-bottom:14px}.muted{color:var(--muted);font-size:13.5px}.login{display:grid;place-items:center;min-height:100vh}.login .box{width:320px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:26px}.chart{display:flex;align-items:flex-end;gap:2px;height:130px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.chart .bar{flex:1;background:var(--amber);border-radius:2px 2px 0 0;min-height:2px}.chart .bar.dim{background:#e8d9bf}.loading{display:flex;align-items:center;gap:10px;color:var(--muted);padding:26px 0;font-size:14.5px}.spinner{width:16px;height:16px;border-radius:50%;flex:0 0 auto;border:2px solid var(--border);border-top-color:var(--amber);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-state{background:#fbeaec;border:1px solid #e6c9cd;border-radius:var(--radius);padding:16px;margin:14px 0}.error-state-message{color:var(--danger);margin:0 0 6px;font-size:14.5px}.error-state .muted{margin:0 0 10px}.error-state button{background:#fff}.empty-state{color:var(--muted);font-size:14px;padding:22px 16px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface);text-align:center;margin:8px 0}.overlay{position:fixed;inset:0;background:#23262e59;display:grid;place-items:center;z-index:60}.dialog{width:min(440px,calc(100vw - 40px));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;box-shadow:0 18px 50px #23262e38}.dialog h3{margin:0 0 10px;font-size:17px}.dialog-body{font-size:14.5px;color:var(--text)}.dialog-body p{margin:0 0 8px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.toasts{position:fixed;right:18px;bottom:18px;z-index:70;display:flex;flex-direction:column;gap:8px;max-width:380px}.toast{background:#2c3038;color:#f3efe6;border-radius:8px;cursor:pointer;padding:10px 14px;font-size:14px;box-shadow:0 8px 24px #23262e40;border-left:3px solid var(--ok)}.toast.error{border-left-color:var(--danger)}.sidebar .who{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.sidebar .who .who-name{font-weight:600;font-size:14px}.sidebar .who .who-email{font-size:12px;color:var(--faint);word-break:break-all}.sidebar .who .pill{align-self:flex-start;margin-top:4px}.pill.kind-purchase{background:#e4f0e8;color:var(--ok)}.pill.kind-manual{background:var(--amber-soft);color:#7a5314}.pill.kind-promo{background:#e8e4f2;color:#5b4a8a}.pill.kind-trial{background:#e3edf5;color:#33607f}.pill.kind-none{background:#eee;color:var(--muted)}.pill.revoked{background:#fbeaec;color:var(--danger)}.caption-grid td{padding:6px;vertical-align:top}.caption-cell{display:block;width:100%;min-height:58px;text-align:left;border-radius:8px;padding:7px 9px;font-size:12.5px;line-height:1.35;border:1px dashed var(--border);background:transparent;cursor:pointer}.caption-cell:hover{border-color:var(--amber)}.caption-cell.draft{border-style:solid;background:#faf8f4}.caption-cell.published{border-style:solid;border-color:#bcd8c6;background:#eef6f1}.caption-cell.selected{outline:2px solid var(--amber)}.caption-cell .cell-level{font-size:11px;color:var(--faint);display:block;margin-bottom:2px}.caption-cell.blank{visibility:hidden}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.filters .field{margin-bottom:0}.filters .field.grow{flex:1;min-width:200px}.json-pre{background:#faf8f4;border:1px solid var(--border);border-radius:8px;padding:12px;font-size:12.5px;overflow:auto;max-height:420px;margin:0}details.expander>summary{cursor:pointer;color:var(--amber);font-size:13.5px;-webkit-user-select:none;user-select:none}.progressbar{height:6px;border-radius:3px;background:var(--border);overflow:hidden;margin-top:6px}.progressbar>div{height:100%;background:var(--amber);transition:width .15s}.audio-panel{background:#faf8f4;border-top:1px solid var(--border)}.audio-panel .narrator-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border);flex-wrap:wrap}.audio-panel .narrator-row:last-child{border-bottom:none}.audio-panel .narrator-name{min-width:130px;font-weight:600;font-size:14px}.audio-panel audio{height:34px;max-width:320px}.upload-button input[type=file]{display:none}.svg-chart{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.svg-chart svg{display:block;width:100%;height:auto}.retention-cell.immature{opacity:.38}.count-note{font-size:13px;color:var(--muted);margin:6px 0 0}.sidebar .nav-group{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--faint);margin:14px 10px 3px}.sidebar .nav-group:first-of-type{margin-top:4px}.chart-legend{display:flex;gap:16px;flex-wrap:wrap;padding:8px 4px 0}.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.legend-swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.hover-col .hover-dot{opacity:0;transition:opacity .1s}.hover-col:hover .hover-dot{opacity:1}.hover-col:hover rect{fill:#c98a2e0f}.chart-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:28px 0 10px}.chart-header h3{margin:0}.range-picker{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface)}.range-picker button{border:none;border-radius:0;padding:6px 12px;font-size:13px}.range-picker button+button{border-left:1px solid var(--border)}.range-picker button.active{background:var(--amber-soft);color:#7a5314;font-weight:600}.breakdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.breakdown-row{display:grid;grid-template-columns:130px 1fr 64px 56px;align-items:center;gap:10px;padding:5px 0;font-size:13.5px}.breakdown-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breakdown-track{height:10px;border-radius:5px;background:var(--bg);overflow:hidden}.breakdown-fill{display:block;height:100%;background:var(--amber);border-radius:5px}.breakdown-count{text-align:right;font-weight:600}.breakdown-note{color:var(--faint);font-size:12px;text-align:right}.funnel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.funnel-step{display:grid;grid-template-columns:130px 1fr 70px 70px;align-items:center;gap:10px;padding:7px 0;font-size:14px}.funnel-step+.funnel-step{border-top:1px dashed var(--border)}.funnel-track{height:22px;border-radius:6px;background:var(--bg);overflow:hidden}.funnel-fill{display:block;height:100%;background:var(--amber);border-radius:6px;min-width:2px}.funnel-count{text-align:right;font-weight:700}.funnel-rate{text-align:right;color:var(--muted);font-size:12.5px}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--text)}th.sortable.sorted{color:#7a5314}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px}.toolbar .muted{margin:0}.drawer{background:#faf8f4;border-top:1px solid var(--border);padding:14px 16px}.drawer dl{display:grid;grid-template-columns:170px 1fr;gap:4px 14px;margin:0;font-size:13.5px}.drawer dt{color:var(--muted)}.drawer dd{margin:0}.subtable td,.subtable th{font-size:13px;padding:7px 10px}.char-buttons{display:flex;gap:6px;margin:6px 0}.char-buttons button{font-size:16px;padding:4px 12px}textarea{min-height:84px;resize:vertical}
