:root{--bg:#f4f7fb;--card:#fff;--text:#172033;--muted:#758096;--primary:#2e63d5;--primary-dark:#204cab;--border:#e3e8f1;--danger:#d83b4a;--success:#138a5b;--warning:#b37700;--shadow:0 8px 30px rgba(23,32,51,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Tahoma,"Segoe UI",sans-serif;font-size:14px}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px}.brand.center{justify-content:center;margin-bottom:24px}.brand-mark{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,var(--primary),#6b92eb);display:grid;place-items:center;color:#fff;font-size:22px;font-weight:700}.brand strong,.brand small{display:block}.brand strong{font-size:17px}.brand small{color:var(--muted);margin-top:3px}.top-actions,.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.center-actions{justify-content:center}.layout{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 68px)}.sidebar{background:#18233a;padding:18px 12px}.sidebar nav{display:flex;flex-direction:column;gap:6px;position:sticky;top:86px}.sidebar a{color:#c9d3e7;padding:12px 14px;border-radius:10px}.sidebar a:hover,.sidebar a.active{background:#2c3a58;color:#fff}.content{padding:24px;max-width:1500px;width:100%;margin:auto}.customer-content{max-width:1150px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:16px}.page-head h1{margin:0 0 5px;font-size:25px}.page-head p{margin:0;color:var(--muted)}.btn{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:9px;padding:9px 15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.btn:hover{border-color:#b7c2d5}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark)}.btn.ghost{background:transparent}.btn.danger{color:var(--danger);border-color:#f0c4c9}.btn.small{padding:6px 9px;font-size:12px}.btn.full{width:100%}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:var(--shadow);margin-bottom:18px}.card h2{font-size:17px;margin:0 0 16px}.card h3{font-size:14px;margin:18px 0 7px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-head h2{margin:0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.stats-grid.two{grid-template-columns:repeat(2,1fr)}.stat{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.stat span{display:block;color:var(--muted);margin-bottom:9px}.stat strong{font-size:26px}.stat.money strong{font-size:20px}.grid-2{display:grid;grid-template-columns:1.15fr 1fr;gap:18px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:680px}th,td{text-align:right;border-bottom:1px solid var(--border);padding:12px 10px;vertical-align:middle}th{font-size:12px;color:var(--muted);background:#fafbfd}td small{display:block;color:var(--muted);margin-top:4px}.empty{text-align:center;color:var(--muted);padding:28px}.badge{display:inline-block;border-radius:999px;background:#eef2f8;padding:5px 9px;font-size:12px;white-space:nowrap}.badge.success,.status-ready,.status-delivered{background:#e5f7ef;color:var(--success)}.badge.warning,.status-waiting_approval,.status-waiting_part{background:#fff4dc;color:var(--warning)}.badge.danger,.status-cancelled{background:#fdecee;color:var(--danger)}.status-received,.status-diagnosing,.status-repairing{background:#eaf0ff;color:var(--primary)}.toolbar{display:flex;gap:9px;margin-bottom:14px;flex-wrap:wrap}.toolbar input{min-width:260px}.toolbar select{min-width:160px}input,select,textarea{width:100%;border:1px solid #d6ddea;border-radius:9px;padding:10px 11px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#7d9ce3;box-shadow:0 0 0 3px rgba(46,99,213,.1)}textarea{min-height:90px;resize:vertical}label{display:flex;flex-direction:column;gap:7px;color:#46516a}.stack{display:flex;flex-direction:column;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.span-2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;margin-top:4px}.actions form{display:inline}.inline-form{display:flex;gap:5px}.mini{width:68px}.transaction-list>div{display:flex;align-items:center;justify-content:space-between;padding:11px 2px;border-bottom:1px solid var(--border)}.transaction-list b,.transaction-list small{display:block}.transaction-list small{color:var(--muted);margin-top:5px}.transaction-list strong.income{color:var(--success)}.transaction-list strong.expense{color:var(--danger)}.transaction-list.long{max-height:510px;overflow:auto}.details dl{display:grid;grid-template-columns:130px 1fr;margin:0}.details dt,.details dd{padding:10px;border-bottom:1px solid var(--border);margin:0}.details dt{color:var(--muted)}.longtext{line-height:2;white-space:pre-line}.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top right,#e9f0ff,transparent 35%),var(--bg)}.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--border);border-radius:20px;padding:28px;box-shadow:var(--shadow)}.auth-card.wide{width:min(760px,100%)}.auth-card h1{text-align:center;font-size:22px}.center-text{text-align:center}.muted{color:var(--muted)}.simple-link{display:block;text-align:center;margin-top:18px}.alert{padding:12px 14px;border-radius:9px;background:#edf4ff;color:#2454b7;margin-bottom:15px}.alert.danger{background:#fdecee;color:var(--danger)}.alert.success{background:#e5f7ef;color:var(--success)}.alert.warning{background:#fff4dc;color:var(--warning)}.otp-input{text-align:center;direction:ltr;font-size:26px;letter-spacing:8px}.resend-form{margin-top:12px}.low-stock{background:#fff9f0}.invoice-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;align-items:end;margin:18px 0}.total-box{padding:14px;border-radius:11px;background:#edf3ff}.total-box span,.total-box strong{display:block}.total-box strong{font-size:18px;margin-top:5px}.invoice-header{display:flex;justify-content:space-between;border-bottom:2px solid var(--text);padding-bottom:15px;margin-bottom:15px}.customer-box{background:#f7f9fc;padding:12px;border-radius:8px;margin-bottom:15px}.invoice-totals{width:min(420px,100%);margin-right:auto;margin-top:16px}.invoice-totals p{display:flex;justify-content:space-between;padding:7px 0;margin:0;border-bottom:1px solid var(--border)}.invoice-totals .grand{font-size:17px}.balance{font-weight:700}.narrow{max-width:650px}.receipt{width:780px;max-width:100%;margin:20px auto;background:#fff;border:1px solid #bbb;padding:28px}.receipt header{text-align:center}.receipt-code{text-align:center;font-size:18px;border:2px dashed #555;padding:12px;margin:18px 0}.receipt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.receipt h3{border-bottom:1px solid #aaa;padding-bottom:7px}.signs{display:flex;justify-content:space-between;margin-top:55px}code{direction:ltr;display:inline-block}
@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{padding:8px;overflow:auto}.sidebar nav{position:static;flex-direction:row;min-width:max-content}.content{padding:15px}.stats-grid{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.topbar{padding:0 12px}.top-actions span{display:none}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}}
@media(max-width:560px){.stats-grid,.stats-grid.two{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.toolbar input{min-width:100%}.invoice-summary{grid-template-columns:1fr}.receipt-grid{grid-template-columns:1fr}}
@media print{.topbar,.sidebar,.page-head,.no-print{display:none!important}.layout{display:block}.content{padding:0}.card{box-shadow:none;border:0}.print-page{background:#fff}.receipt{border:0;margin:0;width:100%}}
