:root {
  --navy-950: #03162f;
  --navy-900: #061f45;
  --navy-800: #082b5c;
  --blue-700: #0758d9;
  --blue-600: #0b69f0;
  --blue-100: #eaf2ff;
  --green-700: #07883c;
  --green-100: #eaf8ef;
  --amber-600: #f0a000;
  --amber-100: #fff6dd;
  --red-600: #e62f3e;
  --red-100: #fff0f1;
  --violet-600: #7440d3;
  --violet-100: #f2edff;
  --teal-600: #0b9aad;
  --teal-100: #e8f9fb;
  --ink: #152135;
  --muted: #667388;
  --line: #e2e8f0;
  --surface: #f4f7fb;
  --white: #fff;
  --yellow: #ffc400;
  --sidebar: 226px;
  --radius: 14px;
  --shadow: 0 6px 22px rgba(16, 39, 74, .06);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { min-width: 320px; scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--surface); font: 14px/1.5 "Inter", "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, select { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { color: #111c2e; font-family: "Manrope", "Inter", sans-serif; letter-spacing: -.025em; }

.skip-link { position: fixed; top: 8px; left: 8px; z-index: 1000; padding: 10px 14px; color: white; background: var(--navy-900); transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.app-shell { min-height: 100vh; }

.auth-screen { display: grid; min-height: 100vh; grid-template-columns: minmax(360px, .9fr) minmax(480px, 1.1fr); background: white; }
.auth-screen__brand { position: relative; display: flex; min-height: 100vh; flex-direction: column; justify-content: center; padding: 46px clamp(38px, 6vw, 100px); color: white; overflow: hidden; background: radial-gradient(circle at 12% 15%, rgba(17,91,190,.52), transparent 35%), linear-gradient(150deg, var(--navy-800), var(--navy-950)); }
.auth-screen__brand::after { position: absolute; right: -120px; bottom: -170px; width: 420px; height: 420px; content: ""; border: 70px solid rgba(255,196,0,.08); border-radius: 50%; }
.auth-screen__brand img { position: relative; z-index: 1; width: 205px; height: 96px; margin: 0 0 clamp(28px, 4vh, 44px); flex: 0 0 auto; object-fit: cover; object-position: center; }
.auth-screen__brand > div, .auth-screen__brand ul, .auth-screen__brand > small { position: relative; z-index: 1; }
.auth-screen__brand span { color: var(--yellow); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.auth-screen__brand h1 { max-width: 660px; margin: 13px 0 19px; color: white; font-size: clamp(2.25rem, 4.2vw, 4.2rem); line-height: 1.04; }
.auth-screen__brand p { max-width: 540px; color: rgba(255,255,255,.68); font-size: .92rem; }
.auth-screen__brand ul { display: grid; gap: 11px; margin: 34px 0 0; padding: 0; list-style: none; color: rgba(255,255,255,.82); font-size: .72rem; }
.auth-screen__brand li::before { display: inline-grid; width: 20px; height: 20px; margin-right: 9px; place-items: center; color: var(--navy-950); content: "✓"; background: var(--yellow); border-radius: 6px; font-size: .6rem; font-weight: 900; }
.auth-screen__brand > small { position: relative; z-index: 1; margin-top: clamp(28px, 4vh, 42px); color: rgba(255,255,255,.35); font-size: .6rem; }
.auth-screen__panel { display: grid; min-height: 100vh; place-items: center; padding: 40px; background: linear-gradient(160deg, #f8fbff, #eef3f9); }
.login-card { width: min(100%, 440px); padding: 38px; background: white; border: 1px solid var(--line); border-radius: 20px; box-shadow: 0 30px 90px rgba(6,31,69,.13); }
.login-card__head { margin-bottom: 26px; }
.login-card__head span { color: var(--blue-700); font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.login-card__head h2 { margin: 6px 0 6px; font-size: 1.8rem; }
.login-card__head p { margin: 0; color: var(--muted); font-size: .7rem; }
.login-card .field { margin-bottom: 14px; font-size: .66rem; }
.login-card .field input { min-height: 47px; background: white; }
.login-button { width: 100%; min-height: 48px; margin-top: 4px; }
.login-help { display: block; margin: 13px auto 0; padding: 0; color: var(--blue-700); background: none; border: 0; font-size: .62rem; font-weight: 700; cursor: pointer; }
.login-error { min-height: 18px; margin: -3px 0 8px; color: var(--red-600); font-size: .61rem; font-weight: 700; }
.demo-accounts { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.demo-accounts > span { grid-column: 1 / -1; color: var(--muted); font-size: .56rem; font-weight: 800; text-align: center; text-transform: uppercase; letter-spacing: .06em; }
.demo-accounts button { min-height: 37px; padding: 5px; color: var(--navy-800); background: var(--surface); border: 1px solid var(--line); border-radius: 8px; font-size: .56rem; font-weight: 800; cursor: pointer; }
.demo-accounts button:hover { color: var(--blue-700); border-color: #b8ccec; }
.security-note { margin: 17px 0 0; color: #8792a3; font-size: .53rem; text-align: center; }

.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 100; display: flex; width: var(--sidebar); flex-direction: column; padding: 18px 14px 16px; color: white; overflow-y: auto; background: linear-gradient(180deg, var(--navy-950), var(--navy-900)); box-shadow: 8px 0 28px rgba(2, 18, 41, .12); }
.sidebar__head { display: flex; align-items: center; justify-content: space-between; min-height: 70px; padding: 0 6px; }
.portal-brand { display: block; width: 172px; }
.portal-brand img { width: 100%; height: 68px; object-fit: cover; object-position: center; }
.sidebar-close { display: none !important; color: white !important; }
.portal-nav { display: grid; gap: 3px; margin-top: 10px; }
.nav-link { display: flex; align-items: center; gap: 12px; min-height: 42px; padding: 0 13px; color: rgba(255,255,255,.78); border-radius: 9px; font-size: .82rem; font-weight: 600; transition: background .2s ease, color .2s ease, transform .2s ease; }
.nav-link:hover { color: white; background: rgba(255,255,255,.07); transform: translateX(2px); }
.nav-link.is-active { color: white; background: linear-gradient(100deg, var(--blue-700), var(--blue-600)); box-shadow: 0 8px 24px rgba(11,105,240,.24); }
.nav-link svg { width: 18px; height: 18px; flex: 0 0 18px; }
.nav-group { display: block; margin: 14px 13px 4px; color: rgba(255,255,255,.45); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.nav-group:first-child { margin-top: 4px; }
.sidebar-promise { margin: auto 3px 0; padding: 18px 16px; border: 1px solid rgba(255,255,255,.22); border-radius: 12px; background: rgba(255,255,255,.025); }
.sidebar-promise__icon { display: grid; width: 32px; height: 32px; margin-bottom: 10px; place-items: center; color: var(--navy-950); background: var(--yellow); border-radius: 10px; font-weight: 900; }
.sidebar-promise strong { font-size: .83rem; line-height: 1.5; }
.sidebar-promise p { margin: 9px 0 0; color: rgba(255,255,255,.55); font-size: .68rem; }
.sidebar-version { margin: 12px 6px 0; color: rgba(255,255,255,.34); font-size: .6rem; }
.sidebar-backdrop { display: none; }

.main-panel { min-height: 100vh; margin-left: var(--sidebar); }
.topbar { position: sticky; top: 0; z-index: 70; display: flex; min-height: 82px; align-items: center; justify-content: space-between; gap: 24px; padding: 12px 26px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(16px); }
.topbar__title { display: flex; align-items: center; gap: 12px; min-width: 240px; }
.topbar h1 { margin: 0 0 3px; font-size: clamp(1.35rem, 2vw, 1.78rem); }
.topbar p { margin: 0; color: var(--muted); font-size: .73rem; }
.topbar__actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.icon-button { display: grid; width: 38px; height: 38px; padding: 0; place-items: center; background: transparent; border: 0; border-radius: 9px; cursor: pointer; }
.icon-button:hover { background: var(--surface); }
.menu-button { display: none; }
.project-select { display: grid; min-width: 180px; gap: 1px; }
.project-select span { color: var(--muted); font-size: .56rem; font-weight: 700; text-transform: uppercase; }
.project-select__row { display: flex; align-items: stretch; gap: 5px; }
.project-select select { min-width: 160px; min-height: 39px; padding: 0 28px 0 10px; background: white; border: 1px solid var(--line); border-radius: 9px; font-size: .7rem; font-weight: 700; outline: none; }
.project-select__row button { width: 39px; color: white; background: var(--blue-700); border: 0; border-radius: 9px; font-size: 1rem; font-weight: 800; cursor: pointer; }
.date-button { min-height: 46px; padding: 0 13px; white-space: nowrap; background: white; border: 1px solid var(--line); border-radius: 10px; font-size: .7rem; font-weight: 700; cursor: pointer; }
.notification-button { position: relative; font-size: 1.2rem; }
.notification-button > span { position: absolute; top: 1px; right: 1px; display: grid; width: 16px; height: 16px; place-items: center; color: white; background: var(--red-600); border: 2px solid white; border-radius: 50%; font-size: .5rem; font-weight: 800; }
.profile-button { display: flex; align-items: center; gap: 9px; padding: 4px 2px 4px 4px; background: transparent; border: 0; cursor: pointer; text-align: left; }
.profile-button > span:nth-child(2) { display: grid; }
.profile-button strong { font-size: .7rem; }
.profile-button small { color: var(--muted); font-size: .58rem; }
.signout-button { color: var(--muted); font-size: 1rem; }
.avatar { display: grid; width: 38px; height: 38px; place-items: center; color: white; background: linear-gradient(145deg, var(--blue-700), var(--navy-800)); border-radius: 50%; font-size: .7rem; font-weight: 800; }

.workspace { padding: 20px 22px 50px; outline: none; }
.view-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.view-head__note { display: inline-flex; align-items: center; gap: 7px; margin: 0; color: var(--muted); font-size: .68rem; }
.demo-badge { display: inline-flex; align-items: center; min-height: 28px; padding: 0 9px; color: var(--blue-700); background: var(--blue-100); border-radius: 999px; font-size: .6rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.page-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.button { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; gap: 7px; padding: 0 14px; color: white; background: var(--blue-700); border: 1px solid var(--blue-700); border-radius: 9px; font-size: .69rem; font-weight: 800; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.button:hover { box-shadow: 0 8px 20px rgba(7,88,217,.2); transform: translateY(-1px); }
.button--ghost { color: var(--blue-700); background: white; border-color: #bed3f8; }
.button--soft { color: var(--blue-700); background: var(--blue-100); border-color: transparent; }
.button--danger { color: var(--red-600); background: var(--red-100); border-color: transparent; }

.grid { display: grid; gap: 14px; }
.grid--metrics { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.grid--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.grid--dashboard-main { grid-template-columns: 1.45fr .85fr; }
.grid--wide-left { grid-template-columns: 1.45fr .75fr; }
.grid--wide-right { grid-template-columns: .8fr 1.35fr; }
.span-2 { grid-column: span 2; }
.span-3 { grid-column: span 3; }
.mt { margin-top: 14px; }

.card { min-width: 0; padding: 16px; background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.card--flat { box-shadow: none; }
.card--blue { background: linear-gradient(145deg, #f8fbff, #eef5ff); border-color: #d8e6fb; }
.card--warning { background: #fffaf0; border-color: #f5dfac; }
.card--danger { background: #fff5f5; border-color: #f4d4d8; }
.card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.card__head h2, .card__head h3 { margin: 0; font-size: .86rem; }
.card__head p { margin: 3px 0 0; color: var(--muted); font-size: .62rem; }
.card-link { padding: 0; color: var(--blue-700); background: none; border: 0; font-size: .62rem; font-weight: 800; cursor: pointer; }
.card-link:hover { text-decoration: underline; }

.metric-card { position: relative; min-height: 122px; overflow: hidden; }
.metric-card__top { display: flex; align-items: flex-start; gap: 10px; }
.metric-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; color: white; border-radius: 11px; font-size: 1.05rem; font-weight: 800; }
.metric-icon svg { width: 19px; height: 19px; }
.tone-blue .metric-icon { background: var(--blue-700); }
.tone-green .metric-icon { background: var(--green-700); }
.tone-amber .metric-icon { background: var(--amber-600); }
.tone-red .metric-icon { background: var(--red-600); }
.tone-violet .metric-icon { background: var(--violet-600); }
.tone-teal .metric-icon { background: var(--teal-600); }
.metric-copy { min-width: 0; }
.metric-copy small { display: block; margin-bottom: 3px; color: #47566d; font-size: .6rem; font-weight: 700; }
.metric-copy strong { display: block; color: #111827; font-size: clamp(1.14rem, 2vw, 1.45rem); line-height: 1.15; letter-spacing: -.04em; white-space: nowrap; }
.metric-card > p { margin: 10px 0 0 48px; color: var(--muted); font-size: .59rem; }
.mini-progress { height: 5px; margin: 12px 0 0 48px; overflow: hidden; background: #e8edf4; border-radius: 99px; }
.mini-progress span { display: block; height: 100%; background: var(--blue-700); border-radius: inherit; }
.tone-green .mini-progress span { background: var(--green-700); }
.tone-amber .mini-progress span { background: var(--amber-600); }
.tone-red .mini-progress span { background: var(--red-600); }
.tone-violet .mini-progress span { background: var(--violet-600); }
.tone-teal .mini-progress span { background: var(--teal-600); }

.project-card { display: grid; grid-template-columns: 190px 1fr; gap: 18px; min-height: 190px; }
.project-card__photo { min-height: 156px; overflow: hidden; background: #dce4ed; border-radius: 11px; }
.project-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.project-card h2 { margin-bottom: 7px; font-size: 1.1rem; }
.project-card p { margin-bottom: 5px; color: var(--muted); font-size: .68rem; }
.project-list-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.project-list-card { position: relative; overflow: hidden; }
.project-list-card::before { position: absolute; inset: 0 auto 0 0; width: 4px; content: ""; background: var(--blue-700); }
.project-list-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.project-list-card h2 { margin: 11px 0 5px; font-size: 1rem; }
.project-list-card p { margin-bottom: 5px; color: var(--muted); font-size: .62rem; }
.project-list-card__meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 18px 0; }
.project-list-card__meta div { padding: 9px; background: #f7f9fc; border-radius: 8px; }
.project-list-card__meta small { display: block; color: var(--muted); font-size: .51rem; }
.project-list-card__meta strong { font-size: .68rem; }
.role-notice { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 15px; color: var(--navy-800); background: #eef5ff; border: 1px solid #d7e6fb; border-radius: 10px; font-size: .62rem; }
.role-notice strong { color: var(--blue-700); }
.status-pill { display: inline-flex; min-height: 22px; align-items: center; padding: 0 8px; border-radius: 999px; font-size: .55rem; font-weight: 800; }
.status-green { color: var(--green-700); background: var(--green-100); }
.status-blue { color: var(--blue-700); background: var(--blue-100); }
.status-amber { color: #a66a00; background: var(--amber-100); }
.status-red { color: var(--red-600); background: var(--red-100); }
.status-gray { color: #657084; background: #edf1f5; }

.stage-stepper { display: flex; align-items: flex-start; justify-content: space-between; gap: 0; padding: 8px 4px 2px; }
.stage-step { position: relative; display: grid; width: 16.66%; justify-items: center; text-align: center; }
.stage-step:not(:last-child)::after { position: absolute; top: 18px; left: 58%; z-index: 0; width: 84%; height: 2px; content: ""; background: #d8dee8; }
.stage-step.is-done:not(:last-child)::after { background: var(--green-700); }
.stage-step__dot { position: relative; z-index: 1; display: grid; width: 36px; height: 36px; place-items: center; color: #7b879a; background: white; border: 2px solid #cdd5e1; border-radius: 50%; font-weight: 900; }
.stage-step.is-done .stage-step__dot { color: white; background: var(--green-700); border-color: var(--green-700); }
.stage-step.is-current .stage-step__dot { color: var(--blue-700); background: var(--blue-100); border-color: var(--blue-700); }
.stage-step strong { margin-top: 8px; font-size: .64rem; }
.stage-step small { margin-top: 2px; color: var(--muted); font-size: .54rem; }
.stage-step.is-done small { color: var(--green-700); }
.stage-step.is-current small { color: var(--blue-700); font-weight: 700; }

.live-update { display: grid; grid-template-columns: 1fr 220px; gap: 16px; align-items: stretch; }
.live-update__list { display: grid; gap: 10px; }
.live-update__item { display: grid; grid-template-columns: 28px 1fr; gap: 8px; align-items: center; }
.live-update__item span { display: grid; width: 28px; height: 28px; place-items: center; color: var(--blue-700); background: var(--blue-100); border-radius: 9px; font-size: .72rem; }
.live-update__item strong { display: block; font-size: .65rem; }
.live-update__item small { color: var(--muted); font-size: .57rem; }
.live-update img { width: 100%; height: 150px; object-fit: cover; border-radius: 11px; }

.table-wrap { width: 100%; overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: .62rem; }
.data-table th { padding: 8px 9px; color: #5b687c; background: #f8fafc; border-bottom: 1px solid var(--line); font-weight: 700; text-align: left; white-space: nowrap; }
.data-table td { padding: 9px; border-bottom: 1px solid #edf1f5; white-space: nowrap; }
.data-table tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: #fbfcfe; }
.data-table strong { color: #233049; }
.bar-cell { display: flex; min-width: 100px; align-items: center; gap: 8px; }
.bar-cell__track { width: 72px; height: 5px; overflow: hidden; background: #e6ebf2; border-radius: 99px; }
.bar-cell__track span { display: block; height: 100%; background: var(--blue-700); border-radius: inherit; }

.donut-wrap { display: flex; align-items: center; justify-content: center; gap: 24px; min-height: 180px; }
.donut { --value: 38; --color: var(--blue-700); position: relative; display: grid; width: 132px; height: 132px; flex: 0 0 132px; place-items: center; background: conic-gradient(var(--color) calc(var(--value) * 1%), #e7ecf3 0); border-radius: 50%; }
.donut::before { position: absolute; inset: 21px; content: ""; background: white; border-radius: 50%; }
.donut__copy { position: relative; z-index: 1; text-align: center; }
.donut__copy strong { display: block; font-size: 1.35rem; line-height: 1.1; }
.donut__copy small { color: var(--muted); font-size: .55rem; }
.legend { display: grid; gap: 9px; min-width: 150px; }
.legend__item { display: grid; grid-template-columns: 9px 1fr auto; gap: 7px; align-items: center; color: #48566b; font-size: .6rem; }
.legend__dot { width: 9px; height: 9px; background: var(--blue-700); border-radius: 50%; }

.chart { position: relative; min-height: 210px; overflow: hidden; }
.chart svg { width: 100%; height: 210px; overflow: visible; }
.chart-grid line { stroke: #e8edf3; stroke-width: 1; }
.chart-label { fill: #718096; font-size: 9px; }
.chart-line-blue { fill: none; stroke: var(--blue-700); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.chart-line-green { fill: none; stroke: var(--green-700); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.chart-line-amber { fill: none; stroke: var(--amber-600); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.bar-chart { display: flex; min-height: 210px; align-items: flex-end; justify-content: space-around; gap: 11px; padding: 20px 10px 28px; border-bottom: 1px solid var(--line); background-image: linear-gradient(to top, transparent 24%, #eef2f6 25%, transparent 26%, transparent 49%, #eef2f6 50%, transparent 51%, transparent 74%, #eef2f6 75%, transparent 76%); }
.bar-group { position: relative; display: flex; height: 175px; flex: 1; align-items: flex-end; justify-content: center; gap: 4px; }
.bar-group span { width: min(18px, 35%); background: var(--blue-700); border-radius: 4px 4px 0 0; }
.bar-group span:nth-child(2) { background: var(--green-700); }
.bar-group span:nth-child(3) { background: var(--amber-600); }
.bar-group small { position: absolute; bottom: -22px; left: 50%; color: var(--muted); font-size: .52rem; transform: translateX(-50%); white-space: nowrap; }

.gantt { min-width: 760px; }
.gantt__head, .gantt__row { display: grid; grid-template-columns: 190px 68px repeat(8, minmax(54px, 1fr)); align-items: center; }
.gantt__head { min-height: 36px; color: var(--muted); background: #f8fafc; border-bottom: 1px solid var(--line); font-size: .55rem; font-weight: 700; }
.gantt__head span, .gantt__row > span { padding: 0 8px; }
.gantt__row { position: relative; min-height: 41px; border-bottom: 1px solid #edf1f5; font-size: .58rem; }
.gantt__row > strong { padding: 0 8px; font-size: .61rem; }
.gantt__track { position: relative; grid-column: 3 / 11; height: 12px; margin: 0 8px; background: repeating-linear-gradient(to right, transparent, transparent calc(12.5% - 1px), #edf1f5 calc(12.5% - 1px), #edf1f5 12.5%); }
.gantt__bar { position: absolute; top: 1px; left: calc(var(--start) * 12.5%); width: calc(var(--span) * 12.5%); height: 10px; background: var(--blue-700); border-radius: 3px; }
.gantt__bar.green { background: var(--green-700); }
.gantt__bar.amber { background: var(--amber-600); }
.gantt__bar.red { background: var(--red-600); }

.list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.list-item { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; min-height: 54px; padding: 8px 0; border-bottom: 1px solid #edf1f5; }
.list-item:last-child { border-bottom: 0; }
.list-icon { display: grid; width: 32px; height: 32px; place-items: center; color: var(--blue-700); background: var(--blue-100); border-radius: 9px; font-size: .72rem; font-weight: 800; }
.list-item strong { display: block; font-size: .64rem; }
.list-item small { color: var(--muted); font-size: .55rem; }
.list-item time { color: var(--muted); font-size: .56rem; }

.alert-list { display: grid; gap: 8px; }
.alert { display: grid; grid-template-columns: 28px 1fr auto; gap: 9px; align-items: center; padding: 10px; background: #f9fbfd; border: 1px solid #edf1f5; border-radius: 9px; }
.alert > span:first-child { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; font-size: .7rem; font-weight: 900; }
.alert strong { display: block; font-size: .62rem; }
.alert small { color: var(--muted); font-size: .55rem; }
.alert em { font-size: .55rem; font-style: normal; font-weight: 800; }
.alert--red > span:first-child { color: var(--red-600); background: var(--red-100); }
.alert--red em { color: var(--red-600); }
.alert--amber > span:first-child { color: #a86b00; background: var(--amber-100); }
.alert--amber em { color: #a86b00; }
.alert--blue > span:first-child { color: var(--blue-700); background: var(--blue-100); }
.alert--blue em { color: var(--blue-700); }

.photo-tabs { display: flex; gap: 6px; margin-bottom: 12px; overflow-x: auto; }
.tab-button { min-height: 33px; padding: 0 11px; white-space: nowrap; color: #5b687c; background: #f1f4f8; border: 0; border-radius: 8px; font-size: .58rem; font-weight: 700; cursor: pointer; }
.tab-button.is-active { color: white; background: var(--blue-700); }
.photo-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.photo-card { overflow: hidden; background: white; border: 1px solid var(--line); border-radius: 11px; }
.photo-card img { width: 100%; aspect-ratio: 1.55; object-fit: cover; background: #dde5ee; }
.photo-card__copy { padding: 9px 10px; }
.photo-card strong { display: block; font-size: .61rem; }
.photo-card small { color: var(--muted); font-size: .53rem; }
.upload-zone { display: grid; min-height: 150px; padding: 18px; place-items: center; color: var(--blue-700); background: #fbfdff; border: 2px dashed #b8ccec; border-radius: 11px; text-align: center; cursor: pointer; }
.upload-zone input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.upload-zone strong { display: block; margin-top: 5px; font-size: .68rem; }
.upload-zone small { color: var(--muted); font-size: .55rem; }

.summary-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.summary-box { padding: 12px; background: #f7f9fc; border: 1px solid var(--line); border-radius: 9px; }
.summary-box small { color: var(--muted); font-size: .54rem; }
.summary-box strong { display: block; margin-top: 3px; font-size: .82rem; }

.dpr-page { background: white; }
.dpr-meta { display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; margin-bottom: 14px; }
.dpr-meta > div { padding: 10px; background: #f8fafc; border: 1px solid var(--line); border-radius: 8px; }
.dpr-meta small { display: block; color: var(--muted); font-size: .5rem; }
.dpr-meta strong { font-size: .59rem; }
.dpr-section h3 { display: flex; align-items: center; gap: 7px; margin-bottom: 11px; color: var(--navy-800); font-size: .73rem; text-transform: uppercase; }
.dpr-section h3 span { display: grid; width: 22px; height: 22px; place-items: center; color: white; background: var(--navy-800); border-radius: 5px; font-size: .58rem; }
.bullet-list { margin: 0; padding-left: 17px; color: #3f4d63; font-size: .61rem; }
.bullet-list li { margin-bottom: 7px; }
.signature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.signature-box { min-height: 105px; padding: 14px; border: 1px solid var(--line); border-radius: 9px; }
.signature-line { margin-top: 46px; border-top: 1px solid #aab4c3; }

.settings-grid { display: grid; grid-template-columns: .8fr 1fr 1.4fr; gap: 14px; align-items: start; }
.form-grid { display: grid; gap: 12px; }
.field { display: grid; gap: 5px; color: #46546a; font-size: .58rem; font-weight: 700; }
.field input, .field select, .field textarea { width: 100%; min-height: 39px; padding: 9px 11px; background: #f9fbfd; border: 1px solid var(--line); border-radius: 8px; outline: none; }
.field textarea { min-height: 90px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--blue-700); box-shadow: 0 0 0 3px rgba(7,88,217,.1); }
.toggle-list { display: grid; }
.toggle-row { display: grid; grid-template-columns: 1fr 38px; gap: 12px; align-items: center; min-height: 48px; border-bottom: 1px solid #edf1f5; }
.toggle-row:last-child { border-bottom: 0; }
.toggle-row strong { display: block; font-size: .62rem; }
.toggle-row small { color: var(--muted); font-size: .54rem; }
.switch { position: relative; width: 36px; height: 20px; padding: 0; background: #b7c0ce; border: 0; border-radius: 99px; cursor: pointer; }
.switch::after { position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; content: ""; background: white; border-radius: 50%; transition: transform .2s ease; }
.switch.is-on { background: var(--blue-700); }
.switch.is-on::after { transform: translateX(16px); }

.modal { width: min(560px, calc(100% - 28px)); padding: 0; background: transparent; border: 0; }
.modal::backdrop { background: rgba(2,16,35,.64); backdrop-filter: blur(5px); }
.modal__card { padding: 0; overflow: hidden; background: white; border: 0; border-radius: 15px; box-shadow: 0 26px 90px rgba(0,0,0,.28); }
.modal__head { display: flex; align-items: flex-start; justify-content: space-between; padding: 20px 22px; border-bottom: 1px solid var(--line); }
.modal__head small { color: var(--blue-700); font-size: .54rem; font-weight: 800; text-transform: uppercase; }
.modal__head h2 { margin: 3px 0 0; font-size: 1.15rem; }
#modal-fields { display: grid; gap: 12px; padding: 20px 22px; }
.modal__actions { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 22px 20px; }
.toast { position: fixed; right: 22px; bottom: 22px; z-index: 300; max-width: 330px; padding: 12px 15px; color: white; background: var(--navy-900); border-left: 4px solid var(--yellow); border-radius: 9px; box-shadow: 0 16px 46px rgba(3,22,47,.24); font-size: .68rem; font-weight: 700; opacity: 0; pointer-events: none; transform: translateY(12px); transition: opacity .2s ease, transform .2s ease; }
.toast.is-visible { opacity: 1; transform: none; }
.empty-state { display: grid; min-height: 260px; place-items: center; text-align: center; }
.empty-state span { display: grid; width: 54px; height: 54px; margin: 0 auto 12px; place-items: center; color: var(--blue-700); background: var(--blue-100); border-radius: 16px; font-size: 1.4rem; }
.empty-state h2 { margin-bottom: 6px; font-size: 1rem; }
.empty-state p { max-width: 390px; color: var(--muted); font-size: .65rem; }

@media (min-width: 821px) and (max-height: 760px) {
  .auth-screen__brand { padding-top: 30px; padding-bottom: 30px; }
  .auth-screen__brand img { width: 184px; height: 86px; margin-bottom: 24px; }
  .auth-screen__brand h1 { margin-top: 10px; margin-bottom: 14px; font-size: clamp(2rem, 3.7vw, 3.45rem); }
  .auth-screen__brand ul { gap: 8px; margin-top: 24px; }
  .auth-screen__brand > small { margin-top: 24px; }
}

@media (max-width: 1320px) {
  .grid--metrics { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .topbar__actions .project-select { display: none; }
  .photo-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .project-list-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 1050px) {
  .grid--dashboard-main, .grid--wide-left, .grid--wide-right { grid-template-columns: 1fr; }
  .grid--4 { grid-template-columns: repeat(2,1fr); }
  .settings-grid { grid-template-columns: 1fr 1fr; }
  .settings-grid > .span-2 { grid-column: 1 / -1; }
  .topbar__actions .date-button { display: none; }
}

@media (max-width: 820px) {
  .auth-screen { grid-template-columns: 1fr; }
  .auth-screen__brand { display: none; }
  .auth-screen__panel { padding: 22px; }
  :root { --sidebar: 258px; }
  .sidebar { transform: translateX(-105%); transition: transform .25s ease; }
  body.menu-open { overflow: hidden; }
  body.menu-open .sidebar { transform: translateX(0); }
  .sidebar-close { display: grid !important; }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 90; display: block; background: rgba(2,16,35,.58); opacity: 0; pointer-events: none; transition: opacity .25s ease; }
  body.menu-open .sidebar-backdrop { opacity: 1; pointer-events: auto; }
  .main-panel { margin-left: 0; }
  .menu-button { display: grid; }
  .topbar { min-height: 74px; padding: 10px 14px; }
  .topbar__actions .notification-button, .profile-button > span:nth-child(2), .profile-button > span:last-child { display: none; }
  .workspace { padding: 16px 14px 42px; }
  .grid--2, .grid--3 { grid-template-columns: 1fr; }
  .photo-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .dpr-meta { grid-template-columns: repeat(2,1fr); }
  .settings-grid { grid-template-columns: 1fr; }
  .settings-grid > .span-2 { grid-column: auto; }
}

@media (max-width: 560px) {
  .topbar h1 { font-size: 1.12rem; }
  .topbar p { display: none; }
  .profile-button { display: none; }
  .grid--metrics, .grid--4, .summary-row { grid-template-columns: 1fr 1fr; }
  .metric-card { min-height: 116px; padding: 13px; }
  .metric-icon { width: 34px; height: 34px; flex-basis: 34px; }
  .metric-copy strong { font-size: 1.08rem; }
  .metric-card > p, .mini-progress { margin-left: 44px; }
  .project-card { grid-template-columns: 1fr; }
  .project-card__photo { min-height: 190px; }
  .stage-stepper { min-width: 650px; }
  .stage-scroll { overflow-x: auto; }
  .live-update { grid-template-columns: 1fr; }
  .photo-grid { grid-template-columns: 1fr; }
  .photo-card img { aspect-ratio: 1.8; }
  .donut-wrap { align-items: flex-start; flex-direction: column; }
  .signature-grid { grid-template-columns: 1fr; }
  .dpr-meta { grid-template-columns: 1fr; }
  .view-head { align-items: flex-start; flex-direction: column; }
  .login-card { padding: 25px 20px; }
  .demo-accounts { grid-template-columns: 1fr; }
  .demo-accounts > span { grid-column: auto; }
  .project-list-grid { grid-template-columns: 1fr; }
}

@media print {
  body { background: white; }
  .sidebar, .topbar, .view-head, .toast, .modal, .no-print { display: none !important; }
  .main-panel { margin: 0; }
  .workspace { padding: 0; }
  .card { box-shadow: none; break-inside: avoid; }
  .dpr-page { border: 0; }
}

/* Phase 2 operational workspace */
.phase2-badge{background:#e9f9ef;color:#08783e;border-color:#bfe9cf}
.project-banner{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 22px;background:linear-gradient(115deg,#071f43,#0a3671);color:#fff;border:0}
.project-banner h2{font-size:1.35rem;margin:3px 0 5px}.project-banner p,.project-banner small{color:#cad8eb}
.project-banner__facts{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:22px}.project-banner__facts span{display:flex;flex-direction:column;gap:4px;padding-left:16px;border-left:1px solid rgba(255,255,255,.2)}
.project-code{font-size:.68rem;font-weight:800;letter-spacing:.06em;color:var(--blue-700);background:#edf4ff;padding:5px 8px;border-radius:6px}
.project-list-card__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.project-list-card__meta{grid-template-columns:repeat(3,1fr)}
.live-update{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.live-update>div{display:flex;align-items:center;gap:10px;padding:12px;background:var(--surface-soft);border-radius:10px}.live-update svg{width:21px;color:var(--blue-700)}.live-update span{display:flex;flex-direction:column}.live-update small{color:var(--muted);margin-bottom:2px}
.activity-feed{display:grid;gap:11px}.activity-feed>div{display:flex;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}.activity-feed>div:last-child{border-bottom:0}.activity-feed>div>span{width:28px;height:28px;padding:6px;border-radius:50%;background:#e9f9ef;color:var(--green-700)}.activity-feed svg{width:100%;height:100%}.activity-feed p{display:flex;flex-direction:column;gap:3px}.activity-feed small{color:var(--muted)}
.empty-state{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:26px;color:var(--muted);border:1px dashed var(--border);border-radius:12px;background:#fafcff}.empty-state>svg{width:34px;height:34px;color:#8da3bf;margin-bottom:9px}.empty-state h3{color:var(--ink);font-size:.95rem;margin:0 0 5px}.empty-state p{max-width:420px;margin:0 0 14px}
.row-action{border:0;background:#edf4ff;color:var(--blue-700);font:inherit;font-weight:700;font-size:.66rem;padding:5px 8px;border-radius:6px;cursor:pointer}.row-action:hover{background:#dbe9ff}.row-action--danger{background:#fff0f0;color:var(--red-600)}.row-action--danger:hover{background:#ffe0e0}
.upload-button{position:relative;overflow:hidden;cursor:pointer}.upload-button input,.file-link input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}
.phase2-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.phase2-photo-grid .photo-card{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm)}.phase2-photo-grid .photo-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#e8edf4}.phase2-photo-grid .photo-card>div{display:flex;flex-direction:column;gap:5px;padding:11px}.phase2-photo-grid .photo-card small{color:var(--muted)}.phase2-photo-grid .photo-card span{display:flex;gap:6px;margin-top:5px}
.dpr-layout{grid-template-columns:minmax(0,3fr) minmax(250px,1fr);align-items:start}.phase2-dpr{background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm);padding:22px}.phase2-dpr .dpr-title{display:flex;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:3px solid var(--navy)}.phase2-dpr .dpr-title h2{font-size:1.3rem;margin:3px 0}.phase2-dpr .dpr-title>div:last-child{text-align:right;display:flex;flex-direction:column}.phase2-dpr .dpr-title small{color:var(--muted)}.phase2-dpr .dpr-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:14px 0;border:1px solid var(--border);border-radius:9px;overflow:hidden}.phase2-dpr .dpr-facts span{padding:10px 12px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:3px}.phase2-dpr .dpr-facts span:last-child{border:0}.phase2-dpr .dpr-facts small{color:var(--muted)}.phase2-dpr .dpr-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.phase2-dpr .dpr-grid section{padding:13px;border:1px solid var(--border);border-radius:9px;min-height:100px}.phase2-dpr .dpr-grid h3{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--navy);margin:0 0 8px}.phase2-dpr .dpr-grid p{white-space:pre-line;line-height:1.6}.phase2-dpr .dpr-grid .span-2{grid-column:span 2}.phase2-dpr footer{display:flex;justify-content:space-between;gap:20px;margin-top:18px;padding-top:12px;border-top:1px solid var(--border);font-size:.66rem;color:var(--muted)}
.dpr-register{padding:14px;position:sticky;top:94px}.dpr-register__item{width:100%;border:1px solid var(--border);background:#fff;border-radius:9px;padding:10px;margin-top:8px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.dpr-register__item span{display:flex;flex-direction:column;gap:3px}.dpr-register__item small{color:var(--muted)}.dpr-register__item em{font-style:normal;color:var(--blue-700);font-weight:700}.dpr-register__item.is-active{border-color:var(--blue-700);background:#eef5ff}
.storage-status{display:flex;gap:12px;padding:14px;background:#eefaf2;border:1px solid #cbeed7;border-radius:10px;margin-bottom:12px}.storage-status>span{width:32px;height:32px;padding:7px;border-radius:50%;background:#fff;color:var(--green-700)}.storage-status svg{width:100%;height:100%}.storage-status p{color:var(--muted);margin:4px 0 0;line-height:1.5}.storage-status--cloud{background:#eef5ff;border-color:#cfdef5}.storage-status--cloud>span{color:var(--blue-700)}
.profile-summary{display:flex;align-items:center;gap:14px}.profile-summary .avatar{width:60px;height:60px;font-size:1rem}.profile-summary h2{margin:0 0 4px}.profile-summary p{color:var(--muted)}
.about-build{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:0}.about-build div{padding:11px;background:var(--surface-soft);border-radius:8px}.about-build dt{font-size:.64rem;color:var(--muted);margin-bottom:4px}.about-build dd{margin:0;font-weight:700}
.file-link{position:relative;cursor:pointer}.data-table td:last-child{white-space:nowrap}
.project-edit-button{margin-top:8px}.settings-warning{margin:14px 0 0;padding:10px 12px;border-radius:8px;background:#fff8e5;color:#805700;border:1px solid #f2dfa8;line-height:1.5}
.sidebar-version[data-cloud="online"]{color:#a9f2c5}.sidebar-version[data-cloud="offline"]{color:#ffd78a}
.control-alert{display:flex;align-items:center;gap:13px;padding:15px 18px;border-radius:12px;border:1px solid}.control-alert>span{width:36px;height:36px;padding:8px;border-radius:50%;background:#fff}.control-alert svg{width:100%;height:100%}.control-alert p{margin:3px 0 0;color:var(--muted)}.control-alert--warning{background:#fff7e6;border-color:#f1d69a;color:#8a5a00}.control-alert--good{background:#ecf9f1;border-color:#bfe7ce;color:var(--green-700)}
.control-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:-6px 0 10px}.control-import{position:relative;cursor:pointer}.control-import input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.control-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.control-kpis a{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft);color:var(--ink);text-decoration:none}.control-kpis a:hover{border-color:#a9c4ec;background:#eef5ff}.control-kpis strong{font-size:1.25rem;color:var(--blue-700)}.control-kpis span{font-size:.68rem;color:var(--muted)}.text-red{color:var(--red-600)!important}.text-amber{color:var(--amber-600)!important}

/* Phase 5 automated reports and analytics */
.phase5-badge{background:#efeaff;color:#6335bd;border-color:#d9c9f8}.phase5-report-tabs{display:flex;gap:8px;margin-bottom:14px;padding:6px;overflow-x:auto;background:#eef2f7;border:1px solid var(--border);border-radius:12px}.phase5-report-tab{min-height:38px;padding:0 14px;white-space:nowrap;color:#526077;background:transparent;border:0;border-radius:8px;font:inherit;font-size:.65rem;font-weight:800;cursor:pointer}.phase5-report-tab:hover{background:#fff}.phase5-report-tab.is-active{color:#fff;background:var(--blue-700);box-shadow:0 5px 14px rgba(7,88,217,.18)}
.phase5-report-shell{display:grid;gap:14px}.phase5-report-print{padding:22px;background:#fff;border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow-sm)}.phase5-report-header{display:grid;grid-template-columns:150px minmax(220px,1fr) 1.4fr;gap:18px;align-items:center;padding-bottom:17px;border-bottom:3px solid var(--navy-800)}.phase5-report-header img{width:145px;max-height:78px;object-fit:contain;background:#061f45;border-radius:6px}.phase5-report-header small{font-size:.52rem;color:var(--blue-700);font-weight:800}.phase5-report-header h2{margin:4px 0;font-size:1.2rem;color:var(--navy-800)}.phase5-report-header p{margin:0;color:var(--muted);font-size:.57rem}.phase5-report-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px}.phase5-report-meta span{display:flex;flex-direction:column;padding:7px 9px;background:#f7f9fc;border-radius:7px}.phase5-report-meta small{color:var(--muted)}.phase5-report-meta strong{margin-top:2px;font-size:.59rem}
.phase5-health-banner{display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:center;margin:16px 0;padding:15px;background:linear-gradient(120deg,#f7faff,#edf4ff);border:1px solid #d6e4f8;border-radius:12px}.phase5-health-score{display:grid;width:75px;height:75px;place-content:center;text-align:center;background:#fff;border:7px solid #9aa6b6;border-radius:50%}.phase5-health-score strong{font-size:1.35rem;line-height:1}.phase5-health-score span{font-size:.48rem;color:var(--muted)}.phase5-health-score--green{border-color:var(--green-700)}.phase5-health-score--amber{border-color:var(--amber-600)}.phase5-health-score--red{border-color:var(--red-600)}.phase5-health-banner h3{margin:3px 0;font-size:1rem}.phase5-health-banner p{margin:0;color:var(--muted);font-size:.59rem}.phase5-health-indices{display:flex;gap:8px}.phase5-health-indices span{min-width:72px;padding:8px;text-align:center;background:#fff;border:1px solid var(--border);border-radius:8px}.phase5-health-indices small{display:block;color:var(--muted);font-size:.5rem}.phase5-health-indices strong{font-size:.78rem}
.phase5-report-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:14px 0}.phase5-report-kpi{padding:11px;border-top:3px solid var(--blue-700);background:#f8fafc;border-radius:8px}.phase5-report-kpi--green{border-color:var(--green-700)}.phase5-report-kpi--amber{border-color:var(--amber-600)}.phase5-report-kpi--red{border-color:var(--red-600)}.phase5-report-kpi--violet{border-color:var(--violet-600)}.phase5-report-kpi--teal{border-color:var(--teal-600)}.phase5-report-kpi small,.phase5-report-kpi span{display:block;color:var(--muted);font-size:.5rem}.phase5-report-kpi strong{display:block;margin:4px 0;font-size:.86rem}.phase5-report-section{margin-top:13px;padding:13px;border:1px solid var(--border);border-radius:9px;break-inside:avoid}.phase5-report-section>h3{margin:0 0 10px;padding-bottom:7px;color:var(--navy-800);border-bottom:1px solid var(--border);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}.phase5-report-columns{display:grid;grid-template-columns:1.2fr .8fr;gap:13px}.phase5-report-columns>.phase5-report-section{height:100%}
.phase5-readiness{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0;padding:0;list-style:none}.phase5-readiness li{display:grid;grid-template-columns:22px 1fr;gap:0 7px;align-items:center;padding:7px;background:#f8fafc;border-radius:7px}.phase5-readiness li>span{grid-row:span 2;display:grid;width:22px;height:22px;place-content:center;border-radius:50%;font-weight:800}.phase5-readiness strong{font-size:.57rem}.phase5-readiness small{font-size:.48rem;color:var(--muted)}.phase5-readiness .is-ready>span{color:var(--green-700);background:#e6f7ed}.phase5-readiness .is-missing>span{color:var(--red-600);background:#fff0f0}.phase5-recommendations{margin:0;padding-left:19px;color:#3f4d63;font-size:.62rem;line-height:1.55}.phase5-recommendations li+li{margin-top:5px}.phase5-narrative{display:grid;gap:7px;margin:0}.phase5-narrative div{padding:8px;background:#f8fafc;border-radius:7px}.phase5-narrative dt{font-size:.52rem;color:var(--muted);font-weight:700}.phase5-narrative dd{margin:3px 0 0;white-space:pre-line;font-size:.59rem;line-height:1.45}.phase5-method-note{margin:13px 0 0;padding:9px 11px;color:#57657a;background:#f3f6fa;border-left:3px solid var(--blue-700);font-size:.54rem;line-height:1.5}.phase5-report-footer{display:flex;justify-content:space-between;gap:14px;margin-top:17px;padding-top:11px;color:var(--muted);border-top:1px solid var(--border);font-size:.54rem}.phase5-report-footer strong{color:var(--navy-800)}
.phase5-snapshots .card__head>span{font-size:.6rem;color:var(--muted)}.phase5-history-health{display:flex;min-width:85px;align-items:center;gap:7px}.phase5-history-health>span{height:6px;max-width:60px;flex:1;background:var(--green-700);border-radius:99px}.phase5-history-health strong{font-size:.6rem}.phase5-dashboard-health{display:grid;grid-template-columns:auto repeat(4,1fr) auto;gap:18px;align-items:center}.phase5-dashboard-health>.phase5-health-score{width:62px;height:62px;border-width:6px}.phase5-dashboard-health>span{display:flex;flex-direction:column;gap:3px;padding-left:13px;border-left:1px solid var(--border)}.phase5-dashboard-health small{color:var(--muted);font-size:.54rem}.phase5-dashboard-health>span>strong{font-size:.78rem}

/* Phase 6 final PC acceptance */
.phase6-badge{color:#00686f;background:#dff8fa;border-color:#ade8ec}.phase6-acceptance-print{display:grid;gap:14px}.phase6-release-banner{display:flex;align-items:center;gap:13px;padding:15px 18px;border:1px solid;border-radius:12px}.phase6-release-banner>span{width:38px;height:38px;flex:0 0 38px;padding:8px;background:#fff;border-radius:50%}.phase6-release-banner svg{width:100%;height:100%}.phase6-release-banner strong{font-size:.78rem}.phase6-release-banner p{margin:3px 0 0;color:var(--muted);font-size:.6rem}.phase6-release-banner .button{margin-left:auto}.phase6-release-banner--approved{color:var(--green-700);background:#eaf8ef;border-color:#bce6ca}.phase6-release-banner--ready{color:#00686f;background:#e9fbfc;border-color:#bce9ec}.phase6-release-banner--warning{color:#8a5a00;background:#fff7e6;border-color:#f0d497}.phase6-last-run{margin:-4px 0 10px;color:var(--muted);font-size:.56rem}.phase6-system-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.phase6-system-info div{min-width:0;padding:9px;background:#f7f9fc;border-radius:8px}.phase6-system-info dt{color:var(--muted);font-size:.52rem}.phase6-system-info dd{margin:4px 0 0;overflow-wrap:anywhere;font-size:.59rem;font-weight:700}.phase6-clear{display:flex;align-items:center;gap:12px;padding:18px;color:var(--green-700);background:#edf9f1;border-radius:10px}.phase6-clear>span{width:36px;height:36px;padding:8px;background:#fff;border-radius:50%}.phase6-clear svg{width:100%;height:100%}.phase6-clear p{margin:3px 0 0;color:var(--muted);font-size:.58rem}.phase6-manual-footer{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:12px;padding:10px 12px;color:#805700;background:#fff8e5;border:1px solid #f2dfa8;border-radius:8px;font-size:.57rem}.phase6-report-footer{display:flex;justify-content:space-between;gap:14px;padding:11px 13px;color:var(--muted);background:#f7f9fc;border:1px solid var(--border);border-radius:9px;font-size:.54rem}.phase6-report-footer strong{color:var(--navy-800)}.phase6-dashboard-readiness{display:grid;grid-template-columns:auto repeat(3,1fr) auto;gap:18px;align-items:center}.phase6-readiness-ring{--value:0;display:grid;width:66px;height:66px;place-content:center;background:conic-gradient(var(--teal-600) calc(var(--value)*1%),#e4ebf2 0);border-radius:50%;position:relative}.phase6-readiness-ring::before{position:absolute;inset:7px;content:"";background:#fff;border-radius:50%}.phase6-readiness-ring strong{position:relative;z-index:1;font-size:.75rem}.phase6-dashboard-readiness>span{display:flex;flex-direction:column;gap:3px;padding-left:13px;border-left:1px solid var(--border)}.phase6-dashboard-readiness small{color:var(--muted);font-size:.53rem}.phase6-dashboard-readiness>span>strong{font-size:.7rem}

@media (max-width:1100px){.phase2-photo-grid{grid-template-columns:repeat(3,1fr)}.project-banner{align-items:flex-start;flex-direction:column}.project-banner__facts{width:100%}.dpr-layout{grid-template-columns:1fr}.dpr-register{position:static}.project-list-card__meta{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.phase2-photo-grid{grid-template-columns:repeat(2,1fr)}.project-banner__facts{grid-template-columns:1fr}.project-banner__facts span{border-left:0;border-top:1px solid rgba(255,255,255,.2);padding:8px 0 0}.live-update{grid-template-columns:1fr}.phase2-dpr{padding:14px}.phase2-dpr .dpr-title{flex-direction:column}.phase2-dpr .dpr-title>div:last-child{text-align:left}.phase2-dpr .dpr-facts{grid-template-columns:repeat(2,1fr)}.phase2-dpr .dpr-facts span:nth-child(2){border-right:0}.phase2-dpr .dpr-grid{grid-template-columns:1fr}.phase2-dpr .dpr-grid .span-2{grid-column:auto}.about-build{grid-template-columns:1fr}}
@media (max-width:760px){.control-kpis{grid-template-columns:repeat(2,1fr)}.control-toolbar{justify-content:flex-start;flex-wrap:wrap}}
@media (max-width:1100px){.phase5-report-header{grid-template-columns:120px 1fr}.phase5-report-header img{width:115px}.phase5-report-meta{grid-column:1/-1}.phase5-report-kpis{grid-template-columns:repeat(3,1fr)}.phase5-dashboard-health{grid-template-columns:auto repeat(2,1fr)}.phase5-dashboard-health .button{grid-column:1/-1}}
@media (max-width:760px){.phase5-report-print{padding:13px}.phase5-report-header{grid-template-columns:1fr}.phase5-report-header img{width:130px}.phase5-report-meta{grid-template-columns:1fr}.phase5-health-banner{grid-template-columns:auto 1fr}.phase5-health-indices{grid-column:1/-1}.phase5-report-kpis{grid-template-columns:1fr 1fr}.phase5-report-columns{grid-template-columns:1fr}.phase5-readiness{grid-template-columns:1fr}.phase5-report-footer{flex-direction:column}.phase5-dashboard-health{grid-template-columns:1fr 1fr}.phase5-dashboard-health>.phase5-health-score{grid-row:span 2}.phase5-dashboard-health>span{padding:0;border:0}}
@media (max-width:1050px){.phase6-dashboard-readiness{grid-template-columns:auto 1fr 1fr}.phase6-dashboard-readiness .button{grid-column:1/-1}}
@media (max-width:760px){.phase6-release-banner{align-items:flex-start;flex-wrap:wrap}.phase6-release-banner .button{width:100%;margin:0}.phase6-system-info{grid-template-columns:1fr}.phase6-manual-footer,.phase6-report-footer{align-items:flex-start;flex-direction:column}.phase6-dashboard-readiness{grid-template-columns:auto 1fr}.phase6-dashboard-readiness>span{padding:0;border:0}.phase6-dashboard-readiness .button{grid-column:1/-1}}
@media (max-width:480px){.phase2-photo-grid{grid-template-columns:1fr}.project-list-card__meta{grid-template-columns:1fr}.phase2-dpr .dpr-facts{grid-template-columns:1fr}.phase2-dpr .dpr-facts span{border-right:0;border-bottom:1px solid var(--border)}}

@media print{
  body{background:#fff}.sidebar,.topbar,.view-head,.toast,.dpr-register{display:none!important}.app-shell{display:block!important}.main-panel{margin:0}.workspace{padding:0}.workspace>*{display:none!important}.workspace>.dpr-layout,.workspace>.grid,.workspace>.mt{display:block!important}.phase2-dpr{display:block!important;border:0;box-shadow:none;padding:0}.phase2-dpr .dpr-grid section{break-inside:avoid}.card{box-shadow:none}
  .workspace>.phase5-report-shell{display:block!important}.phase5-report-print{display:block!important;padding:0;border:0;box-shadow:none}.phase5-snapshots,.phase5-report-tabs{display:none!important}.phase5-report-header{grid-template-columns:120px 1fr 1.3fr}.phase5-report-header img{width:115px}.phase5-report-kpis{grid-template-columns:repeat(6,1fr)}.phase5-report-section{break-inside:avoid}.phase5-report-footer{break-inside:avoid}
  .workspace>.phase6-acceptance-print{display:block!important}.phase6-acceptance-print>.grid,.phase6-acceptance-print>.mt,.phase6-acceptance-print>.phase6-release-banner,.phase6-acceptance-print>.phase6-report-footer{display:block!important}.phase6-release-banner{display:flex!important}.phase6-acceptance-print .metric-card{display:inline-block;width:23%;margin-right:1%;vertical-align:top}.phase6-acceptance-print .no-print{display:none!important}.phase6-report-footer{display:flex!important;break-inside:avoid}.phase6-acceptance-print .card{margin-top:10px;break-inside:avoid}
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Phase 6.1 Rev02 additive testing-data update */
.field-hint { margin:.6rem 0 0; padding:.65rem .8rem; border:1px solid var(--line); border-radius:10px; background:#f8fafc; color:var(--muted); font-size:.68rem; line-height:1.45; }
.phase61-inline-actions, .phase61-card-actions { display:flex; gap:.55rem; flex-wrap:wrap; justify-content:flex-end; margin-bottom:.8rem; }
.phase61-card-actions { margin-top:.8rem; margin-bottom:0; }
.phase61-inner-metrics { margin:.8rem 0; }
@media (max-width: 760px) { .phase61-inline-actions, .phase61-card-actions { justify-content:flex-start; } }

/* Phase 6.1 Rev04: project identity, date selector and permission controls */
.project-banner h2{color:#fff!important;text-shadow:0 1px 1px rgba(0,0,0,.18)}
.rev04-project-context{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:5px;font-size:.58rem;line-height:1.2}
.rev04-project-code{display:inline-flex;align-items:center;min-height:22px;padding:0 7px;color:#0758d9;background:#eaf2ff;border:1px solid #cbdffc;border-radius:6px;font-weight:800;letter-spacing:.02em}
.rev04-project-name{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#24334b;font-size:.62rem}
.rev04-dialog-note{margin:-2px 0 14px;color:var(--muted);font-size:.62rem;line-height:1.5}
.rev04-permission-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:13px}
.rev04-permission-head strong{font-size:.72rem;color:var(--navy-800)}
.rev04-permission-head p{max-width:720px;margin:5px 0 0;color:var(--muted);font-size:.59rem;line-height:1.5}
.rev04-permission-toggle{display:inline-flex;align-items:center;gap:6px;min-width:78px;font-size:.57rem;font-weight:700;cursor:pointer}
.rev04-permission-toggle input{width:15px;height:15px;accent-color:var(--blue-700);cursor:pointer}
.rev04-permission-toggle input:disabled{cursor:not-allowed}
.rev04-permission-locked{display:inline-flex;align-items:center;min-height:24px;padding:0 7px;color:#526177;background:#f1f4f8;border-radius:6px;font-size:.54rem;font-weight:800;white-space:nowrap}
@media(max-width:1180px){.topbar{align-items:flex-start;flex-wrap:wrap}.topbar__actions{flex-wrap:wrap}.rev04-project-name{max-width:300px}.rev04-permission-head{flex-direction:column}}
@media(max-width:760px){.rev04-project-context{max-width:72vw}.rev04-project-name{max-width:58vw}.rev04-permission-head .page-actions{width:100%}.rev04-permission-head .button{flex:1}.rev04-date-dialog .grid--2{grid-template-columns:1fr}}

/* Phase 6.1 Rev05: protected project delete + Primavera-style WBS progress chart */
.rev05-project-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;margin-top:12px}.rev05-project-actions .button{flex:0 0 auto}
.rev05-danger-button{background:#b42318!important;border-color:#b42318!important;color:#fff!important}.rev05-danger-button:hover{background:#8f1d14!important;border-color:#8f1d14!important}.rev05-danger-button:focus-visible{outline:3px solid rgba(180,35,24,.22);outline-offset:2px}
.rev05-delete-warning{margin:0 0 14px;padding:13px 14px;border:1px solid #f1b8b3;border-radius:10px;background:#fff2f1;color:#8f1d14}.rev05-delete-warning strong{font-size:.72rem}.rev05-delete-warning p{margin:5px 0 0;color:#7f3c37;font-size:.61rem;line-height:1.5}
.rev05-delete-project-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px}.rev05-delete-project-facts div{padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:#f8fafc}.rev05-delete-project-facts dt{font-size:.55rem;color:var(--muted)}.rev05-delete-project-facts dd{margin:4px 0 0;font-size:.68rem;font-weight:800;color:var(--navy-800);overflow-wrap:anywhere}.rev05-delete-error{min-height:18px;margin:6px 0 0;color:var(--red-600);font-size:.62rem;font-weight:700}
.rev05-primavera-shell{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}.rev05-primavera-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:12px 14px;background:#f7f9fc;border-bottom:1px solid var(--border)}.rev05-primavera-toolbar strong{font-size:.73rem;color:var(--navy-800)}.rev05-primavera-toolbar p{margin:4px 0 0;color:var(--muted);font-size:.58rem;line-height:1.45}.rev05-gantt-legend{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:.56rem;font-weight:700;color:#536177}.rev05-gantt-legend span{display:inline-flex;align-items:center;gap:5px}.rev05-gantt-legend i{width:22px;height:7px;border-radius:99px;background:#9ec3f4}.rev05-gantt-legend i.is-actual{height:5px;background:var(--green-700)}.rev05-gantt-legend i.is-delay{background:var(--red-600)}
.rev05-primavera-scroll{overflow:auto;max-width:100%;background:#fff}.rev05-primavera-canvas{min-width:calc(730px + var(--rev05-timeline-width));font-size:.56rem}.rev05-primavera-head,.rev05-primavera-row{display:grid;grid-template-columns:730px var(--rev05-timeline-width);min-height:43px;border-bottom:1px solid #e9eef4}.rev05-primavera-head{position:sticky;top:0;z-index:6;min-height:39px;background:#f6f8fb;color:#526177;font-weight:800}.rev05-primavera-detail{position:sticky;left:0;z-index:4;display:grid;grid-template-columns:70px minmax(190px,1fr) 86px 86px 52px 62px 62px 92px;align-items:center;background:#fff;border-right:1px solid #dce4ee;box-shadow:6px 0 8px -8px rgba(17,38,67,.35)}.rev05-primavera-detail>*{min-width:0;padding:0 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rev05-primavera-detail--head{z-index:8;background:#f6f8fb;color:#526177;text-transform:uppercase;letter-spacing:.02em}.rev05-primavera-detail .status-pill{font-size:.49rem;padding:3px 6px}.rev05-wbs-code{font-weight:800;color:var(--blue-700)}.rev05-activity{padding-left:calc(7px + var(--wbs-depth,0) * 12px)!important;color:#26364e}
.rev05-timeline-head{display:flex;align-items:stretch;background:#f6f8fb}.rev05-timeline-head span{display:flex;flex:0 0 auto;align-items:center;justify-content:center;border-right:1px solid #dce4ee;font-size:.51rem;white-space:nowrap}.rev05-timeline-row{position:relative;min-height:43px;background:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--rev05-cell) - 1px),#e8edf3 calc(var(--rev05-cell) - 1px),#e8edf3 var(--rev05-cell)),linear-gradient(#fff,#fff)}.rev05-primavera-row:nth-child(even) .rev05-primavera-detail,.rev05-primavera-row:nth-child(even) .rev05-timeline-row{background-color:#fbfcfe}.rev05-planned-bar,.rev05-actual-bar{position:absolute;left:0;border-radius:4px}.rev05-planned-bar{top:12px;height:16px;background:#9ec3f4;border:1px solid #6da2e7;min-width:3px}.rev05-actual-bar{top:16px;height:8px;background:var(--green-700);box-shadow:0 0 0 1px rgba(0,0,0,.04);min-width:2px}.rev05-timeline-row.is-delayed .rev05-planned-bar{border-color:#d92d20;box-shadow:0 0 0 1px #d92d20}.rev05-timeline-row.is-delayed .rev05-actual-bar{background:#d92d20}.rev05-no-date{position:absolute;left:12px;top:14px;color:#8a96a8;font-style:normal}.rev05-chart-empty .empty-state{border:0;border-radius:0;min-height:210px}
@media(max-width:900px){.rev05-primavera-toolbar{flex-direction:column}.rev05-primavera-canvas{min-width:calc(650px + var(--rev05-timeline-width))}.rev05-primavera-head,.rev05-primavera-row{grid-template-columns:650px var(--rev05-timeline-width)}.rev05-primavera-detail{grid-template-columns:62px minmax(150px,1fr) 82px 82px 50px 58px 58px 88px}}
@media(max-width:760px){.rev05-project-actions{align-items:stretch;flex-direction:column}.rev05-project-actions .button{width:100%}.rev05-delete-project-facts{grid-template-columns:1fr}.rev05-primavera-toolbar{padding:10px}.rev05-primavera-canvas{min-width:calc(610px + var(--rev05-timeline-width))}.rev05-primavera-head,.rev05-primavera-row{grid-template-columns:610px var(--rev05-timeline-width)}.rev05-primavera-detail{grid-template-columns:58px minmax(135px,1fr) 78px 78px 48px 55px 55px 80px}}
