:root{--navy: #0b1f4b;--navy-2: #132a5c;--blue: #415fff;--blue-deep: #1e3fd8;--ink: #12203a;--muted: #5c6b86;--line: #d5dce8;--paper: #f6f7fb;--card: #ffffff;--cream: #f4efe4;--gold: #b8860b;--red: #d93025;--green: #188038;--vivo: #415fff;--sho: #0b1f4b;--shadow: 0 10px 30px rgba(11, 31, 75, .08);color:var(--ink);font-family:Bahnschrift,Segoe UI,sans-serif;font-size:15px;background:var(--paper)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--paper);color:var(--ink)}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}.app{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.rail{background:var(--navy);color:#e8eeff;padding:22px 16px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center}.mark{width:36px;height:36px;border-radius:8px;background:linear-gradient(160deg,var(--blue),var(--blue-deep));display:grid;place-items:center;font-weight:700;letter-spacing:.04em;color:#fff;font-size:12px}.brand small{display:block;color:#9eb0d8;letter-spacing:.14em;font-size:10px}.brand strong{letter-spacing:.08em;font-size:13px}.nav{display:flex;flex-direction:column;gap:4px}.nav a{text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:12px;padding:10px 12px;border-radius:8px;color:#c9d4ef}.nav a.active,.nav a:hover{background:#415fff38;color:#fff}.rail-foot{margin-top:auto;font-size:12px;color:#9eb0d8;display:flex;flex-direction:column;gap:8px}.rail-foot button,.ghost,.btn{border:1px solid transparent;background:transparent;cursor:pointer;letter-spacing:.08em;text-transform:uppercase;font-size:12px}.rail-foot button{color:#e8eeff;text-align:left;padding:0}.stage{min-width:0}.top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:22px 28px 8px}.top h1{margin:0;font-size:22px;letter-spacing:.14em;font-weight:600}.kicker,.section-head .kicker{margin:0 0 2px;letter-spacing:.16em;font-size:11px;color:var(--blue-deep);text-transform:uppercase}.page{padding:12px 28px 88px;display:flex;flex-direction:column;gap:16px}.card,.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.panel{padding:16px}.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.kpi{padding:14px 16px}.kpi span{display:block;letter-spacing:.14em;font-size:11px;color:var(--muted)}.kpi strong{display:block;margin-top:6px;font-size:26px;font-weight:600;letter-spacing:-.02em}.kpi em{font-style:normal;color:var(--muted);font-size:12px}.filters,.row,.downloads,.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}label.field{display:flex;flex-direction:column;gap:4px;font-size:11px;letter-spacing:.12em;color:var(--muted)}input,select,textarea{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-width:0}textarea{min-height:72px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid rgba(65,95,255,.35);border-color:var(--blue)}.btn{background:linear-gradient(180deg,var(--blue),var(--blue-deep));color:#fff;border-radius:8px;padding:9px 14px;text-decoration:none;display:inline-flex;align-items:center}.btn.secondary,.ghost{background:#fff;color:var(--navy);border-color:var(--line);border-radius:8px;padding:8px 12px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.busy:after{content:"";width:12px;height:12px;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:cbt-spin .7s linear infinite}@keyframes cbt-spin{to{transform:rotate(360deg)}}.dl{text-decoration:none;border:1px solid var(--navy);color:var(--navy);background:#fff;border-radius:999px;padding:6px 12px;letter-spacing:.1em;font-size:11px;text-transform:uppercase}.dl:hover{background:var(--navy);color:#fff}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;background:var(--cream);border-left:4px solid var(--blue);padding:12px 14px;border-radius:10px}.section-head h2{margin:0;font-size:16px;letter-spacing:.12em}.sheet-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}table.sheet{width:100%;border-collapse:collapse;min-width:720px}table.sheet th{position:sticky;top:0;z-index:1;background:var(--navy);color:#fff;text-align:left;font-weight:600;font-size:11px;letter-spacing:.1em;padding:10px 12px;white-space:nowrap}table.sheet td{padding:9px 12px;border-bottom:1px solid #eef1f6;vertical-align:middle}table.sheet tbody tr:hover{background:#f4f7ff}table.sheet tfoot td{background:var(--navy);color:#fff;font-weight:600}table.sheet .num,.money{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.money.neg,.neg{color:var(--red)}.money.pos,.pos{color:var(--green)}table.sheet tfoot .money.neg,table.sheet tfoot .neg{color:#ffb4ae}.muted{color:var(--muted)}.right{margin-left:auto}.bar{display:flex;height:8px;width:120px;background:#e7ebf5;border-radius:99px;overflow:hidden}.bar-vivo{background:var(--blue)}.bar-sho{background:var(--navy)}.spark{color:var(--blue-deep);display:block}.chip{display:inline-flex;align-items:center;border-radius:99px;padding:2px 8px;font-size:11px;letter-spacing:.06em;background:#eef2ff;color:var(--navy)}.chip.warn{background:#fff1f0;color:var(--red)}.chip.ok{background:#e8f6ec;color:var(--green)}.chip.draft{background:var(--cream);color:#7a5b12}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-hero{background:radial-gradient(800px 400px at 20% 10%,rgba(65,95,255,.45),transparent 60%),var(--navy);color:#fff;padding:64px;display:flex;flex-direction:column;justify-content:flex-end;gap:12px}.login-hero h1{margin:0;font-size:42px;letter-spacing:.08em;font-weight:600;line-height:1.05}.login-hero p{max-width:460px;color:#d5def5}.login-panel{display:grid;place-items:center;padding:32px}.login-card{width:min(420px,100%);display:flex;flex-direction:column;gap:12px;padding:28px}.login-card h2{margin:0;letter-spacing:.14em}.error{color:var(--red);font-size:13px}.grid-form{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.span-2{grid-column:span 2}.span-4{grid-column:span 4}.editor-table input,.editor-table select{width:100%;padding:6px 8px}.editor-table{min-width:1180px}.line-tools{display:flex;gap:4px}.icon{border:1px solid var(--line);background:#fff;border-radius:6px;width:28px;height:28px;cursor:pointer}.breakup{background:#f8f6f1;padding:10px 12px 12px 42px}.breakup table{width:100%;border-collapse:collapse}.breakup td,.breakup th{padding:4px;text-align:left;font-size:13px}.suggest{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.suggest button{border:1px dashed var(--blue);background:#fff;border-radius:99px;padding:3px 8px;cursor:pointer;font-size:12px}.sticky-totals{position:sticky;bottom:0;z-index:3;display:grid;grid-template-columns:repeat(5,1fr);background:var(--navy);color:#fff;border-radius:12px;padding:12px 16px;gap:8px}.sticky-totals span{display:block;letter-spacing:.12em;font-size:11px;color:#b9c6e6}.sticky-totals strong{font-size:18px}.banner{background:#fff7e8;border:1px solid #efd7a4;color:#6b4e10;border-radius:10px;padding:10px 12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.cards{display:none}.check-true{color:var(--green);font-weight:700;letter-spacing:.08em}.check-false{color:var(--red);font-weight:700;letter-spacing:.08em}.sho-alert{color:var(--red);font-weight:700}@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.grid-form{grid-template-columns:1fr 1fr}.span-4,.span-2{grid-column:span 2}}@media(max-width:760px){.app{grid-template-columns:1fr}.rail{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center}.nav{flex-direction:row;flex-wrap:wrap}.rail-foot{margin-top:0;flex-direction:row;width:100%;justify-content:space-between}.login{grid-template-columns:1fr}.login-hero{min-height:220px;padding:28px}.login-hero h1{font-size:28px}.page,.top{padding-left:14px;padding-right:14px}.sticky-totals{grid-template-columns:1fr 1fr}.desktop-lines{display:none}.cards{display:flex;flex-direction:column;gap:10px}.line-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:8px}.line-card header{display:flex;justify-content:space-between;gap:8px;align-items:center}}
