:root{--bg: #f4f6fa;--panel: #ffffff;--ink: #17203a;--muted: #6b7491;--line: #e2e6f0;--brand: #3b5bdb;--brand-dark: #2f49b5;--brand-soft: #e8edff;--ok: #1f9d55;--ok-soft: #e3f6ea;--warn: #c77700;--warn-soft: #fff1d6;--bad: #d63a3a;--bad-soft: #fde7e7;--radius: 10px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:14px;line-height:1.45}h1{font-size:22px;margin:0}h2{font-size:17px;margin:0 0 12px}h3{font-size:14px;margin:0 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}a{color:var(--brand);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.row{display:flex;align-items:center}.gap{gap:10px}.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.grow{flex:1}.muted{color:var(--muted)}.right{text-align:right}.mt{margin-top:16px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:#101a3a;color:#cdd5f2;padding:18px 12px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{font-weight:800;font-size:18px;color:#fff;padding:4px 10px 16px;letter-spacing:-.01em}.brand span{color:#8fa4ff}.nav a{display:block;padding:9px 12px;border-radius:8px;color:#cdd5f2;margin-bottom:2px}.nav a:hover{background:#ffffff12}.nav a.active{background:var(--brand);color:#fff}.nav .sep{margin:14px 12px 6px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7f8bb5}.main{min-width:0}.topbar{background:var(--panel);border-bottom:1px solid var(--line);padding:10px 24px;display:flex;justify-content:space-between;align-items:center}.page{padding:22px 24px 48px;max-width:1280px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px;flex-wrap:wrap}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.card+.card{margin-top:16px}.grid{display:grid;gap:14px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#f8f9fd}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.empty{padding:28px;text-align:center;color:var(--muted)}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.stat-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:22px;font-weight:700;margin-top:4px}.stat.warn .stat-value{color:var(--warn)}.stat.bad .stat-value{color:var(--bad)}.stat.ok .stat-value{color:var(--ok)}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field>span{font-size:12px;font-weight:600;color:var(--muted)}.field small{color:var(--muted);font-size:12px}input,select,textarea{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand-soft);border-color:var(--brand)}textarea{min-height:80px;resize:vertical}.checkbox{display:flex;align-items:center;gap:8px;margin-bottom:12px}.checkbox input{width:auto}.inline-input{width:110px}.btn{border:1px solid var(--line);background:#fff;padding:8px 14px;border-radius:8px;cursor:pointer;font-weight:600;white-space:nowrap}.btn:hover{background:#f4f6fb}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-dark)}.btn.danger{color:var(--bad)}.btn.small{padding:4px 10px;font-size:12px}.btn:disabled{opacity:.55;cursor:not-allowed}.icon-btn{border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--muted)}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:#eceff6;color:#48506b}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.brand{background:var(--brand-soft);color:var(--brand)}.alert{padding:10px 14px;border-radius:8px;margin-bottom:14px}.alert.error{background:var(--bad-soft);color:var(--bad)}.alert.info{background:var(--brand-soft);color:var(--brand-dark)}.alert.warn{background:var(--warn-soft);color:var(--warn)}.alert.ok{background:var(--ok-soft);color:var(--ok)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#101a3a80;display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;overflow-y:auto;z-index:50}.modal{background:#fff;border-radius:12px;width:100%;max-width:520px;box-shadow:0 20px 50px #00000040}.modal.wide{max-width:900px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0}.modal-body{padding:18px}.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(160deg,#101a3a,#2b3f9c)}.auth-card{background:#fff;border-radius:14px;padding:28px;width:100%;max-width:420px}.auth-card h1{margin-bottom:4px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}.tab{padding:8px 14px;border:0;background:none;cursor:pointer;font-weight:600;color:var(--muted);border-bottom:2px solid transparent}.tab.active{color:var(--brand);border-color:var(--brand)}.plan{border:2px solid var(--line);border-radius:14px;padding:20px;background:#fff;position:relative}.plan.current{border-color:var(--brand)}.plan .price{font-size:30px;font-weight:800;margin:6px 0}.plan .price small{font-size:14px;color:var(--muted);font-weight:500}.plan ul{padding-left:18px;margin:12px 0 0}.plan li{margin-bottom:6px}.ribbon{position:absolute;top:-11px;right:16px;background:var(--ok);color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}.banner{padding:9px 24px;font-weight:600}.banner.warn{background:var(--warn-soft);color:var(--warn)}.banner.bad{background:var(--bad-soft);color:var(--bad)}.banner.info{background:var(--brand-soft);color:var(--brand-dark)}.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:8px 0 8px 18px;border-left:2px solid var(--line);position:relative}.timeline li:before{content:"";position:absolute;left:-6px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--brand)}.steps{display:flex;gap:4px;flex-wrap:wrap}.step{padding:4px 10px;border-radius:999px;font-size:12px;background:#eceff6;color:var(--muted);font-weight:600}.step.done{background:var(--ok-soft);color:var(--ok)}.step.now{background:var(--brand);color:#fff}.bar-row{display:flex;align-items:center;gap:10px;margin:6px 0}.bar-row .label{width:110px;color:var(--muted);font-size:12px}.bar{height:14px;background:var(--brand);border-radius:4px;min-width:2px}#print-root{display:none}.invoice-preview{background:#e9edf5;padding:14px;border-radius:8px;overflow-x:auto}.invoice-sheet{background:#fff;color:#1b2233;width:100%;max-width:794px;min-width:640px;margin:0 auto;padding:34px 38px;font-size:12.5px;line-height:1.45;box-shadow:0 1px 6px #141e3c26;print-color-adjust:exact;-webkit-print-color-adjust:exact}.invoice-sheet .mono{font-family:ui-monospace,Consolas,monospace}.inv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:16px;border-bottom:3px solid var(--brand)}.inv-shop-name{font-size:22px;font-weight:800;color:var(--brand);margin-bottom:4px;letter-spacing:-.2px}.inv-shop{color:#4a5470;max-width:60%}.inv-title{text-align:right}.inv-title-text{font-size:30px;font-weight:800;letter-spacing:3px;color:#1b2233}.inv-stamp{display:inline-block;margin-top:6px;padding:2px 12px;border:2px solid;border-radius:4px;font-weight:800;letter-spacing:1.5px;font-size:12px;transform:rotate(-3deg)}.inv-stamp.PAID{color:#14804a}.inv-stamp.PARTIAL{color:#b7791f}.inv-stamp.UNPAID{color:#c0392b}.inv-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0}.inv-box{border:1px solid #dde2ee;border-radius:6px;padding:10px 14px;background:#f8f9fc}.inv-label{font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:#7a849e;font-weight:700;margin-bottom:3px}.inv-strong{font-weight:700}.inv-sub{font-size:11px;color:#5b6580}.inv-box dl{display:grid;grid-template-columns:auto 1fr;gap:3px 14px;margin:0}.inv-box dt{color:#7a849e}.inv-box dd{margin:0;text-align:right}.inv-table{width:100%;border-collapse:collapse;margin-top:4px}.inv-table thead{display:table-header-group}.inv-table th{background:var(--brand);color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.6px;padding:8px 10px;text-align:left}.inv-table th.num,.inv-table td.num{text-align:right;white-space:nowrap}.inv-table td{padding:9px 10px;border-bottom:1px solid #e3e7f1;vertical-align:top}.inv-table tr{break-inside:avoid}.inv-table tbody tr:nth-child(2n) td{background:#fafbfd}.inv-table .c-no{width:28px;color:#7a849e}.inv-table .c-qty{width:48px}.inv-bottom{display:grid;grid-template-columns:1fr 290px;gap:28px;margin-top:18px;break-inside:avoid}.inv-words{color:#3a4560}.inv-totals>div{display:flex;justify-content:space-between;padding:5px 10px}.inv-totals .grand{background:var(--brand);color:#fff;font-size:15px;font-weight:800;border-radius:4px;margin:3px 0;padding:8px 10px}.inv-totals .due{font-weight:800;color:#c0392b;border-top:1px dashed #c3cadb}.inv-foot{display:flex;justify-content:space-between;gap:40px;margin-top:54px;break-inside:avoid}.inv-sign{width:210px;text-align:center;font-size:11px;color:#5b6580}.inv-sign .line{border-top:1px solid #1b2233;margin-bottom:4px}.inv-thanks{margin-top:22px;padding-top:10px;border-top:1px solid #dde2ee;text-align:center;color:#5b6580;font-size:11px;break-inside:avoid}.inv-thanks strong{color:#1b2233;font-size:13px;display:block;margin-bottom:2px}.labels{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.label-card{border:1px dashed #aab;padding:8px;text-align:center;background:#fff;break-inside:avoid}.label-card svg{width:100%;height:56px}.label-name{font-size:11px;font-weight:600}.print-only{display:none}@media (max-width: 900px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;display:flex;flex-wrap:wrap;gap:4px;padding:8px}.brand{width:100%;padding-bottom:4px}.nav{display:flex;flex-wrap:wrap;gap:4px}.nav .sep{display:none}.grid.cols-3,.grid.cols-4,.grid.cols-2{grid-template-columns:1fr 1fr}.page{padding:16px}}@media (max-width: 560px){.grid.cols-3,.grid.cols-4,.grid.cols-2{grid-template-columns:1fr}}@page{size:A4;margin:12mm}@media print{html,body{background:#fff;height:auto;margin:0}.no-print{display:none!important}.print-only{display:block}body:has(#print-root .invoice-sheet) #root{display:none!important}#print-root:has(.invoice-sheet){display:block}#print-root .invoice-sheet{width:100%;max-width:none;min-width:0;margin:0;padding:0;box-shadow:none;font-size:11.5px}.sidebar,.topbar,.banner,.modal-head,.page-head .btn{display:none!important}.shell{display:block}.modal-backdrop{position:static;background:none;padding:0}.modal{box-shadow:none;max-width:none}.page{padding:0;max-width:none}.card{border:0;padding:0}}
