:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f9;--panel:#fff;--field:#fff;--field-off:#f3f4f6;--ink:#111827;--muted:#6b7280;--line:#e5e7eb;--accent:#2563eb;--on-accent:#fff;--info-bg:#f8fafc;--err:#b91c1c;--err-bg:#fef2f2;--warn:#92400e;--warn-line:#f59e0b;--warn-bg:#fffbeb;--good:#15803d;--proj:#6d28d9;--out-bg:#ecfdf5;--out-ink:#047857;--out-line:#10b981;--un-bg:#f5f3ff;--un-row:#fbfaff;--un-info:#f6f3ff;--un-line:#8b5cf6}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1115;--panel:#171a21;--field:#1f232c;--field-off:#191c23;--ink:#e8eaee;--muted:#9aa1ad;--line:#2b303a;--accent:#5b8cff;--on-accent:#0b0d12;--info-bg:#1b1f27;--err:#f87171;--err-bg:#2a1517;--warn:#fbbf24;--warn-line:#f59e0b;--warn-bg:#2a2212;--good:#4ade80;--proj:#b9a2ff;--out-bg:#10291f;--out-ink:#6ee7b7;--out-line:#34d399;--un-bg:#251d3d;--un-row:#1b1828;--un-info:#211c33;--un-line:#a78bfa}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1115;--panel:#171a21;--field:#1f232c;--field-off:#191c23;--ink:#e8eaee;--muted:#9aa1ad;--line:#2b303a;--accent:#5b8cff;--on-accent:#0b0d12;--info-bg:#1b1f27;--err:#f87171;--err-bg:#2a1517;--warn:#fbbf24;--warn-line:#f59e0b;--warn-bg:#2a2212;--good:#4ade80;--proj:#b9a2ff;--out-bg:#10291f;--out-ink:#6ee7b7;--out-line:#34d399;--un-bg:#251d3d;--un-row:#1b1828;--un-info:#211c33;--un-line:#a78bfa}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:14px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button,input,select{font:inherit;color:inherit}.shell{max-width:1500px;margin:0 auto;padding:0 16px 40px}.pad{padding:24px 0}.muted{color:var(--muted)}.top{flex-wrap:wrap;align-items:center;gap:10px;padding:14px 0;display:flex}.brand{margin-right:8px;font-size:18px;font-weight:700}.brand span{color:inherit}.spacer{flex:1}select,input{border:1px solid var(--line);background:var(--field);border-radius:6px;padding:6px 8px}.btn,.ghost{cursor:pointer;border-radius:6px;padding:7px 12px;text-decoration:none}.btn{background:var(--accent);color:var(--on-accent);border:0;font-weight:600}.btn:disabled,.ghost:disabled{opacity:.5;cursor:default}.ghost{background:var(--field);border:1px solid var(--line)}.ghost:hover,.ghost.on{border-color:var(--accent);color:var(--accent)}.save{color:var(--good);align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.save.pending{color:var(--warn);font-weight:600}.save button{padding:5px 10px;font-size:12.5px}.save.error{color:var(--err);font-weight:600}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}.monthbar{align-items:center;gap:10px;margin-bottom:12px;display:flex}.monthbar b{text-align:center;min-width:74px;font-size:16px}.monthbar button{border:1px solid var(--line);background:var(--field);cursor:pointer;border-radius:6px;width:26px;height:26px;line-height:1}.monthbar button:disabled{opacity:.4;cursor:default}.issues{margin-bottom:12px;font-size:13px}.issues summary{cursor:pointer;color:var(--warn)}.issues ul{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.issues li{border-left:3px solid;border-radius:6px;padding:6px 9px}.issues li.error{background:var(--err-bg);border-color:var(--err);color:var(--err)}.issues li.warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}.scroll{overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{border-bottom:1px solid var(--line);white-space:nowrap;padding:4px}th{color:var(--muted);text-align:left;font-size:11.5px;font-weight:600}.r{text-align:right}.data input{width:100%;min-width:0;padding:5px 6px}.data input.isrc{min-width:110px;font-family:ui-monospace,monospace;font-size:12.5px}input.num{text-align:right;width:100px}.data td.pre input{background:var(--field-off)}.data tr.error td{background:var(--err-bg)}.data tr.warn td{background:var(--warn-bg)}.info-col{background:var(--info-bg);color:var(--ink);padding-left:12px;padding-right:12px}th.info-col{color:var(--muted)}.data tbody .info-col{font-size:13px}tfoot td{border-bottom:0;padding-top:8px;font-weight:700}input.bad{border-color:var(--err);background:var(--err-bg)}.order button,.del{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:2px 3px}.del:hover{color:var(--err)}.monthbar .add{width:auto;height:auto;line-height:inherit;margin-left:auto;padding:5px 12px}.params{border:1px solid var(--line);background:var(--info-bg);border-radius:8px;flex-wrap:wrap;align-items:flex-start;gap:14px;margin-bottom:14px;padding:12px;display:flex}.params label{color:var(--muted);gap:3px;font-size:12px;display:grid}.params label input{color:var(--ink);width:170px}.params .decay{color:var(--muted);gap:3px;font-size:12px;display:grid}.params .decay>div{gap:8px;display:flex}.params .decay input.num{width:80px}.decay-history{color:var(--muted);margin-top:6px;font-size:12px}.decay-history summary{cursor:pointer;width:fit-content}.decay-history ul{grid-template-columns:repeat(4,auto);gap:4px 16px;width:fit-content;max-height:132px;margin:6px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.decay-history li{display:contents}.decay-history li span:not(.muted){color:var(--ink);font-variant-numeric:tabular-nums;white-space:pre}.decay-history button{padding:1px 8px;font-size:11.5px}input.num{width:92px}.data input[type=month]{min-width:122px}.data td:nth-child(2) input{min-width:130px}.data input.isrc{min-width:100px}.proj-col{color:var(--proj);padding-left:12px;padding-right:12px}th.proj-col{color:var(--proj)}.strong{font-weight:600}.stick0,.stick1{background:var(--panel);z-index:2;position:sticky}.stick0{min-width:76px;left:0}.stick1{box-shadow:1px 0 0 var(--line);left:76px}.data tr.error .stick0,.data tr.error .stick1{background:var(--err-bg)}.data tr.warn .stick0,.data tr.warn .stick1{background:var(--warn-bg)}.params small{color:var(--muted);font-size:11px}.data tbody td{vertical-align:top;padding-top:10px;padding-bottom:10px}.yoy{text-align:right;min-height:13px;color:var(--muted);margin-top:3px;font-size:11px;line-height:1.2;display:block}.yoy.neg{color:var(--err)}.yoy.pos{color:var(--good)}.data tbody td.info-col,.data tbody td.proj-col{padding-top:15px}.status{letter-spacing:.02em;border-radius:4px;margin-top:4px;padding:1px 6px;font-size:10.5px;font-weight:600;display:inline-block}.s-out{background:var(--out-bg);color:var(--out-ink)}.s-un{background:var(--un-bg);color:var(--proj)}.data tr.unreleased td,.data tr.unreleased .stick0,.data tr.unreleased .stick1{background:var(--un-row)}.data tr.unreleased .stick0{box-shadow:inset 3px 0 0 var(--un-line)}.data tr.released .stick0{box-shadow:inset 3px 0 0 var(--out-line)}.data tr.unreleased td.info-col{background:var(--un-info)}.status{width:fit-content;display:block}main.panel{min-width:0;overflow:hidden}.ghost.danger{color:var(--err);margin-left:auto}.ghost.danger:hover{border-color:var(--err);color:var(--err)}.theme{text-align:center;width:34px;padding:6px 0}.units{display:inline-flex}.units .ghost:first-child{border-radius:6px 0 0 6px}.units .ghost:last-child{border-radius:0 6px 6px 0;margin-left:-1px}.units .ghost.on{position:relative}.usd-note{color:var(--accent);font-size:13px}.scroll{max-height:calc(100vh - 150px);overflow:auto}.data thead th{z-index:3;background:var(--head-bg);color:var(--ink);text-transform:uppercase;letter-spacing:.03em;box-shadow:inset 0 -1px 0 var(--line);padding-top:10px;padding-bottom:10px;font-size:12px;font-weight:700;position:sticky;top:0}.data thead th.proj-col{color:var(--proj)}.data thead th.stick0,.data thead th.stick1{z-index:4}.data tfoot td{z-index:3;background:var(--head-bg);box-shadow:inset 0 2px 0 var(--line);position:sticky;bottom:0}.data tfoot td.stick0,.data tfoot td.stick1{z-index:4}:root{--head-bg:#eef1f5}:root[data-theme=dark]{--head-bg:#232833}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--head-bg:#232833}}table.data{border-collapse:separate;border-spacing:0}.data thead th.stick1{box-shadow:inset 0 -1px 0 var(--line), 1px 0 0 var(--line)}.data thead th{white-space:normal;vertical-align:bottom;padding-left:12px;padding-right:12px;line-height:1.25}.data tbody td,.data tfoot td{padding-left:8px;padding-right:8px}:root{--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s5:#e87ba4;--s6:#008300;--s7:#6250d6;--s8:#e34948;--s1-soft:#86b6ef;--s-other:#a8a69f;--grid:#e1e0d9;--axis:#c3c2b7;--band:#6d28d90b}:root[data-theme=dark]{--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300;--s7:#9085e9;--s8:#e66767;--s1-soft:#1c4f8f;--s-other:#6b6a65;--grid:#262a33;--axis:#3a3f4a;--band:#b9a2ff0f}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300;--s7:#9085e9;--s8:#e66767;--s1-soft:#1c4f8f;--s-other:#6b6a65;--grid:#262a33;--axis:#3a3f4a;--band:#b9a2ff0f}}.charts{z-index:50;background:var(--bg);position:fixed;inset:0;overflow-y:auto}.charts-in{gap:16px;max-width:1400px;margin:0 auto;padding:0 32px 48px;display:grid}.charts-head{background:var(--bg);z-index:2;flex-wrap:wrap;align-items:baseline;gap:14px;padding:22px 0 18px;display:flex;position:sticky;top:0}.charts-head .ghost,.charts-head .picker summary{padding:8px 14px}.charts-head .picker+.ghost{margin-left:4px}.charts-head h1{margin:0;font-size:22px}.charts-head .ghost{align-self:center}.charts .card{background:var(--panel);border:1px solid var(--line);border-radius:10px;min-width:0;padding:14px 16px}.charts h2{margin:0 0 8px;font-size:14px}.charts h3{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;overflow:hidden}.kpis{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.kpis>div{background:var(--panel);border:1px solid var(--line);border-radius:10px;gap:4px;min-width:0;padding:14px 16px;display:grid}.kpis span{color:var(--muted);font-size:12px}.kpis b{font-size:26px;font-weight:700}.kpis b.name{text-overflow:ellipsis;white-space:nowrap;font-size:20px;overflow:hidden}.kpis small{color:var(--muted);font-size:12px}.row2{grid-template-columns:2fr 1fr;gap:16px;display:grid}.minis{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.mini p{margin:2px 0 6px;font-size:12px}.chart{width:100%}.chart svg{display:block}.chart .grid{stroke:var(--grid);stroke-width:1px}.chart .axis{stroke:var(--axis);stroke-width:1px}.chart .tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart .proj-band{fill:var(--band)}.chart .proj-label{fill:var(--proj);font-size:11px;font-weight:600}.chart .hover-band{fill:var(--ink);opacity:.05}.chart .line path{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .dot{stroke:var(--panel);stroke-width:2px}.donut{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.donut .slice{stroke:var(--panel);stroke-width:2px}.donut .slice:hover{opacity:.85}.legend{flex:1;gap:6px;min-width:0;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.legend li{align-items:center;gap:8px;min-width:0;display:flex}.legend .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.legend b{font-variant-numeric:tabular-nums;margin-left:auto}.legend.row{flex-wrap:wrap;gap:6px 16px;margin-bottom:8px;font-size:12px;display:flex}.legend i,.legend-inline i,.tip i{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.legend-inline{color:var(--muted);align-items:center;gap:6px;margin:-4px 0 6px;font-size:12px;display:flex}.legend-inline i:nth-of-type(2){margin-left:10px}.delta{color:var(--muted);font-size:12px;font-weight:600}.delta.neg{color:var(--err)}.delta.pos{color:var(--good)}.tip{z-index:60;pointer-events:none;background:var(--panel);border:1px solid var(--line);border-radius:8px;gap:4px;min-width:180px;max-width:290px;padding:8px 10px;font-size:12px;display:grid;position:fixed;box-shadow:0 6px 20px #00000026}.tip>div{align-items:center;gap:8px;display:flex}.tip .v{font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}@media (max-width:900px){.kpis{grid-template-columns:repeat(2,1fr)}.row2{grid-template-columns:1fr}}.charts .kpis>div,.charts h2{cursor:help}.charts h2{width:fit-content}.charts .section-title{margin:4px 0 -6px}.tip .note{color:var(--muted);white-space:normal;margin:2px 0 0;line-height:1.4}.tip b+.note{margin-top:0}.picker{align-self:center;position:relative}.picker summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.picker summary::-webkit-details-marker{display:none}.picker[open] summary{border-color:var(--accent);color:var(--accent)}.picker .menu{z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:10px;gap:2px;width:320px;max-height:70vh;padding:10px;font-size:13px;display:grid;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 10px 30px #0000002e}.picker .menu>p{margin:0 0 6px;font-size:12px;line-height:1.4}.picker label{cursor:pointer;border-radius:6px;align-items:center;gap:8px;min-width:0;padding:5px 6px;display:flex}.picker label:hover{background:var(--info-bg)}.picker label.off{opacity:.45;cursor:not-allowed}.picker label input{margin:0;padding:0}.picker label i{width:10px;height:10px;box-shadow:inset 0 0 0 1px var(--line);border-radius:3px;flex:none}.picker label .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.picker .actions{border-top:1px solid var(--line);gap:6px;margin-top:6px;padding-top:8px;display:flex}.picker .actions button{padding:4px 10px;font-size:12px}.login{flex-direction:column;gap:14px;max-width:320px;margin:15vh auto 0;padding:24px 16px;display:flex}.login label{color:var(--muted);flex-direction:column;gap:4px;display:flex}.login input{color:var(--ink)}.login-error{color:var(--err);background:var(--err-bg);border-radius:6px;margin:0;padding:8px 10px}
