*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#101828;background:#f8faff}a{color:inherit}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}aside{background:#0f1c3f;color:#fff;padding:26px 18px}.logo{font-size:28px;font-weight:800;margin:0 10px 30px}nav{display:grid;gap:7px}nav a{padding:12px 14px;border-radius:10px;color:#d7def3;text-decoration:none}nav a.active{background:#3157f6;color:#fff}nav small{float:right;opacity:.55}main{padding:32px 38px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}header h1{margin:0 0 4px}.user{color:#667085}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.cards section,.panel{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:22px;box-shadow:0 8px 28px rgba(16,24,40,.04)}.cards b{display:block;font-size:28px;color:#3157f6;margin-bottom:8px}.cards span{color:#667085}.panel{margin-top:20px}.status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}.status-grid div{background:#f7f9fc;border-radius:12px;padding:14px}.status-grid strong,.status-grid span{display:block}.status-grid span{margin-top:4px;color:#12b76a}.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#f8faff,#eef2ff)}.login-card{width:min(430px,92vw);background:#fff;border:1px solid #e4e7ec;border-radius:20px;padding:34px;box-shadow:0 20px 60px #10182818}.brand{display:inline-grid;place-items:center;width:48px;height:48px;background:#3157f6;color:#fff;border-radius:13px;font-weight:800}.login-card h1{margin-bottom:8px}.login-card p{color:#667085}.login-card label{display:block;font-weight:650;margin:16px 0 6px}.login-card input{width:100%;padding:12px;border:1px solid #d0d5dd;border-radius:10px}.login-card button{width:100%;margin-top:20px;background:#3157f6;color:#fff;border:0;padding:13px;border-radius:10px;font-weight:750}.alert{padding:11px;background:#fff1f0;color:#b42318;border-radius:10px}@media(max-width:900px){.shell{grid-template-columns:1fr}aside{display:none}.cards{grid-template-columns:1fr 1fr}main{padding:20px}}@media(max-width:560px){.cards,.status-grid{grid-template-columns:1fr}header{align-items:flex-start;gap:15px;flex-direction:column}}
/* Sprint 1 Personnel Core */
header p,.panel p{color:#667085}.btn-link,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:10px;padding:10px 14px;font-weight:700}.btn-link{background:#3157f6;color:#fff}.btn-secondary{background:#eef2ff;color:#2949d3}.success{padding:12px;background:#ecfdf3;color:#027a48;border-radius:10px;margin:15px 0}.split{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(520px,1.6fr);gap:20px;align-items:start}.employee-layout{grid-template-columns:minmax(360px,.9fr) minmax(620px,1.6fr)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1/-1}.form-grid label{display:grid;gap:6px;font-weight:650;font-size:14px}.form-grid input,.form-grid select,.form-grid textarea,.toolbar input,.toolbar select{width:100%;padding:11px 12px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;color:#101828}.form-grid textarea{min-height:90px;resize:vertical}.form-grid button,.toolbar button{background:#3157f6;color:#fff;border:0;border-radius:10px;padding:11px 16px;font-weight:750;cursor:pointer}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:start}.check input{width:auto}.actions{display:flex;gap:10px;align-items:center}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:13px 10px;border-bottom:1px solid #edf0f5;text-align:left;vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#667085}td{font-size:14px}td a{color:#3157f6;font-weight:650;text-decoration:none}small{color:#667085}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}.badge.ok{background:#ecfdf3;color:#027a48}.badge.muted{background:#f2f4f7;color:#667085}.empty{text-align:center!important;color:#98a2b3;padding:25px!important}.toolbar{display:grid;grid-template-columns:1fr 170px auto;gap:10px;margin-bottom:14px}.hint{font-size:13px}.dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.panel-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.panel-head h2,.panel-head p{margin:0 0 5px}.mini-list{display:grid}.mini-list>a{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;text-decoration:none;padding:12px 0;border-bottom:1px solid #edf0f5}.mini-list>a:last-child{border-bottom:0}.mini-list strong,.mini-list small{display:block}.mini-list em{font-style:normal;color:#667085;font-weight:650}.avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#eef2ff;color:#3157f6;font-weight:800}
@media(max-width:1180px){.split,.employee-layout,.dashboard-grid{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.form-grid,.toolbar{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.cards{grid-template-columns:1fr}.panel{padding:16px}.actions{align-items:stretch;flex-direction:column}.btn-secondary{width:100%}}

/* Sprint 2 Availability & Leave */
.compact-panel{padding:14px 18px}.employee-picker{max-width:520px}.employee-picker label{display:grid;gap:6px;font-weight:650}.employee-picker select,.panel select{padding:10px 12px;border:1px solid #d0d5dd;border-radius:10px;background:#fff}.availability-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.badge.availability-available{background:#ecfdf3;color:#027a48}.badge.availability-preferred{background:#eef4ff;color:#3538cd}.badge.availability-unavailable{background:#fff1f0;color:#b42318}.link-danger{background:none!important;color:#b42318!important;border:0!important;padding:0!important;margin:0!important;width:auto!important;cursor:pointer;font-weight:650}.leave-list{display:grid;gap:12px;margin-top:16px}.leave-card{border:1px solid #e5e7eb;border-radius:14px;padding:15px}.leave-card-top{display:flex;justify-content:space-between;gap:15px}.leave-card strong,.leave-card small{display:block}.leave-card p{margin:10px 0}.badge.leave-pending{background:#fffaeb;color:#b54708}.badge.leave-approved{background:#ecfdf3;color:#027a48}.badge.leave-rejected{background:#fff1f0;color:#b42318}.badge.leave-cancelled{background:#f2f4f7;color:#667085}.decision-form{display:grid;grid-template-columns:1fr auto auto;gap:8px;margin-top:12px}.decision-form input{min-width:0;padding:9px 10px;border:1px solid #d0d5dd;border-radius:9px}.decision-form button{border:0;border-radius:9px;padding:9px 11px;font-weight:750;cursor:pointer}.decision-form .approve{background:#12b76a;color:#fff}.decision-form .reject{background:#fee4e2;color:#b42318}@media(max-width:980px){.availability-grid{grid-template-columns:1fr}}@media(max-width:650px){.decision-form{grid-template-columns:1fr}.leave-card-top{flex-direction:column;align-items:flex-start}}
.schedule-actions{display:flex;gap:10px;margin:0 0 18px;flex-wrap:wrap}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;overflow-x:auto;padding-bottom:10px}.day-column{background:#f8fafc;border:1px solid #e6ebf2;border-radius:14px;min-height:260px;padding:10px}.day-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;text-transform:capitalize}.day-head span{font-size:12px;color:#6b7280}.shift-card{display:flex;flex-direction:column;gap:3px;padding:10px;margin:8px 0;border-radius:10px;text-decoration:none;color:#111827;background:#fff;border:1px solid #e5e7eb}.shift-card span{font-weight:700}.shift-card small{color:#6b7280}.shift-card em{font-style:normal;font-size:11px;margin-top:5px}.shift-card.understaffed{border-left:4px solid #f59e0b}.shift-card.staffed{border-left:4px solid #22c55e}.add-shift{display:block;text-align:center;padding:8px;text-decoration:none;color:#3155d9;font-size:13px}.schedule-editor{margin-top:18px}.assignment-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f5}.assignment-row small{display:block;margin-top:3px}.warn{color:#a16207}@media(max-width:1100px){.week-grid{grid-template-columns:repeat(7,170px)}}
/* Sprint 4 Autonomous Planner */
.planner-hero{display:grid;grid-template-columns:1.5fr .5fr;gap:28px;padding:30px;border-radius:22px;background:linear-gradient(135deg,#eef2ff,#f8fbff);border:1px solid #dfe7ff;margin-bottom:22px}.planner-hero h2{font-size:34px;margin:6px 0 10px}.planner-hero p{max-width:760px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.11em;color:#5967d8}.planner-score{display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff;border:1px solid #e3e7f3;border-radius:18px;min-height:150px}.planner-score strong{font-size:46px}.planner-score span{color:#6b7280}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.metric{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:18px}.metric span{display:block;color:#6b7280;font-size:13px}.metric strong{display:block;font-size:28px;margin-top:6px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.planner-table{overflow:auto}.planner-table table{width:100%;border-collapse:collapse}.planner-table th,.planner-table td{padding:13px 10px;border-bottom:1px solid #eef0f5;text-align:left;vertical-align:top}.planner-table td small,.planner-table td strong{display:block}.status-pill{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef2ff;font-size:12px}.success-pill{background:#ecfdf3;color:#087a55}.rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.rule-grid>div{padding:16px;border:1px solid #eceef4;border-radius:14px}.rule-grid p{margin-bottom:0}.empty-state{text-align:center;padding:38px}@media(max-width:900px){.planner-hero,.metric-grid,.rule-grid{grid-template-columns:1fr}.planner-score{min-height:110px}}
/* Sprint 5 Employee Self Service */
.portal-access-form{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) auto auto;gap:7px;align-items:center}.portal-access-form input{min-width:0;padding:9px 10px;border:1px solid #d0d5dd;border-radius:9px}.portal-access-form button{border:0;border-radius:9px;padding:9px 11px;background:#3157f6;color:#fff;font-weight:750;cursor:pointer}.portal-access-form .btn-danger-small{background:#fee4e2;color:#b42318}@media(max-width:850px){.portal-access-form{grid-template-columns:1fr}}

/* Sprint 6 Time & Attendance */
.small-action{border:0;background:#eef2ff;color:#3157f6;padding:8px 10px;border-radius:9px;font-weight:750;cursor:pointer}
/* Sprint 7 Stripe SaaS Engine */
.billing-status{display:flex;justify-content:space-between;align-items:center;gap:24px}.billing-status h2{font-size:34px;margin:5px 0}.billing-status form{margin:0}.billing-status button,.plan-card button{border:0;border-radius:10px;padding:11px 15px;background:#3157f6;color:#fff;font-weight:750;cursor:pointer}.plan-card button:disabled{background:#d0d5dd;cursor:not-allowed}.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px}.plan-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:22px;box-shadow:0 8px 28px rgba(16,24,40,.04)}.plan-card.selected{border:2px solid #3157f6}.plan-card h2{margin:8px 0}.price{font-size:32px;font-weight:800;margin:15px 0}.price small{font-size:13px;font-weight:500;color:#667085;margin-left:4px}.plan-card form{margin-top:18px}.plan-card form button{width:100%}code{background:#f2f4f7;padding:2px 5px;border-radius:5px}@media(max-width:1050px){.plan-grid{grid-template-columns:1fr 1fr}}@media(max-width:650px){.plan-grid{grid-template-columns:1fr}.billing-status{align-items:flex-start;flex-direction:column}}
/* Sprint 9 Growth */
.growth-note{padding:14px;border-radius:12px;background:#eef2ff;color:#4146b9}
