@charset "UTF-8";:root{--ifour-purple-100: #eddcee;--ifour-purple-200: #dbb9dc;--ifour-purple-300: #c996cb;--ifour-purple-400: #b773ba;--ifour-purple-500: #a352a6;--ifour-purple-600: #864388;--ifour-purple-700: #69356a;--ifour-purple-800: #4b264d;--ifour-blue-100: #95cbfd;--ifour-blue-200: #61b2fb;--ifour-blue-300: #2c98fa;--ifour-blue-400: #057deb;--ifour-blue-500: #0461b6;--ifour-blue-600: #034581;--ifour-blue-700: #02325e;--ifour-blue-800: #01203c;--ifour-green-100: #dcf0d4;--ifour-green-200: #b7e1a8;--ifour-green-300: #93d27d;--ifour-green-400: #6fc352;--ifour-green-500: #54a338;--ifour-green-600: #45862e;--ifour-green-700: #366924;--ifour-green-800: #274d1a;--ifour-smokey-100: #c5cfd8;--ifour-smokey-200: #a7b7c5;--ifour-smokey-300: #8a9fb2;--ifour-smokey-400: #6d879f;--ifour-smokey-500: #576e84;--ifour-smokey-600: #445667;--ifour-smokey-700: #313e4a;--ifour-smokey-800: #1d252d;--plum-100: var(--ifour-purple-100);--plum-200: var(--ifour-purple-200);--plum-300: var(--ifour-purple-300);--plum-400: var(--ifour-purple-400);--plum-500: var(--ifour-purple-500);--plum-600: var(--ifour-purple-600);--plum-700: var(--ifour-purple-700);--plum-800: var(--ifour-purple-800);--blue-100: var(--ifour-blue-100);--blue-200: var(--ifour-blue-200);--blue-300: var(--ifour-blue-300);--blue-400: var(--ifour-blue-400);--blue-500: var(--ifour-blue-500);--blue-600: var(--ifour-blue-600);--blue-700: var(--ifour-blue-700);--blue-800: var(--ifour-blue-800);--green-100: var(--ifour-green-100);--green-200: var(--ifour-green-200);--green-300: var(--ifour-green-300);--green-400: var(--ifour-green-400);--green-500: var(--ifour-green-500);--green-600: var(--ifour-green-600);--green-700: var(--ifour-green-700);--green-800: var(--ifour-green-800);--smoky-100: var(--ifour-smokey-100);--smoky-200: var(--ifour-smokey-200);--smoky-300: var(--ifour-smokey-300);--smoky-400: var(--ifour-smokey-400);--smoky-500: var(--ifour-smokey-500);--smoky-600: var(--ifour-smokey-600);--smoky-700: var(--ifour-smokey-700);--smoky-800: var(--ifour-smokey-800);--ink-950: #0e1418;--ink-900: var(--smoky-800);--ink-800: var(--smoky-700);--ink-700: var(--smoky-600);--ink-600: var(--smoky-500);--ink-500: var(--smoky-400);--ink-400: var(--smoky-300);--ink-300: var(--smoky-200);--ink-200: var(--smoky-100);--ink-100: #dee4eb;--ink-50: #eef1f4;--hairline: rgba(29, 37, 45, .1);--hairline-strong: rgba(29, 37, 45, .18);--paper-0: #ffffff;--paper-50: #f7f8fa;--paper-100: #eef1f4;--paper-200: #dee4eb;--brand-purple: var(--plum-500);--brand-purple-deep: var(--plum-600);--brand-purple-darker: var(--plum-800);--brand-blue: var(--blue-500);--brand-blue-deep: var(--blue-700);--brand-green: var(--green-500);--brand-green-deep: var(--green-700);--signal-100: var(--green-100);--signal-200: var(--green-200);--signal-300: var(--green-400);--signal-400: var(--green-500);--signal-500: var(--green-600);--signal-700: var(--green-700);--positive-100: var(--green-100);--positive-500: var(--green-500);--positive-700: var(--green-700);--warning-100: #fbe6c9;--warning-500: #c87a17;--warning-700: #7a4408;--danger-100: #f6dada;--danger-500: #b8362c;--danger-700: #6e1c15;--font-display: "Fraunces", "Iowan Old Style", Georgia, "Times New Roman", serif;--font-ui: "Geist", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--display-axes: "opsz" 144, "SOFT" 30, "WONK" 0;--display-axes-tight: "opsz" 60, "SOFT" 0, "WONK" 0;--text-xs: .75rem;--text-sm: .85rem;--text-base: .95rem;--text-md: 1.05rem;--text-lg: 1.2rem;--text-xl: 1.5rem;--text-2xl: 2rem;--text-3xl: 2.65rem;--text-4xl: 3.5rem;--text-display: clamp(2.4rem, 5.5vw, 4.5rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4.5rem;--radius-xs: 4px;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--radius-xl: 18px;--shadow-soft: 0 1px 0 rgba(29,37,45,.04), 0 4px 16px -8px rgba(29,37,45,.1);--shadow-lift: 0 1px 0 rgba(29,37,45,.04), 0 14px 36px -14px rgba(29,37,45,.2);--shadow-inset-line: inset 0 0 0 1px var(--hairline);--ifour-white: var(--paper-0);--ifour-surface-light: var(--paper-100);--ifour-primary: var(--ifour-purple-500);--ifour-primary-hover: var(--ifour-purple-600);--ifour-primary-active: var(--ifour-purple-700);--ifour-primary-700: var(--ifour-purple-700);--ifour-primary-800: var(--ifour-purple-800);--ifour-secondary: var(--ifour-blue-500);--ifour-secondary-hover: var(--ifour-blue-600);--ifour-secondary-active: var(--ifour-blue-700);--ifour-text: var(--ifour-smokey-800);--ifour-text-muted: var(--ifour-smokey-400);--ifour-surface: var(--paper-50);--ifour-card: var(--paper-0);--ifour-border: var(--hairline);--ifour-success: var(--ifour-green-500);--ifour-green: var(--ifour-green-500);--ifour-warning: var(--warning-500);--ifour-error: var(--danger-500);--ifour-heading: var(--ifour-smokey-800);--ifour-radius: var(--radius);--ifour-shadow: var(--shadow-soft);--ifour-shadow-hover: var(--shadow-lift);--ifour-header-bg: var(--paper-0);--ifour-footer-bg: var(--paper-50);--ifour-header-text: var(--ifour-smokey-600);--ifour-footer-text: var(--ifour-smokey-400);--ifour-card-text: var(--ifour-smokey-800);--ifour-font-family: var(--font-ui);--ifour-font-style: normal}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-ui);font-style:var(--ifour-font-style);font-feature-settings:"cv11","ss01","ss03";background:var(--paper-50);background-image:radial-gradient(rgba(29,37,45,.045) 1px,transparent 1px),radial-gradient(rgba(29,37,45,.025) 1px,transparent 1px);background-size:28px 28px,28px 28px;background-position:0 0,14px 14px;color:var(--ifour-text);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums}::selection{background:var(--green-200);color:var(--ifour-text)}h1,h2,h3,h4,h5,h6{margin:0 0 .55em;font-family:var(--font-display);font-variation-settings:var(--display-axes);font-weight:500;line-height:1.1;color:var(--ifour-heading);letter-spacing:-.012em}h1{font-size:clamp(2.1rem,3.6vw,2.85rem);font-weight:450;letter-spacing:-.02em}h2{font-size:clamp(1.5rem,2.4vw,1.9rem);font-weight:500}h3{font-size:1.35rem;font-weight:500}h4{font-size:1.15rem;font-weight:500}h5{font-size:1rem;font-family:var(--font-ui);font-weight:600;letter-spacing:-.005em}.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-ui);font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-600)}.eyebrow:before{content:"";display:inline-block;width:.4rem;height:.4rem;background:var(--plum-500);border-radius:50%;flex-shrink:0}.eyebrow--blue:before{background:var(--blue-500)}.eyebrow--green:before{background:var(--green-500)}.display{font-family:var(--font-display);font-variation-settings:var(--display-axes);font-weight:380;letter-spacing:-.025em;line-height:1.02}.display-italic{font-style:italic;font-feature-settings:"ss01"}a{color:var(--plum-600);text-decoration:none;font-weight:500;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .12s ease}a:hover{color:var(--plum-700);text-decoration:underline}input[type=checkbox],input[type=radio]{width:auto;cursor:pointer;margin:0;accent-color:var(--plum-500)}input,select,textarea{font-family:var(--font-ui);font-size:.95rem;padding:.6rem .8rem;border:1px solid var(--hairline-strong);border-radius:var(--radius);background:var(--paper-0);color:var(--ifour-text);width:100%;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}input:hover,select:hover,textarea:hover{border-color:var(--ink-400)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--plum-500);box-shadow:0 0 0 3px #a352a62e}input::placeholder,textarea::placeholder{color:var(--ink-400)}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%231d252d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;padding-right:2.1rem}button,.btn{font-family:var(--font-ui);cursor:pointer;border:1px solid transparent;border-radius:var(--radius);padding:.6rem 1.1rem;font-weight:500;font-size:.92rem;letter-spacing:-.005em;line-height:1.2;transition:background .16s ease,color .16s ease,border-color .16s ease,transform 80ms ease,box-shadow .16s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none}button:focus-visible,.btn:focus-visible{outline:2px solid var(--plum-500);outline-offset:2px}button:disabled,.btn:disabled,.btn[disabled]{opacity:.55;cursor:not-allowed}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--ifour-primary);color:var(--paper-0);border-color:var(--ifour-primary)}.btn-primary:hover{background:var(--ifour-primary-hover);border-color:var(--ifour-primary-hover);color:var(--paper-0)}.btn-ink{background:var(--ink-900);color:var(--paper-0);border-color:var(--ink-900)}.btn-ink:hover{background:var(--ink-800);border-color:var(--ink-800);color:var(--paper-0)}.btn-secondary-action{background:var(--plum-500);color:var(--paper-0);border-color:var(--plum-500)}.btn-secondary-action:hover{background:var(--plum-600);border-color:var(--plum-600);color:var(--paper-0)}.btn-blue{background:var(--blue-500);color:var(--paper-0);border-color:var(--blue-500)}.btn-blue:hover{background:var(--blue-600);border-color:var(--blue-600);color:var(--paper-0)}.btn-outline{background:transparent;color:var(--ifour-text);border-color:var(--hairline-strong)}.btn-outline:hover{background:var(--paper-100);border-color:var(--ink-700);color:var(--ifour-text);text-decoration:none}.btn-secondary{background:var(--paper-0);color:var(--ink-700);border-color:var(--hairline-strong)}.btn-secondary:hover{background:var(--paper-100);color:var(--ifour-text);border-color:var(--ink-400)}.btn-danger{background:var(--danger-500);color:var(--paper-0);border-color:var(--danger-500)}.btn-danger:hover{background:var(--danger-700);border-color:var(--danger-700);color:var(--paper-0)}.btn-ghost{background:transparent;color:var(--ink-700);border-color:transparent}.btn-ghost:hover{background:var(--paper-100);color:var(--ifour-text)}.btn-signal{background:var(--green-500);color:var(--paper-0);border-color:var(--green-500)}.btn-signal:hover{background:var(--green-600);border-color:var(--green-600);color:var(--paper-0)}.btn-sm{padding:.4rem .75rem;font-size:.82rem}.btn-lg{padding:.8rem 1.4rem;font-size:1rem}.btn-icon{padding:.45rem;border-radius:var(--radius)}.card{background:var(--ifour-card);color:var(--ifour-card-text);border-radius:var(--radius-lg);border:1px solid var(--hairline);box-shadow:var(--shadow-soft);padding:1.5rem;margin-bottom:1.5rem;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.card:hover{border-color:var(--hairline-strong)}.card-link{display:block;text-decoration:none;color:inherit;position:relative;overflow:hidden}.card-link:after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--plum-500);transition:width .28s cubic-bezier(.2,.8,.2,1)}.card-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift);text-decoration:none;color:inherit}.card-link:hover:after{width:100%}.card-primary{background:var(--ink-900);color:var(--paper-50);border:none;box-shadow:var(--shadow-lift);position:relative;overflow:hidden}.card-primary h1,.card-primary h2,.card-primary h3,.card-primary h4,.card-primary h5,.card-primary h6,.card-primary .card-text{color:var(--paper-50)}.card-primary .text-muted{color:var(--ink-300)!important}.card-primary:before{content:"";position:absolute;inset:-50% -10% auto auto;width:70%;height:200%;background:radial-gradient(closest-side,rgba(84,163,56,.2),transparent 70%);pointer-events:none}.table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--hairline);background:var(--paper-0);box-shadow:var(--shadow-soft)}table{width:100%;border-collapse:collapse}table th,table td{padding:.95rem 1.1rem;text-align:left;border-bottom:1px solid var(--hairline);font-size:.92rem;vertical-align:middle}table th{font-family:var(--font-ui);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;background:var(--paper-100);color:var(--ink-600);border-bottom-color:var(--hairline-strong)}table tr:last-child td{border-bottom:none}table tbody tr{transition:background .12s ease}table tbody tr:hover td{background:var(--paper-50)}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.4rem;font-weight:500;font-size:.82rem;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-600)}.badge{display:inline-flex;align-items:center;justify-content:center;padding:.22rem .6rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;border-radius:999px;background:var(--paper-100);color:var(--ink-700);border:1px solid var(--hairline-strong);font-family:var(--font-ui)}.badge-success,.badge-available{background:var(--green-100);color:var(--green-700);border-color:#54a3384d}.badge-accent{background:var(--plum-100);color:var(--plum-700);border-color:#a352a647}.badge-info{background:var(--blue-100);color:var(--blue-700);border-color:#0461b647}.badge-signal{background:var(--green-200);color:var(--green-700);border-color:var(--green-400)}.alert{padding:.85rem 1rem;border-radius:var(--radius);border:1px solid var(--hairline);background:var(--paper-100);color:var(--ifour-text);font-size:.9rem;margin-bottom:1rem;display:flex;gap:.6rem;align-items:flex-start}.alert-error{background:var(--danger-100);color:var(--danger-700);border-color:#b8362c40}.alert-success{background:var(--green-100);color:var(--green-700);border-color:#54a33840}.alert-warning{background:var(--warning-100);color:var(--warning-700);border-color:#c87a1740}.mono{font-family:var(--font-mono);font-feature-settings:"tnum"}.text-primary{color:var(--plum-600)}.text-secondary{color:var(--blue-500)}.text-success{color:var(--green-700)}.text-muted{color:var(--ink-500)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.muted{color:var(--ink-500)}.divider{height:1px;background:var(--hairline);border:none;margin:1.25rem 0}.subtitle,.page-subtitle{color:var(--ink-500);font-size:1.05rem;margin:0 0 1.5rem;line-height:1.5;max-width:64ch}.loading,.loading-card{text-align:center;padding:3rem 1rem;color:var(--ink-500);font-style:italic;font-family:var(--font-display);font-variation-settings:var(--display-axes-tight);font-size:1.05rem}.btn.btn-circle,button.btn-circle{width:2rem;min-width:2rem;height:2rem;border-radius:50%;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;font-weight:600;box-sizing:border-box}.table-container tbody td:not(.actions):not(.phase-row-actions):not(.icon-actions-cell)>*+*{margin-left:.5rem}.table-container tbody td.phase-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.table-container tbody td.icon-actions-cell{display:flex;flex-wrap:nowrap;align-items:center;gap:.5rem;vertical-align:middle}.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1.25rem}.form-actions>*{margin-left:0}.modal-overlay .form-actions,.modal .form-actions{padding-top:1rem;border-top:1px solid var(--hairline)}@media(prefers-reduced-motion:no-preference){.app-main>*{animation:page-reveal .38s cubic-bezier(.2,.8,.2,1) both}}@keyframes page-reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}*{scrollbar-width:thin;scrollbar-color:var(--ink-300) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--ink-300);border-radius:8px}*::-webkit-scrollbar-thumb:hover{background:var(--ink-500)}
