
:root{--bg:#0b0f15;--glass:rgba(255,255,255,.06);--glass-2:rgba(255,255,255,.12);--text:#e9ecf5;--muted:#a9b3c7;--line:rgba(255,255,255,.12);--accent:#8aa4ff;--danger:#ff6b86;--ok:#79e0a6;--warn:#ffd279}
[data-theme=light]{--bg:#f4f7fb;--glass:rgba(255,255,255,.7);--glass-2:rgba(255,255,255,.85);--text:#101318;--muted:#5b667a;--line:rgba(10,10,10,.1);--accent:#3f5efb;--danger:#d7265e;--ok:#0ea86b;--warn:#c7921b}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:ui-rounded,system-ui,-apple-system,"SF Pro Text","Segoe UI",Roboto,"Noto Naskh Arabic UI","IRANSans",sans-serif;background:var(--bg);color:var(--text)}
.app-shell{display:grid;grid-template-rows:auto 1fr auto;min-height:100dvh}
.header{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px) saturate(120%);background:linear-gradient(180deg,rgba(255,255,255,.08),transparent);border-bottom:1px solid var(--line);padding:12px 16px}
.brand{display:flex;align-items:center;gap:12px}.brand .logo{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#768bff,#a678ff)}
.brand h1{font-size:18px;margin:0}.brand .muted{font-size:12px;color:var(--muted)}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.btn{background:var(--glass);border:1px solid var(--line);color:var(--text);padding:10px 14px;border-radius:14px;cursor:pointer}
.btn:hover{border-color:var(--accent)}.btn.ghost{background:transparent}.btn.danger{color:var(--danger)}
.segment{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden}.segment button{background:transparent;border:0;padding:10px 12px;color:var(--text);cursor:pointer}.segment .active{background:var(--glass-2)}
.content{padding:16px;display:grid;gap:16px}
.glass-card{background:var(--glass);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 10px 40px rgba(0,0,0,.2) inset,0 2px 12px rgba(0,0,0,.2);backdrop-filter:blur(18px) saturate(160%)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr}}
.input,select,input[type=month],input[type=date],input[type=number],input[type=text],textarea{width:100%;background:transparent;border:1px solid var(--line);color:var(--text);padding:10px 12px;border-radius:12px;outline:none}
.input:focus,select:focus{border-color:var(--accent)}
.table-wrap{overflow:auto;border-radius:14px;border:1px solid var(--line)}
table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}
thead th{position:sticky;top:0;background:var(--glass);backdrop-filter:blur(10px) saturate(140%)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpi{background:var(--glass);border:1px solid var(--line);border-radius:16px;padding:14px}.kpi .title{color:var(--muted);font-size:13px}.kpi .val{font-size:20px;margin-top:6px}
.badge{display:inline-block;padding:.2rem .5rem;border:1px solid var(--line);border-radius:999px;font-size:12px;color:var(--muted)}
.bottom-nav{position:sticky;bottom:0;z-index:40;background:var(--glass);backdrop-filter:blur(14px);border-top:1px solid var(--line)}
.bottom-nav .row{display:flex;justify-content:space-around;padding:8px}.bottom-nav .row button{background:transparent;border:0;color:var(--text);padding:8px;border-radius:10px}.bottom-nav .row .active{background:var(--glass-2)}
.lock{position:fixed;inset:0;display:grid;place-items:center;background:linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.55));z-index:9999}
.lock .card{background:var(--glass-2);border:1px solid var(--line);border-radius:18px;padding:18px;display:grid;gap:10px;width:min(420px,92vw)}
.pin{letter-spacing:.6rem;text-align:center;font-size:1.4rem}
.calendar .grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar .cell{padding:10px;border:1px solid var(--line);border-radius:12px;text-align:center;background:var(--glass)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--glass-2);border:1px solid var(--line);padding:10px 14px;border-radius:12px;display:none;z-index:99999}.show{display:block}
.role-admin{}
.j-modal{position:fixed;inset:0;display:none;place-items:center;background:rgba(0,0,0,.4);z-index:9998}
.j-card{background:var(--glass-2);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:16px;padding:12px;min-width:min(92vw,420px)}
.j-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.j-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.j-cell{padding:8px;border:1px solid var(--line);border-radius:10px;text-align:center;background:var(--glass);cursor:pointer}
.j-muted{opacity:.6}
.banner{background:var(--glass);border:1px solid var(--line);border-radius:14px;padding:10px}
.small{font-size:12px;color:var(--muted)}
.flex{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
