:root{--bg:#f5f7fa;--card:#fff;--text:#17202a;--muted:#65758b;--line:#dfe5ec;--brand:#173f67;--accent:#f5a623;--danger:#c0392b;--ok:#26835a;--shadow:0 6px 22px rgba(17,33,52,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(430px,100%);background:#fff;border-radius:18px;padding:34px;box-shadow:var(--shadow)}.logo{font-size:26px;font-weight:800;color:var(--brand)}.sub{color:var(--muted);margin:6px 0 22px}.field{margin:12px 0}.field label{display:block;font-size:12px;font-weight:700;color:#536274;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}.btn{border:0;border-radius:9px;padding:10px 14px;background:var(--brand);color:#fff;font-weight:700}.btn.secondary{background:#e9eef4;color:#23374b}.btn.warn{background:var(--accent);color:#1f2730}.btn.danger{background:var(--danger)}.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:#112b46;color:white;padding:20px 14px;position:sticky;top:0;height:100vh}.sidebar .logo{color:white;padding:8px 10px 22px}.nav button{display:block;width:100%;text-align:left;border:0;background:transparent;color:#cad8e6;padding:11px 12px;border-radius:9px;margin:4px 0}.nav button.active,.nav button:hover{background:#214665;color:#fff}.userbox{position:absolute;bottom:18px;left:14px;right:14px;background:#173a59;border-radius:10px;padding:10px;font-size:13px}.main{min-width:0}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20}.content{padding:22px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.space{justify-content:space-between}.cards{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:12px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.stat b{font-size:24px;display:block}.stat span{font-size:12px;color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 8px rgba(20,40,60,.03);overflow:hidden}.panel h3{margin:0;padding:15px 17px;border-bottom:1px solid var(--line)}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);font-size:13px}th{font-size:11px;text-transform:uppercase;color:var(--muted)}.tag{display:inline-flex;padding:4px 8px;border-radius:20px;background:#edf2f7;font-size:11px;font-weight:700}.pri-Urgent{background:#ffe4e0;color:#a62a20}.pri-High{background:#fff0d8;color:#925c07}.link{color:var(--brand);font-weight:700;cursor:pointer}.kanban{display:grid;grid-template-columns:repeat(12,260px);gap:12px;overflow:auto;padding-bottom:16px}.col{background:#edf1f5;border-radius:12px;padding:10px;min-height:500px}.colhead{font-size:12px;font-weight:800;padding:6px}.jobcard{background:#fff;border:1px solid #dbe2e9;border-radius:10px;padding:10px;margin:8px 0;box-shadow:0 2px 5px rgba(0,0,0,.03)}.jobcard .jn{font-size:11px;color:var(--muted)}.jobcard .title{font-weight:800;font-size:13px;margin:4px 0}.jobcard small{color:var(--muted)}.schedule-wrap{display:grid;grid-template-columns:180px 1fr;gap:12px}.unscheduled{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;max-height:680px;overflow:auto}.schedule{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px}.sched-grid{display:grid;min-width:820px;position:relative}.sched-head{display:grid;grid-template-columns:70px repeat(var(--cols),minmax(180px,1fr));position:sticky;top:0;z-index:5;background:#fff}.sched-head div{padding:10px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);font-weight:800;font-size:12px}.time-row{display:grid;grid-template-columns:70px repeat(var(--cols),minmax(180px,1fr));min-height:58px}.time-row>div{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:3px}.time-label{font-size:11px;color:var(--muted);padding:6px!important}.slot{min-height:58px}.slot.dragover{background:#eef7ff}.schedjob{background:#e9f2fb;border-left:4px solid var(--brand);padding:6px;border-radius:7px;font-size:11px;margin:2px;cursor:grab}.modalback{position:fixed;inset:0;background:rgba(10,20,30,.45);display:grid;place-items:center;z-index:50;padding:14px}.modal{width:min(980px,100%);max-height:94vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:var(--shadow)}.modalhead{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modalbody{padding:18px}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.full{grid-column:1/-1}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff}.chip.on{background:#e8f0f8;border-color:#82a8ca}.mobilejobs{display:grid;gap:12px}.mobilejob{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px}.activity{font-size:12px;color:var(--muted);border-left:2px solid var(--line);padding-left:10px;margin:8px 0}.hide{display:none!important}@media(max-width:900px){.app{display:block}.sidebar{height:auto;position:sticky;top:0;z-index:30;padding:8px;display:flex;align-items:center;overflow:auto}.sidebar .logo{padding:8px 12px;white-space:nowrap;font-size:19px}.nav{display:flex}.nav button{white-space:nowrap;margin:0 2px}.userbox{display:none}.topbar{top:58px;height:58px;padding:0 12px}.content{padding:12px}.cards{grid-template-columns:repeat(2,1fr)}.schedule-wrap{grid-template-columns:1fr}.unscheduled{max-height:200px}.formgrid{grid-template-columns:1fr}.full{grid-column:1}.desktop-only{display:none!important}}@media(max-width:520px){.cards{grid-template-columns:1fr 1fr}.stat{padding:11px}.stat b{font-size:20px}.modalback{padding:0;align-items:end}.modal{border-radius:16px 16px 0 0;max-height:92vh}.nav button{font-size:12px;padding:9px}.kanban{grid-template-columns:repeat(12,82vw)}}
