:root{--primary:#0c3b32;--primary-mid:#176b58;--primary-soft:#e7f3ef;--canvas:#f2f5f4;--surface:#fff;--ink:#10231e;--muted:#5b6b64;--line:#dce5e1;--danger:#b42318;--danger-soft:#feecec;--warning:#9a6700;--warning-soft:#fff4d6;--info:#175cd3;--info-soft:#eff4ff;--radius:14px;--shadow:0 8px 24px #10231e0f;color:var(--ink);background:var(--canvas);font-family:Cairo,system-ui,sans-serif;font-weight:600;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--canvas)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{color:#fff;background:linear-gradient(135deg,#0c3b32,#145a4a);align-items:center;gap:14px;padding:14px 20px;display:flex}.topbar h1{margin:0;font-size:1.15rem;font-weight:900}.topbar .meta{opacity:.85;font-size:.85rem}.topbar .spacer{flex:1}.layout{grid-template-columns:260px 1fr;min-height:calc(100vh - 64px);display:grid}.sidebar{background:var(--surface);border-left:1px solid var(--line);flex-direction:column;gap:6px;padding:16px 12px;display:flex}.nav-link{color:var(--ink);border-radius:12px;align-items:center;gap:10px;padding:11px 12px;font-weight:700;display:flex}.nav-link:hover{background:var(--canvas)}.nav-link.active{background:var(--primary-soft);color:var(--primary)}.content{padding:20px}.page-title{margin:0 0 4px;font-size:1.35rem;font-weight:900}.page-sub{color:var(--muted);margin:0 0 16px;font-size:.92rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.grid-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.stat .val{color:var(--primary);font-size:1.7rem;font-weight:900}.stat .lbl{color:var(--muted);margin-top:4px;font-size:.9rem}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar input,.toolbar select,.field input,.field select,.field textarea{border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;padding:11px 12px}.toolbar input{max-width:280px}.field{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.field label{font-size:.9rem;font-weight:800}.btn{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-weight:800;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-outline{color:var(--primary);border:1.4px solid var(--line);background:#fff}.btn-ghost{color:#fff;background:0 0;border:1px solid #ffffff40}.btn-danger{background:var(--danger);color:#fff}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:right;border-bottom:1px solid var(--line);padding:12px 14px;font-size:.92rem}th{background:var(--canvas);color:var(--muted);font-weight:800;position:sticky;top:0}tr:hover td{background:#fafcfb}.row-click{cursor:pointer}.chip{border-radius:999px;align-items:center;padding:4px 10px;font-size:.75rem;font-weight:800;display:inline-flex}.chip-success{background:var(--primary-soft);color:var(--primary)}.chip-info{background:var(--info-soft);color:var(--info)}.chip-warning{background:var(--warning-soft);color:var(--warning)}.chip-danger{background:var(--danger-soft);color:var(--danger)}.chip-neutral{background:var(--canvas);color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:48px 20px}.empty h3{color:var(--ink);margin:0 0 6px}.login-page{background:radial-gradient(circle at top right, #176b582e, transparent 40%), var(--canvas);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow);background:#fff;border-radius:20px;overflow:hidden}.login-hero{color:#fff;background:linear-gradient(135deg,#0c3b32,#176b58);padding:28px 24px}.login-hero h2{margin:0 0 6px;font-size:1.7rem;font-weight:900}.login-hero p{opacity:.85;margin:0}.login-body{padding:22px 24px 24px}.shift-row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.shift-btn{border:1px solid var(--line);background:var(--canvas);cursor:pointer;border-radius:12px;padding:12px;font-weight:800}.shift-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.error-box{background:var(--danger-soft);color:var(--danger);border-radius:12px;margin:10px 0;padding:10px 12px;font-weight:700}.modal-backdrop{z-index:50;background:#10231e73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:18px;width:min(560px,100%);max-height:90vh;padding:18px;overflow:auto}.modal h3{margin:0 0 12px;font-weight:900}.kv{grid-template-columns:1fr 1fr;gap:8px 12px;display:grid}.kv div{border-bottom:1px solid var(--line);padding:10px 0}.kv .k{color:var(--muted);font-size:.82rem}.kv .v{font-weight:800}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.menu-tile{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:16px;align-items:center;gap:12px;padding:16px;display:flex}.menu-tile:hover{border-color:#176b5859}.menu-icon{background:var(--primary-soft);width:48px;height:48px;color:var(--primary-mid);border-radius:14px;place-items:center;font-size:1.3rem;font-weight:900;display:grid}.menu-tile h4{margin:0 0 2px;font-size:1rem}.menu-tile p{color:var(--muted);margin:0;font-size:.85rem}@media (width<=960px){.layout{grid-template-columns:1fr}.sidebar{display:none}.grid-stats{grid-template-columns:repeat(2,1fr)}.menu-grid{grid-template-columns:1fr}}
