@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500&display=swap";.app-header{border-bottom:1px solid var(--color-border);background-color:var(--color-surface);align-items:center;gap:.65rem;padding:.85rem 1.25rem;display:flex}.app-header__text{flex-direction:column;line-height:1.2;display:flex}.app-header__title{font-family:var(--font-display);color:var(--color-ink);font-size:1rem;font-weight:700}.app-header__subtitle{color:var(--color-ink-faint);font-size:.75rem}@media (width<=480px){.app-header{padding:.7rem 1rem}}.app-header__brand{align-items:center;gap:.7rem;display:flex}.app-header__help{border:1px solid var(--color-border);color:var(--color-ink);cursor:pointer;background:#fff;border-radius:10px;margin-left:auto;padding:.55rem .75rem;font-weight:700}.app-header__help:hover{border-color:var(--color-primary);color:var(--color-primary)}@media (width<=480px){.app-header__help span{display:none}}.app-header__version{background:var(--color-blue);color:#fff;min-width:2rem;height:1.55rem;font-family:var(--font-mono);letter-spacing:.04em;border-radius:999px;justify-content:center;align-items:center;padding:0 .48rem;font-size:.7rem;font-weight:800;display:inline-flex;box-shadow:0 3px 10px #1969be29}@media (width<=380px){.app-header__subtitle{display:none}.app-header__version{min-width:1.8rem;padding:0 .4rem}}.app-header__brand{font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.app-header__brand:focus-visible{outline:3px solid color-mix(in srgb, var(--color-blue) 35%, transparent);outline-offset:5px;border-radius:8px}.qh-backdrop{z-index:50;background:#1e253047;justify-content:flex-end;display:flex;position:fixed;inset:0}.qh-drawer{background:#fff;width:min(440px,100%);height:100%;padding:1.15rem;overflow:auto;box-shadow:-12px 0 40px #1e253024}.qh-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-bottom:1rem;display:flex}.qh-header div{flex-direction:column;display:flex}.qh-header strong{font-family:var(--font-display);font-size:1.15rem}.qh-header span{color:var(--color-ink-faint);font-size:.78rem}.qh-header button{cursor:pointer;background:0 0;border:0;font-size:1.7rem}.qh-tabs{gap:.35rem;margin:1rem 0;display:flex}.qh-tabs button,.qh-filters button{border:1px solid var(--color-border);background:var(--color-bg-muted);cursor:pointer;border-radius:999px;padding:.48rem .7rem}.qh-tabs button.active,.qh-filters button.active{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary-strong)}.qh-search{border:1px solid var(--color-border);width:100%;font:inherit;border-radius:8px;padding:.8rem}.qh-filters{flex-wrap:wrap;gap:.35rem;margin:.75rem 0 1rem;display:flex}.qh-list{gap:.65rem;margin-top:.8rem;display:grid}.qh-card{text-align:left;border:1px solid var(--color-border);cursor:pointer;background:#fff;border-radius:9px;padding:.9rem}.qh-card:hover{border-color:var(--color-primary)}.qh-card span,.qh-kicker{text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary-strong);font-size:.72rem;font-weight:700}.qh-card strong{margin:.25rem 0;display:block}.qh-card p{color:var(--color-ink-muted);margin:0;font-size:.88rem}.qh-back{color:var(--color-ink-muted);cursor:pointer;background:0 0;border:0;padding:1rem 0}.qh-detail h3{margin:.35rem 0}.qh-detail p{line-height:1.55}.qh-summary{color:var(--color-ink-muted)}.qh-meta{border-top:1px solid var(--color-border);color:var(--color-ink-faint);flex-direction:column;gap:.2rem;margin-top:1rem;padding-top:.8rem;font-size:.78rem;display:flex}.qh-notice{background:var(--color-primary-soft);color:var(--color-primary-strong);border-radius:8px;margin:.8rem 0;padding:.75rem;font-size:.82rem}.qh-tool{border:1px solid var(--color-border);border-radius:9px;margin:.8rem 0;padding:1rem}.qh-tool h4{margin:0 0 .35rem}.qh-tool p{color:var(--color-ink-muted);font-size:.85rem}.qh-fields{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.qh-fields label{color:var(--color-ink-muted);font-size:.75rem}.qh-fields input{border:1px solid var(--color-border);border-radius:6px;width:100%;margin-top:.25rem;padding:.6rem}.qh-action{background:var(--color-primary);color:#fff;cursor:pointer;border:0;border-radius:7px;margin-top:.7rem;padding:.65rem .8rem}.qh-empty{color:var(--color-ink-muted)}@media (width<=480px){.qh-drawer{width:100%;padding:1rem}.qh-fields{grid-template-columns:1fr}}.page-shell{background-color:var(--color-bg);flex-direction:column;min-height:100vh;display:flex}.page-shell__content{flex:1;justify-content:center;padding:2.5rem 1.5rem 4rem;display:flex}@media (width<=480px){.page-shell__content{padding:1.75rem 1.1rem 3rem}}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:1.25rem 1.35rem}.card--muted{background-color:var(--color-bg-muted);border-style:dashed}.btn{cursor:pointer;border:1.5px solid #0000;border-radius:7px;padding:.85rem 1.5rem;font-family:inherit;font-size:1rem;font-weight:600;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s}.btn:disabled{cursor:not-allowed;opacity:.5}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn--primary{background-color:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn--secondary{background-color:var(--color-bg-muted);border-color:var(--color-border);color:var(--color-ink)}.btn--secondary:hover:not(:disabled){background-color:var(--color-surface-hover);border-color:var(--color-ink-faint)}.btn--ghost{color:var(--color-ink-muted);background-color:#0000;border-color:#0000;padding-left:0;padding-right:0}.btn--ghost:hover:not(:disabled){color:var(--color-ink)}.btn--full{width:100%}.feature-card{flex-direction:column;gap:.7rem;display:flex}.feature-card__header{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.feature-card__title{font-family:var(--font-display);color:var(--color-ink);margin:0;font-size:1.1rem;font-weight:700}.feature-card__description{color:var(--color-ink-muted);margin:0 0 .4rem;font-size:.92rem;line-height:1.5}.status-badge{white-space:nowrap;border-radius:100px;align-items:center;padding:.25rem .6rem;font-size:.78rem;font-weight:600;line-height:1.3;display:inline-flex}.status-badge--neutral{background-color:var(--color-bg-muted);color:var(--color-ink-muted);border:1px solid var(--color-border)}.status-badge--success{background-color:var(--color-green-soft);color:var(--color-green)}.status-badge--warning{background-color:var(--color-primary-soft);color:var(--color-primary-strong)}.status-badge--info{background-color:var(--color-blue-soft);color:var(--color-blue)}.home-page{width:100%;max-width:460px}.home-page__hero{margin-bottom:2rem}.home-page__title{font-family:var(--font-display);color:var(--color-ink);margin:0 0 .6rem;font-size:2rem;font-weight:700;line-height:1.15}.home-page__description{color:var(--color-ink-muted);margin:0;font-size:1.05rem;line-height:1.5}.home-page__actions{flex-direction:column;gap:1rem;display:flex}.text-field{flex-direction:column;gap:.4rem;margin-bottom:1.25rem;display:flex}.text-field__label{color:var(--color-ink-muted);font-size:.9rem;font-weight:600}.text-field__input{border:1.5px solid var(--color-border);background-color:var(--color-bg);color:var(--color-ink);border-radius:6px;padding:.75rem .9rem;font-family:inherit;font-size:1rem}.text-field__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.text-field__input::placeholder{color:var(--color-ink-faint)}.new-project-page{width:100%;max-width:440px}.new-project-page__title{font-family:var(--font-display);color:var(--color-ink);margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.new-project-page__intro{color:var(--color-ink-muted);margin:0 0 1.75rem;font-size:.95rem;line-height:1.5}.new-project-page__error{color:var(--color-danger);margin:-.5rem 0 1rem;font-size:.9rem}.new-project-page__actions{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.project-page{width:100%;max-width:900px}.project-page__confirmation{color:var(--color-green);margin:0 0 .5rem;font-size:.88rem;font-weight:600}.project-page__header{flex-wrap:wrap;align-items:center;gap:.7rem;margin-bottom:.3rem;display:flex}.project-page__name{font-family:var(--font-display);color:var(--color-ink);margin:0;font-size:1.6rem;font-weight:700}.project-page__created-at{font-family:var(--font-mono);color:var(--color-ink-faint);margin:0 0 1.75rem;font-size:.82rem}.project-page__section{margin-bottom:1.5rem}.project-page__section h3,.config-card h3,.materials h3{margin:0 0 .35rem}.section-head,.materials-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.section-head p,.materials-head p,.config-title p,.section-copy{color:var(--color-ink-muted);margin:.25rem 0 0;line-height:1.5}.project-page__future-grid{grid-template-columns:repeat(2,1fr);gap:.8rem;margin-bottom:2rem;display:grid}.project-page__future-card{flex-direction:column;align-items:flex-start;gap:.55rem;padding:1rem 1.1rem;display:flex}.project-page__future-card h3{color:var(--color-ink-muted);margin:0;font-size:.92rem}.config-card{margin-bottom:1.4rem;padding:1.4rem}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;color:var(--color-primary);font-size:.72rem;font-weight:700}.form-grid{grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.2rem 0;display:grid}.form-grid label,.rows-grid label,.material-qty label{flex-direction:column;gap:.3rem;display:flex}.form-grid label>span,.rows-grid label>span{font-size:.9rem;font-weight:700}.form-grid small,.rows-grid small{color:var(--color-ink-faint)}input,select{font:inherit;border:1px solid var(--color-border);color:var(--color-ink);background:#fff;border-radius:9px;outline:none;padding:.7rem .75rem}input:focus,select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.rows-box{background:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:12px;padding:1rem}.rows-box p{color:var(--color-ink-muted);margin:.2rem 0}.rows-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin:1rem 0;display:grid}.rows-grid label{border:1px solid var(--color-border);background:#fff;border-radius:10px;padding:.7rem}.rows-grid input{width:100%}.validation{border-radius:8px;padding:.65rem .8rem;font-size:.88rem;font-weight:600}.validation.ok{background:var(--color-green-soft);color:var(--color-green)}.validation.error{background:var(--color-danger-soft);color:var(--color-danger)}.config-card hr{border:0;border-top:1px solid var(--color-border);margin:1.5rem 0}.prototype-note{color:#75400f;background:#fff8ef;border:1px solid #f2d2ae;border-radius:10px;flex-direction:column;gap:.25rem;margin:1rem 0;padding:.8rem 1rem;display:flex}.prototype-note span{font-size:.88rem;line-height:1.45}.config-actions{justify-content:flex-end;gap:.7rem;margin-top:1.2rem;display:flex}.materials{margin-bottom:1.5rem}.materials-head{margin-bottom:1rem}.material-list{flex-direction:column;gap:.75rem;display:flex}.material-row{grid-template-columns:auto 1fr 130px;align-items:start;gap:1rem;display:grid}.separated{color:var(--color-ink-muted);align-items:center;gap:.4rem;padding-top:.15rem;font-size:.8rem;display:flex}.separated input{accent-color:var(--color-green)}.material-name{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.material-main p{color:var(--color-ink-muted);margin:.4rem 0;font-size:.88rem;line-height:1.4}.calc-link{color:var(--color-blue);cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.material-qty{text-align:right;flex-direction:column;gap:.2rem;display:flex}.material-qty>span{color:var(--color-ink-faint);text-transform:uppercase;font-size:.72rem}.material-qty>strong{font-size:1.2rem}.material-qty label{color:var(--color-ink-muted);margin-top:.4rem;font-size:.75rem}.material-qty input{text-align:right;width:100%}.material-qty small{color:var(--color-primary);font-weight:700}.material-note{grid-column:2/4;width:100%;padding:.55rem .7rem}.calc-modal{z-index:100;background:#14192073;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.calc-dialog{background:#fff;border-radius:16px;width:100%;max-width:520px;padding:1.4rem;position:relative;box-shadow:0 20px 60px #0003}.dialog-close{cursor:pointer;background:0 0;border:0;font-size:1.5rem;position:absolute;top:.8rem;right:1rem}.calc-value{font-family:var(--font-display);color:var(--color-primary);margin:.8rem 0;font-size:2rem;font-weight:700}.calc-dialog p{color:var(--color-ink-muted);line-height:1.5}.bottom-back{margin-top:1.5rem}@media (width<=700px){.form-grid{grid-template-columns:1fr}.section-head,.materials-head{flex-direction:column;align-items:flex-start}.material-row{grid-template-columns:1fr}.separated{grid-row:1}.material-main{grid-row:2}.material-qty{text-align:left;grid-row:3;max-width:180px}.material-note{grid-area:4/1}.project-page__future-grid{grid-template-columns:1fr}.config-actions{flex-direction:column-reverse}.config-actions button{width:100%}}.quick-mode-page{width:100%;max-width:900px}.quick-mode-page__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.65rem;display:flex}.quick-mode-page__title{font-family:var(--font-display);color:var(--color-ink);margin:.2rem 0 0;font-size:1.6rem;font-weight:700}.quick-mode-page__description{color:var(--color-ink-muted);margin:0 0 1.25rem;line-height:1.55}.quick-config{padding:1.25rem}.quick-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.quick-grid label,.quick-row-inputs label{flex-direction:column;gap:.35rem;display:flex}.quick-grid label>span,.quick-row-inputs label>span{font-size:.88rem;font-weight:700}.quick-rows{background:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:12px;margin:1rem 0;padding:1rem}.quick-rows>small{color:var(--color-ink-faint);margin-top:.2rem;display:block}.quick-row-inputs{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.7rem;margin:.85rem 0;display:grid}.quick-row-inputs label{border:1px solid var(--color-border);background:#fff;border-radius:10px;padding:.65rem}.quick-validation{border-radius:8px;padding:.6rem .75rem;font-size:.86rem;font-weight:600}.quick-validation.ok{background:var(--color-green-soft);color:var(--color-green)}.quick-validation.error{background:var(--color-danger-soft);color:var(--color-danger)}.quick-grid--roof{margin-bottom:1rem;padding-top:.2rem}.quick-result{margin-top:1.5rem}.quick-result__head{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:.8rem;display:flex}.quick-result__head h3{margin:.2rem 0 0}.quick-result__head>span{color:var(--color-ink-faint);font-size:.82rem}.quick-warning{color:#75400f;background:#fff8ef;border:1px solid #f2d2ae;border-radius:10px;margin-bottom:.8rem;padding:.75rem .9rem;font-size:.85rem;line-height:1.4}.quick-materials{flex-direction:column;gap:.65rem;display:flex}.quick-material{justify-content:space-between;align-items:center;gap:1rem;display:flex}.quick-material p{color:var(--color-ink-muted);margin:.35rem 0 0;font-size:.84rem;line-height:1.4}.quick-material__qty{text-align:right;flex-direction:column;min-width:85px;display:flex}.quick-material__qty strong{font-family:var(--font-display);color:var(--color-primary);font-size:1.45rem}.quick-material__qty span{color:var(--color-ink-faint);font-size:.75rem}.quick-mode-page__footer{margin-top:1.5rem}@media (width<=700px){.quick-grid{grid-template-columns:1fr}.quick-result__head{flex-direction:column;align-items:flex-start}.quick-material{align-items:flex-start}.quick-material__qty{min-width:62px}.quick-config{padding:1rem}}@media (width<=420px){.quick-material{gap:.65rem}.quick-material p{font-size:.8rem}.quick-material__qty strong{font-size:1.25rem}}:root{--color-bg:#fff;--color-bg-muted:#f7f6f4;--color-surface:#fff;--color-surface-hover:#f1efec;--color-border:#e3e1dd;--color-ink:#1e2530;--color-ink-hover:#2a3340;--color-ink-muted:#5b6472;--color-ink-faint:#98a0ab;--color-primary:#e5720e;--color-primary-hover:#c85f09;--color-primary-strong:#b85708;--color-primary-soft:#e5720e1a;--color-blue:#2569a8;--color-blue-soft:#2569a81a;--color-green:#2a7d53;--color-green-soft:#2a7d531a;--color-danger:#b3261e;--color-danger-soft:#b3261e14;--font-display:"Space Grotesk", "IBM Plex Sans", system-ui, sans-serif;--font-body:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-ink);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{font-family:var(--font-display)}button{font-family:inherit}
