:root{--bg: #ffffff;--side: #fafaf9;--panel: #ffffff;--panel2: #ffffff;--soft: #f6f6f4;--line: #ececea;--line2: #dededb;--text: #18181b;--muted: #6b6b70;--dim: #9a9a9f;--pill: #ffffff;--accent: #18181b;--acc2: #7c6cf0;--green: #16a34a;--amber: #b45309;--red: #dc2626;--blue: #2563eb;--radius: 14px;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 Inter,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}h1{font-size:22px;font-weight:600;margin:0 0 4px;letter-spacing:-.01em}h2{font-size:15px;font-weight:600;margin:0 0 12px}h3{font-size:15px;font-weight:600;margin:0}p{margin:0}a{color:var(--blue)}.boot{display:grid;place-items:center;height:100%;color:var(--muted)}.muted{color:var(--muted)}.dim{color:var(--dim)}.small{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.row{display:flex;align-items:center}.gap4{gap:4px}.gap8{gap:8px}.gap12{gap:12px}.gap16{gap:16px}.wrap{flex-wrap:wrap}.grow{flex:1}.right-align{text-align:right}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.pos{color:var(--green)}.neg{color:var(--red)}.shell{display:grid;grid-template-columns:248px 1fr;height:100%}.side{background:var(--side);border-right:1px solid var(--line);padding:14px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.app-pill{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;background:#fff;border:1px solid var(--line2);box-shadow:0 1px 2px #0000000a;font-weight:600;font-size:15px;margin-bottom:4px}.app-logo{width:22px;height:22px;border-radius:6px;background:#18181b;color:#fff;display:grid;place-items:center;font-size:10px;font-weight:800;letter-spacing:-.04em}.nav{display:flex;flex-direction:column;gap:2px}.nav button{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;padding:8px 12px 8px 46px;border-radius:10px;color:#57575c;font-size:14.5px;position:relative}.nav button svg{position:absolute;left:16px;opacity:.55}.nav button:hover{color:var(--text);background:#f0f0ee}.nav button.active{background:#fff;color:var(--text);font-weight:500;box-shadow:0 1px 2px #0000000d;border:1px solid var(--line2);padding:7px 11px 7px 45px}.nav button.active svg{opacity:.9;left:15px}.nav .count{margin-left:auto;font-size:11px;background:#ececea;color:var(--muted);border-radius:99px;padding:1px 7px}.nav-sep{height:1px;background:var(--line);margin:8px 6px}.side-foot{margin-top:auto;padding:10px 8px 2px;color:var(--dim);font-size:12px}.side-foot .live{display:inline-block;width:7px;height:7px;border-radius:99px;background:var(--green);margin-right:6px;box-shadow:0 0 0 3px #16a34a22}.main{overflow-y:auto}.page{max-width:1240px;margin:0 auto;padding:28px 32px 64px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-head p{max-width:720px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;overflow-x:auto;min-width:0}.grid>*{min-width:0}.card+.card{margin-top:16px}.card-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px}.card-h h2{margin:0}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g5{grid-template-columns:repeat(5,minmax(0,1fr))}.span2{grid-column:span 2}.mt16{margin-top:16px}.mt8{margin-top:8px}.mt24{margin-top:24px}.mb16{margin-bottom:16px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.stat-l{color:var(--muted);font-size:12.5px}.stat-v{font-size:24px;font-weight:600;margin-top:6px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-s{color:var(--dim);font-size:12px;margin-top:4px}.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line2);background:var(--panel2);color:var(--text);padding:7px 13px;border-radius:9px;cursor:pointer;font-weight:500;font-size:13.5px;white-space:nowrap}.btn:hover{background:var(--soft)}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{background:#333}.btn.danger{color:var(--red)}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.ghost:hover{color:var(--text);background:var(--soft)}.btn.sm{padding:4px 9px;font-size:12.5px;border-radius:7px}.btn:disabled{opacity:.45;cursor:not-allowed}.icon{all:unset;cursor:pointer;display:grid;place-items:center;width:28px;height:28px;border-radius:7px;color:var(--muted)}.icon:hover{background:var(--soft);color:var(--text)}input[type=text],input[type=email],input[type=number],input[type=date],input[type=datetime-local],input:not([type]),select,textarea{width:100%;background:#fff;border:1px solid var(--line2);border-radius:8px;padding:8px 10px;outline:none;font-size:13.5px}input:focus,select:focus,textarea:focus{border-color:#a1a1a6;box-shadow:0 0 0 3px #18181b0f}textarea{min-height:70px;resize:vertical}.field{display:flex;flex-direction:column;gap:6px}.field-l{font-size:12.5px;color:var(--muted);font-weight:500}.field-h{font-size:12px;color:var(--dim)}.form{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}.input-suffix{position:relative}.input-suffix span{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--dim);font-size:12.5px;pointer-events:none}.input-suffix input{padding-right:34px}.search{position:relative}.search input{padding-left:32px;width:260px}.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--dim)}.toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{display:none}.toggle .track{width:34px;height:20px;border-radius:99px;background:#d4d4d1;position:relative;transition:.15s;flex:none}.toggle .thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:99px;background:#fff;transition:.15s;box-shadow:0 1px 2px #0003}.toggle input:checked+.track{background:var(--green)}.toggle input:checked+.track .thumb{left:16px;background:#fff}.seg{display:inline-flex;background:var(--soft);border:1px solid var(--line2);border-radius:9px;padding:2px}.seg button{all:unset;cursor:pointer;padding:5px 11px;border-radius:7px;color:var(--muted);font-size:13px}.seg button.on{background:#fff;color:var(--text);box-shadow:0 1px 2px #0000001a}.choice{display:grid;gap:8px}.choice-item{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid var(--line2);border-radius:10px;cursor:pointer;background:#fff}.choice-item.on{border-color:var(--accent);background:var(--soft)}.choice-item input{margin-top:3px;accent-color:#18181b}.choice-item b{font-weight:600}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}table{width:100%;border-collapse:collapse}th{text-align:left;font-weight:500;color:var(--muted);font-size:12px;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap;background:#fafaf9;position:sticky;top:0}td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr.click{cursor:pointer}tbody tr.click:hover td,tr.sub td{background:#fafaf9}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:99px;font-size:11.5px;font-weight:500;border:1px solid;white-space:nowrap}.badge.green{color:#15803d;border-color:#16a34a33;background:#16a34a0d}.badge.amber{color:#b45309;border-color:#f59e0b44;background:#f59e0b12}.badge.red{color:#b91c1c;border-color:#dc262633;background:#dc26260d}.badge.blue{color:#1d4ed8;border-color:#2563eb33;background:#2563eb0d}.badge.violet{color:#6d5ce0;border-color:#7c6cf033;background:#7c6cf00f}.badge.peach{color:#c2553f;border-color:#ef8a7433;background:#ef8a740f}.badge.gray{color:var(--muted);border-color:#0000001a;background:#00000006}.code{font-family:ui-monospace,Menlo,monospace;font-size:12px;background:var(--soft);border:1px solid var(--line2);padding:2px 7px;border-radius:6px;letter-spacing:.02em}.avatar{width:30px;height:30px;border-radius:99px;display:grid;place-items:center;font-size:11.5px;font-weight:600;color:#fff;flex:none}.who{display:flex;align-items:center;gap:10px}.who b{font-weight:500}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px}.tabs button{all:unset;cursor:pointer;padding:8px 12px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;font-size:13.5px}.tabs button.on{color:var(--text);border-color:var(--accent)}.tabs .count{margin-left:6px;font-size:11px;color:var(--dim)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#18181b52;display:grid;place-items:center;z-index:50;padding:24px;animation:fade .12s}.overlay.right{place-items:stretch end;padding:0}@keyframes fade{0%{opacity:0}}.modal{width:min(640px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line2);border-radius:16px;box-shadow:0 30px 80px #0003}.modal.wide{width:min(880px,100%)}.modal-h,.drawer-h{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line);gap:12px}.modal-b{padding:18px;overflow-y:auto}.modal-f{padding:14px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.drawer{width:min(640px,100vw);height:100%;background:var(--panel);border-left:1px solid var(--line2);display:flex;flex-direction:column;animation:slide .16s ease-out}@keyframes slide{0%{transform:translate(30px);opacity:.4}}.drawer-b{padding:18px;overflow-y:auto}.section-t{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin:22px 0 10px;font-weight:600}.section-t:first-child{margin-top:0}.kv{display:grid;grid-template-columns:1fr auto;gap:7px 16px;font-size:13.5px}.kv .k{color:var(--muted)}.kv .total{border-top:1px solid var(--line2);padding-top:8px;font-weight:600}.kv .total.k{color:var(--text)}.banner{display:flex;gap:12px;align-items:flex-start;padding:13px 15px;border-radius:11px;border:1px solid;font-size:13.5px}.banner.info{border-color:#2563eb26;background:#2563eb08}.banner.warn{border-color:#f59e0b40;background:#f59e0b0d}.banner.ok{border-color:#16a34a33;background:#16a34a0a}.banner svg{flex:none;margin-top:1px}.empty{padding:36px;text-align:center;color:var(--dim)}.toasts{position:fixed;bottom:18px;right:18px;display:flex;flex-direction:column;gap:8px;z-index:99}.toast{background:#18181b;color:#fff;border:1px solid var(--line2);padding:10px 14px;border-radius:10px;box-shadow:0 10px 30px #0003;font-size:13.5px;animation:fade .15s}.toast.err{background:#b91c1c;border-color:#b91c1c}.bar{height:6px;background:#ececea;border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent);border-radius:99px}.kanban{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));gap:12px;overflow-x:auto}.col{background:var(--side);border:1px solid var(--line);border-radius:12px;padding:10px;min-height:300px}.col-h{display:flex;justify-content:space-between;padding:4px 4px 10px;color:var(--muted);font-size:12.5px;font-weight:600}.kcard{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px;margin-bottom:8px;cursor:grab}.kcard:active{cursor:grabbing}.col.drop{border-color:#a1a1a6;background:#f0f0ee}.prog-card{position:relative;overflow:hidden}.prog-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--c)}.big-num{font-size:30px;font-weight:600;letter-spacing:-.02em}.matrix td.hl{color:var(--accent);font-weight:600}.chart-bars{display:flex;align-items:flex-end;gap:10px;height:150px;padding-top:10px}.chart-bars .b{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.chart-bars .b i{display:block;width:100%;max-width:46px;background:linear-gradient(#3f3f46,#18181b);border-radius:6px 6px 2px 2px;min-height:2px}.chart-bars .b span{font-size:11.5px;color:var(--dim)}.chart-bars .b em{font-style:normal;font-size:11.5px;color:var(--muted)}.print-sheet{background:#fff;color:#111;padding:32px;border-radius:8px;font-size:13px}.print-sheet table th{background:#f3f3f3;color:#333}.print-sheet td,.print-sheet th{border-bottom:1px solid #ddd;color:#111}@media print{body *{visibility:hidden}.print-sheet,.print-sheet *{visibility:visible}.print-sheet{position:fixed;top:0;right:0;bottom:0;left:0;border-radius:0}}@media (max-width: 900px){.shell{grid-template-columns:1fr}.side{display:none}.g4,.g5,.g3{grid-template-columns:1fr 1fr}.page{padding:20px 16px}}.promo-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:10px 32px;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);flex-wrap:wrap}.promo-bar .lbl{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);font-weight:600}.promo-bar input{width:auto;padding:6px 9px}.promo-pill{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:99px;background:#18181b;color:#fff;font-weight:600;font-size:13px}.promo-pill.off{background:var(--soft);color:var(--muted);font-weight:500}.login{min-height:100%;display:grid;place-items:center;padding:24px;background:var(--side)}.login-card{width:min(400px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:0 12px 40px #0000000d}.login-card h1{margin-bottom:6px}.portal{min-height:100%;background:#fff}.portal-top{display:flex;justify-content:space-between;align-items:center;padding:18px 28px;border-bottom:1px solid var(--line)}.portal-main{max-width:860px;margin:0 auto;padding:36px 24px 80px}.portal h1{font-size:28px;letter-spacing:-.02em}.code-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;border-radius:18px;background:var(--soft);border:1px solid var(--line);flex-wrap:wrap}.code-big{font:700 26px/1 ui-monospace,Menlo,monospace;letter-spacing:.04em}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.step{padding:16px;border:1px solid var(--line);border-radius:14px}.step>b{display:grid;place-items:center;width:24px;height:24px;border-radius:99px;background:#18181b;color:#fff;font-size:12px;margin-bottom:10px}.invoice-text{white-space:pre;font:12.5px/1.6 ui-monospace,Menlo,monospace;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:16px;overflow-x:auto}.sticky-foot{position:sticky;bottom:16px;margin-top:16px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px 12px 18px;background:#18181b;color:#fff;border-radius:14px;box-shadow:0 12px 30px #0003}.sticky-foot .btn.primary{background:#fff;color:#18181b;border-color:#fff}@media (max-width: 700px){.steps{grid-template-columns:1fr}.promo-bar{padding:10px 16px}}.promo-bar .input-suffix input{width:100%}.dash-split{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}@media (max-width: 900px){.dash-split{grid-template-columns:1fr}}.portal-shell .portal-top{position:sticky;top:0;z-index:10;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:14px 32px}.p-profile{display:flex;flex-direction:column;align-items:center;text-align:center;padding:18px 8px 16px;gap:2px}.p-profile .live{margin-right:5px}.mb8{margin-bottom:8px}.perf{display:flex;align-items:flex-end;gap:3px;height:140px;margin:14px 0 6px;border-bottom:1px solid var(--line)}.perf-b{flex:1;height:100%;display:flex;align-items:flex-end}.perf-b i{display:block;width:100%;min-height:2px;background:#18181b;border-radius:3px 3px 0 0}.perf-b:hover i{background:var(--acc2)}.mbar,.nav-backdrop{display:none}@media (max-width: 900px){.mbar{display:flex;align-items:center;gap:8px;position:sticky;top:0;z-index:30;padding:10px 12px;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.mbar-title{flex:1;text-align:center;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mbar-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--text);cursor:pointer;flex:none}.mbar .app-logo{margin:0 6px}.shell .side{display:flex;position:fixed;z-index:50;top:0;bottom:0;left:0;width:min(300px,84vw);transform:translate(-102%);transition:transform .22s ease;box-shadow:0 0 40px #0003}.shell.nav-open .side{transform:none}.shell.nav-open .nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0006}.side .nav button{padding-top:11px;padding-bottom:11px}.portal-shell .portal-top{display:none}.main{height:100%}}.lang-switch{display:inline-flex;align-items:center}.lang-switch button{padding:4px 9px}
