:root{--bg:#0d0f12;--bg-elev:#15181d;--bg-elev-2:#1c2027;--line:#2a2f38;--text:#eef1f5;--muted:#9aa4b2;--accent:#e01f26;--accent-hover:#ff2d35;--accent-soft:rgba(224,31,38,.12);--ok:#27c093;--ok-soft:rgba(39,192,147,.14);--info:#4d8ff0;--info-soft:rgba(77,143,240,.14);--radius:14px;--maxw:1440px}*{box-sizing:border-box}body,html{padding:0;margin:0;height:100%}body{display:flex;flex-direction:column;min-height:100vh;background-color:var(--bg);background-image:url(/hex-tile.png);background-repeat:repeat;color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}main{flex:1 0 auto}a{color:inherit;text-decoration:none}.container{max-width:var(--maxw);margin:0 auto;padding:0 18px}h1,h2,h3{line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em}.muted{color:var(--muted)}.header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:rgba(13,15,18,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.header-inner{gap:18px;height:64px}.brand,.header-inner{display:flex;align-items:center}.brand{gap:10px;font-weight:800;font-size:19px;letter-spacing:-.02em}.brand .mark{height:32px;width:auto;display:block;transition:transform .3s ease}.brand:hover .mark{transform:scale(1.06)}.nav{display:flex;gap:16px;margin-left:auto;align-items:center}.nav a{color:var(--muted);font-weight:600;font-size:14px}.btn,.nav a:hover{color:var(--text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;border:1px solid var(--line);border-radius:11px;font-weight:700;font-size:14px;padding:10px 16px;background:var(--bg-elev-2);transition:.15s}.btn:hover{border-color:#3a4150}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-dark{background:#000;border-color:#000;color:#fff}.btn-ok{background:var(--ok);border-color:var(--ok);color:#0b3b1e}.btn-ghost{background:var(--bg-elev-2);border-color:var(--line);color:var(--text)}.btn-ghost:hover{border-color:var(--muted)}.btn:disabled{opacity:.5;cursor:not-allowed}.panel{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.page-head{display:flex;align-items:center;justify-content:space-between;margin:26px 0 18px;gap:12px;flex-wrap:wrap}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius)}.table-scroll table.list{border-radius:0}table.list{width:100%;border-collapse:collapse;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}table.list.has-picker{overflow:visible}table.list td,table.list th{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);font-size:14px}table.list th{background:var(--bg-elev-2);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}table.list tr:last-child td{border-bottom:0}table.list tbody tr:hover td{background:var(--bg-elev-2)}.status{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;text-transform:uppercase}.status.new{background:var(--accent-soft);color:var(--accent-hover)}.status.invoiced{background:var(--ok-soft);color:var(--ok)}.status.paid{background:var(--info-soft);color:var(--info)}.status.cancelled{background:var(--bg-elev-2);color:var(--muted)}.status.draft{background:rgba(240,180,50,.16);color:#f0b432}.status.quote{background:rgba(167,139,250,.16);color:#a78bfa}.toolbar{gap:12px;flex-wrap:wrap;margin-bottom:22px}.search,.toolbar{display:flex;align-items:center}.search{flex:1 1;min-width:220px;gap:8px;background:var(--bg-elev);border:1px solid var(--line);border-radius:11px;padding:11px 14px}.search input{flex:1 1;background:transparent;border:0;color:var(--text);font-size:15px;outline:none}select{background-color:var(--bg-elev);border:1px solid var(--line);border-radius:11px;padding:9px 32px 9px 12px;color:var(--text);font-size:14px;font-weight:600;font-family:inherit;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239aa4b2' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}select:focus{outline:none;border-color:var(--accent)}select option{background:var(--bg-elev);color:var(--text)}.toolbar select{padding:11px 34px 11px 14px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field label{font-size:12px;font-weight:600;color:var(--muted)}.field input,.field textarea{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:14px;font-family:inherit;color:var(--text)}.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent)}.field select{background-color:var(--bg)}.field-error{color:var(--accent-hover);font-size:12.5px;margin:-4px 0 12px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:url(/login-splash.jpg) 50%/cover no-repeat;position:relative;padding:24px}.login-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,6,8,.55),rgba(5,6,8,.88))}.login-card{position:relative;z-index:1;width:100%;max-width:380px;text-align:center;background:rgba(17,19,23,.92);border:1px solid var(--line);border-radius:16px;padding:34px 30px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 20px 60px rgba(0,0,0,.5)}.login-logo{height:56px;width:auto;margin:0 auto 16px;display:block}.login-card h1{font-size:22px;margin:0 0 4px}.login-card p.muted{margin:0 0 24px;font-size:13.5px}.login-card form .field{text-align:left}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}input[type=file]{color:var(--muted);font-size:13px;font-family:inherit}input[type=file]::-webkit-file-upload-button{background:var(--bg-elev-2);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:8px 14px;font-weight:700;font-size:13px;font-family:inherit;cursor:pointer;margin-right:10px;-webkit-transition:border-color .2s,background-color .2s;transition:border-color .2s,background-color .2s}input[type=file]::-webkit-file-upload-button,input[type=file]::file-selector-button{background:var(--bg-elev-2);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:8px 14px;font-weight:700;font-size:13px;font-family:inherit;cursor:pointer;margin-right:10px;-webkit-transition:border-color .2s,background-color .2s;transition:border-color .2s,background-color .2s}input[type=file]:hover::-webkit-file-upload-button{border-color:var(--muted)}input[type=file]:hover::-webkit-file-upload-button,input[type=file]:hover::file-selector-button{border-color:var(--muted)}.picker-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:max(100%,260px);max-width:90vw;background:var(--bg-elev);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.4);max-height:260px;overflow-y:auto}.picker-item{display:flex;flex-direction:column;gap:2px;padding:8px 12px;cursor:pointer}.picker-item:hover{background:var(--bg-elev-2)}.picker-name{font-size:13.5px;font-weight:600;color:var(--text)}.picker-meta{font-size:11.5px;color:var(--muted)}.img-manager{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.img-thumb{position:relative;width:84px;height:84px;border-radius:10px;overflow:hidden;border:2px solid var(--line);cursor:pointer;display:block}.img-thumb img{width:100%;height:100%;object-fit:cover}.img-thumb.removed{opacity:.35;border-color:var(--accent)}.img-thumb-toggle{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:4px;background:rgba(13,15,18,.75);color:#fff;font-size:10.5px;font-weight:700;padding:3px 5px;text-transform:uppercase}.img-thumb-toggle input{margin:0}.invoice-wrap{display:grid;grid-template-columns:1fr 300px;grid-gap:22px;gap:22px;align-items:start;max-width:1100px;margin:22px auto 60px}.controls{position:-webkit-sticky;position:sticky;top:16px}.invoice{background:#fff;color:#16202c;border-radius:8px;padding:40px;font-size:13.5px;line-height:1.5;box-shadow:0 20px 50px rgba(0,0,0,.45)}.invoice .inv-head{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid var(--accent);padding-bottom:18px}.invoice .seller{flex:1 1 auto;min-width:0}.invoice .seller .logo{font-size:24px;font-weight:900;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}.invoice .seller .logo img{height:38px;width:auto;display:block}.invoice .seller .logo span{color:var(--accent)}.invoice .seller .meta{color:#4b5763;font-size:12.5px;margin-top:6px;white-space:pre-line}.invoice .inv-title{text-align:right;flex:0 0 auto}.invoice .inv-title h1{font-size:26px;letter-spacing:.02em;margin:0;white-space:nowrap}.invoice .inv-title table{margin-top:10px;font-size:12.5px;margin-left:auto}.invoice .inv-title td{padding:2px 0 2px 14px;text-align:right;white-space:nowrap}.invoice .inv-title td.k{color:#4b5763;text-align:right;padding-left:0}.invoice .parties{display:flex;justify-content:space-between;gap:24px;margin:22px 0}.invoice .parties .box h4{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#8593a1}.invoice .parties .box .v{white-space:pre-line}.invoice table.items{width:100%;border-collapse:collapse;margin-top:6px}.invoice table.items th{background:#16202c;color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:9px 10px;text-align:left}.invoice table.items td.r,.invoice table.items th.r{text-align:right}.invoice table.items td{padding:9px 10px;border-bottom:1px solid #e7ebf0;vertical-align:top}.invoice table.items tbody tr:nth-child(2n) td{background:#fafbfc}.invoice .totals{display:flex;justify-content:flex-end;margin-top:14px}.invoice .totals table{min-width:280px}.invoice .totals td{padding:6px 0}.invoice .totals td.r{text-align:right}.invoice .totals tr.grand td{border-top:2px solid #16202c;font-size:17px;font-weight:900;padding-top:10px}.invoice .foot{margin-top:26px;border-top:1px solid #e7ebf0;padding-top:16px;display:flex;justify-content:space-between;gap:20px;font-size:12.5px}.invoice .foot .bank{white-space:pre-line}.invoice .note{margin-top:18px;color:#8593a1;font-size:11.5px}.edit-input{width:100%;border:1px solid #dde3ea;border-radius:6px;padding:5px 7px;font-size:13px;font-family:inherit;color:#16202c}.edit-input.num{text-align:right;width:90px}.linkrow{display:flex;align-items:center;gap:8px;background:var(--bg-elev-2);border:1px dashed var(--line);border-radius:8px;padding:9px 11px;font-size:12.5px;word-break:break-all}.empty{text-align:center;padding:70px 20px;color:var(--muted)}.seg{display:inline-flex;background:var(--bg-elev-2);border:1px solid var(--line);border-radius:11px;padding:3px;gap:2px}.seg-btn{border:0;background:transparent;color:var(--muted);font-weight:700;font-size:13.5px;padding:8px 14px;border-radius:8px;cursor:pointer;font-family:inherit}.seg-btn.active{background:var(--bg-elev);color:var(--text)}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;margin-bottom:22px}.stat-tile{background:var(--bg-elev-2);border:1px solid var(--line);border-radius:11px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}.stat-tile strong{font-size:22px;letter-spacing:-.01em}.chart-tooltip{position:absolute;top:8px;right:8px;background:var(--bg-elev-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px;min-width:150px;box-shadow:0 10px 24px rgba(0,0,0,.35)}.chart-tooltip strong{display:block;margin-bottom:4px}@media (max-width:820px){.invoice-wrap{grid-template-columns:1fr}.controls{position:static}.grid2{grid-template-columns:1fr}.nav a.hide-sm{display:none}}@media (max-width:640px){table.has-picker .col-linetotal,table.has-picker .col-sku{display:none}table.has-picker{table-layout:fixed}table.has-picker td,table.has-picker th{padding:8px 6px}table.has-picker .edit-input.num{width:100%}table.has-picker .col-del{width:32px;padding-left:2px;padding-right:2px}table.has-picker .col-del .btn{padding:4px 6px}.header-inner{gap:10px}.brand span:last-child{display:none}.stat-row{grid-template-columns:1fr}.chart-tooltip{position:static;margin-top:10px;width:100%}}@media (max-width:480px){.invoice{padding:20px}.invoice .inv-head{flex-direction:column;gap:14px}.invoice .inv-title{text-align:left}.invoice .inv-title table{margin-top:6px}.invoice .inv-title td.k{text-align:left}.invoice .inv-title td{padding:2px 14px 2px 0;text-align:left}.invoice .parties{flex-direction:column;gap:16px}.invoice .parties .box:last-child{text-align:left}.invoice .foot{flex-direction:column;gap:14px}.invoice .foot>div:last-child{text-align:left}}@media print{@page{size:A4;margin:14mm}body{background:#fff}.controls,.header,.no-print,.page-head{display:none!important}.invoice-wrap{display:block;margin:0}.container{max-width:none;padding:0}.invoice{border:0;border-radius:0;padding:0;font-size:12px;box-shadow:none}.invoice table.items th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}