.portal-sticky{position:sticky;top:0;z-index:100;pointer-events:none}.portal-sticky>*{pointer-events:auto}.devbar{background:var(--olive-900);color:#fff;font-family:var(--font-mono);font-size:12px}.devbar .row{display:flex;align-items:center;gap:12px;padding:10px 20px;flex-wrap:wrap}.devbar .dtag{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--lime-400);white-space:nowrap}.devbar .phase{padding:3px 10px;border-radius:var(--r-full);background:#ffffff1a;color:var(--stone-300);white-space:nowrap}.devbar .toggle{display:flex;align-items:center;gap:7px;padding:6px 12px;border-radius:var(--r-full);background:#ffffff14;color:#fff;white-space:nowrap;-webkit-user-select:none;user-select:none}.devbar .toggle:hover{background:#ffffff26}.devbar .toggle .dot{width:8px;height:8px;border-radius:50%;background:#ffffff40;transition:background .15s}.devbar .toggle.on .dot{background:var(--lime-400)}.devbar .spacer{flex:1}.elvy-header{display:flex;justify-content:center;padding:12px 16px;pointer-events:none}.elvy-header .pill{pointer-events:auto;display:flex;align-items:center;gap:20px;min-width:0;background:#333427cc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--r-full);padding:10px 12px 10px 24px;color:#fff;min-height:56px;max-width:1080px;width:100%}.elvy-header .wordmark{display:block;height:20px;width:auto}.elvy-header .navlabel{font-size:14px;color:var(--stone-300);white-space:nowrap}.elvy-header .spacer{flex:1}@media(max-width:900px){.elvy-header .navlabel.optional{display:none}.elvy-header .pill{gap:12px;padding:8px 10px 8px 18px}}.elvy-header .navlabel.link{cursor:pointer}.elvy-header .navlabel.link:hover{color:#fff}.portal-main{max-width:1080px;margin:0 auto;padding:24px 16px 96px;display:flex;flex-direction:column;gap:16px}.portal-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;align-items:start}.portal-grid .col{display:flex;flex-direction:column;gap:16px;min-width:0}@media(max-width:860px){.portal-grid{grid-template-columns:1fr}}.heroact{margin-top:20px;background:var(--lime-400);border-radius:var(--r-xs);padding:16px 18px}.heroact .hatitle{font-size:15px;margin-bottom:10px;display:flex;align-items:center;gap:8px}.heroact .hachips{display:flex;gap:8px;flex-wrap:wrap}.heroact .hachip{display:inline-flex;align-items:center;gap:8px;background:#fff;border-radius:var(--r-full);padding:9px 16px;font-size:14px;color:var(--olive-900);text-decoration:none;border:1px solid var(--hairline)}.heroact .hachip:hover{background:var(--sage-50)}.heroact.none{background:var(--sage-100)}.heroact.none .hatitle{margin-bottom:0;color:var(--olive-700)}.progresswrap{margin-top:18px}.progress-track{height:6px;border-radius:var(--r-full);background:var(--sage-200);overflow:hidden}.progress-fill{height:100%;border-radius:var(--r-full);background:var(--lime-500);transition:width .5s ease}.progress-meta{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--stone-600)}.taskrow{display:flex;align-items:flex-start;gap:14px;padding:16px;border-radius:var(--r-xs);background:var(--sage-100);margin-top:10px}.taskrow.done{background:var(--sage-50);border:1px solid var(--hairline)}.taskrow .tcheck{flex:none;width:26px;height:26px;border-radius:8px;border:1px solid var(--border-strong);background:#fff;display:grid;place-items:center;margin-top:2px;color:#fff}.taskrow.done .tcheck{background:var(--olive-900);border-color:var(--olive-900)}.taskrow .tbody{flex:1;min-width:0}.taskrow .ttitle{font-size:16px}.taskrow.done .ttitle{color:var(--stone-600);text-decoration:line-through;text-decoration-color:var(--stone-300)}.taskrow .tdesc{font-size:14px;color:var(--stone-600);margin-top:2px}.tact{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.tlh{position:relative;display:flex;overflow-x:auto;margin-top:14px;padding:4px 2px 10px;scrollbar-width:thin}.tlh .tstep{flex:0 0 150px;position:relative;padding:26px 16px 0 0}.tlh .tstep:before{content:"";position:absolute;top:11px;left:22px;right:-2px;height:2px;background:var(--sage-200)}.tlh .tstep:last-child:before{display:none}.tlh .tdot{position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;border:2px solid var(--sage-300);background:#fff}.tlh .tstep.done .tdot{background:var(--olive-900);border-color:var(--olive-900)}.tlh .tstep.current .tdot{background:var(--lime-400);border-color:var(--olive-900)}.tlh .tltitle{font-size:14px;line-height:1.3}.tlh .tstep.current .tltitle{font-size:15px}.tlh .tstep.future .tltitle{color:var(--stone-600)}.tlh .tlsub{font-size:12px;color:var(--stone-600);margin-top:2px}.datebox{display:flex;align-items:center;gap:16px;background:var(--sage-100);border-radius:var(--r-xs);padding:18px;margin:14px 0}.choicechips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.choicechips .chip.choice{cursor:pointer;padding:8px 16px}.choicechips .chip.sel{background:var(--olive-900);color:#fff}.checkrow{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--sage-100);border-radius:var(--r-field);padding:14px 16px;margin-top:10px;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;text-align:left}.checkrow .ind{flex:none;width:24px;height:24px;border-radius:6px;border:1px solid var(--border-strong);background:#fff;display:grid;place-items:center;color:#fff}.checkrow .ind.round{border-radius:50%}.checkrow.on .ind{background:var(--olive-900);border-color:var(--olive-900)}.checkrow .cbody{flex:1}.checkrow .csub{font-size:13px;color:var(--stone-600)}.placegrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px}.placecard{border:1px solid var(--hairline);border-radius:var(--r-xs);overflow:hidden;background:var(--sage-50)}.placecard .ph{height:110px;background:linear-gradient(160deg,var(--sage-200),var(--sage-300));display:grid;place-items:center;color:var(--olive-700);font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.placecard .pb{padding:12px 14px}.placecard .pb .sub{font-size:12px;color:var(--stone-600)}.filerow{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--sage-100);border-radius:var(--r-field);margin-top:8px;font-size:14px}.filerow .fmeta{flex:1;min-width:0}.filerow .fsub{font-size:12px;color:var(--stone-600)}.pmwrap{display:flex;align-items:center;gap:16px;margin-top:12px}.pmwrap a{color:inherit}.avatar{flex:none;width:56px;height:56px;border-radius:50%;background:var(--sage-300);display:grid;place-items:center;font-family:var(--font-display);font-size:20px;color:var(--olive-900)}.anno{margin-top:16px;border:1.5px dashed var(--olive-700);border-radius:var(--r-xs);background:#fbfcf2;padding:14px 16px;font-family:var(--font-mono);font-size:11.5px;line-height:1.7;color:var(--olive-700);overflow-x:auto}.anno.compact{margin-top:8px;padding:8px 12px}.anno .ah{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--olive-900);margin-bottom:6px}.anno .tag{display:inline-block;border-radius:4px;padding:0 6px;margin-right:6px;font-size:10px;letter-spacing:.05em}.anno .tag.get{background:var(--sage-200);color:var(--olive-900)}.anno .tag.post{background:var(--olive-900);color:var(--lime-400)}.anno .tag.coll{background:var(--lime-400);color:var(--olive-900)}.anno .tag.trig{background:#fff;border:1px solid var(--border-strong);color:var(--olive-900)}.anno code{font-family:inherit;white-space:nowrap}.anno .arow{display:flex;gap:2px;align-items:baseline;flex-wrap:wrap;margin-top:3px}.anno .note{margin-top:6px;color:var(--stone-600)}.eventlog .ev{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--hairline);font-family:var(--font-mono);font-size:12px;align-items:baseline;flex-wrap:wrap}.eventlog .ev span{overflow-wrap:anywhere;min-width:0}.eventlog .ev:last-child{border-bottom:none}.eventlog .nid{flex:none;background:var(--olive-900);color:var(--lime-400);border-radius:4px;padding:0 6px;font-size:10.5px}.eventlog .evarrow{color:var(--stone-300)}.eventlog .evfx{color:var(--olive-700)}.elvy-footer{max-width:720px;margin:0 auto;padding:0 16px 60px;color:var(--stone-600);font-size:13px;text-align:center}.elvy-footer .fm{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-top:6px}@media(max-width:560px){.card{padding:20px}.devbar .row{padding:8px 12px;gap:8px}}.phasestrip{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 14px}.phasestrip .chip[data-state=done]{opacity:.75}.listrow .linklike{margin-top:4px;padding:0;border:0;background:none;color:var(--olive-700);text-decoration:underline;font:inherit;font-size:13px;cursor:pointer}.items{margin:0 0 10px 30px;padding:0 0 0 16px;font-size:13px;color:var(--stone-600)}.elvy-header .projectpick{background:#ffffff1f;color:inherit;border:0;border-radius:999px;padding:4px 10px;font:inherit;font-size:12px;cursor:pointer;max-width:260px;min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}.elvy-header .projectpick option{color:#2f3026}.read-only-banner{padding:12px 20px;background:#e8efbc;color:#27351b;text-align:center;font-size:14px;font-weight:600;border-bottom:1px solid #aabb7b}.read-only-banner .linklike{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}.portal.portal-admin{max-width:1180px}.admin-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:20px}.admin-filters .field{margin:0;min-width:180px}.admin-filters .btn{height:44px}.admin-table-wrap{overflow-x:auto;position:relative;margin-top:16px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{padding:12px 10px 8px;text-align:left;font:500 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--stone-600);border-bottom:1px solid var(--hairline);white-space:nowrap}.admin-table td{padding:12px 10px;vertical-align:top;border-bottom:1px solid var(--hairline)}.admin-table tbody tr:hover{background:var(--sage-100)}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums}.admin-table .sub{margin-top:2px;font-size:12px;color:var(--stone-600)}.admin-table .btn{white-space:nowrap}.admin-pager{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(max-width:1024px){.devbar{display:none}}@media(max-width:860px){.portal-header{flex-wrap:wrap}.portal-header-meta{flex-wrap:wrap;justify-content:flex-end;row-gap:8px}.tlh{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.tlh .tstep{scroll-snap-align:start}}@media(max-width:560px){.elvy-header{padding:8px}.elvy-header .pill{flex-wrap:wrap;gap:6px 10px;padding:8px 10px 8px 14px;min-height:0;border-radius:22px}.elvy-header .wordmark{height:16px;order:1}.elvy-header .spacer{order:2}.elvy-header .navlabel.link{order:4;font-size:13px}.elvy-header .projectpick{order:5;flex:1 1 100%;max-width:none;margin-top:2px}.read-only-banner{padding:10px 12px;font-size:13px}.portal,.portal-main{padding:12px 10px 64px;gap:12px}.card{padding:16px;border-radius:18px}.portal-header img{width:96px}.portal-header-meta{font-size:13px;gap:8px}.statement{font-size:clamp(22px,7vw,28px)}.tlh .tstep{flex-basis:132px}.auth-card{padding:20px}.items{margin-left:18px}}@media(max-width:860px){.admin-filters .field{flex:1 1 180px;min-width:0}}@media(max-width:720px){.admin-filters .btn{flex:1 1 100%}.admin-table-wrap{overflow:visible}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block}.admin-table thead{display:none}.admin-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px;padding:14px 0;border-bottom:1px solid var(--hairline)}.admin-table td{padding:0;border:0}.admin-table td:before{content:attr(data-label);display:block;margin-bottom:2px;font:500 10px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--stone-600)}.admin-table td[data-label=""]:before{display:none}.admin-table td.num{text-align:left}.admin-table td:first-child,.admin-table td:last-child{grid-column:1 / -1}.admin-table td:last-child .btn{width:100%}.admin-table tbody tr:hover{background:none}}@font-face{font-family:Aeonik;src:url(/fonts/Aeonik-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:ElvyDisplay;src:url(/fonts/ElvyDisplay.woff2) format("woff2");font-weight:400;font-display:swap}:root{--sage-50: #fdfcf8;--sage-100: #f3f4e9;--sage-200: #e9ecdb;--sage-300: #dbdfc7;--sage-400: #cdd2b3;--olive-900: #333427;--olive-700: #626645;--stone-600: #6f7066;--stone-300: #adaea9;--lime-400: #cff44e;--lime-500: #badc46;--red-600: #cc0f17;--blue-600: #2563eb;--hairline: rgba(0, 0, 0, .1);--border-strong: rgba(0, 0, 0, .25);--r-main: 24px;--r-xs: 16px;--r-field: 12px;--r-full: 9999px;--font-body: "Aeonik", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "ElvyDisplay", "Aeonik", sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{margin:0;min-height:100%}body{background:var(--sage-50);color:var(--olive-900);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}h1,h2,h3,p{margin:0;font-weight:400}.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone-600);margin-bottom:10px}.statement{font-family:var(--font-display);font-size:clamp(26px,5vw,36px);line-height:1.2;margin:6px 0 8px}.muted{color:var(--stone-600);font-size:14px}.error{margin:0;font-size:14px;color:var(--red-600)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--r-full);height:44px;padding:0 22px;font-size:15px;transition:background .15s;white-space:nowrap;text-decoration:none;color:inherit}.btn.primary{background:var(--lime-400);color:var(--olive-900)}.btn.primary:hover{background:var(--lime-500)}.btn.secondary{background:var(--sage-200);color:var(--olive-900)}.btn.secondary:hover{background:var(--sage-300)}.btn.tertiary{background:transparent}.btn.tertiary:hover{background:var(--sage-100)}.btn.dark{background:var(--olive-900);color:#fff}.btn.sm{height:36px;padding:0 16px;font-size:14px}.btn:disabled{opacity:.45;cursor:default}.field{margin-top:14px}.field label{display:block;font-size:13px;color:var(--olive-700);margin-bottom:6px}.field input[type=text],.field input[type=tel],.field input[type=date],.field input[type=email],.field input[type=password],.field select,.field textarea{width:100%;background:var(--sage-100);border:1px solid transparent;border-radius:var(--r-field);padding:12px 14px;outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue-600)}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-full);padding:4px 12px;font-size:13px;background:var(--sage-200)}.chip.lime{background:var(--lime-400)}.chip.outline{background:#fff;border:1px solid var(--hairline)}.card{background:#fff;border:1px solid var(--hairline);border-radius:var(--r-main);padding:24px}.card.subtle{background:var(--sage-100)}.card.limecard{background:var(--lime-400);border:none}.limecard .eyebrow{color:var(--olive-700)}.cardtitle{font-size:20px;line-height:1.3;margin-bottom:4px}.listrow{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--hairline)}.listrow:last-child{border-bottom:none}.listrow .grow{flex:1;min-width:0}.listrow .sub{font-size:13px;color:var(--stone-600)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}.dot.lime{background:var(--lime-500)}.dot.olive{background:var(--olive-700)}.dot.stone{background:var(--stone-300)}.auth{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;gap:24px}.auth .wordmark{display:block;width:160px;height:auto}.auth-card{width:100%;max-width:420px;background:#fff;border:1px solid var(--hairline);border-radius:var(--r-main);padding:28px}.auth-card .statement{margin-top:0}.auth-card form{display:flex;flex-direction:column}.auth-card .btn{margin-top:18px;width:100%}.auth-card .error{margin-top:10px}.auth-footer{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone-600);text-align:center}.portal{max-width:720px;margin:0 auto;padding:24px 16px 96px;display:flex;flex-direction:column;gap:16px}.portal-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.portal-header-meta{display:flex;gap:12px;align-items:center;font-size:14px}.portal-tabs{display:flex;gap:8px;flex-wrap:wrap}.portal-tabs button{border-radius:var(--r-full);padding:8px 16px;font-size:14px;background:var(--sage-200)}.portal-tabs button.selected{background:var(--olive-900);color:#fff}.section{background:#fff;border:1px solid var(--hairline);border-radius:var(--r-main);padding:24px}.section h2{font-size:20px;line-height:1.3;margin-bottom:10px}.section h2+.meta{margin-bottom:14px}.section h2:not(:first-child){margin-top:24px}.meta{color:var(--stone-600);font-size:13px}.thread .messages>div{padding:10px 0;border-bottom:1px solid var(--hairline)}.thread .messages>div:last-child{border-bottom:none}.compose-form{display:flex;gap:8px;margin-top:12px}.compose-form input{flex:1;background:var(--sage-100);border:1px solid transparent;border-radius:var(--r-full);padding:11px 16px;outline:none}.compose-form input:focus{border-color:var(--blue-600)}.compose-form button{border-radius:var(--r-full);background:var(--lime-400);padding:0 18px}.compose-form button:disabled{opacity:.45;cursor:default}.notice{margin-top:12px;padding:12px 14px;border-radius:var(--r-field);background:var(--sage-100);font-size:14px;color:var(--olive-700)}.notice.error{background:#fff4f4;color:var(--red-600)}.portal-loading{min-height:60vh;display:grid;place-items:center;color:var(--stone-600)}.auth-card .linklike{margin-top:10px;width:auto;height:auto;padding:0;background:none;color:var(--olive-700);text-decoration:underline;font-size:14px;align-self:flex-start}body{overflow-x:clip}img,svg,video{max-width:100%}.card,.portal,.portal-main,.portal-grid .col{min-width:0}
