:root{color:#17211b;background:#fff;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;--green-950: #063c22;--green-900: #074b2a;--green-800: #096034;--green-700: #0b743e;--green-100: #dff3e5;--green-50: #f0f9f2;--ink: #17211b;--muted: #5b675f;--line: #d7ded9;--line-strong: #bdc9c1;--red: #b42318;--shadow: 0 16px 50px rgba(6, 60, 34, .14)}*{box-sizing:border-box}body{margin:0;min-width:1040px;min-height:100vh;background:#fff;font-size:15px;line-height:1.45}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}svg{width:20px;height:20px}.app-shell,.admin-layout{min-height:100vh}.side-rail,.admin-rail{position:fixed;inset:0 auto 0 0;z-index:20;display:flex;width:248px;flex-direction:column;padding:26px 16px 18px;color:#fff;background:var(--green-950)}.brand-lockup,.admin-brand{display:flex;align-items:center;gap:12px;padding:0 10px 28px}.logo-box{display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(255,255,255,.42);border-radius:10px;background:#ffffff1a;font-weight:800}.brand-lockup b,.admin-brand b,.admin-brand>span{font-size:21px;font-weight:760}.brand-lockup small,.admin-brand small{display:block;margin-top:1px;color:#c7dfcf;font-size:11px;font-weight:500}.side-rail nav,.admin-rail nav{display:grid;gap:6px}.side-rail nav a,.admin-rail nav a{display:flex;min-height:50px;align-items:center;gap:13px;padding:0 14px;border-radius:8px;color:#e8f3ec;font-size:15px;font-weight:650}.side-rail nav a:hover,.admin-rail nav a:hover{background:#ffffff14}.side-rail nav a.active,.admin-rail nav a.active{color:var(--green-950);background:#d8efd9}.shop-identity{display:flex;gap:10px;align-items:center;margin-top:auto;padding:17px 6px;border-top:1px solid rgba(255,255,255,.2)}.shop-avatar{display:grid;flex:none;width:36px;height:36px;place-items:center;border-radius:8px;background:#ffffff1f}.shop-avatar img{width:100%;height:100%;border-radius:inherit;object-fit:contain;background:#fff}.shop-identity b{display:block;font-size:12px}.shop-identity small{color:#c7dfcf;font-size:11px}.rail-signout{display:flex;gap:9px;align-items:center;padding:10px 7px;border:0;color:#d9ebe0;background:none;font-size:12px}.rail-signout svg{width:16px}.app-main,.admin-main{min-height:100vh;margin-left:248px}.topbar,.admin-topbar{display:flex;height:62px;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);background:#fff}.topbar-date{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.topbar-date svg{width:17px}.customer-topbar{display:flex;min-width:0;align-items:center;gap:11px}.customer-topbar-back{display:grid;width:32px;height:32px;flex:none;place-items:center;border-radius:7px;color:var(--green-800)}.customer-topbar-back:hover{background:var(--green-50)}.customer-topbar-back:focus-visible{outline:3px solid var(--green-600);outline-offset:2px}.customer-topbar-back svg{width:19px}.customer-topbar b,.customer-topbar small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-topbar b{font-size:14px}.customer-topbar small{margin-top:1px;color:var(--muted);font-size:11px;font-weight:500}.page-wrap{width:min(100%,1500px);margin:0 auto;padding:28px 32px 52px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:23px}h1{margin:0;font-size:31px;line-height:1.15;letter-spacing:-.025em}h2{margin:0;font-size:18px}p{color:var(--muted)}.page-heading p{margin:6px 0 0}.action-row{display:flex;gap:10px}.btn{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:0 16px;border:1px solid var(--line-strong);border-radius:8px;color:var(--ink);background:#fff;font-size:14px;font-weight:700}.btn:hover{border-color:var(--green-700);color:var(--green-800)}.btn.primary{border-color:var(--green-800);color:#fff;background:var(--green-800)}.btn.primary:hover{background:var(--green-900)}.btn.small{min-height:36px;padding:0 12px;font-size:13px}.wide-btn{width:100%}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}.metrics.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics article,.admin-summary>div{display:flex;min-height:110px;align-items:center;gap:14px;padding:18px;border:1px solid var(--line);border-radius:10px;background:#fff}.metrics article>span,.admin-summary svg{display:grid;width:44px;height:44px;flex:none;place-items:center;border-radius:50%;color:var(--green-800);background:var(--green-100);padding:10px}.metrics small{display:block;color:var(--muted)}.metrics b{display:block;margin-top:3px;color:var(--green-800);font-size:clamp(18px,1.5vw,22px);letter-spacing:-.02em;white-space:nowrap}.metrics em{display:block;margin-top:2px;color:var(--muted);font-size:11px;font-style:normal}.panel,.table-panel{margin-bottom:18px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}.clickable-row{cursor:pointer}.clickable-row:focus{outline:3px solid rgba(11,116,62,.22);outline-offset:-3px}.purchase-notes{padding:16px 18px}.purchase-notes p{margin:6px 0 0;color:var(--muted)}.loading-state{display:grid;gap:12px;min-height:126px;margin-bottom:18px;padding:26px;border:1px solid var(--line);border-radius:10px;background:#fff}.skeleton-line{display:block;width:58%;height:15px;border-radius:6px;background:linear-gradient(90deg,#edf2ee 25%,#f8faf8,#edf2ee 75%);background-size:200% 100%;animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton-line.wide{width:82%;height:20px}.skeleton-line.short{width:34%}.skeleton-inline{display:block;width:100px;height:12px;border-radius:5px;background:#fff3}.topbar-skeleton{width:130px;height:15px;background:#edf2ee}.empty-row:hover{background:#fff}.empty-row td,.empty-page{padding:34px 18px;color:var(--muted);text-align:center}@keyframes skeleton-pulse{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.skeleton-line{animation:none}}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line)}.panel-head p{margin:3px 0 0;font-size:13px}table{width:100%;border-collapse:collapse}th{padding:12px 15px;color:var(--muted);background:#f7faf8;font-size:12px;font-weight:700;text-align:left;text-transform:uppercase;letter-spacing:.035em}td{padding:15px;border-top:1px solid var(--line);vertical-align:middle}tbody tr:hover{background:#fbfdfb}.customer-row{cursor:pointer}.customer-row:focus-visible{outline:3px solid var(--green-600);outline-offset:-3px;background:#f3faf5}td small{display:block;margin-top:2px;color:var(--muted)}.number{text-align:right;font-variant-numeric:tabular-nums}.debit{color:var(--red);font-weight:750}.credit{color:var(--green-700);font-weight:750}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px}.search{position:relative;display:block;width:min(430px,50%)}.search svg{position:absolute;top:12px;left:13px;width:18px;color:var(--muted)}.search input{width:100%;height:44px;padding:0 14px 0 42px;border:1px solid var(--line-strong);border-radius:8px}.entry-panel{border-color:var(--green-700);box-shadow:0 5px 20px #063c220d}.entry-form{padding:18px}.entry-form .form-grid{align-items:start;gap:12px}.entry-form .form-grid>label{align-content:start}.entry-form .form-grid input,.entry-form .form-grid select,.entry-form .input-total{min-height:40px;padding-top:7px;padding-bottom:7px}.form-grid{display:grid;gap:15px}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label,.entry-form details label,.auth-card label{display:grid;gap:6px;color:#34443a;font-size:13px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea,.entry-form textarea,.auth-card input,.filter-strip input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:7px;color:var(--ink);background:#fff;outline:none}.form-grid input:focus,.form-grid select:focus,.auth-card input:focus{border-color:var(--green-700);box-shadow:0 0 0 3px #0b743e1f}.form-grid .wide{grid-column:1 / -1}.supplier-picker{display:grid;grid-column:span 2;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.supplier-picker .btn{min-height:44px}.purchase-lines{display:grid;gap:12px;margin-top:18px}.purchase-sheet-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:9px;background:#fff}.purchase-sheet{min-width:1110px}.purchase-sheet th{padding:10px 9px;white-space:nowrap}.purchase-sheet td{padding:7px}.purchase-sheet td:first-child{min-width:225px}.purchase-sheet td:nth-child(2){min-width:150px}.purchase-sheet td:nth-child(3){min-width:145px}.purchase-sheet td:nth-child(4),.purchase-sheet td:nth-child(5){min-width:84px}.purchase-sheet td:nth-child(6){min-width:130px}.purchase-sheet input{width:100%;min-height:40px;padding:7px 9px;border:1px solid var(--line-strong);border-radius:6px}.purchase-sheet input:focus{border-color:var(--green-700);outline:0;box-shadow:0 0 0 3px #0b743e1f}.purchase-sheet .search-select-input{min-height:40px}.purchase-line-total{min-width:120px;color:var(--green-800);font-weight:750;white-space:nowrap}.purchase-remove{width:38px;text-align:center}.purchase-lines-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:2px}.text-button{padding:4px 0;border:0;color:var(--red);background:transparent;font:inherit;font-size:13px;font-weight:700}.sale-lines{display:grid;gap:12px;margin-top:18px}.sale-sheet-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:9px;background:#fff}.sale-sheet{min-width:930px}.sale-sheet th{padding:10px 9px;white-space:nowrap}.sale-sheet td{padding:7px;vertical-align:middle}.sale-sheet td:first-child{min-width:260px}.sale-sheet td:nth-child(2){min-width:120px}.sale-sheet td:nth-child(3){min-width:110px}.sale-sheet td:nth-child(4){min-width:145px}.sale-sheet input{width:100%;min-height:40px;padding:7px 9px;border:1px solid var(--line-strong);border-radius:6px}.sale-sheet input:focus{border-color:var(--green-700);outline:0;box-shadow:0 0 0 3px #0b743e1f}.sale-sheet .search-select-input{min-height:40px}.sale-line-total{min-width:125px;color:var(--green-800);font-weight:750;white-space:nowrap}.sale-remove{width:38px;text-align:center}.sale-lines-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:2px}.input-total,.invoice-total{display:grid;align-content:center;gap:2px;min-height:40px;padding:7px 12px;border:1px solid var(--line);border-radius:7px;background:var(--green-50)}.input-total small,.invoice-total small{color:var(--muted);font-size:11px;font-weight:700}.input-total b,.invoice-total b{color:var(--green-800);font-variant-numeric:tabular-nums}.invoice-total{min-width:180px}.supplier-entry{background:var(--green-50);border-bottom:1px solid var(--line)}.search-select{position:relative;width:100%}.search-select-input{padding-right:38px!important}.search-select-chevron{position:absolute;top:50%;right:11px;width:18px;height:18px;pointer-events:none;transform:translateY(-50%);color:var(--muted)}.search-select-options{z-index:1000;max-height:220px;overflow-y:auto;border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow);background:#fff}.search-select-options button{display:block;width:100%;min-height:40px;padding:9px 12px;border:0;color:var(--ink);background:#fff;text-align:left;font:inherit}.search-select-options button:hover,.search-select-options button.active{color:var(--green-900);background:var(--green-50)}.search-select-options button[aria-selected=true]{font-weight:750}.search-select-empty{margin:0;padding:12px;color:var(--muted);font-size:13px}.input-total{display:flex;min-height:44px;align-items:center;padding:0 12px;border:1px solid var(--line);border-radius:7px;color:var(--green-800);background:var(--green-50)}.stock-hint{color:var(--muted);font-size:12px;font-weight:600}.stock-warning{color:var(--red);font-size:12px;font-weight:700}.entry-form details{margin-top:16px}.entry-form summary{color:var(--green-800);font-weight:700;cursor:pointer}.entry-form details label{margin-top:12px}.form-actions,.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.entry-form .form-actions{margin-top:14px}.close{width:38px;height:38px;border:0;border-radius:7px;color:var(--muted);background:#f3f6f4;font-size:25px;line-height:1}.success{margin-bottom:16px;padding:12px 14px;border:1px solid #a8d9b5;border-radius:8px;color:var(--green-900);background:var(--green-50);font-weight:650}.filter-strip{display:flex;align-items:flex-end;gap:12px;margin-bottom:18px;padding:14px;border:1px solid var(--line);border-radius:9px;background:#f7faf8}.filter-strip label{display:grid;gap:4px;color:var(--muted);font-size:12px;font-weight:700}.ledger-title{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}.ledger-title h1{margin-top:7px}.ledger-title p{margin:6px 0 0}.back-link{color:var(--green-800);font-size:13px;font-weight:700}.ledger-balance{text-align:right}.ledger-balance small{color:var(--muted);font-weight:700}.ledger-balance b{display:block;color:#b85c00;font-size:28px}.ledger-actions{display:flex;align-items:center;justify-content:space-between;gap:18px}.ledger-actions .action-row{flex-wrap:wrap}.ledger-actions .filter-strip{margin-bottom:14px}.ledger-table tfoot td{border-top:2px solid var(--green-700);background:var(--green-50);font-weight:800}.settings-grid{display:grid;grid-template-columns:330px 1fr;gap:18px}.logo-settings,.settings-form{padding:22px}.logo-preview{display:grid;width:104px;height:104px;place-items:center;margin:25px 0 14px;border-radius:20px;color:#fff;background:var(--green-800);font-size:31px;font-weight:800}.logo-preview img{width:100%;height:100%;border-radius:inherit;object-fit:contain;background:#fff}.form-error{margin:12px 0;padding:11px 13px;border:1px solid #fecaca;border-radius:10px;color:#991b1b;background:#fef2f2;font-size:14px}.btn:disabled{cursor:wait;opacity:.58}.settings-form h2,.logo-settings h2{margin-bottom:18px}.admin-topbar span{color:var(--muted)}.admin-summary{display:grid;grid-template-columns:repeat(2,260px);gap:15px;margin-bottom:18px}.admin-summary>div{min-height:90px}.admin-summary b{display:block;color:var(--green-800);font-size:22px}.status-toggle{min-width:78px;padding:7px 10px;border:1px solid #e9c1bc;border-radius:20px;color:var(--red);background:#fff3f2;font-size:12px;font-weight:750}.status-toggle.on{border-color:#a8d9b5;color:var(--green-800);background:var(--green-50)}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:30px;background:#041c1094}.modal{width:min(680px,100%);border-radius:13px;background:#fff;box-shadow:var(--shadow)}.modal-header{display:flex;justify-content:space-between;gap:20px;padding:21px 23px 17px;border-bottom:1px solid var(--line)}.modal-header p{margin:4px 0 0}.modal form{padding:22px 23px}.auth-page{display:grid;min-height:100vh;place-items:center;padding:30px;background:linear-gradient(150deg,#f1f8f3,#fff 55%)}.auth-card{width:min(440px,100%);padding:34px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow)}.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:28px}.auth-brand>span{display:grid;width:42px;height:42px;place-items:center;border-radius:9px;color:#fff;background:var(--green-900);font-weight:800}.auth-brand b,.auth-brand small{display:block}.auth-brand b{font-size:20px}.auth-brand small,.auth-note{color:var(--muted);font-size:11px}.auth-icon{display:grid;width:44px;height:44px;place-items:center;margin-bottom:15px;border-radius:50%;color:var(--green-800);background:var(--green-100)}.auth-card h1{font-size:27px}.auth-card>p{margin:7px 0 21px}.auth-card form{display:grid;gap:15px}.link-button{display:block;margin:17px auto;border:0;color:var(--green-800);background:none;font-weight:700}.auth-note{display:block;padding-top:15px;border-top:1px solid var(--line);text-align:center}@media(max-width:1150px){.form-grid.four,.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{.side-rail,.topbar,.page-heading .btn,.filter-strip{display:none!important}.app-main{margin:0}.page-wrap{padding:0}}@media(max-width:1250px){.ledger-actions{align-items:flex-start;flex-direction:column}}
