:root{--purple:#6d28d9;--violet:#8b5cf6;--ink:#19141f;--muted:#766b80;--line:#e7dfed;--soft:#f7f4fa;--dark:#17131f;--green:#15803d;--red:#b91c1c;--amber:#a16207;--shadow:0 18px 55px rgba(55,25,90,.09)}
*{box-sizing:border-box}body{margin:0;background:#f7f5f9;color:var(--ink);font:14px/1.55 Inter,system-ui,-apple-system,Segoe UI,sans-serif}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.shell{min-height:100vh}.sidebar{width:255px;background:var(--dark);color:#aaa1b2;position:fixed;inset:0 auto 0 0;z-index:50;padding:18px 13px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 22px;border-bottom:1px solid #302a35}.brand img{width:53px;height:53px;object-fit:contain}.brand strong{display:block;color:#fff}.brand small{font-size:10px}.sidebar nav{display:grid;gap:4px;padding-top:18px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:11px;font-weight:800}.sidebar nav a:hover,.sidebar nav a.active{background:#2b2138;color:#fff}.sidebar nav b{width:20px;text-align:center;color:#bba5df}.side-bottom{margin-top:auto;border-top:1px solid #302a35;padding:15px 10px;display:grid;gap:10px}.side-bottom a{font-weight:800}.main{margin-left:255px;min-height:100vh}.topbar{height:86px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:40}.topbar h2{margin:2px 0 0;font-size:23px}.top-actions{display:flex;gap:8px}.content{max-width:1500px;margin:auto;padding:28px}.btn{border:0;border-radius:11px;padding:11px 15px;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn.primary{background:var(--purple);color:#fff;box-shadow:0 10px 22px rgba(109,40,217,.2)}.btn.secondary{background:#fff;border:1px solid var(--line);color:var(--purple)}.btn.danger{background:#fff0f0;color:var(--red)}.btn.small{padding:8px 11px;font-size:12px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.14em;font-weight:950;color:var(--purple)}.grid{display:grid;gap:16px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}.card,.form-card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:21px;box-shadow:0 6px 22px rgba(55,25,90,.035)}.stat strong{font-size:29px;display:block}.stat span{color:var(--muted);font-size:12px}.stat-icon{float:right;width:42px;height:42px;border-radius:13px;background:#eee5fb;color:var(--purple);display:grid;place-items:center;font-weight:950}.section-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin:28px 0 13px}.section-head h3{margin:3px 0 0;font-size:19px}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:17px;overflow:auto}.table{width:100%;border-collapse:collapse;min-width:760px}.table th,.table td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left}.table th{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#867b8d;background:#fcfbfd}.table tr:last-child td{border:0}.actions{display:flex;gap:7px;flex-wrap:wrap}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:950;text-transform:uppercase}.badge.draft{background:#efebf3;color:#6c6373}.badge.sent,.badge.accepted{background:#e8e1ff;color:#5b21b6}.badge.paid,.badge.completed{background:#e8f7ed;color:#15803d}.badge.overdue,.badge.rejected{background:#ffe9e9;color:#b91c1c}.badge.cancelled{background:#f1f1f1;color:#666}.badge.partial{background:#fff4d8;color:#a16207}.alert{padding:12px 15px;border-radius:12px;margin-bottom:15px;font-weight:800}.alert.success{background:#e9f8ef;color:#166534}.alert.danger{background:#fff0f0;color:#b91c1c}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}.field input,.field select,.field textarea,.toolbar input,.toolbar select{border:1px solid #ddd4e7;border-radius:10px;padding:10px 11px;background:#fff;outline:0}.field textarea{min-height:92px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--purple);box-shadow:0 0 0 3px #eee7fb}.empty{text-align:center;padding:55px;color:var(--muted)}.doc-type{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:15px}.doc-type label{position:relative}.doc-type input{position:absolute;opacity:0}.doc-type span{display:block;border:1px solid var(--line);background:#fff;padding:11px 8px;border-radius:11px;text-align:center;font-weight:850;font-size:11px}.doc-type input:checked+span{border-color:var(--purple);background:#f2eaff;color:var(--purple)}.line-editor{overflow:auto}.line-table{width:100%;min-width:950px;border-collapse:collapse}.line-table th,.line-table td{padding:7px;border-bottom:1px solid var(--line);vertical-align:top}.line-table input,.line-table select{width:100%;padding:8px;border:1px solid #e0d8e7;border-radius:8px}.remove{border:0;background:#fff0f0;color:var(--red);padding:8px;border-radius:8px;cursor:pointer}.totals{max-width:390px;margin:18px 0 0 auto}.totals div{display:flex;justify-content:space-between;padding:7px;color:var(--muted)}.totals .grand{border-top:2px solid var(--ink);color:var(--ink);font-size:19px;font-weight:950;padding-top:13px}.invoice-paper{background:#fff;border:1px solid #ddd4e2;max-width:920px;margin:auto;padding:38px;box-shadow:var(--shadow)}.invoice-head{display:flex;justify-content:space-between;gap:25px;border-bottom:3px solid var(--purple);padding-bottom:20px}.invoice-head img{width:125px;height:75px;object-fit:contain}.invoice-head h1{color:var(--purple);font-size:25px;margin:0}.invoice-table{width:100%;border-collapse:collapse;margin-top:25px}.invoice-table th,.invoice-table td{padding:9px;border-bottom:1px solid #ddd}.invoice-table th{background:#f4edfc;color:#5b21b6;text-align:left;font-size:11px}.right{text-align:right}.mini{font-size:11px;color:var(--muted)}.print-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:17px}.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#eee1ff,#f7f5f9 43%,#fff)}.auth-card{width:min(470px,calc(100% - 30px));background:#fff;border:1px solid var(--line);border-radius:25px;padding:34px;box-shadow:var(--shadow)}.auth-card img{width:90px;height:72px;object-fit:contain}.auth-card h1{font-size:31px;margin:7px 0}.auth-card p{color:var(--muted)}.auth-card form{display:grid;gap:14px;margin-top:22px}.auth-card label{display:grid;gap:6px;font-size:11px;font-weight:900}.auth-card input{padding:12px;border:1px solid var(--line);border-radius:10px}.hamb{display:none;background:#fff;border:1px solid var(--line);border-radius:10px;width:42px;height:42px}.hamb i{display:block;width:19px;height:2px;background:var(--purple);margin:4px auto}footer{padding:20px 28px;color:#958b9e;font-size:11px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.toolbar input,.toolbar select{padding:9px}.kpi-note{font-size:11px;color:var(--muted);margin-top:4px}.settings-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px}.settings-tabs a{padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;font-weight:800}.settings-tabs a.active{background:#eee4fb;color:var(--purple);border-color:#d8c7f0}
@media(max-width:1150px){.g4{grid-template-columns:1fr 1fr}.doc-type{grid-template-columns:repeat(3,1fr)}}
@media(max-width:850px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.main{margin-left:0}.hamb{display:block}.topbar{padding:0 16px}.topbar>div:nth-child(2){margin-right:auto;margin-left:10px}.top-actions .secondary{display:none}.content{padding:17px}.g3,.g2,.form-grid{grid-template-columns:1fr}.invoice-paper{padding:20px}.invoice-head{flex-direction:column}.doc-type{grid-template-columns:1fr 1fr}}
@media print{.sidebar,.topbar,.print-actions,footer{display:none!important}.main{margin:0}.content{padding:0}.invoice-paper{box-shadow:none;border:0;max-width:none}}
