:root{--orange:#f36f21;--orange2:#d95a0d;--ink:#172033;--muted:#6d7585;--line:#e7e9ee;--bg:#f5f6f8;--card:#fff;--green:#14805e;--red:#b42318;--yellow:#9a6700;--nav:#182231}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{min-height:100vh;display:grid;grid-template-columns:245px 1fr}aside{position:sticky;top:0;height:100vh;background:var(--nav);color:#fff;padding:25px 16px;display:flex;flex-direction:column;z-index:40}.brand{font-size:18px;font-weight:850;padding:7px 10px 24px}.brand span{color:#ff8a45}nav{display:grid;gap:4px}nav a,.aside-foot a{color:#cbd3de;text-decoration:none;padding:11px 12px;border-radius:10px;font-size:14px;font-weight:650}nav a:hover,.aside-foot a:hover{background:#243247;color:#fff}nav a.active{background:var(--orange);color:#fff}.aside-foot{margin-top:auto;display:grid;gap:3px;border-top:1px solid #2d3a4c;padding-top:12px}.content{min-width:0}.content>header{height:92px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 32px}.content h1{margin:2px 0 0;font-size:28px;letter-spacing:-.035em}.kicker{font-size:11px;text-transform:uppercase;letter-spacing:.11em;color:var(--orange);font-weight:850}.content main{padding:28px 32px 50px;max-width:1180px;margin:auto}.content main.wide{max-width:1500px}.actions{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:18px}.primary,.secondary,.danger,.ghost{border:0;border-radius:10px;padding:10px 15px;font-weight:750;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:41px}.primary{background:var(--orange);color:#fff}.primary:hover{background:var(--orange2)}.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.danger{background:#fff2f0;color:var(--red);border:1px solid #ffd2cc}.ghost{background:transparent;color:var(--muted);padding:7px 10px}.card{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:0 4px 18px rgba(28,38,55,.035);margin-bottom:18px}.card h2,.card h3{margin-top:0}.stats{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:12px;margin:0 0 20px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px}.stat>div{color:var(--muted);font-size:12px;font-weight:650}.stat strong{font-size:22px;display:block;margin-top:7px;letter-spacing:-.03em}.stat small{display:block;color:var(--muted);margin-top:4px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.form-grid .span2{grid-column:span 2}.form-grid .span4{grid-column:1/-1}label{display:grid;gap:6px;color:#384152;font-size:13px;font-weight:700}input,select,textarea{width:100%;border:1px solid #d9dde5;border-radius:9px;padding:10px 11px;background:#fff;color:var(--ink);outline:none}input[type=checkbox],input[type=radio]{width:auto;min-height:0;padding:0;accent-color:var(--orange)}input:focus,select:focus,textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(243,111,33,.1)}textarea{min-height:90px;resize:vertical}.hint{font-size:12px;color:var(--muted);line-height:1.45}.flash{padding:12px 14px;border-radius:10px;margin:0 0 18px;font-size:14px}.flash.ok{background:#ebf8f3;color:#17664e;border:1px solid #bde8d7}.flash.err{background:#fff1f0;color:#9b241d;border:1px solid #ffd0cc}.warning{background:#fff8e8;border:1px solid #f3dea7;color:#72510c;padding:12px 14px;border-radius:10px;font-size:13px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:13px;margin-bottom:18px;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--line);font-size:13px;white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fafbfc;position:sticky;top:0}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;background:#eef1f5;color:#4a5568}.badge.POSTED,.badge.PAID,.badge.OPEN{background:#e8f6f0;color:#12664b}.badge.DRAFT{background:#fff5de;color:#8a5d00}.badge.PART_PAID{background:#edf4ff;color:#285b9d}.badge.CANCELLED,.badge.REVERSED,.badge.LOCKED{background:#fff0ef;color:#9c2d25}.lines-head,.line-row{display:grid;grid-template-columns:minmax(220px,2.2fr) .7fr .9fr .75fr 1.3fr auto;gap:8px;align-items:end}.purchase-lines .lines-head,.purchase-lines .line-row{grid-template-columns:minmax(190px,2fr) .65fr .85fr .7fr .85fr 1.25fr 1.35fr auto}.lines-head{font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:750;margin:4px 0 6px;padding:0 3px}.line-row{margin-bottom:8px}.line-row button{height:40px;width:40px;border:1px solid var(--line);background:#fff;border-radius:8px;color:var(--red)}.mobile-line-label{display:none}.totals{margin-left:auto;width:min(100%,390px);display:grid;gap:8px}.total-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0;gap:14px}.total-row.final{font-size:18px;font-weight:850;border:0}.invoice-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.invoice-meta div{background:#f9fafb;border-radius:10px;padding:12px;min-width:0}.invoice-meta small{display:block;color:var(--muted);margin-bottom:4px}.invoice-meta strong{overflow-wrap:anywhere}.report-tabs{display:flex;gap:7px;flex-wrap:wrap}.report-tabs a{padding:8px 11px;background:#fff;border:1px solid var(--line);border-radius:8px;text-decoration:none;font-size:12px;font-weight:700}.balance-ok{color:var(--green);font-weight:800}.balance-bad{color:var(--red);font-weight:800}.login-body{display:grid;place-items:center;min-height:100vh;padding:20px;background:radial-gradient(circle at 15% 0%,rgba(243,111,33,.13),transparent 34%),var(--bg)}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 24px 65px rgba(21,31,46,.10);display:grid;gap:16px}.login-card h1{margin:0;font-size:28px}.login-card p{color:var(--muted);margin:-8px 0 5px}.login-logo{width:48px;height:48px;border-radius:14px;background:var(--orange);display:grid;place-items:center;color:#fff;font-weight:900}.empty{text-align:center;padding:35px;color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.right{text-align:right}.mobile-menu,.nav-backdrop,.aside-mobile-top,.nav-close{display:none}.integrity{display:flex;gap:10px;align-items:center}.dot{width:9px;height:9px;border-radius:50%;background:var(--green);flex:0 0 auto}.dot.bad{background:var(--red)}
@media(max-width:1150px){.stats{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.form-grid .span4{grid-column:1/-1}.invoice-meta{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){body.nav-open{overflow:hidden}.app{display:block}.nav-backdrop{display:block;position:fixed;inset:0;background:rgba(8,15,25,.5);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:49}.nav-open .nav-backdrop{opacity:1;pointer-events:auto}aside{position:fixed;left:0;top:0;bottom:0;width:min(330px,88vw);height:100dvh;padding:12px 14px 16px;transform:translateX(-105%);transition:transform .22s ease;box-shadow:18px 0 40px rgba(0,0,0,.22);z-index:50;overflow:auto}.nav-open aside{transform:translateX(0)}.aside-mobile-top{display:flex;align-items:center;justify-content:space-between;min-height:44px;color:#fff;padding:2px 4px 5px}.nav-close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:10px;background:#243247;color:#fff;font-size:25px;line-height:1}.brand{padding:8px 8px 14px}.brand+nav{border-top:1px solid #2d3a4c;padding-top:10px}nav{display:grid;overflow:visible;gap:4px}nav a,.aside-foot a{font-size:15px;min-height:44px;display:flex;align-items:center}.aside-foot{display:grid;margin-top:16px;padding-top:12px}.content>header{height:auto;min-height:72px;padding:11px 14px;gap:12px;position:sticky;top:0;z-index:30;box-shadow:0 3px 12px rgba(21,31,46,.05)}.mobile-menu{display:inline-flex;flex:0 0 44px;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font-size:23px}.header-title{min-width:0}.content h1{font-size:22px;line-height:1.15;overflow-wrap:anywhere}.kicker{font-size:10px}.content main,.content main.wide{padding:14px 12px 42px;max-width:none}.grid2,.grid3{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px}.stat{padding:14px}.stat strong{font-size:20px}.card{padding:15px;border-radius:12px;margin-bottom:12px}.actions{gap:8px;margin-bottom:12px}.actions>form{display:flex;flex:1 1 150px}.actions>form>button{width:100%}.primary,.secondary,.danger,.ghost{min-height:44px;padding:10px 13px}.form-grid{grid-template-columns:1fr}.form-grid .span2,.form-grid .span4{grid-column:auto}input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;min-height:44px}.invoice-meta{grid-template-columns:1fr 1fr;gap:8px}.lines-head{display:none}.line-row,.purchase-lines .line-row{display:grid;grid-template-columns:minmax(88px,34%) minmax(0,1fr);gap:8px 10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.line-row>:first-child{grid-column:auto}.mobile-line-label{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.line-row input,.line-row select{min-width:0}.line-row button{grid-column:2;justify-self:end;width:44px;height:44px}.totals{width:100%}.total-row{align-items:flex-start}.total-row strong{text-align:right}.login-card{padding:22px;border-radius:16px}}
@media(max-width:640px){.stats{grid-template-columns:1fr 1fr}.invoice-meta{grid-template-columns:1fr}.content h1{font-size:21px}.card h2{font-size:18px}.actions>a,.actions>button{flex:1 1 145px}.mobile-card-wrap{overflow:visible;background:transparent;border:0;border-radius:0}.mobile-cards{min-width:0;display:block}.mobile-cards thead{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.mobile-cards tbody{display:grid;gap:10px}.mobile-cards tr{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:5px 12px;box-shadow:0 2px 9px rgba(28,38,55,.025)}.mobile-cards td{display:grid;grid-template-columns:minmax(88px,36%) minmax(0,1fr);align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);white-space:normal!important;text-align:left!important;overflow-wrap:anywhere}.mobile-cards td::before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.mobile-cards td:last-child{border-bottom:0}.mobile-cards td[colspan]{display:block;text-align:center!important}.mobile-cards td[colspan]::before{display:none}.mobile-cards td form{min-width:0}.mobile-cards td .actions{margin:0}.mobile-cards td input,.mobile-cards td select,.mobile-cards td textarea{min-width:0;width:100%!important}.mobile-cards td input[type=checkbox],.mobile-cards td input[type=radio]{width:auto!important}.mobile-cards td .primary,.mobile-cards td .secondary,.mobile-cards td .danger{width:100%;white-space:normal;text-align:center}.empty{padding:22px 8px}.warning,.flash{font-size:13px}.mono{font-size:12px}}
@media(max-width:430px){.stats{grid-template-columns:1fr}.content main,.content main.wide{padding-left:10px;padding-right:10px}.card{padding:13px}.invoice-meta{grid-template-columns:1fr}.line-row,.purchase-lines .line-row{grid-template-columns:1fr}.mobile-line-label{margin-top:4px}.line-row button{grid-column:1;width:100%}.actions>a,.actions>button,.actions>form{flex-basis:100%}.login-body{padding:12px}.login-card{padding:20px}.login-card h1{font-size:25px}}
@media print{aside,.actions,.flash,.no-print,.mobile-menu,.nav-backdrop,.aside-mobile-top{display:none!important}.app{display:block}.content>header{border:0;padding:0 0 15px;height:auto;position:static;box-shadow:none}.content main{padding:0;max-width:none}.card,.table-wrap{box-shadow:none;border-color:#bbb}body{background:#fff}.mobile-cards{display:table!important;min-width:100%!important}.mobile-cards thead{position:static!important;width:auto!important;height:auto!important;clip:auto!important;overflow:visible!important}.mobile-cards tbody{display:table-row-group!important}.mobile-cards tr{display:table-row!important;border:0!important;box-shadow:none!important}.mobile-cards td{display:table-cell!important;border-bottom:1px solid #bbb!important}.mobile-cards td::before{display:none!important}}
