@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800&display=swap";:root{--bg-start: #0b0918;--bg-mid: #120d23;--bg-end: #06040f;--text-main: #e8def6;--muted-text: #b1a6d2;--panel-bg: #17122a;--panel-border: rgb(232 222 246 / 10%);--panel-border-strong: rgb(232 222 246 / 24%);--panel-shadow: 0 1px 2px rgb(2 1 8 / 24%), 0 10px 28px rgb(3 2 10 / 46%);--chip-bg: #1b1530;--track-bg: #2a2345;--border-soft: rgb(232 222 246 / 18%);--row-bg: #1c1733;--surface-raised: #1a1531;--accent: #bc4dff;--accent-strong: #ff5ad1;--accent-soft: #d89cff;--accent-gradient: linear-gradient(135deg, #9f4bff 0%, #ff5ad1 100%);--quote-muted: #9f94c2;--quote-hover: #bcb1de;--text-on-accent: #1a0628;--accent-hover: #cb78ff;--accent-tint-soft: rgb(188 77 255 / 10%);--button-secondary-bg: #231c3e;--button-secondary-bg-hover: #2d2450;--button-secondary-shadow: 0 1px 2px rgb(3 2 9 / 20%), inset 0 0 0 1px rgb(232 222 246 / 8%);--error-bg: #3d1d34;--error-border: #8f4477;--error-text: #ffd0ef;--danger-border: #d06a95;--danger-border-strong: #e78ab3;--danger-text: #ffe1ef;--danger-bg: rgb(191 78 124 / 30%);--danger-bg-hover: rgb(211 89 140 / 42%);--focus-ring: rgb(188 77 255 / 30%);--input-bg: #1e1736;--modal-input-bg: #272045;--input-placeholder: #9f93c7;--accent-soft-hover: #ffd1f3;--accent-hover-shadow: 0 2px 10px rgb(13 6 27 / 35%);--row-shadow: 0 1px 2px rgb(3 2 9 / 22%), 0 8px 18px rgb(4 3 10 / 28%);--row-focus-shadow: 0 2px 8px rgb(4 3 10 / 32%), 0 12px 20px rgb(4 3 10 / 26%);--danger-hover-shadow: 0 2px 8px rgb(34 9 21 / 34%);--backdrop-bg: rgb(6 4 12 / 76%);--modal-shadow: 0 2px 6px rgb(4 3 10 / 28%), 0 24px 48px rgb(4 3 10 / 62%);--chip-shadow: 0 1px 2px rgb(3 2 9 / 26%), 0 6px 14px rgb(3 2 10 / 24%);--banner-shadow: 0 1px 2px rgb(7 3 10 / 28%), 0 10px 20px rgb(9 5 13 / 26%);--scrollbar-thumb: #58408f;--radius-sm: .55rem;--radius-md: .75rem;--radius-lg: .95rem;--fs-2xs: .73rem;--fs-xs: .81rem;--fs-sm: .88rem;--fs-md: .95rem;--fs-lg: 1.02rem;--fs-progress: clamp(1.45rem, 2.3vw, 1.9rem);--fs-title: clamp(1.84rem, 2.9vw, 2.24rem);--bg-layer-top-left: radial-gradient( 700px 380px at -4% -8%, rgb(189 77 255 / 20%) 0%, rgb(189 77 255 / 0%) 58% );--bg-layer-top-right: radial-gradient( 780px 420px at 106% -10%, rgb(255 90 209 / 16%) 0%, rgb(255 90 209 / 0%) 60% );--bg-layer-bottom: radial-gradient( 940px 520px at 50% 110%, rgb(76 31 132 / 21%) 0%, rgb(76 31 132 / 0%) 66% );--bg-layer-base: linear-gradient( 165deg, var(--bg-start) 0%, var(--bg-mid) 52%, var(--bg-end) 100% );--overlay-top: radial-gradient( 120% 92% at 52% 8%, rgb(0 0 0 / 0%) 48%, rgb(6 5 12 / 46%) 100% );--overlay-bottom: linear-gradient( to bottom, rgb(8 7 15 / 0%) 0%, rgb(8 7 15 / 28%) 100% )}*,*:before,*:after{box-sizing:border-box}body{background:var(--bg-layer-top-left),var(--bg-layer-top-right),var(--bg-layer-bottom),var(--bg-layer-base);color:var(--text-main);font-family:Nunito,Segoe UI,Trebuchet MS,system-ui,sans-serif;line-height:1.42;margin:0;min-height:100vh;min-width:320px;position:relative}body:after{background:var(--overlay-top),var(--overlay-bottom);content:"";inset:0;pointer-events:none;position:fixed;z-index:0}#root{min-height:100vh;position:relative;z-index:1}h1,h2,h3{color:var(--text-main);margin:0}button,input{font:inherit}@media(max-width:720px){:root{--fs-xs: .83rem;--fs-sm: .9rem;--fs-md: .97rem}}.screen-state{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:1.25rem}.screen-state p{color:var(--muted-text);font-size:var(--fs-md);margin:0}.app-shell{margin:0 auto;max-width:1040px;padding:.85rem .9rem 1.35rem}.topbar{align-items:center;display:flex;gap:.85rem;justify-content:space-between;margin-bottom:.85rem}.brand-block{align-items:center;display:flex;flex:1;gap:.68rem;min-width:0}.app-title{background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:var(--fs-title);font-weight:800;letter-spacing:.01em;line-height:1.05;margin:0}.app-subtitle{color:var(--muted-text);font-size:var(--fs-sm);margin:.28rem 0 0}.quote-rotator{align-items:center;display:flex;flex:1;justify-content:flex-end;max-width:100%;min-height:1.25rem;min-width:0;overflow:hidden;text-align:right}.brand-block .app-subtitle{margin:0}.quote-text{color:var(--quote-muted);display:inline-block;font-style:italic;font-weight:600;max-width:100%;overflow:hidden;padding-right:.18em;text-overflow:ellipsis;transform:translateY(0);white-space:nowrap}.quote-text[data-phase=typing]{animation:quote-fade-in var(--quote-duration, .28s) ease-out both}.quote-text[data-phase=deleting]{animation:quote-fade-out var(--quote-delete-duration, .22s) ease-in both}@keyframes quote-fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes quote-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1px)}}.quote-trigger{background:transparent;border:none;cursor:pointer;padding:0;text-align:left}.quote-trigger:hover{color:var(--text-main)}.quote-trigger:hover .quote-text{color:var(--quote-hover)}.user-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.48rem;justify-content:flex-end}.email-chip{background:var(--chip-bg);border:1px solid transparent;border-radius:999px;box-shadow:var(--chip-shadow);color:var(--muted-text);font-size:var(--fs-2xs);font-weight:700;max-width:250px;overflow:hidden;padding:.22rem .55rem;text-overflow:ellipsis;white-space:nowrap}.error-banner{background:var(--error-bg);border:1px solid transparent;border-radius:var(--radius-sm);box-shadow:var(--banner-shadow);color:var(--error-text);font-size:var(--fs-sm);margin:0 0 .72rem;padding:.54rem .66rem}.content-grid{display:grid;gap:.72rem}.panel{background:var(--panel-bg);border:1px solid transparent;border-radius:var(--radius-md);box-shadow:var(--panel-shadow);padding:.85rem}.progress-card h2,.materials-panel h2,.build-panel h2{color:var(--muted-text);font-size:var(--fs-xs);font-weight:700;line-height:1.2;margin-bottom:.5rem}.progress-overview{align-items:baseline;display:flex;justify-content:space-between;margin:.26rem 0 .16rem}.progress-percent{color:var(--accent-soft);font-size:var(--fs-progress);font-weight:800;line-height:1}.progress-fraction{color:var(--muted-text);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;font-weight:700;text-align:right}.progress-track{background:var(--track-bg);border:1px solid transparent;border-radius:999px;height:.62rem;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .18s ease-out}.panel-header{align-items:center;display:flex;gap:.55rem;justify-content:space-between}.primary-button,.ghost-button,.icon-button,.step-button{border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-xs);font-weight:700;line-height:1.15;padding:.4rem .65rem;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease,color .12s ease}.primary-button{background:var(--accent);border-color:transparent;color:var(--text-on-accent)}.ghost-button,.icon-button,.step-button{background:var(--button-secondary-bg);border-color:transparent;box-shadow:var(--button-secondary-shadow);color:var(--text-main)}.primary-button:hover:not(:disabled){border-color:var(--accent-strong)}.ghost-button:hover:not(:disabled),.icon-button:hover:not(:disabled),.step-button:hover:not(:disabled){border-color:var(--accent)}.primary-button:hover:not(:disabled){background:var(--accent-hover);box-shadow:inset 0 0 0 1px var(--accent-strong),var(--accent-hover-shadow)}.ghost-button:hover:not(:disabled),.icon-button:hover:not(:disabled),.step-button:hover:not(:disabled){background:var(--button-secondary-bg-hover);box-shadow:inset 0 0 0 1px var(--accent)}.loading-copy{color:var(--muted-text);font-size:var(--fs-xs);margin:.62rem 0 0}.build-input,.quote-input,.count-input,.field-group input{background:var(--input-bg);border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-main);font-size:var(--fs-sm);min-width:0;padding:.42rem .58rem}.build-input::placeholder,.quote-input::placeholder,.count-input::placeholder,.field-group input::placeholder{color:var(--input-placeholder)}.modal-card .build-input,.modal-card .quote-input,.modal-card .count-input,.modal-card .field-group input{background:var(--modal-input-bg)}.build-input{flex:1 1 280px;min-width:150px;width:auto}.build-line{align-items:center;display:flex;flex-wrap:nowrap;gap:.44rem;margin:0;overflow-x:auto;white-space:nowrap}.build-prefix{color:var(--muted-text);flex:0 0 auto;font-size:var(--fs-xs);font-weight:700;line-height:1.15}.build-name{color:var(--accent-soft);display:inline-block;font-size:var(--fs-md);font-weight:700}.build-name-link{background:transparent;border:none;color:var(--accent-soft);cursor:pointer;display:inline-block;font-size:var(--fs-md);font-weight:700;padding:0}.build-name-link:hover{color:var(--accent-soft-hover);text-decoration:underline;text-decoration-color:var(--accent-strong);text-decoration-thickness:1px;text-underline-offset:2px}.build-modal-input{flex:1 1 auto;min-width:0;width:100%}.build-target-modal-card{max-width:520px}.quotes-list{display:grid;gap:.45rem;margin-top:.6rem}.quote-row{align-items:center;display:grid;gap:.4rem;grid-template-columns:minmax(0,1fr) auto auto}.quote-add-row{align-items:center;display:grid;gap:.4rem;grid-template-columns:minmax(0,1fr) auto;margin-top:.6rem}.quote-modal-card{max-width:680px}.quote-manager-scroll{max-height:min(44vh,380px);overflow-y:auto;padding-right:.14rem}.quote-modal-actions{margin-top:.75rem}.materials-list{display:grid;gap:.5rem;margin-top:.6rem}.material-add-row{background:var(--chip-bg);border:1px solid transparent;border-radius:var(--radius-sm);box-shadow:var(--chip-shadow);color:var(--muted-text);font-size:var(--fs-xs);font-weight:700;padding:.55rem .6rem;text-align:left}.material-add-row:hover:not(:disabled),.material-add-row:focus-visible{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--text-main);outline:none}.empty-state{background:var(--chip-bg);border:1px dashed transparent;border-radius:var(--radius-sm);box-shadow:var(--chip-shadow);color:var(--muted-text);font-size:var(--fs-sm);margin-top:.55rem;padding:.74rem;text-align:center}@media(min-width:1024px){.materials-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.materials-list .material-add-row{align-items:center;display:flex;justify-content:center;text-align:center}.materials-list .empty-state{grid-column:1 / -1;margin-top:0}}.material-row{background:var(--row-bg);border:1px solid transparent;border-radius:var(--radius-sm);box-shadow:var(--row-shadow);display:grid;gap:.44rem;padding:.62rem}.material-row-button{cursor:pointer;text-align:left;width:100%}.material-row-button:hover:not(:disabled),.material-row-button:focus-visible{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent),var(--row-focus-shadow);outline:none}.material-main{align-items:center;display:flex;gap:.45rem;justify-content:space-between}.material-heading{align-items:baseline;column-gap:.34rem;display:grid;flex:1 1 auto;grid-template-columns:minmax(0,1fr) auto;min-width:0}.material-name{color:var(--text-main);font-size:var(--fs-sm);font-weight:700}.material-figure{color:var(--muted-text);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;font-weight:700;justify-self:end;text-align:right}.icon-button{padding:.34rem .56rem}.danger-button{background:var(--danger-bg);border-color:transparent;box-shadow:inset 0 0 0 1px var(--danger-border);color:var(--danger-text)}.danger-button:hover:not(:disabled),.danger-button:focus-visible{background:var(--danger-bg-hover);border-color:var(--danger-border-strong);box-shadow:inset 0 0 0 1px var(--danger-border-strong),var(--danger-hover-shadow)}.row-progress{background:var(--track-bg);border:1px solid transparent;border-radius:999px;height:.42rem;overflow:hidden}.modal-backdrop{align-items:center;background:var(--backdrop-bg);display:flex;inset:0;justify-content:center;padding:.85rem;position:fixed;z-index:40}.modal-backdrop-dismiss{background:transparent;border:0;cursor:pointer;inset:0;padding:0;position:absolute}.modal-backdrop-dismiss:disabled{cursor:default}.modal-card{background:var(--surface-raised);border:1px solid transparent;border-radius:var(--radius-lg);box-shadow:var(--modal-shadow);max-width:390px;padding:.9rem;position:relative;width:100%;z-index:1}.modal-card h3{font-size:var(--fs-sm);font-weight:800}.modal-copy{color:var(--muted-text);font-size:var(--fs-xs);margin:.34rem 0 .56rem}.form-grid{display:grid;gap:.6rem}.field-group{display:grid;gap:.24rem}.field-group label{color:var(--muted-text);font-size:var(--fs-2xs);font-weight:700}.modal-error{color:var(--danger-text);font-size:var(--fs-xs);margin:0}.form-actions{display:flex;gap:.4rem;justify-content:flex-end}.form-actions-split .danger-button{margin-right:auto}.build-input:focus,.quote-input:focus,.count-input:focus,.field-group input:focus,.primary-button:focus-visible,.ghost-button:focus-visible,.icon-button:focus-visible,.step-button:focus-visible{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent),0 0 0 3px var(--focus-ring);outline:none}.build-name-link:focus-visible,.quote-trigger:focus-visible{border-radius:.3rem;outline:2px solid var(--accent);outline-offset:2px}.danger-button:focus-visible{border-color:var(--danger-border-strong);box-shadow:inset 0 0 0 1px var(--danger-border-strong),0 0 0 3px var(--focus-ring)}button:disabled,input:disabled{cursor:not-allowed;opacity:.56}.quote-manager-scroll::-webkit-scrollbar{width:.5rem}.quote-manager-scroll::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}@media(max-width:720px){.app-shell{padding:.62rem .62rem 1.05rem}.topbar{align-items:flex-start;flex-direction:column}.user-actions{justify-content:flex-start}.material-main{align-items:flex-start;flex-direction:column}.quote-row,.quote-add-row{grid-template-columns:1fr}.primary-button,.ghost-button,.icon-button,.step-button{padding:.45rem .68rem}}
