:root{--navy:#08152f;--indigo:#4f46e5;--cyan:#22d3ee;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--canvas:#f5f7fb;--white:#fff;--shadow:0 14px 42px rgba(15,23,42,.07)}*{box-sizing:border-box}html{background:var(--canvas)}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:16px}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:254px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:var(--navy);color:#d8e1ef;padding:18px 12px;z-index:40}.brand-lockup{display:flex;align-items:center;gap:11px}.nav-brand{border:0;background:transparent;color:white;text-align:left;padding:2px 5px 19px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#6366f1,var(--cyan));color:white;font-size:24px;box-shadow:0 8px 24px rgba(34,211,238,.18)}.brand-lockup strong{display:block;font-size:17px}.brand-lockup small{display:block;color:#67e8f9;font-size:10px;letter-spacing:.18em;margin-top:3px}.nav-label{font-size:10px;font-weight:800;letter-spacing:.16em;color:#59677e;margin:20px 9px 9px}.sidebar nav{display:grid;gap:3px}.nav-item{width:100%;display:flex;align-items:center;gap:12px;border:0;border-radius:12px;padding:10px 11px;background:transparent;color:#bac5d7;text-align:left;transition:.18s}.nav-item span{display:grid;place-items:center;width:20px;font-style:normal}.nav-item em{font-style:normal;font-size:14px}.nav-item:hover,.nav-item.active{background:rgba(99,102,241,.24);color:#fff}.nav-item.active{font-weight:700}.nav-item .count{margin-left:auto;background:#fbbf24;color:#3b2f05;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:800}.admin-nav{margin-top:8px}.sso-card{margin-top:auto;display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.14);border-radius:13px;padding:10px}.sso-card>b{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#2563eb;color:#fff}.sso-card strong,.sso-card small{display:block}.sso-card strong{font-size:12px}.sso-card small{font-size:10px;color:#738096;margin-top:2px}.workspace{min-width:0}.topbar{height:64px;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.93);backdrop-filter:blur(14px);padding:0 28px}.icon-button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:#64748b;font-size:18px}.icon-button:hover{background:#f1f5f9}.crumb{min-width:0;flex:1}.crumb strong,.crumb small{display:block}.crumb strong{font-size:14px}.crumb small{font-size:12px;color:var(--muted);margin-top:2px}.bell{position:relative}.bell i{position:absolute;right:8px;top:7px;width:7px;height:7px;border:2px solid #fff;border-radius:50%;background:#f43f5e}.profile{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:13px;padding:5px 8px;background:#fff}.profile>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e0e7ff;color:#4338ca;font-weight:800;font-size:12px}.profile strong,.profile small{display:block;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile strong{font-size:13px}.profile small{font-size:10px;color:var(--muted);margin-top:1px}.profile a{text-decoration:none;color:#64748b;padding:6px}#appMain{max-width:1600px;margin:auto;padding:30px 32px 42px}.eyebrow{font-size:11px;line-height:1;font-weight:800;letter-spacing:.15em;color:#6366f1;margin:0}.page-title{font-size:clamp(32px,4vw,52px);line-height:1.02;letter-spacing:-.045em;margin:7px 0 0}.page-copy{color:var(--muted);line-height:1.7;max-width:760px;margin:10px 0 0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;border-radius:12px;border:1px solid transparent;padding:0 17px;font-weight:700;font-size:14px}.btn.primary{background:var(--indigo);color:white;box-shadow:0 7px 20px rgba(79,70,229,.22)}.btn.primary:hover{background:#4338ca}.btn.secondary{background:white;border-color:var(--line);color:#334155}.hero{position:relative;overflow:hidden;min-height:315px;border-radius:24px;padding:46px;background:radial-gradient(circle at 18% -20%,rgba(34,211,238,.28),transparent 39%),linear-gradient(125deg,#101e48,#2837a3 52%,#4f46e5);box-shadow:0 22px 60px rgba(44,55,145,.21);color:#fff}.hero:before,.hero:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%}.hero:before{width:390px;height:390px;right:-80px;top:-210px}.hero:after{width:270px;height:270px;right:70px;top:-150px}.hero-content{position:relative;z-index:2;max-width:650px}.pill{display:inline-flex;border:1px solid rgba(255,255,255,.26);border-radius:999px;padding:5px 10px;font-size:12px}.hero-date{font-size:13px;color:#c7d2fe;margin-left:8px}.hero h1{font-size:42px;line-height:1.05;letter-spacing:-.04em;margin:30px 0 10px}.hero p{color:#dbeafe;line-height:1.65;max-width:650px}.hero-actions{display:flex;gap:10px;margin-top:28px}.hero .btn.primary{background:white;color:#1e1b4b}.hero .btn.secondary{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:white}.attendance-card{position:absolute;right:46px;bottom:45px;z-index:2;width:300px;padding:21px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(7,18,50,.37);backdrop-filter:blur(15px)}.attendance-card header{display:flex;justify-content:space-between;color:#c7d2fe;font-size:13px}.attendance-card header b{color:#a7f3d0}.attendance-card h3{font-size:31px;margin:24px 0 3px}.attendance-card p{font-size:12px;margin:0}.bar{height:6px;border-radius:99px;background:rgba(255,255,255,.15);overflow:hidden;margin-top:20px}.bar i{display:block;width:78%;height:100%;background:#22d3ee}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-top:24px}.card{border:1px solid #e5eaf2;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 1px 2px rgba(15,23,42,.02),0 10px 35px rgba(15,23,42,.035)}.metric{padding:21px;transition:.2s}.metric:hover{transform:translateY(-2px);border-color:#c7d2fe}.metric span,.metric small{display:block;color:var(--muted)}.metric span{font-size:14px}.metric strong{display:block;font-size:28px;letter-spacing:-.04em;margin:13px 0 5px}.metric small{font-size:13px}.dashboard-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:20px;margin-top:20px}.panel{padding:24px}.section-title{font-size:19px;margin:6px 0 0;letter-spacing:-.02em}.priority-list{margin-top:17px}.priority{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid #eef2f7}.priority:last-child{border:0}.priority .ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#eef2ff}.priority div{min-width:0;flex:1}.priority strong,.priority small{display:block}.priority small{color:var(--muted);margin-top:4px}.priority em{font-style:normal;color:#94a3b8;font-size:13px}.people-ring{width:136px;height:136px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#4f46e5 0 48%,#22d3ee 48% 82%,#c7d2fe 82%);margin:25px auto 18px}.people-ring:before{content:"";grid-area:1/1;width:105px;height:105px;border-radius:50%;background:white}.people-ring span{z-index:1;grid-area:1/1;text-align:center;font-weight:800;font-size:20px}.people-ring small{display:block;color:#94a3b8;font-size:10px;letter-spacing:.12em;margin-top:3px}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #eef2f7;padding-top:18px;text-align:center}.mini-stats strong,.mini-stats small{display:block}.mini-stats small{color:var(--muted);font-size:11px;margin-top:4px}.workflow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-top:20px}.stage{display:flex;align-items:center;gap:10px;padding:15px;border:1px solid var(--line);border-radius:15px}.stage>b{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#eef2ff;color:#4338ca}.stage:first-child>b{background:var(--indigo);color:white}.stage strong,.stage small{display:block}.stage strong{font-size:13px}.stage small{font-size:11px;color:#94a3b8;margin-top:3px}.table-card{overflow:hidden;margin-top:20px}.table-head{display:flex;justify-content:space-between;align-items:center;padding:21px 24px;border-bottom:1px solid #eef2f7}.search{height:40px;border:1px solid var(--line);border-radius:11px;padding:0 12px;width:240px}table{width:100%;border-collapse:collapse}th{padding:13px 24px;background:#f8fafc;color:#94a3b8;text-transform:uppercase;letter-spacing:.08em;font-size:11px;text-align:left}td{padding:16px 24px;border-top:1px solid #eef2f7;font-size:14px}td strong,td small{display:block}td small{color:var(--muted);margin-top:4px}.status{display:inline-flex;border-radius:99px;padding:5px 9px;font-size:12px;font-weight:700;background:#eff6ff;color:#1d4ed8}.status.approved,.status.completed{background:#ecfdf5;color:#047857}.status.pending{background:#fffbeb;color:#b45309}.status.attention{background:#fff1f2;color:#be123c}.status.scheduled{background:#f5f3ff;color:#6d28d9}.config-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:20px 0}.config-tabs button{border:0;background:transparent;padding:12px 15px;color:var(--muted);border-bottom:2px solid transparent}.config-tabs button.active{color:var(--indigo);border-color:var(--indigo);font-weight:700}.config-grid{display:grid;grid-template-columns:.36fr .64fr;gap:20px}.field{display:block;margin-top:18px;font-size:13px;font-weight:700;color:#334155}.field select,.field input{display:block;width:100%;height:43px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 12px;margin-top:8px}.rule-note{border:1px solid #c7d2fe;border-radius:13px;background:#eef2ff;color:#3730a3;padding:15px;margin-top:18px;line-height:1.55}.stage-row{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:14px;padding:13px;margin-top:10px}.stage-row .drag{color:#cbd5e1}.stage-row b{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#eef2ff;color:#4338ca}.stage-row input{flex:1;border:0;background:transparent;font-weight:700;outline:0}.stage-row button{border:0;background:transparent;color:#94a3b8;font-size:18px}.policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.policy-card{padding:20px}.policy-card ul{padding:0;margin:16px 0 0;list-style:none}.policy-card li{margin:11px 0;color:#475569;font-size:14px}.policy-card li:before{content:"✓";color:#059669;font-weight:800;margin-right:10px}dialog{border:0;border-radius:20px;padding:0;width:min(520px,calc(100% - 30px));box-shadow:0 30px 90px rgba(15,23,42,.28)}dialog::backdrop{background:rgba(8,21,47,.55);backdrop-filter:blur(4px)}dialog form{padding:25px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start}.dialog-head h2{margin:6px 0 18px}.dialog-head+label,dialog label{display:block;font-size:13px;font-weight:700;margin-top:15px}dialog input,dialog textarea{display:block;width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:8px;resize:vertical}.approval-route{display:flex;justify-content:space-between;gap:10px;border-radius:12px;background:#f8fafc;padding:14px;margin-top:17px;font-size:13px}.approval-route span{color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}#toast{position:fixed;right:24px;top:82px;z-index:100;max-width:360px;padding:14px 18px;border-radius:13px;background:#0f172a;color:white;box-shadow:var(--shadow);opacity:0;transform:translateY(-10px);pointer-events:none;transition:.22s}#toast.show{opacity:1;transform:none}.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 18% 15%,rgba(34,211,238,.15),transparent 27%),linear-gradient(135deg,#08152f,#172554 55%,#312e81);padding:22px}.login-card{width:min(520px,100%);border:1px solid rgba(255,255,255,.16);border-radius:28px;background:rgba(255,255,255,.98);padding:42px;box-shadow:0 35px 100px rgba(0,0,0,.3)}.login-card .brand-lockup{margin-bottom:40px}.login-card h1{font-size:42px;line-height:1.04;letter-spacing:-.045em;margin:12px 0}.login-copy{color:var(--muted);line-height:1.7}.login-visual{height:90px;display:flex;align-items:flex-end;gap:8px;margin-bottom:30px}.login-visual span{display:grid;place-items:center;width:56px;border-radius:13px 13px 4px 4px;background:#eef2ff;color:#4f46e5;font-size:11px;font-weight:800}.login-visual span:nth-child(1){height:48px}.login-visual span:nth-child(2){height:70px}.login-visual span:nth-child(3){height:88px;background:linear-gradient(#6366f1,#22d3ee);color:white}.login-visual i{flex:1;border-bottom:2px dashed #cbd5e1}.ms-login{display:flex;align-items:center;justify-content:center;gap:12px;height:52px;border-radius:13px;background:#2563eb;color:white;text-decoration:none;font-weight:800;margin-top:27px}.ms-login b{display:grid;place-items:center;width:25px;height:25px;background:white;color:#2563eb;border-radius:5px}.login-note{text-align:center;color:#94a3b8;font-size:12px;margin:13px 0 0}#menuButton{display:none}
@media(max-width:1080px){.attendance-card{display:none}.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.config-grid{grid-template-columns:1fr}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-270px;width:254px;transition:.2s}.sidebar.open{left:0;box-shadow:20px 0 60px rgba(0,0,0,.25)}#menuButton{display:grid}.topbar{padding:0 14px}.profile div{display:none}#appMain{padding:22px 15px}.hero{padding:26px;min-height:350px}.hero h1{font-size:34px}.metric-grid{grid-template-columns:1fr}.workflow{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.table-card{overflow-x:auto}.table-head{min-width:720px}.table-card table{min-width:720px}.policy-grid{grid-template-columns:1fr}.login-card{padding:28px}.login-card h1{font-size:34px}}
.brand-logo{width:42px;height:42px;object-fit:contain;border-radius:10px;background:#fff}.login-error{border:1px solid #fecdd3;border-radius:11px;background:#fff1f2;color:#be123c;padding:11px 13px;font-size:13px}.login-divider{display:flex;align-items:center;gap:12px;color:#94a3b8;font-size:11px;margin:18px 0}.login-divider:before,.login-divider:after{content:"";height:1px;background:var(--line);flex:1}.local-login{display:grid;gap:11px}.local-login label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#334155}.local-login input,.field textarea{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:#fff}.local-login-button{width:100%;background:var(--navy);color:#fff;margin-top:3px}.config-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.config-save{margin-top:20px}.stage-editor{display:grid;grid-template-columns:32px minmax(150px,1fr) 150px 85px auto auto 30px}.stage-editor select,.stage-editor .stage-sla{height:38px;border:1px solid var(--line);border-radius:9px;padding:0 8px}.stage-editor label{font-size:11px;color:var(--muted);white-space:nowrap}.permission-scroll{overflow:auto}.permission-table{min-width:1100px}.permission-table th small{display:block;text-transform:none;letter-spacing:0;margin-top:4px}.permission-table td:not(:first-child){white-space:nowrap}.permission-table td input{width:17px;height:17px;margin:0 7px}.template-list{display:grid;gap:10px;margin-top:18px}.template-list a{display:flex;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:14px;text-decoration:none;color:var(--ink);font-weight:700}.template-list span{color:var(--indigo);font-size:12px}.colour-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.colour-fields input{padding:4px;height:48px}.logo-preview{display:grid;place-items:center;min-height:180px;margin-top:18px;border:1px dashed #cbd5e1;border-radius:15px;background:#f8fafc}.logo-preview img{max-width:80%;max-height:140px;object-fit:contain}.field textarea{display:block;margin-top:8px;resize:vertical}.btn:disabled{opacity:.55;cursor:wait}@media(max-width:900px){.stage-editor{grid-template-columns:32px 1fr 120px}.stage-editor label,.stage-editor .stage-sla,.stage-editor .remove-stage{grid-row:2}.colour-fields{grid-template-columns:1fr}}@media(max-width:600px){.config-tabs{overflow:auto}.config-tabs button{white-space:nowrap}.stage-editor{grid-template-columns:30px 1fr}.stage-editor>*{grid-column:2}.stage-editor>b{grid-column:1;grid-row:1}.stage-editor .remove-stage{grid-column:1;grid-row:2}}
