/* Deployment is triggered from GitHub through the Plesk webhook. */
:root { --ink:#171d3a; --red:#e43647; --paper:#f6f4ef; --line:#d9d6cf; --muted:#676b7a; }
* { box-sizing:border-box; }
body { margin:0; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--ink); background:var(--paper); }
.login-page { min-height:100vh; display:grid; place-items:center; padding:28px; background:linear-gradient(130deg,#171d3a 0%,#171d3a 56%,#e43647 180%); }
.login-card { width:min(100%,620px); padding:64px; background:#fff; border-top:6px solid var(--red); box-shadow:0 24px 70px rgba(0,0,0,.2); }
.eyebrow { margin:0 0 18px; color:var(--red); font-size:.78rem; font-weight:750; letter-spacing:.12em; text-transform:uppercase; }
h1 { max-width:550px; margin:0 0 20px; font-size:clamp(2.35rem,7vw,4.8rem); line-height:.96; letter-spacing:-.06em; }
p { line-height:1.6; } .login-card > p:not(.eyebrow):not(.hint) { max-width:430px; color:var(--muted); }
.microsoft-button { display:flex; align-items:center; justify-content:center; gap:12px; width:max-content; margin-top:36px; padding:14px 20px; background:var(--ink); color:#fff; text-decoration:none; font-weight:700; }
.microsoft-button:hover { background:var(--red); } .microsoft-button span { color:#62c9f5; font-size:1.3rem; }.hint { margin-top:20px; color:var(--muted); font-size:.85rem; }
.dashboard { min-height:100vh; padding:34px clamp(24px,7vw,112px) 80px; }.dashboard-header { display:flex; align-items:flex-start; justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:20px; }.dashboard-header a { margin-left:18px; color:var(--red); font-size:.9rem; }.roadmap-intro { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:56px; align-items:end; padding:74px 0 42px; }.roadmap-intro h1 { max-width:650px; }.roadmap-intro > div > p:last-child { max-width:650px; color:var(--muted); font-size:1.1rem; }.now-card { padding:28px; color:#fff; background:var(--ink); border-top:5px solid var(--red); }.now-card h2 { margin:8px 0; font-size:1.4rem; }.now-card p:not(.status-label) { color:#d9ddeb; }.status-label { margin:0; color:#89d4ef; font-size:.76rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.status-pill { display:inline-block; margin-top:4px; padding:5px 10px; color:var(--ink); background:#89d4ef; font-size:.75rem; font-weight:800; text-transform:uppercase; }.next-step { padding:28px 32px; background:#fff; border:1px solid var(--line); border-left:6px solid var(--red); }.next-step .eyebrow { margin-bottom:8px; }.next-step div { display:flex; align-items:baseline; gap:18px; }.step-number { color:var(--red); font-size:1.2rem; font-weight:850; }.next-step h2 { margin:0; font-size:1.45rem; }.next-step p { flex:1; margin:0; color:var(--muted); }.next-month { color:var(--red); font-size:.82rem; font-weight:800; white-space:nowrap; }.roadmap { margin-top:76px; }.section-heading h2 { margin:0; font-size:2rem; letter-spacing:-.04em; }.phase-list { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; padding:0; margin:30px 0 0; list-style:none; background:var(--line); }.phase { min-height:350px; padding:24px; background:var(--paper); }.phase.next { background:#fff; box-shadow:inset 0 5px 0 var(--red); }.phase-top { display:flex; justify-content:space-between; gap:12px; color:var(--muted); font-size:.76rem; font-weight:760; text-transform:uppercase; letter-spacing:.04em; }.phase h3 { margin:58px 0 14px; font-size:1.42rem; line-height:1.06; letter-spacing:-.035em; }.phase p { color:var(--muted); font-size:.94rem; }.phase strong, .phase small { display:block; margin-top:20px; color:var(--red); font-size:.78rem; font-weight:800; }.roadmap-goal { display:flex; align-items:baseline; gap:16px; padding:20px 24px; color:#fff; background:var(--ink); }.roadmap-goal span { color:#89d4ef; font-size:.78rem; font-weight:800; text-transform:uppercase; }.roadmap-goal strong { font-size:1.1rem; }.roadmap-goal p { margin:0; color:#d9ddeb; font-size:.9rem; }
@media (max-width:820px) { .roadmap-intro { grid-template-columns:1fr; gap:26px; }.next-step div { align-items:flex-start; flex-wrap:wrap; }.next-step p { min-width:220px; }.phase-list { grid-template-columns:repeat(2,1fr); }.phase { min-height:290px; }.phase h3 { margin-top:34px; } }
@media (max-width:620px) { .login-card { padding:36px 28px; }.dashboard-header { gap:20px; }.dashboard-header div { text-align:right; }.dashboard-header a { display:block; margin:6px 0 0; }.roadmap-intro { padding-top:50px; }.next-step { padding:24px; }.next-step div { display:block; }.next-step h2 { margin:10px 0; }.next-month { display:block; margin-top:14px; }.phase-list { grid-template-columns:1fr; }.roadmap-goal { display:block; }.roadmap-goal strong, .roadmap-goal p { display:block; margin-top:7px; } }

/* Audit Matrix & Capacity Styles */
.audit-section { margin-top:72px; }
.audit-table-wrap { overflow-x:auto; margin-top:24px; background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:0 8px 30px rgba(23,29,58,.05); }
.audit-table { width:100%; border-collapse:collapse; text-align:left; font-size:.9rem; }
.audit-table th { background:#171d3a; color:#fff; padding:16px 20px; font-size:.76rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; border:none; }
.audit-table th:first-child { border-top-left-radius:7px; }
.audit-table th:last-child { border-top-right-radius:7px; }
.audit-table td { padding:16px 20px; border-bottom:1px solid var(--line); color:var(--ink); vertical-align:middle; }
.audit-table tr:last-child td { border-bottom:none; }
.audit-table tr:hover td { background:#faf8f5; }
.badge { display:inline-flex; align-items:center; gap:5px; padding:5px 10px; font-size:.72rem; font-weight:750; border-radius:4px; text-transform:uppercase; letter-spacing:.04em; }
.badge-working { background:#fff8e6; color:#975a16; border:1px solid #f6e05e; }
.badge-planned { background:#edf2f7; color:#4a5568; border:1px solid #e2e8f0; }
.badge-ok { background:#e6fffa; color:#234e52; border:1px solid #81e6d9; }
.badge-warn { background:#fff5f5; color:#9b2c2c; border:1px solid #feb2b2; }
.badge-dot { width:6px; height:6px; border-radius:50%; display:inline-block; }
.badge-working .badge-dot { background:#d69e2e; }
.badge-planned .badge-dot { background:#718096; }
.badge-ok .badge-dot { background:#319795; }
.badge-warn .badge-dot { background:#e53e3e; }
.capacity-card { margin-top:28px; padding:28px 32px; background:#fff; border:1px solid var(--line); border-left:5px solid var(--ink); border-radius:8px; box-shadow:0 4px 20px rgba(23,29,58,.04); }
.capacity-card h3 { margin:0 0 8px; font-size:1.2rem; color:var(--ink); font-weight:750; }
.capacity-card p { margin:0; color:var(--muted); line-height:1.65; font-size:.95rem; }
.capacity-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:26px; }
.capacity-item { background:#fff; padding:24px; border:1px solid var(--line); border-radius:8px; box-shadow:0 4px 16px rgba(23,29,58,.03); transition:transform .15s ease; }
.capacity-item:hover { transform:translateY(-2px); }
.capacity-item .eyebrow { margin-bottom:6px; }
.capacity-item h4 { margin:0 0 6px; font-size:1.15rem; color:var(--ink); font-weight:750; }
.capacity-item .hours { display:block; font-size:1.75rem; font-weight:850; color:var(--red); margin:8px 0; }
.capacity-item p { margin:0; font-size:.85rem; color:var(--muted); line-height:1.55; }
@media (max-width:960px) { .capacity-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px) { .capacity-grid { grid-template-columns:1fr; } }


