:root { --page:#0b0e12; --panel:#121821; --panel-2:#0f151d; --border:#273241; --muted:#90a0b4; --text:#f2f5f8; --cherry:#8b2638; --cherry-dark:#681926; --green:#47e09a; --red:#ff6e78; --blue:#83aaff; --yellow:#f8c45b; --violet:#b896ff; }
* { box-sizing:border-box; }
body { margin:0; background:var(--page); color:var(--text); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size:15px; }
button, input { font:inherit; }
button { cursor:pointer; }
.shell { width:min(1440px, 100%); margin:0 auto; padding:38px 32px 64px; }
.topbar, .panel-title, .range-panel, .topbar-actions, .preset-row, .date-fields, .flow-row, .source-row, .legend, .assumptions dl div { display:flex; align-items:center; }
.topbar { justify-content:space-between; margin:0 0 28px; }
.eyebrow { margin:0 0 6px; color:#6de4e4; font-size:11px; font-weight:750; letter-spacing:.11em; text-transform:uppercase; }
h1, h2, p { margin-top:0; } h1 { margin-bottom:0; font-size:25px; font-weight:680; letter-spacing:0; } h2 { margin:0; font-size:16px; letter-spacing:0; }
.topbar-actions { gap:12px; }.sync-label { color:var(--muted); font-size:12px; }.quiet-button, .icon-button, .range-panel button { border:1px solid var(--border); background:#101720; color:#dbe2eb; border-radius:7px; }.quiet-button { min-height:34px; padding:7px 11px; font-size:13px; }.icon-button { width:34px; height:34px; font-size:19px; line-height:1; }.icon-button:disabled { opacity:.55; cursor:wait; }
.range-panel { justify-content:space-between; gap:18px; padding:14px; border:1px solid var(--border); background:var(--panel-2); border-radius:8px; }.preset-row { flex-wrap:wrap; gap:8px; }.range-panel button { min-height:38px; padding:8px 14px; font-size:14px; font-weight:600; }.range-panel button.active { border-color:#2eac86; background:#102920; color:#f2f5f8; }.date-fields { gap:10px; }.date-fields label { display:grid; gap:5px; color:var(--muted); font-size:11px; font-weight:700; }.date-fields input { width:145px; height:38px; border:1px solid var(--border); border-radius:7px; background:#0d131b; color:var(--text); padding:0 10px; color-scheme:dark; }.date-fields button { align-self:end; }
.kpi-grid { display:grid; grid-template-columns:repeat(6, minmax(0, 1fr)); gap:10px; margin:14px 0; }.kpi { min-height:132px; padding:17px; border:1px solid var(--border); border-radius:8px; background:var(--panel); }.kpi-profit { border-color:#1d7655; background:linear-gradient(135deg, #0d281d, #121821 78%); }.kpi span, .kpi small { display:block; color:var(--muted); }.kpi span { font-size:13px; }.kpi strong { display:block; margin:13px 0 9px; color:#f2f5f8; font-size:26px; line-height:1; letter-spacing:0; }.kpi strong.negative, .negative { color:var(--red) !important; }.positive { color:var(--green) !important; }
.panel { border:1px solid var(--border); border-radius:8px; background:var(--panel-2); }.money-flow, .daily-panel { padding:21px; }.panel-title { justify-content:space-between; margin-bottom:20px; }.range-label { border:1px solid var(--border); border-radius:999px; padding:6px 10px; color:var(--muted); font-size:12px; }.flow-rows { display:grid; gap:11px; }.flow-row { display:grid; grid-template-columns:128px 1fr 104px; gap:14px; }.flow-row > span { color:#b5c1d0; }.flow-row strong { text-align:right; font-size:14px; }.track { height:13px; overflow:hidden; border-radius:999px; background:#090d12; }.bar { display:block; height:100%; min-width:0; border-radius:999px; }.bar.revenue,.revenue-dot { background:var(--blue); }.bar.vat,.vat-dot { background:#9baabd; }.bar.ad,.ad-dot { background:var(--yellow); }.bar.cogs,.cogs-dot { background:#f47782; }.bar.fee,.fee-dot { background:var(--violet); }.bar.profit,.profit-dot { background:var(--green); }.legend { flex-wrap:wrap; gap:14px; margin-top:18px; color:#718096; font-size:12px; }.legend span { display:inline-flex; align-items:center; gap:6px; }.legend i { width:8px; height:8px; border-radius:99px; }
.daily-panel { margin-top:14px; }.table-wrap { overflow:auto; border:1px solid var(--border); border-radius:7px; } table { width:100%; min-width:970px; border-collapse:collapse; } th, td { padding:13px 12px; border-bottom:1px solid #202a36; text-align:right; white-space:nowrap; } th:first-child, td:first-child { text-align:left; } th { color:#7f8da1; font-size:12px; font-weight:700; } td { color:#d6deea; font-size:13px; } tr:last-child td { border-bottom:0; }.empty { text-align:center !important; color:var(--muted); }
.source-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:14px; margin-top:14px; }.source-panel, .assumptions { padding:21px; }.source-rows { display:grid; gap:8px; margin-top:17px; }.source-row { display:grid; grid-template-columns:54px 110px 1fr; gap:10px; min-height:45px; padding:11px; border:1px solid #25303d; border-radius:7px; }.source-row small { color:var(--muted); }.status { width:48px; text-align:center; padding:4px 7px; border-radius:999px; background:#29313b; color:#b3bdc9; font-size:11px; font-weight:750; }.status.ok { background:#153c2d; color:#66e5ad; }.status.error { background:#46202a; color:#ff929a; }.assumptions > p { max-width:42ch; margin:17px 0; color:var(--muted); line-height:1.55; }.assumptions dl { margin:0; }.assumptions dl div { justify-content:space-between; padding:12px 0; border-top:1px solid var(--border); }.assumptions dt { color:var(--muted); }.assumptions dd { margin:0; font-weight:650; }
.login-view { min-height:100vh; display:grid; place-items:center; }.login-form { width:min(100%, 360px); padding:28px; border:1px solid var(--border); border-radius:8px; background:var(--panel); }.login-form h1 { margin-bottom:9px; }.login-form > p:not(.eyebrow):not(.form-error) { color:var(--muted); }.login-form label { display:block; margin:24px 0 7px; color:var(--muted); font-size:13px; }.login-form input { width:100%; height:42px; border:1px solid var(--border); border-radius:6px; background:#0b1017; color:var(--text); padding:0 11px; }.login-form button { width:100%; min-height:42px; margin-top:12px; border:0; border-radius:6px; background:var(--cherry); color:white; font-weight:700; }.form-error { min-height:18px; margin:10px 0 0; color:var(--red); font-size:13px; }
@media (max-width:1150px) { .kpi-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); } .range-panel { align-items:flex-start; flex-direction:column; } }
@media (max-width:680px) { .shell { padding:22px 14px 42px; }.topbar { align-items:flex-start; gap:14px; }.sync-label, .quiet-button { display:none; }.topbar-actions { gap:8px; }.range-panel { padding:11px; }.preset-row { gap:6px; }.range-panel button { min-height:34px; padding:7px 10px; font-size:13px; }.date-fields { width:100%; display:grid; grid-template-columns:1fr 1fr auto; gap:7px; }.date-fields input { width:100%; }.date-fields button { min-height:38px; padding:7px 10px; }.kpi-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }.kpi { min-height:116px; padding:14px; }.kpi strong { font-size:23px; }.money-flow, .daily-panel, .source-panel, .assumptions { padding:16px; }.flow-row { grid-template-columns:90px 1fr 75px; gap:8px; }.flow-row > span, .flow-row strong { font-size:12px; }.legend { gap:9px; }.source-grid { grid-template-columns:1fr; }.source-row { grid-template-columns:50px 92px 1fr; gap:7px; } }
:where([hidden]) { display: none !important; }
