:root{--bg:#1B1B1D;--deep:#131315;--raise:#242427;--line:#35353A;--o1:#F49D3D;--o2:#E2571D;
--grad:linear-gradient(115deg,#F49D3D,#E2571D);--txt:#EDEDEC;--grey:#A9A9AE;--green:#3DBE6C;--red:#E25757;--amber:#E8B93D;}
*{margin:0;padding:0;box-sizing:border-box;font-family:Poppins,system-ui,sans-serif;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;}
body{background:var(--bg);color:var(--txt);}
.view{min-height:100dvh;display:flex;flex-direction:column;}
[hidden]{display:none !important;}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
/* login */
#v-login{align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at 70% -10%,rgba(226,87,29,.18),transparent 60%),var(--bg);}
.login-box{width:100%;max-width:380px;text-align:center;}
.login-logo{width:160px;margin-bottom:6px;}
.login-box h1{font-size:1.6rem;font-weight:800;color:#fff;}
.sub{color:var(--grey);font-size:.82rem;margin:8px 0 18px;}
label{display:block;text-align:left;font-size:.78rem;font-weight:600;color:#fff;margin-bottom:6px;}
input,select,textarea{width:100%;background:var(--deep);border:1.5px solid var(--line);border-radius:10px;
padding:13px 14px;color:var(--txt);font:inherit;font-size:.95rem;margin-bottom:14px;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--o1);}
.btn{width:100%;background:var(--grad);border:none;color:#131315;font:inherit;font-weight:700;
padding:14px;border-radius:10px;font-size:.95rem;cursor:pointer;}
.btn.ghost{background:transparent;border:1.5px solid var(--line);color:var(--txt);}
.btn.small{width:auto;padding:9px 16px;font-size:.8rem;}
/* shell */
#topbar{position:sticky;top:0;z-index:20;background:var(--deep);display:flex;align-items:center;
gap:10px;padding:10px 14px calc(10px);border-bottom:2px solid var(--o2);}
#topbar img{width:40px;}
#topbar .brand b{color:#fff;font-size:.95rem;display:block;line-height:1.1;}
#topbar .brand small{color:var(--o1);font-size:.55rem;letter-spacing:.3em;text-transform:uppercase;font-weight:600;}
#notif-bell{margin-left:auto;position:relative;font-size:1.15rem;cursor:pointer;}
#notif-bell b{position:absolute;top:-6px;right:-9px;background:var(--red);color:#fff;font-size:.55rem;
border-radius:99px;padding:1px 5px;font-weight:700;}
#avatar{width:34px;height:34px;border-radius:50%;background:var(--grad);color:#131315;font-weight:800;
display:flex;align-items:center;justify-content:center;font-size:.85rem;}
#screen{flex:1;padding:16px 16px 90px;max-width:640px;width:100%;margin:0 auto;}
#tabbar{position:fixed;bottom:0;left:0;right:0;background:var(--deep);display:flex;
border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);}
#tabbar button{flex:1;background:none;border:none;color:var(--grey);font:inherit;font-size:.6rem;
font-weight:600;padding:9px 0 12px;cursor:pointer;}
#tabbar button span{display:block;font-size:1.15rem;margin-bottom:2px;}
#tabbar button.on{color:var(--o1);}
/* components */
h2{font-size:1.1rem;color:#fff;margin-bottom:3px;}
.card{background:var(--raise);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px;}
.card.urgent{border-color:var(--red);}
.card.hero{border-color:var(--o2);}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.kick{font-size:.6rem;font-weight:700;letter-spacing:.26em;color:var(--o1);text-transform:uppercase;margin:12px 0 6px;}
.small{font-size:.78rem;color:var(--grey);}
.btn.small{color:#131315;}
.btn.ghost.small{color:var(--txt);}
.w{color:#fff;font-weight:700;}
.badge{display:inline-block;border-radius:99px;padding:2px 10px;font-size:.64rem;font-weight:700;}
.b-green{background:rgba(61,190,108,.15);color:var(--green);}
.b-amber{background:rgba(232,185,61,.15);color:var(--amber);}
.b-red{background:rgba(226,87,87,.15);color:var(--red);}
.b-orange{background:rgba(244,157,61,.15);color:var(--o1);}
.chip{display:inline-block;background:var(--deep);border:1.5px solid var(--line);border-radius:99px;
padding:6px 13px;font-size:.75rem;color:var(--grey);margin:0 6px 8px 0;font-weight:600;cursor:pointer;}
.chip.on{background:var(--grad);color:#131315;border-color:transparent;}
.clockbtn{width:180px;height:180px;border-radius:50%;background:var(--grad);border:none;color:#131315;
font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;
margin:22px auto;box-shadow:0 0 60px rgba(226,87,29,.3);}
.clockbtn.out{background:linear-gradient(115deg,#3DBE6C,#1E8A47);box-shadow:0 0 60px rgba(61,190,108,.3);}
.clockbtn b{font-size:1.25rem;font-weight:800;}
.clockbtn small{font-size:.72rem;opacity:.85;}
.statrow{display:flex;gap:8px;}
.statrow .card{flex:1;text-align:center;margin:0;}
.statrow .n{font-size:1.25rem;font-weight:800;color:#fff;}
.statrow .l{font-size:.62rem;color:var(--grey);}
.toast{position:fixed;bottom:84px;left:50%;transform:translateX(-50%);background:var(--deep);
border:1px solid var(--o1);color:#fff;padding:10px 20px;border-radius:99px;font-size:.85rem;z-index:50;}

/* v0.2.1 — iPhone overflow fixes */
html,body{overflow-x:hidden;}
#screen *{min-width:0;}
input,select,textarea{max-width:100%;-webkit-appearance:none;appearance:none;}
input[type=date]{display:block;width:100%;text-align:left;}
input[type=checkbox]{-webkit-appearance:checkbox;appearance:auto;}
#avatar{cursor:pointer;}

/* ---------- desktop admin ---------- */
@media(min-width:900px){
  #screen{max-width:1100px;}
  .deskgrid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;align-items:start;}
  .statrow .n{font-size:1.6rem;}
  .weekgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;}
}
.weekgrid{display:grid;gap:10px;}
.daycol{background:var(--raise);border:1px solid var(--line);border-radius:12px;padding:10px;}
.daycol.today{border-color:var(--o2);}
.daycol h4{color:var(--o1);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;margin-bottom:8px;}
.pill{display:inline-flex;align-items:center;gap:6px;background:var(--deep);border:1px solid var(--o2);
color:var(--txt);border-radius:99px;padding:3px 10px;font-size:.7rem;font-weight:600;margin:2px 2px 2px 0;}
.pill b{cursor:pointer;color:var(--red);}
.dayjob{margin-bottom:8px;}
.dayjob .jn{font-size:.78rem;font-weight:700;color:#fff;}

/* ---------- month calendar ---------- */
.mgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;}
.mhead{font-size:.6rem;font-weight:700;letter-spacing:.12em;color:var(--grey);text-transform:uppercase;text-align:center;padding-bottom:2px;}
.mcell{background:var(--raise);border:1px solid var(--line);border-radius:9px;min-height:64px;padding:4px;cursor:pointer;overflow:hidden;}
.mcell.dim{opacity:.35;}
.mcell.today{border-color:var(--o2);box-shadow:0 0 0 1px var(--o2);}
.mcell .dn{font-size:.62rem;color:var(--grey);font-weight:700;}
.mbar{border-radius:4px;padding:1px 4px;font-size:.55rem;font-weight:700;color:#fff;margin-top:2px;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mbar small{opacity:.8;font-weight:600;}
@media(min-width:900px){ .mcell{min-height:96px;padding:6px;} .mbar{font-size:.68rem;padding:2px 6px;} }
.legend{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0;}
.legend span{font-size:.68rem;color:var(--grey);display:flex;align-items:center;gap:5px;}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block;}
.segbtn{display:flex;gap:6px;}
.segbtn button{background:var(--deep);border:1.5px solid var(--line);color:var(--grey);font:inherit;
font-size:.78rem;font-weight:700;padding:7px 16px;border-radius:8px;cursor:pointer;}
.segbtn button.on{background:var(--grad);color:#131315;border-color:transparent;}

/* ---------- desktop admin shell (the "operating system") ---------- */
#sidenav{position:fixed;left:0;top:0;bottom:0;width:212px;background:var(--deep);
border-right:1px solid var(--line);padding:16px 10px;z-index:30;overflow-y:auto;}
.sn-brand{display:flex;gap:10px;align-items:center;padding:4px 8px 14px;border-bottom:1px solid var(--line);margin-bottom:10px;}
.sn-brand img{width:38px;}
.sn-brand b{color:#fff;font-size:.9rem;display:block;line-height:1.1;}
.sn-brand small{color:var(--o1);font-size:.5rem;letter-spacing:.3em;font-weight:700;}
#sn-nav button{display:flex;gap:10px;align-items:center;width:100%;background:none;border:none;
color:var(--grey);font:inherit;font-size:.85rem;font-weight:600;padding:9px 12px;border-radius:8px;
cursor:pointer;text-align:left;margin-bottom:2px;}
#sn-nav button:hover{background:rgba(255,255,255,.05);color:#fff;}
#sn-nav button.on{background:var(--grad);color:#131315;}
#sn-nav .sn-sec{font-size:.58rem;font-weight:700;letter-spacing:.24em;color:var(--grey);
text-transform:uppercase;padding:12px 12px 4px;}
.desk #topbar{padding-left:226px;}
.desk #screen{margin:0 0 0 212px;width:calc(100% - 212px);max-width:1320px;padding:22px 28px 90px;}
.desk #tabbar{display:none;}
/* jobs table */
.jtable{width:100%;border-collapse:collapse;font-size:.84rem;}
.jtable th{text-align:left;color:var(--o1);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
padding:10px 12px;border-bottom:1px solid var(--line);}
.jtable td{padding:9px 12px;border-bottom:1px solid var(--line);color:var(--txt);}
.jtable tr{cursor:pointer;}
.jtable tr:hover td{background:rgba(255,255,255,.03);}
