:root{--bg:#f7f8fb;--panel:#fff;--text:#20222a;--muted:#7c8190;--line:#e9eaf0;--primary:#e74fa7;--primary2:#b9418b;--soft:#fff1f8;--green:#25a96f;--amber:#d98b20;--red:#d9534f;--blue:#4b7bec;--shadow:0 10px 35px rgba(26,29,43,.06)}*{box-sizing:border-box}html,body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);font-size:14px}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:20}.brand{height:74px;display:flex;align-items:center;gap:11px;padding:0 20px;border-bottom:1px solid var(--line)}.brand>div:last-child{display:flex;flex-direction:column}.brand b{font-size:16px}.brand span{font-size:11px;color:var(--muted);margin-top:2px;letter-spacing:.4px}.logo-mark{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#ed58af,#b8418b);color:#fff;font-weight:800;box-shadow:0 9px 24px rgba(231,79,167,.25)}.logo-mark.small{width:34px;height:34px;border-radius:11px;font-size:12px}.sidebar nav{padding:14px 10px;overflow:auto;flex:1}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;color:#666b78;margin:2px 0;font-size:13px}.sidebar nav a:hover{background:#faf6f9;color:#333}.sidebar nav a.active{background:var(--soft);color:var(--primary2);font-weight:600}.sidebar nav i{font-style:normal;width:20px;text-align:center;font-size:16px}.side-user{border-top:1px solid var(--line);padding:14px 16px;display:grid;grid-template-columns:34px 1fr 24px;gap:9px;align-items:center}.side-user>div:nth-child(2){display:flex;flex-direction:column;min-width:0}.side-user b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-user span{font-size:11px;color:var(--muted)}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fde6f4;color:var(--primary2);font-weight:700}.avatar.sm{width:30px;height:30px}.main{margin-left:238px;min-height:100vh}.topbar{height:74px;background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10;backdrop-filter:blur(8px)}.searchbox{width:min(470px,52vw);height:38px;border:1px solid var(--line);background:#fafafd;border-radius:20px;display:flex;align-items:center;gap:8px;padding:0 13px;color:#a6aab4}.searchbox input{border:0;outline:0;background:transparent;width:100%;font-size:12px}.top-actions{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.status-dot{width:7px;height:7px;border-radius:50%;background:#24b47e;box-shadow:0 0 0 4px rgba(36,180,126,.1)}.icon-btn{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;margin-left:10px}.mobile-menu{display:none;background:none;border:0;font-size:20px}.content{padding:27px 30px 60px;max-width:1700px;margin:auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px}.eyebrow{font-size:10px;letter-spacing:1.2px;color:var(--primary2);font-weight:800;margin-bottom:5px}.page-head h1{font-size:25px;margin:0;font-weight:700}.date-chip{padding:9px 12px;border:1px solid var(--line);background:#fff;border-radius:10px;color:var(--muted);font-size:12px}.welcome{background:linear-gradient(110deg,#fff,#fff8fc);border:1px solid #f2e7ee;border-radius:14px;padding:20px 22px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;box-shadow:var(--shadow)}.welcome h2{margin:0 0 4px;font-size:20px}.welcome p,.card-head p,.muted{margin:0;color:var(--muted);font-size:12px}.quick-row{display:flex;gap:9px}.btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 13px;cursor:pointer;font-weight:600;font-size:12px}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));border-color:transparent;color:#fff}.btn.soft{background:var(--soft);border-color:#f6d4e8;color:var(--primary2)}.btn.wide{width:100%}.metric-grid{display:grid;gap:12px;margin-bottom:18px}.metric-grid.six{grid-template-columns:repeat(6,1fr)}.metric-grid.three{grid-template-columns:repeat(3,1fr)}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px;min-height:118px;position:relative;box-shadow:0 5px 20px rgba(30,31,45,.025)}.metric-icon{position:absolute;right:12px;top:12px;width:31px;height:31px;border-radius:9px;background:var(--soft);color:var(--primary2);display:grid;place-items:center}.metric small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.metric b{display:block;font-size:22px;margin:19px 0 3px;letter-spacing:-.5px}.metric em{font-style:normal;color:#a1a5af;font-size:10px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px;box-shadow:0 5px 20px rgba(30,31,45,.025);margin-bottom:14px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.card-head h3,.form-card h3{font-size:13px;margin:0 0 3px}.card-head>a{font-size:11px;color:var(--primary2);font-weight:600}.table-wrap{overflow:auto;margin:-2px}.table-wrap.compact{max-height:470px}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;color:#8e929d;font-size:10px;text-transform:uppercase;letter-spacing:.45px;font-weight:700;padding:11px 9px;border-bottom:1px solid var(--line);background:#fbfbfd}td{padding:11px 9px;border-bottom:1px solid #f0f1f4;font-size:12px}td small{display:block;color:var(--muted);font-size:10px;margin-top:2px}tr:last-child td{border-bottom:0}.num{text-align:right}.badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:6px;font-size:10px;font-weight:700}.badge.green{background:#eaf8f1;color:#278459}.badge.amber{background:#fff4df;color:#a96b12}.badge.red{background:#fdeaea;color:#b33c3c}.badge.blue{background:#edf3ff;color:#4672cf}.badge.gray{background:#f0f1f4;color:#7a7e88}.rank-row{display:grid;grid-template-columns:26px 1fr auto;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid #f1f2f4}.rank-row>span{width:24px;height:24px;border-radius:50%;background:#f7f7fa;display:grid;place-items:center;color:#8d919c;font-size:10px}.rank-row div{display:flex;flex-direction:column}.rank-row b{font-size:12px}.rank-row small{font-size:10px;color:var(--muted)}.rank-row strong{font-size:12px}.empty{padding:30px;text-align:center;color:var(--muted)}.chart{height:220px;padding:20px 8px 5px;border-top:1px dashed #eee}.chart-bars{display:flex;height:100%;align-items:flex-end;gap:12px}.bar-set{flex:1;display:flex;height:100%;align-items:flex-end;gap:3px;position:relative}.bar{flex:1;border-radius:5px 5px 0 0;min-height:2px;background:#ef9acb}.bar.alt{background:#8ad8d6}.bar-set label{position:absolute;bottom:-18px;width:100%;text-align:center;font-size:9px;color:#a1a5af}.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.filter-tabs,.report-tabs{display:flex;gap:4px;background:#fff;border:1px solid var(--line);padding:4px;border-radius:10px}.filter-tabs button,.report-tabs button{border:0;background:transparent;padding:7px 11px;border-radius:7px;font-size:11px;cursor:pointer;color:#737784}.filter-tabs button.active,.report-tabs button.active{background:var(--soft);color:var(--primary2);font-weight:700}.modal{display:none;position:fixed;inset:0;background:rgba(25,25,36,.42);z-index:100;align-items:center;justify-content:center;padding:24px}.modal.open{display:flex}.modal-card{background:#fff;border-radius:16px;width:min(680px,96vw);max-height:92vh;overflow:auto;padding:24px;position:relative;box-shadow:0 30px 80px rgba(20,20,30,.23)}.modal-card.wide{width:min(850px,96vw)}.modal-card.xwide{width:min(1040px,97vw)}.modal-card h2{margin:0 0 5px;font-size:20px}.modal-x{position:absolute;right:18px;top:16px;border:0;background:#f5f5f8;width:30px;height:30px;border-radius:50%;font-size:20px;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:17px}.form-grid.cols-4{grid-template-columns:repeat(4,1fr)}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:10px;color:#747985;font-weight:700;text-transform:uppercase;letter-spacing:.35px}.form-grid input,.form-grid select,.form-grid textarea,.inline-form input,.inline-form select,.invoice-row input,.invoice-row select,.line-row input,.line-row select{width:100%;border:1px solid #dfe1e8;border-radius:8px;background:#fff;padding:9px 10px;outline:0;font-size:12px;color:#2e3038;text-transform:none;letter-spacing:0}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#df84ba;box-shadow:0 0 0 3px #fff0f8}.form-grid textarea{min-height:68px;resize:vertical}.span-2{grid-column:span 2}.span-4{grid-column:span 4}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:3px}.form-card{padding:18px}.notice-card{display:flex;gap:14px;align-items:flex-start;background:#fff8ed;border:1px solid #f6e2c3;border-radius:12px;padding:14px 16px;margin-bottom:14px}.notice-card h3{font-size:13px;margin:0 0 3px}.notice-card p{margin:0;color:#7f7261;font-size:11px}.notice-icon{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:grid;place-items:center;background:#ffefcf;color:#b2751b;font-weight:800}.line-editor,.invoice-lines{margin:8px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.line-head,.line-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;padding:8px 10px;align-items:center}.line-head,.invoice-head{background:#fafafd;font-size:10px;text-transform:uppercase;color:#8b8f99;font-weight:700}.invoice-head,.invoice-row{display:grid;grid-template-columns:2.5fr .7fr .8fr .7fr;gap:8px;padding:8px 10px;align-items:center}.link{color:var(--primary2);font-weight:700;font-size:11px}.report-tabs{width:max-content;margin-bottom:12px}.report-pane.hidden{display:none}.dropzone{border:1.5px dashed #d8dbe4;border-radius:12px;padding:34px;text-align:center;background:#fbfbfd;margin:14px 0}.dropzone b{display:block;font-size:13px}.dropzone p{font-size:11px;color:var(--muted)}.dropzone input{margin-top:10px;max-width:100%}.import-result{margin-top:12px;padding:11px;border-radius:9px;background:#effaf5;display:flex;flex-direction:column;gap:3px}.import-result span,.import-result small{font-size:11px;color:#607069}.inline-form{display:grid;grid-template-columns:1fr 130px auto;gap:8px;margin:12px 0}.inline-form.product{grid-template-columns:1.5fr 1fr .7fr .5fr auto}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip-list>span{background:#f8f8fb;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:11px;display:flex;gap:7px;align-items:center}.chip-list small{color:var(--muted);font-size:9px}.mini-list{margin-top:14px;border-top:1px solid var(--line);padding-top:8px}.mini-list>div{display:flex;gap:9px;align-items:center;padding:7px 0}.mini-list>div>div{display:flex;flex-direction:column}.mini-list b{font-size:11px}.mini-list small{font-size:10px;color:var(--muted)}.alert{border-radius:9px;padding:10px 12px;margin-bottom:14px;font-size:12px;border:1px solid}.alert.success{background:#effaf5;border-color:#d8f1e5;color:#297253}.alert.danger{background:#fff0f0;border-color:#f6d4d4;color:#a34141}.alert.warning{background:#fff7e8;border-color:#f1e3c8;color:#966b22}.login-body{min-height:100vh;background:linear-gradient(135deg,#f7f4f7,#fff);display:grid;place-items:center;padding:24px}.login-shell{width:min(940px,96vw);display:grid;grid-template-columns:1.15fr .85fr;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 30px 90px rgba(31,28,41,.11)}.brand-panel{padding:58px;background:linear-gradient(145deg,#211c26,#3b2434);color:#fff}.brand-panel h1{font-size:34px;margin:18px 0 6px}.brand-panel>p{color:#cfbdc9;line-height:1.65;max-width:450px}.login-features{display:flex;flex-direction:column;gap:10px;margin-top:36px;color:#eadde6;font-size:12px}.login-card{padding:55px 45px}.login-card h2{font-size:26px;margin:5px 0}.login-card form{display:flex;flex-direction:column;gap:13px;margin-top:25px}.login-card label{font-size:11px;color:#6e727d;font-weight:700}.login-card input{display:block;width:100%;margin-top:6px;border:1px solid #dfe1e8;border-radius:9px;padding:11px}.login-foot{margin-top:18px;color:#9a9da6;font-size:10px}.print-body{background:#eceef2;padding:25px}.print-toolbar{width:210mm;margin:0 auto 12px;display:flex;justify-content:space-between}.invoice-paper{width:210mm;min-height:297mm;margin:auto;background:#fff;padding:15mm;box-shadow:0 10px 35px rgba(0,0,0,.1)}.inv-top{display:flex;justify-content:space-between;border-bottom:2px solid #222;padding-bottom:16px}.inv-top h1{margin:10px 0 6px;font-size:24px}.inv-top p{margin:2px 0;font-size:11px}.inv-title{text-align:right}.inv-title span{display:block;font-size:12px;letter-spacing:1px}.inv-title b{display:block;font-size:19px;margin-top:8px}.billto{padding:17px 0}.billto small{font-size:9px;color:#777;letter-spacing:1px}.billto h3{margin:4px 0}.billto p{font-size:11px;margin:3px 0}.invoice-table th,.invoice-table td{font-size:10px}.inv-summary{display:grid;grid-template-columns:1fr 270px;gap:30px;margin-top:20px}.inv-summary table td{padding:6px 4px;border:0}.inv-summary table td:last-child{text-align:right}.inv-summary .grand td{border-top:1px solid #222;font-weight:800;font-size:12px}.inv-sign{display:flex;justify-content:space-between;text-align:center;margin-top:75px;font-size:11px}.inv-sign>div{width:220px;border-top:1px solid #aaa;padding-top:8px}@media print{.print-toolbar{display:none}.print-body{background:#fff;padding:0}.invoice-paper{box-shadow:none;margin:0;width:auto;min-height:auto}.sidebar,.topbar,.page-head{display:none}.main{margin:0}.content{padding:0}.card{box-shadow:none;border:0}}@media(max-width:1200px){.metric-grid.six{grid-template-columns:repeat(3,1fr)}.form-grid.cols-4{grid-template-columns:repeat(2,1fr)}.span-4{grid-column:span 2}}@media(max-width:820px){.sidebar{transform:translateX(-100%);transition:.2s}.nav-open .sidebar{transform:none;box-shadow:0 0 30px rgba(0,0,0,.18)}.main{margin-left:0}.mobile-menu{display:block}.topbar{padding:0 14px}.searchbox{width:55vw}.top-actions span:not(.status-dot){display:none}.content{padding:18px 14px 45px}.metric-grid.six,.metric-grid.three{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.welcome{align-items:flex-start;gap:15px;flex-direction:column}.form-grid,.form-grid.cols-4{grid-template-columns:1fr}.span-2,.span-4{grid-column:span 1}.login-shell{grid-template-columns:1fr}.brand-panel{display:none}.login-card{padding:38px 26px}.inline-form,.inline-form.product{grid-template-columns:1fr}.page-head{align-items:center}.date-chip{display:none}}@media(max-width:520px){.metric-grid.six,.metric-grid.three{grid-template-columns:1fr 1fr}.metric{min-height:106px;padding:12px}.metric b{font-size:18px}.quick-row{width:100%;flex-direction:column}.quick-row .btn{text-align:center}.toolbar{align-items:flex-start;gap:10px;flex-direction:column}.filter-tabs{overflow:auto;width:100%}.invoice-paper{padding:8mm}.inv-summary{grid-template-columns:1fr}.modal{padding:8px}}
