:root{--accent: #0f766e;--bg: #eef2f7;--border: #dbe3ee;--border-soft: #e2e8f0;--danger: #dc2626;--input-bg: #ffffff;--message-bg: #dcfce7;--message-border: #86efac;--message-error-bg: #fee2e2;--message-error-border: #fca5a5;--message-error-text: #991b1b;--message-text: #166534;--muted: #64748b;--panel: #ffffff;--panel-soft: #f8fafc;--shadow: rgba(15, 23, 42, .14);--tabs-bg: #dbe3ee;--text: #172033;--text-soft: #334155;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--accent: #2dd4bf;--bg: #0f172a;--border: #334155;--border-soft: #263244;--danger: #ef4444;--input-bg: #111827;--message-bg: #06281d;--message-border: #0f766e;--message-error-bg: #3b1115;--message-error-border: #b91c1c;--message-error-text: #fecaca;--message-text: #bbf7d0;--muted: #94a3b8;--panel: #111827;--panel-soft: #162033;--shadow: rgba(0, 0, 0, .34);--tabs-bg: #1e293b;--text: #e5edf8;--text-soft: #cbd5e1;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);margin:0}button,input,textarea,select{font:inherit}button{align-items:center;background:var(--accent);border:0;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-weight:700;gap:8px;min-height:40px;padding:0 14px}button:disabled{cursor:wait;opacity:.65}.ghost{background:var(--panel);border:1px solid var(--border);color:var(--text-soft);justify-content:center;width:42px}.danger{background:var(--danger);color:#fff}.icon-button{justify-content:center;padding:0;width:40px}input,textarea,select{background:var(--input-bg);border:1px solid var(--border);border-radius:6px;color:var(--text);margin-top:8px;min-height:40px;padding:9px 10px;width:100%}textarea{line-height:1.45;min-height:160px;resize:vertical}label{color:var(--text-soft);display:block;font-size:14px;font-weight:700}.login-screen{display:grid;min-height:100vh;place-items:center;padding:20px}.login-panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 24px 70px var(--shadow);display:grid;gap:16px;max-width:380px;padding:24px;width:100%}.login-panel h1{font-size:24px;margin:0}.app-shell{margin:0 auto;max-width:1220px;padding:24px 16px 48px}.topbar{align-items:center;display:flex;gap:18px;justify-content:space-between;margin-bottom:18px}.topbar h1{font-size:28px;line-height:1;margin:0 0 6px}.topbar p{color:var(--muted);margin:0}.actions{display:flex;gap:8px}.stats-grid{display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-bottom:16px}.stat{align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:8px;display:grid;gap:8px;grid-template-columns:auto 1fr auto;padding:16px}.stat span{color:var(--muted);font-weight:700}.stat strong{font-size:26px}.tabs{background:var(--tabs-bg);border-radius:8px;display:flex;gap:4px;margin-bottom:16px;padding:4px}.tabs button{background:transparent;color:var(--text-soft);flex:1;justify-content:center}.tabs button.active{background:var(--panel);color:var(--accent)}.subtabs{background:var(--tabs-bg);border-radius:8px;display:flex;gap:4px;margin-bottom:16px;padding:4px}.subtabs button{background:transparent;color:var(--text-soft);flex:1;justify-content:center}.subtabs button.active{background:var(--panel);color:var(--accent)}.message{background:var(--message-bg);border:1px solid var(--message-border);border-radius:6px;color:var(--message-text);font-weight:700;margin:0 0 16px;padding:10px 12px}.message.error{background:var(--message-error-bg);border-color:var(--message-error-border);color:var(--message-error-text)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px}.panel h2{font-size:20px;margin:0 0 14px}.panel-heading{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.panel-heading h2{align-items:center;display:flex;gap:8px;margin:0}.muted-label{color:var(--muted);font-size:13px;font-weight:700}.visits-panel,.channel-panel{margin-bottom:16px}.channel-section{display:grid;gap:0}.channel-summary{display:grid;gap:10px;grid-template-columns:repeat(2,1fr);margin-bottom:12px}.channel-summary span{background:var(--panel-soft);border:1px solid var(--border-soft);border-radius:6px;color:var(--muted);display:grid;gap:6px;padding:12px}.channel-summary strong{color:var(--text);font-size:24px}.leaves-chart{align-items:end;display:grid;gap:8px;grid-template-columns:repeat(14,minmax(38px,1fr));min-height:180px;overflow-x:auto;padding-top:8px}.danger-track span{background:linear-gradient(180deg,#fb7185,#e11d48)}.compact-table{margin-top:12px;max-height:320px;overflow:auto}.finance-panel{margin-bottom:16px}.finance-grid{display:grid;gap:10px;grid-template-columns:repeat(4,1fr)}.finance-grid span{background:var(--panel-soft);border:1px solid var(--border-soft);border-radius:6px;color:var(--muted);display:grid;gap:6px;padding:12px}.finance-grid strong{color:var(--text);font-size:24px}.finance-note{color:var(--muted);font-size:13px;font-weight:700;margin:12px 0 0}.daily-panel{margin-bottom:16px;max-width:960px}.daily-panel .panel-heading{margin-bottom:10px}.daily-panel .panel-heading h2{font-size:18px}.daily-summary{display:grid;gap:8px;grid-template-columns:repeat(4,1fr);margin-bottom:10px}.daily-summary span{background:var(--panel-soft);border:1px solid var(--border-soft);border-radius:6px;color:var(--muted);display:grid;gap:3px;min-height:64px;padding:9px 10px}.daily-summary strong{color:var(--text);font-size:19px;line-height:1.15}.daily-summary small{color:var(--muted);font-size:12px;font-weight:700}.daily-table{max-height:300px;overflow:auto}.daily-table table{min-width:660px}.daily-table th,.daily-table td{padding:8px 9px}.daily-table th{font-size:12px}.daily-table tbody tr:hover{background:var(--panel-soft)}.profit-pill{background:#14b8a624;border:1px solid rgba(20,184,166,.3);border-radius:999px;color:#0f766e;display:inline-flex;font-size:13px;font-weight:800;padding:4px 8px}.theme-dark .profit-pill{color:#5eead4}.profit-pill.negative{background:#e11d481f;border-color:#e11d4847;color:#e11d48}.visits-chart{align-items:end;display:grid;gap:8px;grid-template-columns:repeat(14,minmax(38px,1fr));min-height:220px;overflow-x:auto;padding-top:8px}.visit-bar{align-items:center;display:grid;gap:6px;grid-template-rows:24px 150px 20px;min-width:38px;text-align:center}.visit-bar strong{font-size:13px}.visit-bar small{color:var(--muted);font-size:12px;white-space:nowrap}.bar-track{align-items:end;background:var(--panel-soft);border:1px solid var(--border-soft);border-radius:6px;display:flex;height:150px;overflow:hidden;width:100%}.bar-track span{background:linear-gradient(180deg,#14b8a6,#0f766e);border-radius:5px 5px 0 0;display:block;width:100%}.split{display:grid;gap:16px;grid-template-columns:minmax(320px,.85fr) 1.15fr}.table-wrap{overflow-x:auto}table{border-collapse:collapse;min-width:820px;width:100%}th,td{border-bottom:1px solid var(--border-soft);padding:11px 10px;text-align:left;vertical-align:top}th{color:var(--muted);font-size:13px;text-transform:uppercase}td small{color:var(--muted);display:block;margin-top:4px}.link-list{display:grid;gap:8px;max-height:520px;overflow:auto}.link-summary{display:grid;gap:8px;grid-template-columns:repeat(3,1fr);margin-bottom:12px}.link-summary span{background:var(--panel-soft);border:1px solid var(--border-soft);border-radius:6px;color:var(--muted);display:grid;gap:4px;padding:10px}.link-summary strong{color:var(--text);font-size:22px}.link-row{align-items:center;background:var(--panel-soft);border:1px solid var(--border-soft);border-radius:6px;display:grid;gap:12px;grid-template-columns:1fr auto auto;padding:10px}.link-row span{overflow-wrap:anywhere}.link-row strong{color:var(--accent);font-size:13px}.product-form{display:grid;gap:14px;max-width:780px}.form-row{display:grid;gap:12px;grid-template-columns:1fr 1fr}.product-row{display:grid;gap:12px;grid-template-columns:minmax(260px,1fr) 140px 140px}@media(max-width:780px){.topbar,.panel-heading,.tabs,.subtabs,.split,.form-row,.product-row{display:grid;grid-template-columns:1fr}.stats-grid,.finance-grid,.daily-summary,.channel-summary{grid-template-columns:1fr}.tabs button,.subtabs button{justify-content:flex-start}}
