:root{--bg: #f4f6fb;--surface: #ffffff;--ink: #0f172a;--muted: #64748b;--muted-2: #94a3b8;--line: #e6eaf1;--blue: #2563eb;--blue-dark: #1d4ed8;--blue-soft: #eff4ff;--green: #16a34a;--green-soft: #e9f8ef;--red: #dc2626;--red-soft: #fdecec;--amber: #d97706;--radius: 14px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow: 0 8px 24px rgba(15, 23, 42, .06);--shadow-lg: 0 24px 60px rgba(15, 23, 42, .12)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3{margin:0;letter-spacing:-.02em}p{margin:0}a{color:inherit;text-decoration:none}input,button{font-family:inherit}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.bootScreen{height:100vh;display:grid;place-items:center;color:var(--blue)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 15px;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;transition:all .16s ease;white-space:nowrap}.btn:hover{border-color:#cdd5e3;background:#f8fafc}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue-dark);border-color:var(--blue-dark)}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.ghost:hover{background:#eef2f8;color:var(--ink)}.btn.sm{padding:6px 11px;font-size:13px}.btn.danger{border-color:var(--red);color:var(--red)}.btn.danger:hover{background:var(--red-soft);border-color:var(--red)}.btn.block{width:100%;padding:12px;font-size:15px}.btn:disabled{opacity:.55;cursor:not-allowed}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:#eef2f8;color:var(--muted);text-transform:capitalize}.badge.ok{background:var(--green-soft);color:var(--green)}.badge.danger{background:var(--red-soft);color:var(--red)}.badge.live{background:var(--green-soft);color:var(--green)}.badge.live .dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px #16a34a2e}.loginPage{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.loginCard{display:flex;flex-direction:column;justify-content:center;max-width:400px;width:100%;margin:0 auto;padding:40px 28px}.brandMark{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:800;font-size:26px;box-shadow:var(--shadow);margin-bottom:18px}.brandMark.sm{width:38px;height:38px;border-radius:11px;font-size:19px;margin:0}.loginCard h1{font-size:28px}.loginSub{color:var(--muted);margin-bottom:26px}.loginCard label{font-size:13px;font-weight:600;color:var(--muted);margin:12px 0 6px;display:block}.loginCard input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:11px;font-size:15px;outline:none;background:#fff;transition:border-color .15s,box-shadow .15s}.loginCard input:focus{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-soft)}.loginCard form button{margin-top:20px}.error{display:flex;align-items:center;gap:7px;margin-top:14px;background:var(--red-soft);color:var(--red);padding:10px 12px;border-radius:10px;font-size:14px;font-weight:500}.demoAccounts{margin-top:26px;display:flex;flex-direction:column;gap:8px}.demoTitle{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-2)}.demoRow{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:13.5px;color:var(--ink);cursor:pointer;transition:all .15s}.demoRow:hover{border-color:var(--blue);background:var(--blue-soft)}.tag{font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;background:var(--blue-soft);color:var(--blue)}.loginAside{display:grid;place-items:center;padding:40px;color:#fff;background:radial-gradient(900px 500px at 80% 20%,#3b82f6,transparent 60%),linear-gradient(160deg,#1e3a8a,#1d4ed8)}.loginAside h2{font-size:34px;line-height:1.15;margin:18px 0 14px}.loginAside p{color:#ffffffd9;max-width:360px}.loginAside .badge.live{background:#ffffff29;color:#fff}.loginAside .badge.live .dot{background:#4ade80;box-shadow:0 0 0 3px #4ade804d}.app{display:grid;grid-template-columns:264px 1fr;min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;padding:6px 8px 20px}.brand strong{display:block;font-size:16px}.brand span{display:block;font-size:12px;color:var(--muted-2)}.sidebar nav{display:flex;flex-direction:column;gap:3px;flex:1}.sidebar nav button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:none;background:transparent;color:var(--muted);cursor:pointer;padding:10px 12px;border-radius:10px;font-size:14.5px;font-weight:600;transition:all .15s}.sidebar nav button:hover{background:#f1f5f9;color:var(--ink)}.sidebar nav button.active{background:var(--blue-soft);color:var(--blue)}.userCard{display:flex;align-items:center;gap:11px;padding:12px 8px;border-top:1px solid var(--line)}.avatar{width:38px;height:38px;border-radius:11px;background:var(--blue);color:#fff;font-weight:700;display:grid;place-items:center}.userMeta strong{display:block;font-size:14px}.userMeta span{display:block;font-size:12px;color:var(--muted-2)}.logout{display:flex;align-items:center;gap:9px;width:100%;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;padding:10px 12px;border-radius:10px;font-size:14px;font-weight:600;transition:all .15s;margin-top:6px}.logout:hover{border-color:var(--red);color:var(--red);background:var(--red-soft)}.content{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 30px;border-bottom:1px solid var(--line);background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.topbar h1{font-size:21px}.topbar p{color:var(--muted);font-size:13.5px}.modules{padding:26px 30px 60px;max-width:1240px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.metric{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}.metricIcon{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:#f1f5f9;color:var(--muted);margin-bottom:14px}.metricIcon svg{width:20px;height:20px}.metricIcon.accent{background:var(--blue-soft);color:var(--blue)}.metricIcon.good{background:var(--green-soft);color:var(--green)}.metric h2{font-size:26px}.metric p{color:var(--muted);font-size:13.5px;margin-top:3px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:22px;box-shadow:var(--shadow-sm)}.panelHead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap}.panel h2{font-size:16px}.panelActions{display:flex;align-items:center;gap:10px}.rowCard{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.rowCard:last-child{border-bottom:none}.rowCard strong{font-size:14.5px}.rowCard p{color:var(--muted);font-size:13px;margin-top:3px;display:flex;align-items:center;gap:5px}.table{width:100%}.tableHead,.tableRow{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr 1.1fr;gap:12px;align-items:center}.tableHead{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-2);font-weight:700;padding:0 0 10px;border-bottom:1px solid var(--line)}.tableRow{padding:13px 0;border-bottom:1px solid var(--line);font-size:14px}.tableRow:last-child{border-bottom:none}.tableRow strong{font-size:14px}.tableRow p{color:var(--muted);font-size:12.5px;margin-top:2px}.tableRow .blue{color:var(--blue);font-weight:700}.actions{display:flex;align-items:center;gap:8px;justify-content:flex-end}.iconLink{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;border:1px solid var(--line);color:var(--muted)}.iconLink:hover{border-color:var(--blue);color:var(--blue)}.shiftForm{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px}.shiftForm input{padding:11px 13px;border:1px solid var(--line);border-radius:10px;font-size:14px;outline:none}.shiftForm input:focus{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-soft)}.muted{color:var(--muted-2);font-size:13px;margin-top:12px}.searchBox{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 12px;color:var(--muted)}.searchBox input{border:none;outline:none;font-size:14px;width:240px;max-width:50vw}.shiftGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.shiftCard{border:1px solid var(--line);border-radius:13px;padding:18px;display:flex;flex-direction:column;transition:all .16s}.shiftCard:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:#d5deee}.shiftTop{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.chip{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:#f1f5f9;color:var(--muted);text-transform:capitalize}.shiftCard h3{font-size:16px;min-height:40px}.shiftMeta{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:5px;margin-top:4px}.shiftFoot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:16px}.shiftFoot strong{font-size:18px;color:var(--blue)}.loadingRow{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:14px;padding:14px 0}.banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--red-soft);color:var(--red);border-radius:10px;padding:11px 14px;font-size:14px;font-weight:500;margin:6px 0}.banner span{display:flex;align-items:center;gap:7px}.empty{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;color:var(--muted);padding:36px 16px}.empty svg{color:var(--muted-2)}.banner.ok{background:var(--green-soft);color:var(--green)}.authTabs{display:flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:18px}.authTabs button{flex:1;border:none;background:transparent;padding:9px;border-radius:9px;font-weight:600;font-size:14px;color:var(--muted);cursor:pointer}.authTabs button.on{background:var(--blue);color:#fff}.roleToggle{display:flex;gap:8px;margin-bottom:14px}.roleToggle button{flex:1;border:1px solid var(--line);background:#fff;padding:10px;border-radius:10px;font-weight:600;font-size:14px;color:var(--muted);cursor:pointer}.roleToggle button.on{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.twoCol{display:grid;grid-template-columns:1fr 1fr;gap:12px}.twofaSetup{margin-top:8px}.twofaSetup .qr{width:180px;height:180px;border:1px solid var(--line);border-radius:12px;padding:8px;background:#fff}.twofaSetup code,.panel code{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:2px 7px;font-size:12.5px;word-break:break-all}.panel label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin:14px 0 6px}.codeInput{display:block;width:100%;max-width:280px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;font-size:15px;letter-spacing:2px;outline:none}.codeInput:focus{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-soft)}.trustList{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-direction:column;gap:12px}.trustList li{display:flex;align-items:center;gap:10px;color:#ffffffeb;font-size:14.5px;font-weight:500}.trustList svg{flex:0 0 auto;color:#4ade80}.hint{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);margin-top:10px}.hint.muted2{color:var(--muted-2);display:block}.hint a{color:var(--blue);font-weight:600}.hint a:hover{text-decoration:underline}.envGrid{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.envRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.envRow>span:first-child{font-weight:600;font-size:14px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:var(--muted);word-break:break-all}.actionList{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.actionList li{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--amber);font-weight:600}.actionList li svg{flex:0 0 auto}.table.wide .tableHead,.table.wide .tableRow{grid-template-columns:2fr 1fr 1.1fr 1fr 1.6fr}.muted2{color:var(--muted-2)}.readiness{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}.readiness h3{font-size:15px;margin:0 0 12px}.readinessList{list-style:none;padding:0;margin:0 0 12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.readinessList li{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#fff}.readinessList li.ok{border-color:#c7ebd1}.readinessList li.ok svg{color:var(--green)}.readinessList li.warn{border-color:#fed7aa;background:#fff7ed}.readinessList li.warn svg{color:var(--amber)}.readinessList li.info svg{color:var(--muted)}.readinessList li svg{flex:0 0 auto;margin-top:1px}.readinessStats{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--muted);padding:10px 0;border-top:1px solid var(--line)}.readinessStats strong{color:var(--ink)}@media(max-width:680px){.readinessList{grid-template-columns:1fr}}.cleanupBox{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}.cleanupBox h3{font-size:15px;margin:0 0 8px}.cleanupBox code,.modal code{background:#fff;border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-size:12.5px}.complianceCard{display:flex;align-items:center;gap:9px;padding:12px 14px;border-radius:12px;font-size:14px;font-weight:600;margin-bottom:14px;border:1px solid var(--line)}.complianceCard.ok{background:var(--green-soft);color:var(--green);border-color:#c7ebd1}.complianceCard.warn{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.complianceForm label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin:12px 0 6px}.complianceForm input,.complianceForm select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:14px;outline:none;background:#fff}.complianceForm input:focus,.complianceForm select:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.req{color:var(--red);margin-left:4px}.complianceBox{margin-top:14px;padding:14px;border:1px dashed #cdd5e3;border-radius:12px;background:var(--blue-soft)}.complianceBox label.checkbox{display:flex;gap:8px;font-size:13px;color:var(--ink);margin:8px 0 0;font-weight:500}.complianceBox label.checkbox a{color:var(--blue)}.shiftFormGrid{display:flex;flex-direction:column;gap:8px}.shiftFormGrid label{font-size:13px;font-weight:600;color:var(--muted);margin-top:6px}.shiftFormGrid input,.shiftFormGrid select,.shiftFormGrid textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:14px;outline:none;background:#fff;font-family:inherit}.shiftFormGrid input:focus,.shiftFormGrid select:focus,.shiftFormGrid textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.shiftFormGrid .twoCol{gap:10px}.shiftFormGrid button{align-self:flex-start;margin-top:12px}.modalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;z-index:50;display:grid;place-items:center;padding:20px}.modal{background:#fff;border-radius:16px;padding:24px;max-width:460px;width:100%;box-shadow:var(--shadow-lg);border:1px solid var(--line)}.modal h3{margin:0 0 8px;font-size:18px}.modal input{width:100%;margin-top:8px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;font-size:15px;outline:none;letter-spacing:2px;text-transform:uppercase}.modal input:focus{border-color:var(--red);box-shadow:0 0 0 4px var(--red-soft)}.modalActions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.auditFilters{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.auditFilters label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--muted)}.auditFilters input,.auditFilters select{padding:9px 11px;border:1px solid var(--line);border-radius:10px;font-size:14px;outline:none;background:#fff}.auditFilters input:focus,.auditFilters select:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.auditList{display:flex;flex-direction:column;gap:0}.auditRow{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.auditRow:last-child{border-bottom:none}.auditRow strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:var(--blue)}.auditTime{color:var(--muted-2);font-size:12.5px;white-space:nowrap}@media(max-width:680px){.auditFilters{grid-template-columns:1fr}}.legalLinks{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:12.5px;color:var(--muted-2);margin-top:22px}.legalLinks a{color:var(--muted);font-weight:600}.legalLinks a:hover{color:var(--blue);text-decoration:underline}.sidebarLegal{margin-top:12px;gap:6px;font-size:12px}.forgotLink{margin-top:8px;color:var(--blue);font-weight:600}.forgotLink:hover{background:var(--blue-soft);color:var(--blue-dark)}.profileGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.profileField{background:var(--blue-soft);border:1px solid #e0eaff;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.profileField span{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.profileField strong{font-size:14.5px;color:var(--ink);word-break:break-word}@media(max-width:1100px){.metrics,.shiftGrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:860px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:14px;flex-direction:column;gap:10px}.brand{padding:0 4px 8px;border-bottom:1px solid var(--line)}.sidebar nav{flex-direction:row;flex-wrap:wrap;gap:6px;flex:1 1 100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.sidebar nav button{flex:0 0 auto;padding:8px 12px;font-size:13.5px}.userCard{border-top:1px solid var(--line);padding:10px 4px 0;width:100%;margin-left:0}.logout{width:100%;margin-top:0;justify-content:center}.sidebarLegal{width:100%;justify-content:center}.loginPage{grid-template-columns:1fr}.loginAside{display:none}.loginCard{max-width:100%;padding:28px 20px}}@media(max-width:680px){.metrics,.shiftGrid,.profileGrid,.shiftForm{grid-template-columns:1fr}.tableHead{display:none}.tableRow{grid-template-columns:1fr;gap:6px;padding:14px 0}.tableRow>div{display:flex;justify-content:space-between;align-items:center;gap:10px}.actions{justify-content:flex-start;flex-wrap:wrap}.rowCard{flex-direction:column;align-items:flex-start;gap:10px}.rowCard .actions{width:100%}.modules,.topbar{padding-left:16px;padding-right:16px}.topbar{flex-wrap:wrap;gap:10px}.topbar h1{font-size:18px}.brandMark{width:44px;height:44px;font-size:22px}.loginCard h1{font-size:24px}}
