:root{--brown:#6f4b2f;--brown2:#4e321f;--cream:#f6f0e7;--card:#fff;--text:#2b241f;--muted:#817267;--line:#e4d9cc;--danger:#b83d3d;--ok:#2f7b53;--accent:#9b6b43}*{box-sizing:border-box}body{margin:0;font:14px/1.45 Inter,system-ui,Segoe UI,Arial;color:var(--text);background:var(--cream)}.layout{display:grid;grid-template-columns:245px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--brown2);color:#fff;display:flex;flex-direction:column;padding:16px 12px}.brand{display:flex;gap:10px;align-items:center;padding:8px}.brand img{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:10px}.brand b{font-size:18px}.brand small{display:block;opacity:.65}.sidebar nav{overflow:auto;margin-top:18px;flex:1}.sidebar nav a{display:flex;color:#f8eee4;text-decoration:none;padding:11px 12px;border-radius:9px;margin:2px 0;gap:6px;align-items:center}.sidebar nav a:hover,.sidebar nav a.on{background:#7e5738}.nav-group{font-size:11px;letter-spacing:.08em;opacity:.55;margin:18px 12px 6px}.badge{margin-left:auto;background:#d34545;color:#fff;border-radius:20px;min-width:22px;text-align:center;padding:1px 6px;font-weight:700}.side-bottom{border-top:1px solid #ffffff22;padding:12px 8px;display:grid;gap:8px}.side-bottom select{width:100%;padding:8px;border-radius:8px}.side-bottom a{color:#fff9}main{min-width:0}header{height:72px;background:#fff;display:flex;align-items:center;padding:0 24px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}header h1{margin:0;font-size:20px}header small{color:var(--muted)}.header-user{margin-left:auto}.content{padding:20px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 2px 8px #5b38200b}.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.kpis b{display:block;font-size:26px;margin-top:6px}.kpis em{font-style:normal;font-size:12px;color:var(--muted)}.pos-grid{display:grid;grid-template-columns:1fr 360px;gap:14px;height:calc(100vh - 112px)}.products,.cart{overflow:hidden;display:flex;flex-direction:column}.toolbar{display:flex;gap:8px;margin-bottom:12px}.toolbar input{flex:1}.toolbar input,.toolbar select,input,select{border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff}.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px;overflow:auto;padding-right:4px}.product{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;cursor:pointer;text-align:left;min-height:110px}.product:hover{border-color:var(--accent);box-shadow:0 3px 10px #5d321318}.product b{display:block;margin-bottom:4px}.product .price{font-weight:800;color:var(--brown)}.product small{color:var(--muted)}.cart-head{display:flex;align-items:center}.queue{margin-left:auto;font-size:12px}.cart #empty{color:var(--muted);padding:20px;text-align:center}.cart-row{display:grid;grid-template-columns:1fr auto;gap:6px;padding:10px 0;border-bottom:1px solid var(--line)}.qty{display:flex;align-items:center;gap:5px}.qty button{width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:8px;font-weight:800}.qty input{width:62px;text-align:center;padding:7px}.total{display:flex;justify-content:space-between;font-size:20px;margin-top:auto;padding:16px 0}.primary,.ok,.danger,button{border:0;border-radius:9px;padding:9px 13px;cursor:pointer}.primary{background:var(--brown);color:#fff;font-weight:800}.big{padding:14px}.ok{background:#e2f4e9;color:var(--ok)}.danger{background:#f8e5e5;color:var(--danger)}.hint,.muted{color:var(--muted)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:10px 8px;vertical-align:top}th{font-size:12px;color:var(--muted);background:#faf8f5;position:sticky;top:0}.inline{display:inline-flex;gap:6px;margin:2px}.reject-form input{padding:7px;width:150px}.status{padding:4px 7px;border-radius:8px;background:#eee7de}.mobile-menu{display:none}.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#4e321f,#8b6240)}.login-card{width:min(92vw,390px);background:#fff;padding:30px;border-radius:18px;display:grid;gap:14px;box-shadow:0 20px 80px #0004}.login-card img{width:90px;margin:auto}.login-card h1{text-align:center;margin:0}.login-card p{text-align:center;color:var(--muted);margin:0}.login-card label{display:grid;gap:5px}.alert{background:#fce6e6;color:#9c2828;padding:10px;border-radius:8px}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;left:-260px;z-index:20;width:245px;transition:.2s}.menu-open .sidebar{left:0}.mobile-menu{display:block;margin-right:12px}.content{padding:12px}.kpis{grid-template-columns:1fr}.pos-grid{grid-template-columns:1fr;height:auto}.products{min-height:55vh}.cart{min-height:45vh}header{padding:0 12px}.header-user{display:none}}
/* V0.3 full V2.27 web shell */
.sidebar nav{overflow-y:auto;padding-bottom:220px}.sidebar{overflow:hidden}.nav-group{margin-top:16px}.page-panel{padding:14px}.toolbar{display:flex;gap:10px;margin-bottom:12px}.search-input{width:min(420px,100%);padding:11px 12px;border:1px solid #dac8b8;border-radius:9px;font-size:14px}.table-wrap{overflow:auto;max-height:calc(100vh - 150px);border:1px solid #eadfd6;border-radius:10px}.data-table{width:100%;border-collapse:collapse;min-width:900px;background:#fff}.data-table th{position:sticky;top:0;background:#f4eee8;z-index:1;text-align:left;padding:10px;font-size:13px;border-bottom:1px solid #dfd1c5}.data-table td{padding:9px 10px;border-bottom:1px solid #eee6df;font-size:13px;white-space:nowrap}.data-table tbody tr:hover{background:#fffaf6}.notice{padding:11px 13px;background:#fff7e9;border:1px solid #ecd2a8;border-radius:9px;margin-bottom:12px;color:#69411f}.empty-state{padding:36px;text-align:center;color:#76685e}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.report-card{display:flex;flex-direction:column;gap:8px;padding:18px;background:#fff;border:1px solid #eadfd6;border-radius:12px;text-decoration:none;color:#2f1e13}.report-card b{font-size:24px;color:#7b4e2d}.quick-links{display:flex;flex-wrap:wrap;gap:10px}.quick-links a{padding:10px 12px;border:1px solid #dac8b8;border-radius:8px;text-decoration:none;color:#5f3b24;background:#fff}@media(max-width:900px){.report-grid{grid-template-columns:1fr}.table-wrap{max-height:none}}
/* V0.4 operational forms */
.form-card{max-width:1100px}.smart-form{display:grid;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px}.field>span{font-size:12px;font-weight:700;color:var(--muted)}.field.wide{grid-column:1/-1}.field textarea,.field input,.field select{width:100%}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}.button-link{display:inline-flex;align-items:center;text-decoration:none;color:var(--brown2);background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 13px;font-weight:700}.primary-link{background:var(--brown);color:#fff;border-color:var(--brown)}.module-actions{align-items:center;flex-wrap:wrap}.line-editor{display:grid;grid-template-columns:2fr 150px 120px 120px 110px 130px auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.order-card{border:1px solid var(--line);border-radius:12px;margin:12px 0;padding:12px;background:#fff}.order-head{display:flex;gap:10px;align-items:center;justify-content:space-between}.order-actions{display:flex;gap:8px;align-items:center}.order-actions form{margin:0}.compact{max-height:280px;margin-top:10px}.cancel-inline{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.cancel-inline input{min-width:280px}.qty button{display:inline-flex;align-items:center;justify-content:center;font-size:18px;min-width:36px}.qty input{min-width:70px}.toolbar label{display:flex;align-items:center;gap:8px}@media(max-width:900px){.form-grid{grid-template-columns:1fr}.line-editor{grid-template-columns:1fr 1fr}.order-head{align-items:flex-start;flex-direction:column}.order-actions{flex-wrap:wrap}.cancel-inline{flex-direction:column}.cancel-inline input{min-width:0;width:100%}}
