:root{--bg:#f4f6f9;--surface:#fff;--primary:#0f766e;--primary-dark:#115e59;--danger:#dc2626;--warn:#d97706;--ok:#16a34a;--text:#1e293b;--muted:#64748b;--border:#e2e8f0}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Vazirmatn,Tahoma,sans-serif;font-size:14px}#root{min-height:100vh}.login-wrap{background:linear-gradient(135deg,#0f766e 0%,#134e4a 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border-radius:14px;width:360px;padding:36px;box-shadow:0 20px 50px #00000040}.login-card h1{margin-bottom:6px;font-size:20px}.login-card p{color:var(--muted);margin-bottom:22px;font-size:12.5px}.layout{min-height:100vh;display:flex}.sidebar{color:#ecfdf5;background:#0b3b38;flex-shrink:0;width:220px;padding:18px 0}.sidebar .brand{border-bottom:1px solid #ffffff1f;padding:0 18px 16px;font-size:16px;font-weight:700}.sidebar .brand small{color:#99f6e4;font-size:11px;font-weight:300;display:block}.sidebar nav{padding:10px 0}.sidebar a{color:#ccfbf1;border-right:3px solid #0000;padding:10px 18px;font-size:13.5px;text-decoration:none;display:block}.sidebar a:hover{background:#ffffff0f}.sidebar a.active{background:#ffffff1a;border-right-color:#2dd4bf;font-weight:500}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.topbar-title{align-items:center;gap:10px;min-width:0;display:flex}.topbar .user{align-items:center;gap:12px;font-size:13px;display:flex}.content{min-width:0;padding:24px}.hamburger{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:6px 12px;font-size:20px;line-height:1;display:none}.hamburger:hover{background:#f1f5f9}.sidebar-backdrop{display:none}@media (width<=900px){.hamburger{display:inline-block}.topbar{gap:8px;padding:10px 14px}.topbar-title{flex:1;min-width:0}.topbar-title>div{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.topbar .user span{display:none}.sidebar{z-index:60;width:270px;padding:18px 0;transition:transform .25s;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.sidebar.open{transform:translate(0);box-shadow:-10px 0 32px #00000059}.sidebar nav{display:block}.sidebar-backdrop{z-index:55;background:#00000073;display:block;position:fixed;inset:0}.content{padding:12px}.card{overflow-x:auto}table{min-width:0}.modal{width:calc(100vw - 32px);max-width:440px}.login-wrap{padding:16px}.login-card{width:min(360px,100%)}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:0;margin-bottom:18px;padding:18px}.card h2{margin-bottom:14px;font-size:16px}.grid{gap:14px;display:grid}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:10px;padding:16px}.stat .value{color:var(--primary);font-size:22px;font-weight:700}.stat .label{color:var(--muted);margin-top:4px;font-size:12px}input,select,textarea{border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;padding:9px 12px;font-family:inherit;font-size:13px}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:2px solid #99f6e4}label{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.field{margin-bottom:12px}button{cursor:pointer;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-family:inherit;font-size:13px}button:hover{background:var(--primary-dark)}button.secondary{color:var(--text);background:#e2e8f0}button.secondary:hover{background:#cbd5e1}button.danger{background:var(--danger)}button.danger:hover{background:#b91c1c}button.small{padding:5px 10px;font-size:12px}button:disabled{opacity:.5;cursor:not-allowed}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:right;border-bottom:1px solid var(--border);padding:9px 10px}th{color:var(--muted);background:#f8fafc;font-size:12px;font-weight:500}tr:hover td{background:#f0fdfa}.badge{border-radius:20px;padding:2px 9px;font-size:11px;display:inline-block}.badge.enabled,.badge.done,.badge.confirmed,.badge.booked{color:#166534;background:#dcfce7}.badge.disabled,.badge.cancelled,.badge.noshow{color:#991b1b;background:#fee2e2}.badge.installed,.badge.waiting,.badge.called{color:#854d0e;background:#fef9c3}.badge.uninstalled,.badge.not_installed{color:#475569;background:#e2e8f0}.badge.in_service{color:#1e40af;background:#dbeafe}.badge.vip{color:#6b21a8;background:#f3e8ff}.badge.emergency{color:#b91c1c;background:#fee2e2}.error-box{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.success-box{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.warn-box{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:16px;display:flex}.toolbar .field{min-width:160px;margin:0}.slot{border:1px solid var(--border);text-align:center;cursor:pointer;border-radius:8px;padding:8px;font-size:12px}.slot.full{color:#991b1b;cursor:not-allowed;background:#fef2f2}.slot.free{color:#166534;background:#f0fdf4}.slot:hover:not(.full){border-color:var(--primary)}.modal-backdrop{z-index:50;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:440px;max-height:85vh;padding:22px;overflow:auto}.modal h3{margin-bottom:14px}.display-board{color:#e2e8f0;background:#0f172a;border-radius:12px;min-height:300px;padding:20px}.display-board .item{border-bottom:1px solid #1e293b;justify-content:space-between;padding:12px 16px;font-size:18px;display:flex}.display-board .item.called{color:#fbbf24;font-weight:700}
