@import "https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700;800&display=swap";
:root{--ink-900:#0e1a33;--ink-700:#2e3a52;--ink-500:#6b7280;--ink-300:#c4c9d4;--ink-100:#eef0f4;--paper:#f7f8fa;--paper-raised:#fff;--navy:#0e1a33;--accent:#304dbb;--accent-soft:#304dbb1a;--accent-2:#7c5cff;--attention:#304dbb;--attention-soft:#304dbb1a;--danger:#dc2626;--danger-soft:#dc262614;--line:#eef0f4;--font-sans:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius:8px;--content-max-width:720px;--content-max-width-wide:1160px;--shadow-sm:0 1px 2px #0e1a330a;--shadow-md:0 4px 16px #0e1a330f}*{box-sizing:border-box}html,body{background:radial-gradient(120% 55% at 100% 0%, #304dbb21, transparent 60%), radial-gradient(90% 45% at -10% 15%, #7c5cff1a, transparent 60%), var(--paper);color:var(--ink-900);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;padding:0}a{color:inherit}button{font-family:inherit}.page{max-width:var(--content-max-width);margin:0 auto;padding:20px 20px 48px}.eyebrow{color:var(--ink-500);margin:0 0 4px;font-size:13px}.h1{letter-spacing:-.01em;color:var(--ink-900);margin:0;font-size:22px;font-weight:650}.card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.focus-ring:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;padding:12px 20px;font-size:15px;font-weight:600;box-shadow:0 4px 16px #304dbb40}.btn-primary:disabled{background:var(--ink-300);cursor:not-allowed}.text-input{background:var(--paper-raised);border:1px solid #8a93a6;border-radius:6px;width:100%;padding:12px 14px;font-size:16px}.text-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (prefers-reduced-motion:no-preference){.stage-panel{transition:grid-template-rows .32s cubic-bezier(.4,0,.2,1)}}.stage-panel{grid-template-rows:0fr;display:grid}.stage-panel--open{grid-template-rows:1fr}.stage-panel__inner{min-height:0;overflow:hidden}.page--wide{max-width:var(--content-max-width-wide);padding:24px 24px 64px}.shell__main>.page{padding-top:38px}@media (max-width:940px){.shell__main>.page{padding-top:22px}}@media (max-width:720px){.page--wide{padding:16px 16px 48px}}.proj-head{margin:14px 0 26px}.proj-head__top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-bottom:18px;display:flex}.proj-head__updated{color:var(--ink-500);margin:0;font-size:13px}.proj-head__title{letter-spacing:-.022em;color:var(--ink-900);margin:0;font-size:30px;font-weight:700;line-height:1.15}.freshness{color:var(--ink-500);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:13px;font-weight:500}.journey-foot .freshness{font-size:12.5px}.proj-facts{background:var(--line);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.proj-fact{background:var(--paper-raised);flex-direction:column;gap:7px;min-width:0;padding:15px 20px 17px;display:flex}.proj-fact__label{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-500);font-size:11px;font-weight:650}.proj-fact__value{letter-spacing:-.012em;color:var(--ink-900);font-size:17px;font-weight:600}.proj-fact__late{color:var(--ink-500);font-weight:500}.proj-fact__note{color:var(--accent);font-size:13px;font-weight:600;text-decoration:none}.proj-fact__note:hover{text-decoration:underline}.client-actions__list{gap:4px;margin:4px 0 0;padding:0;list-style:none;display:grid}.client-actions__list strong{color:var(--ink-900);font-weight:600}.proj-fact__value--muted{color:var(--ink-500);font-weight:500}@media (max-width:720px){.proj-head__title{font-size:24px}.proj-facts{grid-template-columns:1fr}.proj-fact{padding:13px 16px 14px}}.journey{margin-bottom:28px}.section-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:14px;display:flex}.section-head__title{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-500);margin:0;font-size:13px;font-weight:650}.section-head__meta{color:var(--ink-700);font-variant-numeric:tabular-nums;font-size:13px;font-weight:550}.journey__surface{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:16px}.journey__scroller{scrollbar-width:none;padding:20px 18px 16px;overflow:auto hidden}.journey__scroller::-webkit-scrollbar{display:none}.journey__track{grid-template-columns:var(--journey-cols);min-width:100%;margin:0;padding:0;list-style:none;display:grid}.journey__stage{min-width:0;padding-top:18px;position:relative}.journey__bar{background:var(--ink-100);border-radius:999px;height:6px;position:absolute;top:0;left:1px;right:1px;overflow:hidden}.journey__bar-fill{background:var(--accent);height:100%;display:block}@media (max-width:640px){.journey .section-head{flex-wrap:wrap;row-gap:4px}.journey__progress{flex-basis:100%}}.journey__progress strong{color:var(--ink-900);font-weight:650}.journey__link{background:var(--line);height:2px;position:absolute;top:34px}.journey__link--out{left:calc(50% + 19px);right:0}.journey__link--in{left:0;right:calc(50% + 19px)}.journey__link--done{background:var(--accent)}.journey__node{z-index:1;cursor:pointer;text-align:center;background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:9px;width:100%;padding:0 6px 2px;display:flex;position:relative}.journey__dot{font-variant-numeric:tabular-nums;background:var(--paper-raised);border:1.5px solid var(--ink-300);width:34px;height:34px;color:var(--ink-500);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.journey__stage--completed .journey__dot{background:linear-gradient(135deg, #4a63cc, var(--accent) 70%);color:#fff;border-color:#0000}.journey__stage--current .journey__dot{background:linear-gradient(135deg, #23315c, var(--ink-900) 70%);color:#fff;box-shadow:0 0 0 4px var(--accent-soft);border-color:#0000;position:relative}.journey__stage--current .journey__dot:after{content:"";border:2px solid var(--accent);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:-1px}@media (prefers-reduced-motion:no-preference){.journey__stage--current .journey__dot:after{animation:2.8s cubic-bezier(.22,.61,.36,1) infinite nym-stage-pulse}}@keyframes nym-stage-pulse{0%{opacity:.55;transform:scale(1)}60%{opacity:0;transform:scale(1.85)}to{opacity:0;transform:scale(1.85)}}.journey__label{color:var(--ink-500);letter-spacing:-.005em;font-size:12px;font-weight:550;line-height:1.3}.journey__stage--completed .journey__label{color:var(--ink-700)}.journey__stage--current .journey__label{color:var(--ink-900);font-weight:700}.journey__now{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:10px;font-weight:700}@media (max-width:940px){.journey__track{grid-template-columns:var(--journey-cols-mobile);min-width:max-content}.journey__scroller{scroll-snap-type:x proximity}.journey__stage{scroll-snap-align:center}}.journey__scroller--fade-end{-webkit-mask-image:linear-gradient(90deg,#000 0 calc(100% - 32px),#0000 100%);mask-image:linear-gradient(90deg,#000 0 calc(100% - 32px),#0000 100%)}.journey__scroller--fade-start{-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 32px);mask-image:linear-gradient(90deg,#0000 0,#000 32px)}.journey__scroller--fade-start.journey__scroller--fade-end{-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 32px calc(100% - 32px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 32px calc(100% - 32px),#0000 100%)}@media (prefers-reduced-motion:no-preference){.journey__node,.journey__dot{transition:background-color .18s,box-shadow .18s,color .18s}.journey__node:hover .journey__dot{box-shadow:0 0 0 4px var(--accent-soft)}.journey__stage--current .journey__node:hover .journey__dot{box-shadow:0 0 0 6px var(--accent-soft)}}.journey-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:start;gap:24px;display:grid}.journey-grid--single{grid-template-columns:minmax(0,1fr)}.journey-grid--single>:first-child:empty{display:none}@media (max-width:940px){.journey-grid{grid-template-columns:minmax(0,1fr);gap:20px}}.focus-card{border:1px solid var(--line);background:var(--paper-raised);box-shadow:var(--shadow-sm);border-radius:16px;align-items:flex-start;gap:14px;margin-bottom:20px;padding:18px 20px;display:flex}.focus-card--resolved .focus-card__icon{background:var(--accent-soft);color:var(--accent);box-shadow:none}.focus-card__icon{background:var(--accent);color:#fff;border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex;box-shadow:0 2px 8px #304dbb4d}.focus-card__title{letter-spacing:-.01em;color:var(--ink-900);margin:0 0 3px;font-size:16px;font-weight:700}.focus-card__body{color:var(--ink-700);margin:0;font-size:14px;line-height:1.5}.stage-card{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-md);border-radius:16px;overflow:hidden}.stage-card__head{border-bottom:1px solid var(--line);align-items:flex-start;gap:14px;padding:20px 22px 18px;display:flex}.stage-card__icon{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.stage-card__eyebrow{letter-spacing:.07em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;margin:0 0 4px;font-size:11px;font-weight:650;display:flex}.stage-card__title{letter-spacing:-.018em;color:var(--ink-900);margin:0;font-size:21px;font-weight:680}.stage-card__meta{color:var(--ink-500);font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:13px}.stage-card__desc{color:var(--ink-700);max-width:68ch;margin:12px 0 0;font-size:14.5px;line-height:1.55}.stage-card__body{padding:18px 22px 20px}.stage-progress{flex-direction:column;gap:9px;margin-bottom:6px;display:flex}.stage-progress__meter{background:var(--ink-100);border-radius:999px;width:100%;height:8px;overflow:hidden}.stage-progress__fill{background:linear-gradient(90deg, #4a63cc, var(--accent));border-radius:999px;min-width:8px;height:100%;display:block}.stage-progress__count{color:var(--ink-900);font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:600}.stage-progress__count span{color:var(--ink-500);font-weight:500}@media (prefers-reduced-motion:no-preference){.stage-progress__fill{transition:width .32s cubic-bezier(.22,.61,.36,1)}}.ms-group{margin-top:18px}.ms-group__head{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-500);align-items:center;gap:8px;margin-bottom:2px;font-size:11px;font-weight:650;display:flex}.ms-list{margin:0;padding:0;list-style:none}.ms-row{border-bottom:1px solid var(--line);grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 0;font-size:14px;display:grid}.ms-list>.ms-row:last-child{border-bottom:0}.ms-row__mark{color:var(--ink-300);justify-content:center;align-items:center;display:flex}.ms-row--done .ms-row__mark{color:var(--accent)}.ms-row--late .ms-row__mark{color:var(--danger)}.ms-row__name{min-width:0;color:var(--ink-700);line-height:1.4}.ms-row--done .ms-row__name{color:var(--ink-900);font-weight:550}.ms-row__dates{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:baseline;gap:10px;font-size:13px;display:flex}.ms-row__date{color:var(--ink-700)}.ms-row--done .ms-row__date{color:var(--ink-500)}.ms-row__state{text-align:right;min-width:78px;color:var(--ink-500)}.ms-row--done .ms-row__state{color:var(--accent);font-weight:600}.ms-row--late .ms-row__state{color:var(--danger);font-weight:600}.ms-flag{letter-spacing:.04em;color:var(--danger);background:var(--danger-soft);vertical-align:1px;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.ms-row--stacked{grid-template-columns:18px minmax(0,1fr);row-gap:3px}.ms-row--stacked .ms-row__dates{grid-column:2}.ms-row--stacked .ms-row__state{text-align:left;min-width:0}@media (max-width:560px){.ms-row{grid-template-columns:18px minmax(0,1fr);row-gap:3px}.ms-row__dates{grid-column:2;gap:12px}.ms-row__state{text-align:left;min-width:0}}.rail+.rail{margin-top:22px}.rail__list{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:14px;margin:0;padding:0;list-style:none;overflow:hidden}.rail__item+.rail__item{border-top:1px solid var(--line)}.rail__row{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:0;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 14px;display:grid}.rail__row:hover{background:#304dbb0a}.rail__mark{font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:650;display:flex}.rail__item--completed .rail__mark{background:var(--accent-soft);color:var(--accent)}.rail__item--upcoming .rail__mark{background:var(--paper);border:1.5px solid var(--ink-300);color:var(--ink-500)}.rail__label{letter-spacing:-.008em;min-width:0;color:var(--ink-900);font-size:14px;font-weight:600;line-height:1.3}.rail__item--upcoming .rail__label{color:var(--ink-700);font-weight:550}.rail__sub{color:var(--ink-500);font-variant-numeric:tabular-nums;margin-top:2px;font-size:12px;font-weight:450;display:block}.rail__chevron{color:var(--ink-500);align-items:center;display:flex}.rail__chevron--open{transform:rotate(180deg)}.rail__panel-inner{padding:2px 14px 14px 51px}.rail__empty{color:var(--ink-500);background:var(--paper-raised);border:1px dashed var(--line);border-radius:14px;padding:14px;font-size:13px}.rail__mark--cr{background:var(--accent-soft);color:var(--accent);font-variant-numeric:tabular-nums}.cr-panel__empty{color:var(--ink-500);margin:0;font-size:13px}.cr-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.cr-item{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.cr-item__name{color:var(--ink-900);margin-bottom:6px;font-size:13.5px;font-weight:600;line-height:1.35}.cr-item__meta{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.cr-item__status{color:var(--accent);background:var(--accent-soft);letter-spacing:.01em;border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:650}.cr-item__date{color:var(--ink-500);font-variant-numeric:tabular-nums;font-size:12px}.journey-grid--single .rail__label{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.journey-grid--single .rail__sub{flex-shrink:0;margin-top:0}@media (min-width:600px) and (max-width:940px){.rail__label{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.rail__sub{flex-shrink:0;margin-top:0}}@media (max-width:599px){.journey-grid--single .rail__label{display:block}.journey-grid--single .rail__sub{margin-top:2px}}@media (prefers-reduced-motion:no-preference){.rail__row{transition:background-color .16s}.rail__chevron{transition:transform .2s}}.journey-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;margin-top:28px;padding-top:18px;display:flex}.crumb-link{color:var(--ink-500);align-items:center;gap:6px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.crumb-link:hover{color:var(--ink-900)}.shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.shell--collapsed{grid-template-columns:72px minmax(0,1fr)}@media (prefers-reduced-motion:no-preference){.shell{transition:grid-template-columns .2s cubic-bezier(.32,.72,0,1)}}.shell--collapsed .sidebar__link-text,.shell--collapsed .sidebar__client-name{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell--collapsed .shell__sidebar{padding-left:10px;padding-right:10px}.shell--collapsed .sidebar__brand,.shell--collapsed .sidebar__client{justify-content:center;padding-left:0;padding-right:0;display:flex}.sidebar__icon{height:18px;display:none}.shell--collapsed .sidebar__logo{display:none}.shell--collapsed .sidebar__icon{display:block}.shell--collapsed .sidebar__client{display:none}.shell--collapsed .sidebar__sections{border-top:1px solid #ffffff1f;margin-top:20px;padding-top:16px}.shell--collapsed .sidebar__link{justify-content:center;padding-left:0;padding-right:0}.shell__sidebar{background:var(--navy);flex-direction:column;gap:4px;height:100vh;padding:22px 14px 18px;display:flex;position:sticky;top:0;overflow-y:auto}.shell__main{min-width:0}.sidebar__brand{align-items:center;height:22px;padding:0 10px;display:flex}.sidebar__logo{height:15px;display:block}.sidebar__client{background:#ffffff0f;border-radius:12px;margin:18px 0 20px;padding:14px 12px 15px}.sidebar__client-name{letter-spacing:-.012em;color:#fff;margin:0;font-size:14.5px;font-weight:650;line-height:1.3}.sidebar__sections{flex-direction:column;gap:2px;display:flex}.sidebar__link{color:#ffffffb3;border-radius:9px;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;font-weight:550;line-height:1.35;text-decoration:none;display:flex}.sidebar__link:hover{color:#fff;background:#ffffff12}.sidebar__link--active{color:#fff;background:#ffffff1f;font-weight:650}.sidebar__link svg{opacity:.85;flex-shrink:0}.sidebar__link--active svg{opacity:1;color:#8fa4f0}.sidebar__foot{border-top:1px solid #ffffff1f;margin-top:auto;padding-top:16px}.sidebar__link--muted{color:#ffffff94;font-size:13px}.sidebar__collapse{cursor:pointer;text-align:left;background:0 0;border:0;width:100%;font-family:inherit}.shell__drawer .sidebar__collapse,.shell__topbar,.shell__drawer,.shell__scrim{display:none}@media (prefers-reduced-motion:no-preference){.sidebar__link{transition:background-color .16s,color .16s}}@media (max-width:940px){.shell{grid-template-columns:minmax(0,1fr)}.shell__sidebar{display:none}.shell__topbar{z-index:30;background:var(--navy);align-items:center;gap:14px;height:52px;padding:0 14px;display:flex;position:sticky;top:0}.topbar__menu{color:#fff;cursor:pointer;background:#ffffff14;border:0;border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;margin-left:-6px;display:flex}.topbar__logo{height:14px;display:block}.shell__scrim{z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0e1a3373;display:block;position:fixed;inset:0}.shell__drawer{z-index:50;background:var(--navy);visibility:hidden;flex-direction:column;gap:4px;width:272px;max-width:84vw;padding:18px 14px;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.shell__drawer--open{visibility:visible;transform:translate(0)}.drawer__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.drawer__head .topbar__menu{flex-shrink:0;margin-left:0;display:flex}.drawer__head .sidebar__brand{min-width:0;padding-left:0}}@media (max-width:940px) and (prefers-reduced-motion:no-preference){.shell__drawer{transition:transform .22s cubic-bezier(.32,.72,0,1),visibility .22s}}.section-head-block{margin:4px 0 26px}.page-title{letter-spacing:-.022em;color:var(--ink-900);margin:0;font-size:27px;font-weight:700;line-height:1.15}.page-lede{color:var(--ink-500);max-width:62ch;margin:7px 0 0;font-size:14.5px;line-height:1.5}.plan-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px 24px;display:flex}.btn-secondary{border:1px solid var(--line);background:var(--paper-raised);box-shadow:var(--shadow-sm);color:var(--ink-900);cursor:pointer;border-radius:10px;flex-shrink:0;align-items:center;gap:8px;padding:9px 15px;font-size:13.5px;font-weight:600;display:inline-flex}.btn-secondary:hover{border-color:var(--ink-300);background:var(--paper)}@media (prefers-reduced-motion:no-preference){.btn-secondary{transition:border-color .16s,background-color .16s}}.state-chip{letter-spacing:.01em;white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;padding:3px 10px;font-size:11.5px;font-weight:650;display:inline-flex}.state-chip--completed{background:var(--accent-soft);color:var(--accent)}.state-chip--current{background:var(--ink-900);color:#fff}.state-chip--upcoming{background:var(--ink-100);color:var(--ink-500)}.plan-cols{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-500);grid-template-columns:18px minmax(0,1fr) 96px 150px;gap:14px;padding:0 21px 9px;font-size:11px;font-weight:650;display:grid}.plan-cols__date{text-align:right}.plan-list{flex-direction:column;gap:14px;display:flex}.plan-stage-block{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:16px;overflow:hidden}.plan-stage-block--current{box-shadow:var(--shadow-md);border-color:#304dbb4d}.plan-stage__head{border-bottom:1px solid var(--line);align-items:center;gap:13px;padding:15px 20px;display:flex}.plan-stage__mark{font-variant-numeric:tabular-nums;background:var(--paper);border:1.5px solid var(--ink-300);width:27px;height:27px;color:var(--ink-500);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12.5px;font-weight:650;display:flex}.plan-stage-block--completed .plan-stage__mark{background:var(--accent-soft);color:var(--accent);border-color:#0000}.plan-stage-block--current .plan-stage__mark{background:var(--ink-900);color:#fff;border-color:#0000}.plan-stage__titles{flex:1;min-width:0}.plan-stage__title{letter-spacing:-.012em;color:var(--ink-900);margin:0;font-size:15.5px;font-weight:650}.plan-stage__dates{color:var(--ink-500);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:12.5px}.plan-rows{margin:0;padding:4px 20px 8px;list-style:none}.plan-row{border-bottom:1px solid var(--line);grid-template-columns:18px minmax(0,1fr) 96px 150px;align-items:center;gap:14px;padding:9px 0;font-size:14px;display:grid}.plan-rows>.plan-row:last-child{border-bottom:0}.plan-row__mark{color:var(--ink-300);justify-content:center;align-items:center;display:flex}.plan-row--done .plan-row__mark{color:var(--accent)}.plan-row--late .plan-row__mark{color:var(--danger)}.plan-row__name{min-width:0;color:var(--ink-700);line-height:1.4}.plan-row--done .plan-row__name{color:var(--ink-900);font-weight:550}.plan-row__date,.plan-row__status{font-variant-numeric:tabular-nums;color:var(--ink-500);font-size:13px}.plan-row__date{text-align:right}.plan-row--done .plan-row__status{color:var(--accent);font-weight:600}.plan-row--late .plan-row__status{color:var(--danger);font-weight:600}.plan-empty{color:var(--ink-500);margin:0;padding:16px 20px 18px;font-size:13.5px}@media (max-width:720px){.plan-cols{display:none}.plan-row{grid-template-columns:18px minmax(0,1fr) auto;row-gap:2px}.plan-row__name{grid-area:1/2}.plan-row__status{text-align:right;grid-area:1/3}.plan-row__date{text-align:left;grid-area:2/2}.plan-rows{padding:4px 16px 8px}.plan-stage__head{padding:14px 16px}}.btn-primary-inline{background:var(--accent);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:9px 15px;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 2px 8px #304dbb40}.btn-primary-inline:hover{background:#2a44a6}.btn-secondary{text-decoration:none}@media (prefers-reduced-motion:no-preference){.btn-primary-inline{transition:background-color .16s}}.spec-layout{grid-template-columns:minmax(0,1fr) 232px;align-items:start;gap:32px;display:grid}@media (max-width:1080px){.spec-layout{grid-template-columns:minmax(0,1fr);gap:20px}}.spec-surface{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-md);border-radius:16px;padding:40px 48px 48px}@media (max-width:720px){.spec-surface{padding:26px 20px 32px}}.spec{max-width:74ch;color:var(--ink-700);font-size:15px;line-height:1.65}.spec__h2{border-top:1px solid var(--line);letter-spacing:-.018em;color:var(--ink-900);margin:44px 0 14px;padding-top:22px;scroll-margin-top:24px;font-size:21px;font-weight:700;line-height:1.25}.spec>.spec__h2:first-child{border-top:0;margin-top:0;padding-top:0}.spec__h3{letter-spacing:-.012em;color:var(--ink-900);margin:30px 0 10px;scroll-margin-top:24px;font-size:16.5px;font-weight:650}.spec__h4{color:var(--ink-900);margin:24px 0 8px;scroll-margin-top:24px;font-size:14.5px;font-weight:650}.spec__p{margin:0 0 13px}.spec__list{margin:0 0 14px;padding-left:20px;list-style:none}.spec__list .spec__list{margin:7px 0 4px}.spec__item{margin-bottom:7px;position:relative}.spec__item:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:.62em;left:-15px}.spec__list--1>.spec__item:before{border:1.5px solid var(--ink-300);background:0 0;width:6px;height:6px;left:-16px}.spec__list--2>.spec__item:before{background:var(--ink-300);border-radius:1px}.spec__list--ordered{counter-reset:spec-item}.spec__list--ordered>.spec__item{counter-increment:spec-item}.spec__list--ordered{padding-left:26px}.spec__list--ordered>.spec__item:before{content:counter(spec-item) ".";font-variant-numeric:tabular-nums;width:auto;height:auto;color:var(--ink-500);background:0 0;border:0;border-radius:0;font-size:.92em;font-weight:600;top:0;left:-24px}.spec__table-wrap{border:1px solid var(--line);border-radius:12px;margin:18px 0 22px;overflow-x:auto}.spec__table{border-collapse:collapse;width:100%;font-size:13.5px;line-height:1.5}.spec__table th{text-align:left;color:var(--ink-900);background:var(--paper);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 14px;font-weight:650}.spec__table td{vertical-align:top;border-bottom:1px solid var(--line);padding:10px 14px}.spec__table tr:last-child td{border-bottom:0}.spec__table td:first-child{color:var(--ink-900);font-weight:550}.spec__figure{background:var(--paper);border:1px solid var(--line);border-radius:12px;margin:22px 0 8px;padding:18px}.spec__figure img{width:100%;height:auto;display:block}.spec__caption{color:var(--ink-500);text-align:center;margin:0 0 20px;font-size:12.5px}.spec-toc{position:sticky;top:24px}.spec-toc__title{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-500);margin:0 0 10px;font-size:11px;font-weight:650}.spec-toc__list{border-left:1px solid var(--line);margin:0;padding:0 0 0 1px;list-style:none}.spec-toc__link{color:var(--ink-500);border-left:2px solid #0000;gap:8px;margin-left:-1px;padding:6px 12px;font-size:13px;line-height:1.4;text-decoration:none;display:flex}.spec-toc__link:hover{color:var(--ink-900);border-left-color:var(--accent)}.spec-toc__num{font-variant-numeric:tabular-nums;color:var(--ink-300);flex-shrink:0}@media (prefers-reduced-motion:no-preference){.spec-toc__link{transition:color .16s,border-color .16s}}@media (max-width:1080px){.spec-toc{background:var(--paper-raised);border:1px solid var(--line);border-radius:14px;order:-1;padding:16px 18px;position:static}}.spec__cell-list{margin:0;padding-left:15px;list-style:none}.spec__cell-list li{margin-bottom:4px;position:relative}.spec__cell-list li:last-child{margin-bottom:0}.spec__cell-list li:before{content:"";background:var(--ink-300);border-radius:50%;width:4px;height:4px;position:absolute;top:.6em;left:-11px}.spec__table td:first-child .spec__cell-list li{font-weight:400}.spec__cell-lead{margin:0 0 6px}.state-message{color:var(--ink-500);max-width:62ch;margin:0;padding:40px 0;font-size:14px}.state-message--error{color:var(--danger)}.content-enter{opacity:1}@media (prefers-reduced-motion:no-preference){.content-enter{animation:.26s cubic-bezier(.22,.61,.36,1) both content-enter}}@keyframes content-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.skel-block{background:var(--ink-100);border-radius:6px}@media (prefers-reduced-motion:no-preference){.skel-block{background:linear-gradient(100deg, var(--ink-100) 30%, var(--ink-300) 50%, var(--ink-100) 70%);background-size:200% 100%;animation:1.6s ease-in-out infinite skel-shimmer}}@keyframes skel-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}.skel-head{flex-direction:column;gap:18px;margin:14px 0 26px;display:flex}.skel-title{width:280px;max-width:60%;height:28px}.skel-facts{flex-wrap:wrap;gap:32px;display:flex}.skel-fact{flex-direction:column;gap:8px;display:flex}.skel-fact__label{width:90px;height:12px}.skel-fact__value{width:130px;height:18px}.skel-journey{border-radius:32px;height:64px;margin-bottom:28px}.skel-card-icon{border-radius:10px;width:36px;height:36px;margin-bottom:14px}.skel-card-title{width:55%;height:18px;margin-bottom:12px}.skel-card-line{width:85%;height:14px;margin-bottom:10px}.skel-card-line--short{width:60%}.skel-card-meter{border-radius:4px;height:8px;margin-top:16px}.skel-rail{margin-bottom:16px}.skel-rail__label{width:120px;height:12px;margin-bottom:14px}.skel-rail__row{border-radius:8px;height:44px;margin-bottom:8px}.skel-rail__row:last-child{margin-bottom:0}.skel-eyebrow{width:150px;height:11px;margin-bottom:10px}.skel-page-title{width:220px;height:30px}.skel-section-title{width:110px;height:16px}.skel-project-card__name{width:45%;height:17px}.skel-project-card__stage{width:30%;height:13px;margin-top:9px}.skel-project-card__meter{border-radius:999px;height:5px;margin-top:16px}.admin{max-width:880px;padding-top:40px}.admin__eyebrow{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-500);margin:0 0 10px;font-size:11px;font-weight:650}.admin__signin{margin-top:20px}.admin-card{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-md);border-radius:16px;padding:22px 24px 24px}.admin-card__title{letter-spacing:-.012em;color:var(--ink-900);margin:0 0 18px;font-size:16px;font-weight:680}.admin-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px 18px;display:grid}.admin-form__actions{grid-column:1/-1}@media (max-width:640px){.admin-form{grid-template-columns:minmax(0,1fr)}}.field__label{color:var(--ink-900);margin-bottom:6px;font-size:12.5px;font-weight:650;display:block}.field__hint{color:var(--ink-500);margin-top:6px;font-size:12px;display:block}.admin__error{color:var(--danger);margin:16px 0 0;font-size:13.5px}.admin__granted{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.admin__granted-label{color:var(--ink-500);margin:0 0 8px;font-size:13px}.admin__link{border:1px solid var(--line);background:var(--paper);word-break:break-all;color:var(--ink-900);border-radius:10px;padding:10px 12px;font-size:12.5px;display:block}.admin-section{margin-top:36px}.admin-empty{color:var(--ink-500);background:var(--paper-raised);border:1px dashed var(--line);border-radius:14px;margin:0;padding:16px;font-size:13.5px}.admin-table-wrap{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:14px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13.5px}.admin-table th{text-align:left;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-500);background:var(--paper);border-bottom:1px solid var(--line);white-space:nowrap;padding:11px 16px;font-size:11px;font-weight:650}.admin-table td{border-bottom:1px solid var(--line);color:var(--ink-900);vertical-align:middle;padding:12px 16px}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table__email{font-weight:550}.admin-table__key{color:var(--ink-500);font-variant-numeric:tabular-nums;margin-left:7px;font-size:12px}.admin-table__date{color:var(--ink-500);font-variant-numeric:tabular-nums;white-space:nowrap}.admin-table__actions{text-align:right}.btn-revoke{border:1px solid var(--line);background:var(--paper-raised);color:var(--ink-700);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:5px 11px;font-size:12.5px;font-weight:600;display:inline-flex}.btn-revoke:hover:not(:disabled){border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}.btn-revoke:disabled{color:var(--ink-500);cursor:not-allowed}@media (prefers-reduced-motion:no-preference){.btn-revoke{transition:color .16s,border-color .16s,background-color .16s}}.auth{background:radial-gradient(60% 50% at 18% 12%, #304dbb29, transparent 62%), radial-gradient(55% 45% at 85% 78%, #7c5cff24, transparent 62%), radial-gradient(70% 60% at 78% 8%, #22c3d914, transparent 60%), var(--paper);justify-content:center;align-items:center;min-height:100vh;padding:32px 20px;display:flex}.auth__card{background:var(--paper-raised);border:1px solid var(--line);border-radius:18px;width:100%;max-width:460px;padding:38px 40px 34px;box-shadow:0 12px 40px #0e1a3317}.auth__logo{width:auto;height:19px;margin-bottom:26px;display:block}.auth__title{letter-spacing:-.02em;color:var(--ink-900);margin:0 0 10px;font-size:24px;font-weight:700;line-height:1.25}.auth__lede{color:var(--ink-500);margin:0 0 24px;font-size:14px;line-height:1.55}.auth__form{flex-direction:column;gap:16px;display:flex}.auth__code{letter-spacing:.32em;text-align:center;font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.auth__error{color:var(--danger);margin:0;font-size:13.5px}.auth__note{border-top:1px solid var(--line);color:var(--ink-500);margin:22px 0 0;padding-top:18px;font-size:13px;line-height:1.55}.auth__link{color:var(--accent);font-weight:600;text-decoration:none}.auth__link:hover{text-decoration:underline}.auth__link-button{font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.auth__link-button:disabled{color:var(--ink-500);cursor:default;font-weight:500;text-decoration:none}.auth__notice{color:var(--ink-700);margin:0;font-size:13.5px}.auth__reassurance{color:var(--ink-500);margin:20px 0 0;font-size:12.5px}.auth__mock{color:var(--ink-300);margin:10px 0 0;font-size:12px}.projects{max-width:760px;padding-top:44px}.project-group+.project-group{margin-top:34px}.project-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.project-card{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-sm);color:inherit;border-radius:14px;padding:18px 46px 18px 20px;text-decoration:none;display:block;position:relative}.project-card:hover{border-color:var(--ink-300);box-shadow:var(--shadow-md)}.project-card--complete{background:var(--paper);box-shadow:none}.project-card__name{letter-spacing:-.014em;color:var(--ink-900);margin:0;font-size:16.5px;font-weight:680}.project-card__stage{color:var(--ink-500);margin:5px 0 0;font-size:13.5px}.project-card__meter{background:var(--ink-100);border-radius:999px;height:5px;margin-top:14px;display:block;overflow:hidden}.project-card__fill{background:linear-gradient(90deg, #4a63cc, var(--accent));border-radius:999px;height:100%;display:block}.project-card__go{color:var(--ink-300);position:absolute;top:20px;right:18px}.project-card:hover .project-card__go{color:var(--accent)}@media (prefers-reduced-motion:no-preference){.project-card,.project-card__go{transition:border-color .16s,box-shadow .16s,color .16s}}.load-error{border:1px solid var(--line);background:var(--paper-raised);text-align:center;border-radius:12px;max-width:520px;margin:48px auto;padding:28px 28px 24px}.load-error__title{color:var(--ink-900);margin:0 0 6px;font-size:17px;font-weight:650}.load-error__body{color:var(--ink-500);margin:0 0 18px;font-size:14px;line-height:1.55}.spec-pdf{gap:10px;display:grid}.spec-pdf__frame{border:1px solid var(--line);background:var(--paper-raised);width:100%;height:min(1100px,100vh - 220px);min-height:520px;box-shadow:var(--shadow-md);border-radius:16px}.spec-pdf__open{color:var(--accent);justify-self:start;font-size:13px;font-weight:600}.spec-print-title{display:none}@media print{@page{margin:18mm 16mm}html,body{background:#fff!important}.masthead,.shell__sidebar,.shell__topbar,.shell__drawer,.shell__scrim,.spec-toc,.plan-head,.no-print{display:none!important}.shell,.spec-layout{display:block}.page,.page--wide,.shell__main>.page{max-width:none;margin:0;padding:0}.spec-surface{box-shadow:none;border:0;border-radius:0;padding:0}.spec{max-width:none}.spec-print-title{border-bottom:1px solid var(--ink-300);margin:0 0 28px;padding-bottom:14px;display:block}.spec-print-title__name{color:var(--ink-900);margin:0;font-size:22px;font-weight:700}.spec-print-title__kind{color:var(--ink-500);margin:4px 0 0;font-size:13px}.spec__h2,.spec__h3,.spec__h4{break-after:avoid}.spec__table tr,.spec__figure,.spec__caption{break-inside:avoid}.spec__table-wrap{box-shadow:none;overflow:visible}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.admin-nav{border-bottom:1px solid var(--line);gap:4px;margin:0 0 18px;display:flex}.admin-nav__link{color:var(--ink-500);border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px 10px;font-size:13.5px;font-weight:600;text-decoration:none}.admin-nav__link:hover{color:var(--ink-900)}.admin-nav__link--active{color:var(--ink-900);border-bottom-color:var(--accent)}.admin--wide{max-width:1180px}.dropzone{border:1.5px dashed var(--ink-300);background:var(--paper);text-align:center;color:var(--ink-500);cursor:pointer;border-radius:14px;justify-items:center;gap:6px;padding:28px 20px;display:grid}.dropzone:hover,.dropzone--over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.dropzone__title{color:var(--ink-900);font-size:14px;font-weight:650}.dropzone__hint{max-width:60ch;font-size:12.5px;line-height:1.5}.upload-queue{margin-top:18px}.upload-queue td{vertical-align:top}.upload-queue__name{word-break:break-word;font-weight:550}.upload-queue__select{min-width:240px;padding-top:8px;padding-bottom:8px;font-size:13px}.upload-queue__result{min-width:200px}.upload-queue__error{margin:0;font-size:12.5px;display:block}.upload-queue__actions{flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:16px;display:flex}.btn-primary-inline:disabled{opacity:.5;cursor:not-allowed}.field__hint--warn{color:var(--danger)}.spec-version{justify-items:start;gap:4px;display:grid}.spec-version__file{color:var(--accent);word-break:break-word;font-weight:600;text-decoration:none}.spec-version__file:hover{text-decoration:underline}.spec-version__meta{color:var(--ink-500);font-size:12.5px}.spec-version__warn{color:#a15c07;font-size:12.5px}.spec-version__actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.preview-bar{margin:0 0 24px}.preview-bar__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px 24px;display:flex}.preview-bar .admin-card__title{margin:6px 0 4px}.preview-bar__status{margin:0}.preview-bar__warnings{color:#7a4504;background:#fff7e8;border-radius:10px;margin:16px 0 0;padding:12px 14px 12px 32px;font-size:13px;line-height:1.5}.status-pill{border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:650;display:inline-block}.status-pill--draft{color:#7a4504;background:#fff7e8}.status-pill--published{background:var(--accent-soft);color:var(--accent)}.status-pill--retired{background:var(--ink-100);color:var(--ink-500)}.section-head__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 14px;display:flex}.auth__badge{background:var(--ink-900);color:#fff;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;margin:-8px 0 14px;padding:4px 10px 4px 8px;font-size:11.5px;font-weight:650;display:inline-flex}
