:root{--paper:#f1f2ed;--surface:#fbfbf8;--ink:#173331;--body:#344846;--muted:#536863;--line:rgba(23,51,49,.16);--line-strong:rgba(23,51,49,.34);--clay:#d75a43;--clay-soft:#f4ded8;--mist:#e4ebe5;--display:Manrope,system-ui,sans-serif;--mono:"DM Mono",ui-monospace,monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1rem/1.55 var(--display)}
button,input,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.48}
a{color:inherit}
[hidden]{display:none!important}
::selection{background:var(--clay-soft)}
:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.eyebrow{display:block;font:500 .67rem/1.4 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.button{min-height:46px;border:1px solid var(--ink);border-radius:2px;padding:.7rem 1rem;display:inline-flex;align-items:center;justify-content:space-between;gap:1.4rem;text-decoration:none;font-weight:700;font-size:.88rem;transition:background .2s ease,transform .2s ease}
.button:hover:not(:disabled){transform:translateY(-2px)}
.button.primary{background:var(--ink);color:#fff}
.button.primary:hover:not(:disabled){background:#28504c}
.button.dark{background:var(--ink);color:#fff}
.button.quiet{background:transparent;border-color:var(--line-strong);color:var(--ink)}
.button.quiet:hover:not(:disabled){background:var(--mist)}
.text-link{font-size:.84rem;font-weight:700;text-underline-offset:4px}
.period{color:var(--clay)}

.login{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);background:var(--surface)}
.login-art{position:relative;min-height:100dvh;background:var(--ink);color:#a6c2b8;display:grid;place-items:center;overflow:hidden}
.login-art::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 91px,rgba(255,255,255,.035) 92px),repeating-linear-gradient(90deg,transparent 0 91px,rgba(255,255,255,.035) 92px)}
.login-art svg{width:min(86%,680px);height:auto;position:relative}
.login-art>span{position:absolute;left:7%;bottom:5%;font:500 .68rem var(--mono);letter-spacing:.17em;text-transform:uppercase;color:#d2dfd9}
.plan-lines{stroke-dasharray:1900;stroke-dashoffset:1900;animation:draw 2.1s cubic-bezier(.2,.7,.2,1) forwards}
.plan-room{opacity:0;animation:room-in .7s ease 1.5s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes room-in{to{opacity:.14}}
.login-card{width:min(440px,calc(100% - 64px));margin:auto;display:flex;flex-direction:column;align-items:flex-start;padding:4rem 0}
.wordmark{width:168px;height:auto;margin-bottom:5rem}
.login-card h1{font-size:clamp(2.5rem,4vw,3.7rem);line-height:1.03;letter-spacing:-.055em;margin:1rem 0 1rem}
.login-card p{color:var(--body);margin:0 0 2.5rem;max-width:37ch}
.login-card label{font-size:.78rem;font-weight:700;margin-bottom:.45rem}
.login-card input{width:100%;height:50px;background:#fff;border:1px solid var(--line-strong);border-radius:2px;padding:.6rem .8rem;margin-bottom:1rem}
.login-card .button{width:100%;margin-bottom:1.5rem}
.login-card .message{margin:0 0 1rem;color:#9b3e2c;font-size:.86rem}

.topbar{height:72px;border-bottom:1px solid var(--line);background:rgba(251,251,248,.96);position:sticky;top:0;z-index:20}
.topbar-inner{height:100%;display:flex;justify-content:space-between;align-items:center;padding:0 3vw;gap:2rem}
.top-brand{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.top-brand img{width:41px;height:41px;object-fit:contain}
.top-brand span{display:flex;flex-direction:column;line-height:1.15}
.top-brand b{font-size:.95rem;letter-spacing:-.05em}
.top-brand small{font:500 .56rem var(--mono);letter-spacing:.1em;color:var(--muted)}
.top-actions{display:flex;align-items:center;gap:1.8rem}
.header-link{border:0;background:none;padding:.5rem 0;text-decoration:none;font-size:.78rem;font-weight:700;color:var(--body)}
.header-link:hover{color:var(--clay)}
.install-hint{font-size:.76rem;color:var(--body);margin:.2rem 0 1rem}
.layout{display:grid;grid-template-columns:258px minmax(0,1fr);min-height:calc(100dvh - 72px)}
.sidebar{background:#e8ede7;border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.sidebar-head{padding:2.4rem 1.5rem 1.5rem;border-bottom:1px solid var(--line)}
.sidebar h2{font-size:1.45rem;letter-spacing:-.04em;line-height:1.1;margin:.7rem 0 .25rem}
.sidebar p{font-size:.8rem;color:var(--muted);margin:0 0 1.4rem}
.new-button{width:100%}
.project-list{padding:.65rem 0;flex:1}
.project-item{width:100%;background:none;border:0;border-left:3px solid transparent;text-align:left;padding:1rem 1.2rem 1rem 1.45rem;display:flex;flex-direction:column;gap:.25rem;color:var(--body)}
.project-item:hover{background:rgba(255,255,255,.5)}
.project-item.active{background:var(--surface);border-left-color:var(--clay);color:var(--ink)}
.project-item b{font-size:.82rem;line-height:1.25;overflow-wrap:anywhere}
.project-item span{font:400 .62rem var(--mono);letter-spacing:.05em;color:var(--muted)}
.project-list-empty{padding:1.2rem 1.5rem;color:var(--muted);font-size:.78rem}
.sidebar-foot{border-top:1px solid var(--line);padding:1.4rem 1.5rem 1.7rem}
.sidebar-foot p{margin:.6rem 0 1rem;line-height:1.5}
.backup-actions{display:flex;gap:.7rem;flex-wrap:wrap}
.backup-actions button,.form-link button{border:0;border-bottom:1px solid var(--line-strong);background:none;padding:.1rem 0;color:var(--ink);font-size:.72rem;font-weight:700}
.backup-actions button:hover,.form-link button:hover{border-color:var(--clay);color:var(--clay)}
.main{padding:3.2rem clamp(24px,4vw,70px) 5rem;min-width:0}
.page-heading{display:flex;justify-content:space-between;align-items:end;gap:3rem;padding-bottom:2.5rem;border-bottom:1px solid var(--line-strong);max-width:1500px;margin:0 auto 2.5rem}
.page-heading h1{font-size:clamp(2.2rem,3.6vw,4rem);letter-spacing:-.065em;line-height:1.06;margin:.5rem 0 0}
.page-heading p{color:var(--body);max-width:38ch;font-size:.86rem;margin:0 0 .3rem}
.empty-state{max-width:770px;min-height:460px;margin:4rem auto;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}
.empty-state h2{font-size:clamp(1.8rem,3vw,2.7rem);letter-spacing:-.05em;margin:.7rem 0 .1rem}
.empty-state p{color:var(--muted);margin:0 0 1.8rem}
.empty-plan{width:165px;height:130px;border:1px solid var(--ink);position:relative;margin-bottom:2.3rem;background:var(--surface)}
.empty-plan::before{content:"";position:absolute;left:48%;top:0;bottom:0;border-left:1px solid var(--ink)}
.empty-plan::after{content:"";position:absolute;left:0;right:0;top:52%;border-top:1px solid var(--ink)}
.empty-plan span:first-child{position:absolute;left:48%;right:0;top:52%;bottom:0;background:var(--clay-soft)}
.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(285px,335px);gap:1.6rem;max-width:1500px;margin:auto;align-items:start}
.editor,.summary{background:var(--surface);border:1px solid var(--line)}
.editor-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:2rem 2.2rem 1.8rem}
.editor-head h2{font-size:1.8rem;letter-spacing:-.05em;line-height:1.13;margin:.5rem 0 0;overflow-wrap:anywhere}
.quick-tools{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.7rem}.quick-tools a{font-size:.7rem;font-weight:700;text-decoration:none;border-bottom:1px solid var(--line-strong)}.quick-tools a:hover{color:var(--clay)}
.save-status{white-space:nowrap;font:400 .62rem var(--mono);color:var(--muted)}
.save-status i{display:inline-block;width:6px;height:6px;margin-right:.4rem;border-radius:50%;background:#5b8773;vertical-align:middle}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.steps button{padding:.85rem .55rem;background:none;border:0;border-right:1px solid var(--line);border-bottom:3px solid transparent;text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);white-space:nowrap}
.steps button:last-child{border-right:0}
.steps button span{font:400 .6rem var(--mono);display:block;margin-bottom:.2rem;color:var(--muted)}
.steps button[aria-current=step]{border-bottom-color:var(--clay);color:var(--ink);background:#f6f7f2}
.steps button:hover{background:var(--mist)}
.step-content{min-height:490px;padding:2.3rem 2.2rem 2.8rem}
.section-title{margin-bottom:2rem}
.section-title h3{font-size:clamp(1.55rem,2.2vw,2rem);line-height:1.14;letter-spacing:-.045em;margin:.6rem 0 .4rem}
.section-title p{color:var(--muted);font-size:.84rem;margin:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem 1.1rem}
.field{min-width:0}
.field.full{grid-column:1/-1}
.field label,.field-label{display:block;font-size:.72rem;font-weight:700;margin-bottom:.42rem;color:var(--ink)}
.field em,.field-label em{font:400 .6rem var(--mono);letter-spacing:.03em;font-style:normal;color:var(--muted);margin-left:.35rem}
.field input,.field textarea,.field select{width:100%;min-height:43px;border:1px solid var(--line-strong);border-radius:2px;background:#fff;color:var(--ink);padding:.62rem .75rem;outline:0;font-size:.84rem}
.field textarea{min-height:90px;resize:vertical;line-height:1.55}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ink);box-shadow:0 2px 0 var(--clay)}
.fee-preview{padding:.9rem 1rem;background:var(--mist);border-left:3px solid var(--clay);font-size:.78rem;color:var(--ink)}
.field input::placeholder,.field textarea::placeholder{color:#71837e}
.field small{display:block;color:var(--muted);font-size:.68rem;margin-top:.35rem}
.prefix-field,.suffix-field{display:flex;align-items:center;background:#fff;border:1px solid var(--line-strong)}
.prefix-field span,.suffix-field span{padding:0 .7rem;color:var(--muted);font-size:.78rem}
.prefix-field input,.suffix-field input{border:0;box-shadow:none!important;min-width:0}
.prefix-field:focus-within,.suffix-field:focus-within{border-color:var(--ink);box-shadow:0 2px 0 var(--clay)}
.payment-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}
.payment-grid label{font:400 .65rem var(--mono);color:var(--muted)}
.payment-grid input{margin-top:.4rem}
.editor-foot{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);padding:1.15rem 2.2rem}
.summary{position:sticky;top:96px}
.summary-plan{background:var(--ink);color:#c6ddd3;padding:1rem 1rem .75rem;position:relative;overflow:hidden}
.summary-plan svg{width:100%;height:auto;display:block}
.summary-plan>span{position:absolute;bottom:1rem;left:1.2rem;color:#e1eae4;font:400 .6rem var(--mono);letter-spacing:.12em;text-transform:uppercase}
.summary-body{padding:1.7rem 1.45rem}
.summary h2{font-size:1.35rem;letter-spacing:-.04em;line-height:1.15;margin:.55rem 0 1.3rem}
.package-list{list-style:none;margin:0 0 1.5rem;padding:0;border-top:1px solid var(--line)}
.package-list li{display:grid;grid-template-columns:22px 1fr auto;gap:.6rem;align-items:start;border-bottom:1px solid var(--line);padding:.8rem 0}
.package-list li>span,.package-list i{font:400 .6rem var(--mono);color:var(--muted);font-style:normal}
.package-list b{display:block;font-size:.74rem;line-height:1.2}
.package-list small{display:block;color:var(--muted);font-size:.64rem;line-height:1.3;margin-top:.25rem}
.readiness{min-height:2.7rem;color:var(--body);font-size:.72rem;line-height:1.4}
.readiness.ready{color:#315a4b}
.download-button{width:100%;min-height:52px}
.download-status{min-height:2rem;margin:.55rem 0 0;font-size:.72rem;color:var(--body)}
.download-status.error{color:#9b3e2c}
.project-tools{display:grid;gap:.45rem;border-top:1px solid var(--line);padding-top:1.2rem;margin-top:.5rem}
.project-tools a{display:flex;justify-content:space-between;gap:.5rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.78rem;font-weight:700;text-decoration:none}
.project-tools a:hover{color:var(--clay)}
.form-link{display:flex;flex-direction:column;align-items:start;gap:.45rem;border-top:1px solid var(--line);padding-top:1.2rem;margin-top:.5rem}
.form-link a{font-size:.77rem;font-weight:700;text-underline-offset:3px}
.form-link button{margin-top:.2rem}
.briefs{border-top:1px solid var(--line);padding-top:1.2rem;margin-top:1.4rem}
.briefs-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem}
.briefs-head button,.brief-item button{border:0;background:none;padding:.15rem 0;color:var(--ink);font-size:.7rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.brief-list{margin-top:.7rem}
.brief-list>p{margin:.4rem 0 0;font-size:.72rem;color:var(--muted)}
.brief-item{padding:.7rem 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:.6rem;align-items:start}
.brief-item b{display:block;font-size:.73rem;line-height:1.3}
.brief-item small{display:block;font:400 .59rem var(--mono);color:var(--muted);margin-top:.2rem}
.file-help,.file-status{font-size:.7rem;color:var(--muted);line-height:1.45;margin:.7rem 0}
.file-status.error{color:#9b3e2c}
.file-picker{display:inline-block;border-bottom:1px solid var(--ink);font-size:.72rem;font-weight:700;cursor:pointer}
.file-actions{display:flex;gap:.55rem;flex-shrink:0}
@media(max-width:1150px){.layout{grid-template-columns:225px minmax(0,1fr)}.editor-layout{grid-template-columns:1fr}.summary{position:static;display:grid;grid-template-columns:230px 1fr}.summary-plan{min-height:100%}.summary-plan svg{margin-top:2rem}}
@media(max-width:800px){.login{grid-template-columns:1fr}.login-art{min-height:240px;max-height:260px}.login-art svg{width:250px}.login-card{padding:2.5rem 0}.wordmark{margin-bottom:2.5rem}.layout{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.sidebar-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.2rem 1rem;padding:1.1rem 1.2rem}.sidebar-head .eyebrow,.sidebar-head p{grid-column:1/-1}.sidebar-head h2{margin:0}.sidebar-head p{margin:0}.new-button{grid-column:2;grid-row:2/4;width:auto}.project-list{display:flex;overflow-x:auto;padding:0 .5rem}.project-item{min-width:150px;width:auto;border-left:0;border-bottom:3px solid transparent;padding:.9rem .8rem}.project-item.active{border-bottom-color:var(--clay)}.sidebar-foot{display:none}.main{padding:2.2rem 1.2rem 4rem}.page-heading{align-items:start;flex-direction:column;gap:.8rem;margin-bottom:1.2rem;padding-bottom:1.5rem}.page-heading p{max-width:60ch}.summary{display:block}}
@media(max-width:540px){.topbar{height:62px}.topbar-inner{padding:0 1rem}.top-actions{gap:.8rem}.header-link{font-size:.68rem}.top-brand img{width:33px;height:33px}.top-brand small{display:none}.main{padding:1.7rem .7rem 3rem}.page-heading{padding:0 .5rem 1.4rem}.page-heading h1{font-size:2.25rem}.editor-head{padding:1.5rem 1.2rem;align-items:start}.save-status{font-size:.55rem;white-space:normal;text-align:right}.steps{overflow-x:auto;display:flex}.steps button{min-width:120px}.step-content{padding:1.6rem 1.2rem;min-height:0}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.payment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-foot{padding:1rem 1.2rem}.summary-body{padding:1.5rem 1.2rem}.sidebar-head{grid-template-columns:1fr auto}.new-button{font-size:.72rem;min-height:40px;padding:.5rem .7rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.plan-lines{stroke-dashoffset:0}.plan-room{opacity:.14}}
