:root{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#2c3153;background:#eef0f8;font-synthesis:none;--muted: #626c88;--blue: #dff0fc;--mint: #bfeace;--orange: #f4ab28;--line: #e5e9f3}*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:inherit;text-decoration:none}button,input{font:inherit}button,summary{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}button,a,input,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #225c9b;outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.9rem,4.5vw,2.65rem);line-height:1.15;letter-spacing:-.04em;font-weight:800;overflow-wrap:anywhere}h2{font-size:1.28rem;line-height:1.35;letter-spacing:-.025em;overflow-wrap:anywhere}h3{font-size:1rem;line-height:1.4}p{line-height:1.65;overflow-wrap:anywhere}small{font-size:.8rem;line-height:1.5}ul,ol{margin:0;padding:0}.app-header{position:sticky;top:0;z-index:5;background:#e0f0faf5;border-bottom:1px solid #d6e2ec;backdrop-filter:blur(12px)}.header-inner{max-width:1080px;margin:auto;min-height:76px;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;background:var(--orange);border-radius:50%;font-size:1.35rem;font-weight:900;box-shadow:0 3px 5px #2c315315}.brand strong{display:block;font-size:1.03rem;font-weight:800}.brand small{display:block;color:var(--muted)}.app-header nav{display:flex;gap:20px;align-items:center}.nav-projects{padding:12px 0;font-size:.9rem;font-weight:650}.avatar{display:grid;place-items:center;background:var(--mint);width:46px;height:46px;border-radius:50%;font-weight:750}.main{max-width:1000px;margin:0 auto;padding:32px 24px 48px;min-height:calc(100dvh - 150px);display:flex;flex-direction:column;gap:22px}.main:focus{outline:none}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.page-heading h1{margin:8px 0 12px}.page-heading p:not(.eyebrow),.login-intro>p:not(.eyebrow){color:var(--muted)}.eyebrow{color:var(--muted);text-transform:uppercase;font-size:.75rem;font-weight:650;letter-spacing:.09em}.card{border-radius:26px;background:#fff;padding:24px;box-shadow:0 2px 3px #2c31530b,0 12px 25px #2c315304;min-width:0}.card>.eyebrow{margin-bottom:7px}.card>h2{margin-bottom:12px}.card>p+p{margin-top:10px}.card>.button{margin-top:18px}.button{display:flex;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:12px 18px;border:1px solid transparent;border-radius:16px;text-align:center;font-weight:650;color:#2c3153}.primary{background:var(--orange);box-shadow:0 3px 5px #2c315318}.primary:hover{background:#ec9f18}.secondary{background:#e6f2fb;border-color:#d4e2ee}.secondary:hover{background:#d6eafa}.small{font-size:.82rem;min-height:44px}.icon-button{flex-shrink:0;display:grid;place-items:center;width:46px;min-height:46px;border-radius:50%;border:1px solid #d6ddea;background:#ffffff80;color:#2c3153;font-size:1.5rem}.section-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-top>*{min-width:0}.badge{display:inline-block;width:fit-content;max-width:100%;border-radius:12px;font-size:.73rem;line-height:1.4;font-weight:650;padding:7px 10px;color:#44516d;background:#edf0f8;overflow-wrap:anywhere}.badge.final,.badge.sent{color:#176440;background:#dcf4e5}.badge.draft{color:#77501a;background:#fff0ce}.search-box label,form label{display:block;font-size:.88rem;font-weight:650;margin-bottom:8px}.search-input{display:flex;align-items:center;border:1px solid #d5dceb;border-radius:18px;background:#fff;padding:0 16px;gap:10px}.search-input>span{font-size:1.9rem;color:var(--muted)}.search-input input{border:0;background:transparent;padding:16px 0;width:100%;min-width:0;color:#2c3153}.search-input:focus-within{outline:3px solid #225c9b;outline-offset:3px}.search-input input:focus{outline:none}input::placeholder{color:#6d7690;font-size:.87rem}.search-box>p{margin-top:8px;font-size:.78rem;color:var(--muted)}.list-label>span{font-size:.75rem;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.project-card{display:block;transition:transform .15s,box-shadow .15s}.project-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #2c315311}.project-card h2{margin:8px 0;font-size:1.45rem}.project-title{color:var(--muted);font-size:.92rem;margin-bottom:14px}.chevron{font-size:1.35rem}.location{font-size:.87rem;color:var(--muted);margin-top:14px}.quotation-summary{background:#f0f7fc;border-radius:18px;padding:16px;margin:18px 0 14px}.quotation-summary>p:not(.eyebrow){font-size:.84rem;margin-top:5px}.summary-text{color:var(--muted)}.card-price{font-size:1.5rem;font-weight:800;display:block;margin-top:10px;letter-spacing:-.025em}.draft-hint{color:#805918;font-size:.76rem}.footnote{color:var(--muted);font-size:.75rem;margin-top:10px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.back-link{width:fit-content;min-height:44px;display:flex;align-items:center;font-size:.88rem}.tabs{display:flex;flex-wrap:wrap;gap:10px}.tabs a{min-height:44px;border:1px solid #d8ddec;border-radius:24px;background:#ffffff80;display:flex;align-items:center;padding:10px 18px;font-size:.9rem;font-weight:650}.tabs a[aria-current]{background:#fff;box-shadow:0 2px 3px #2c315315}.meta{margin:18px 0 0}dl{margin:0}.meta div{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid var(--line)}.meta div:last-child{border-bottom:0}dt{color:var(--muted);font-size:.85rem}dd{margin:0;overflow-wrap:anywhere;line-height:1.55}.meta a{text-decoration:underline;text-underline-offset:3px;display:inline-flex;align-items:center;min-height:44px}.pricing{background:var(--mint)}.pricing dl{margin-top:18px}.pricing dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin:12px 0}.pricing dd{text-align:right;font-weight:650}.pricing dt,.pricing small{color:#3b6253}.pricing .total{border-top:1px solid #9ed3b6;margin-top:18px;padding-top:18px}.total dt{color:#2c3153;font-weight:750}.total dd{font-size:clamp(1.5rem,5vw,2rem);font-weight:850;letter-spacing:-.04em}.system-summary{margin-top:14px;font-size:1.05rem}.notice{padding:16px 18px;border-radius:18px;background:#dbf0e5;color:#285840;font-size:.88rem;line-height:1.6;overflow-wrap:anywhere}.warning{background:#fff1cf;color:#765016}.error{border:1px solid #e8c8c5}.error p{margin:10px 0}.error small{color:var(--muted)}.version-list{list-style:none;margin-top:16px}.version-row{display:flex;gap:14px;align-items:center;min-height:62px;padding:12px 14px;border-radius:18px;font-size:.85rem}.version-row.selected{background:var(--blue)}.version-row .chevron{margin-left:auto}.dot{width:10px;height:10px;border-radius:50%;background:#95dab3;flex-shrink:0}.selected .dot{background:var(--orange)}.count{white-space:nowrap;background:var(--blue);border-radius:18px;padding:6px 10px;font-size:.76rem}.item-list{list-style:none;margin-top:14px}.item-list li{display:flex;align-items:flex-start;gap:12px;padding:22px 0;border-bottom:1px solid var(--line)}.item-list li:last-child{border-bottom:0;padding-bottom:0}.item-index{font-size:.85rem;font-weight:800;color:#008452;margin-top:3px}.item-body{flex:1;min-width:0}.item-body h3{overflow-wrap:anywhere}.item-body>p{font-size:.78rem;color:var(--muted);margin-top:3px}.quantity{padding:8px 12px;background:var(--blue);border-radius:18px;font-size:1rem;text-align:center;min-width:60px;max-width:35%;overflow-wrap:anywhere}.quantity small{font-size:.72rem}details{margin-top:12px}summary{min-height:44px;align-content:center;font-size:.85rem;font-weight:600}details p{margin-top:8px;color:var(--muted);font-size:.9rem}.preserve{white-space:pre-wrap}.empty{text-align:center;padding:24px 0}.empty h1,.empty h2{margin-bottom:12px}.empty p{color:var(--muted);margin-bottom:16px}.empty-symbol{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--blue);font-size:2rem;margin-bottom:18px}.load-more{align-self:center;min-width:200px}.text-link{font-size:.85rem;min-height:44px;display:flex;align-items:center;text-decoration:underline}.skeletons{display:grid;gap:20px}.skeleton{height:160px;background:linear-gradient(110deg,#fff 8%,#f7f9fc 18%,#fff 33%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position-x:-200%}}.app-footer{padding:20px 24px 28px;color:var(--muted);font-size:.72rem;max-width:1000px;margin:auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}.login-main{max-width:1080px}.login-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:64px;padding:24px 0}.login-intro h1{margin:14px 0 20px;font-size:clamp(2.3rem,5vw,3.5rem)}.login-form-wrap{display:flex;flex-direction:column;gap:20px;min-width:0}.login-form-wrap .card>p{color:var(--muted);font-size:.9rem}form{margin-top:24px}form input{width:100%;min-height:50px;padding:12px 16px;border:1px solid #d4dfed;border-radius:15px;background:#f4f9fd;color:#2c3153;margin-bottom:20px}form .button{width:100%;margin-top:18px}.device-details{margin:0}.device-details label{margin-top:12px}.intro-art{position:relative;margin-top:40px;background:#ddeefa;padding:44px 32px 28px;border-radius:32px;overflow:hidden}.sun{position:absolute;top:5px;right:24px;color:#c78006;font-size:3.7rem}.solar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;transform:skewY(-8deg);margin:16px 28px 30px 0}.solar-grid span{height:54px;background:#435777;border:3px solid #fff;border-radius:8px;background-image:linear-gradient(90deg,transparent 48%,#8093aa 49%,#8093aa 51%,transparent 52%)}.art-caption{color:#3a566c;font-size:.8rem}.install-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:18px;background:#fff;font-size:.8rem}.install-banner>span{flex:1}.mode-label{font-size:.73rem;color:#715319;background:#fff1cf;align-self:flex-start;padding:5px 12px;border-radius:12px}.skip-link{position:fixed;z-index:10;top:-100px;background:#fff;padding:16px}.skip-link:focus{top:8px;left:8px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:767px){.header-inner{min-height:70px;padding:10px 16px}.app-header nav{gap:14px}.main{padding:24px 16px 32px;gap:20px}.card{padding:22px 20px;border-radius:25px}.project-grid,.detail-grid,.login-layout{grid-template-columns:minmax(0,1fr)}.login-layout{gap:24px;padding:4px 0}.intro-art{display:none}.login-intro h1{font-size:2.4rem;margin:12px 0}.login-intro>.eyebrow{display:none}.project-card h2{font-size:1.4rem}.item-list li{gap:9px}.quantity{padding:8px 10px;min-width:54px}.app-footer{padding:16px 20px 24px}.install-banner{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.layout-stack{display:flex;flex-direction:column;gap:22px;min-width:0}.layout-stack[hidden]{display:none}.inline-items>li{display:block}.inline-line{display:flex;align-items:flex-start;gap:12px;width:100%;min-height:48px;border:0;padding:0;background:transparent;color:inherit;text-align:left;font:inherit}.inline-line:disabled{opacity:1;cursor:default}.inline-line .item-body strong{display:block;overflow-wrap:anywhere}.inline-line .item-body>span{display:block;color:var(--muted);font-size:.78rem;margin-top:3px}.inline-form{border:0;padding:16px 0 0;margin:0;display:flex;flex-direction:column;gap:14px;min-width:0}.inline-form label{display:flex;flex-direction:column;gap:6px;font-size:.88rem;font-weight:650}.inline-form input,.inline-form textarea,.inline-form select,.price-value input{width:100%;min-height:48px;border:1px solid #d4dfed;border-radius:12px;padding:10px 12px;background:#f4f9fd;color:inherit;font:inherit}.inline-form textarea{resize:vertical}.inline-form [aria-invalid=true],.price-value [aria-invalid=true]{border-color:#b42318}.inline-form small,.price-value small{color:#b42318}.inline-actions{display:flex;flex-wrap:wrap;gap:10px}.inline-actions .button{flex:1 1 90px}.price-value{display:block;max-width:220px;margin-left:auto;font-size:1rem}.price-value input{text-align:right;background:#ffffffb0}.price-edit{border:0;border-bottom:1px dashed #286447;background:transparent;color:inherit;min-height:48px;font:inherit}.text-action{display:block;min-height:44px;padding:8px 0;border:0;background:transparent;color:inherit;text-align:left;text-decoration:underline;font:inherit;font-size:.85rem}.quotation-details{margin:0}.inline-save{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border-radius:18px;background:#fff}.inline-save>span{font-size:.85rem}@media(max-width:767px){.layout-stack{gap:20px}:root{--save-height: calc(88px + env(safe-area-inset-bottom)) }.inline-save{position:fixed;left:0;right:0;bottom:0;height:var(--save-height);z-index:6;border-radius:0;border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.main:has(.inline-save){flex:none;height:calc(100dvh - 71px - var(--save-height));min-height:0;overflow-y:auto}body:has(.inline-save) .app-footer{display:none}.price-value{max-width:160px}}@media(max-width:767px){body:has(.quotation-workspace){height:100dvh;overflow:hidden}#root:has(.quotation-workspace){height:100dvh;display:flex;flex-direction:column;overflow:hidden}body:has(.quotation-workspace) .app-header,body:has(.quotation-workspace) .app-footer{flex:none}.main:has(.quotation-workspace){flex:1;width:100%;min-height:0;overflow-y:auto}.main:has(.inline-save){flex:none}}.quotation-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:16px}.confirmation{border:2px solid var(--line);border-radius:16px;padding:16px;margin-top:16px;background:#fff}.pdf-view{margin-top:16px}.pdf-view iframe{width:100%;height:60dvh;border:1px solid var(--line)}.confirmation{width:min(520px,calc(100% - 32px));max-height:85dvh;overflow:auto;margin:auto}.confirmation::backdrop{background:#17234266}.customer-app{display:flex;flex-direction:column;gap:18px;max-width:920px;margin:0 auto}.customer-header{position:sticky;top:0;z-index:8;display:grid;grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:14px;padding:12px 16px;background:#f8fbf9ee;border:1px solid var(--line);border-radius:0 0 20px 20px;backdrop-filter:blur(12px)}.project-switcher{margin:0}.project-switcher span{display:block;font-size:.72rem;color:var(--muted);font-weight:700}.project-switcher select{min-height:48px;margin:2px 0 0;background:#fff}.customer-nav{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:thin}.customer-nav a{flex:0 0 auto;min-height:44px;display:flex;align-items:center;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);text-decoration:none;font-weight:700}.customer-nav a[aria-current=page]{background:var(--primary);color:#fff;border-color:var(--primary)}.contract-nav{justify-content:center}.customer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.customer-list{display:grid;gap:12px}.customer-list .card{display:grid;gap:10px}.customer-progress{display:flex;align-items:center;gap:12px;margin:10px 0 18px}.customer-progress progress{width:100%;height:12px;accent-color:var(--primary)}.customer-progress span{font-weight:800}.action-card{border-color:#f0ad4e;background:#fffaf1}.questionnaire-section{margin-bottom:12px}.questionnaire-section summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.questionnaire-section label,.customer-app form>label{display:grid;gap:6px;margin:12px 0}.customer-app input,.customer-app select,.customer-app textarea{min-height:48px}.customer-app textarea{min-height:130px}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.timeline{list-style:none;padding:0;margin:0;display:grid;gap:0}.timeline li{display:grid;grid-template-columns:28px 1fr;gap:12px;min-height:92px}.timeline li>span{width:18px;height:18px;border-radius:50%;background:#d5dadd;margin-top:3px;position:relative}.timeline li:not(:last-child)>span:after{content:"";position:absolute;left:8px;top:20px;width:2px;height:72px;background:#d5dadd}.timeline li.complete>span,.timeline li.current>span{background:var(--primary)}.timeline li.current>div{padding:12px;border-radius:14px;background:#eff8f2}.timeline p{margin:4px 0}.customer-app .button{min-height:48px}@media(max-width:700px){.main:has(.customer-app){width:100%;padding:0 14px 28px}.customer-header{grid-template-columns:auto 1fr}.customer-header>.avatar{display:none}.customer-header .brand span:last-child small{display:none}.customer-grid{grid-template-columns:1fr}.customer-nav{margin-inline:-14px;padding-inline:14px}.app-footer:has(+*){display:none}}.main:has(.customer-app),.page-content:has(.customer-app),.customer-app{width:100%;min-width:0}.customer-app{max-width:920px}.customer-app,.customer-app *{box-sizing:border-box}.customer-app .card,.customer-app .customer-list,.customer-app .customer-grid,.customer-app .section-top,.customer-app .timeline li>div{min-width:0;max-width:100%}.customer-app .card{width:100%;overflow-wrap:anywhere}.customer-app .customer-list .card{grid-template-columns:minmax(0,1fr)}.customer-app .section-top>*,.customer-app .page-heading>*,.customer-app .customer-grid>*,.customer-app .timeline li>div{min-width:0}.customer-app .timeline li{grid-template-columns:28px minmax(0,1fr)}.customer-app .customer-progress progress{flex:1;width:auto;min-width:0}.customer-app .inline-controls{display:flex;flex-wrap:wrap;gap:10px;min-width:0}.customer-app .inline-controls>*{min-width:0;max-width:100%}.customer-app input:not([type=checkbox]),.customer-app select,.customer-app textarea{width:100%;max-width:100%;min-width:0}.customer-app .file-button input{width:100%;max-width:100%}.customer-app input[type=checkbox]{width:20px;height:20px;min-height:0;margin:0;flex:none;accent-color:var(--orange)}.customer-app .attestation{display:flex;align-items:flex-start;gap:10px;line-height:1.45}.customer-header{grid-template-columns:auto minmax(0,1fr) auto}.customer-header .brand,.customer-header .project-switcher{min-width:0}.project-switcher select{width:100%;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-desktop-nav{flex-wrap:wrap;overflow:visible}.customer-desktop-switcher{min-width:0}.customer-header-actions{display:flex;align-items:center;gap:10px}.customer-menu-toggle,.customer-mobile-menu,.customer-mobile-menu[hidden]{display:none}@media(max-width:700px){.main:has(.customer-app){width:100%;max-width:none;min-height:calc(100dvh - 70px);padding:0 14px 28px}.customer-app{max-width:none;gap:16px}.customer-header{grid-template-columns:minmax(0,1fr) auto;gap:8px;min-height:64px;width:calc(100% + 28px);margin:0 -14px;padding:8px 14px;border:0;border-bottom:1px solid #d6e2ec;border-radius:0;background:#e0f0faf5}.customer-header .brand{overflow:hidden}.customer-header .brand-mark{width:42px;height:42px;font-size:1.15rem}.customer-header .brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-header .brand span:last-child small{display:block}.customer-desktop-switcher,.customer-desktop-logout{display:none}.customer-header .avatar{width:40px;height:40px}.customer-menu-toggle{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1px solid #d4e2ee;border-radius:14px;background:#fff;color:inherit}.hamburger-icon{display:grid;gap:4px}.hamburger-icon span{display:block;width:20px;height:2px;border-radius:2px;background:currentColor}.customer-mobile-menu:not([hidden]){display:grid;gap:14px;max-height:calc(100dvh - 80px);margin:-16px -14px 0;padding:16px 14px 20px;overflow-y:auto;border-bottom:1px solid var(--line);background:#f8fbf9;box-shadow:0 10px 20px #2c315318}.customer-mobile-menu .project-switcher select{min-height:44px;margin-top:4px}.customer-menu-links{display:grid;gap:5px}.customer-menu-links a{display:flex;align-items:center;min-width:0;min-height:44px;padding:10px 12px;border-radius:12px;font-size:.9rem;font-weight:650;overflow-wrap:anywhere}.customer-menu-links a[aria-current=page]{background:var(--blue)}.customer-menu-logout{width:100%}.customer-grid{grid-template-columns:minmax(0,1fr)}.customer-app .card{padding:20px 16px}.customer-app .card .button,.customer-app .inline-controls>*{width:100%}.customer-app .page-heading{min-width:0}.customer-app .page-heading h1{font-size:clamp(1.65rem,7vw,2rem)}.customer-app .questionnaire-section{padding:16px}.customer-app .customer-nav{display:none}body:has(.customer-app) .app-footer{display:flex;width:100%;max-width:none;padding:16px 18px 24px;font-size:.72rem}}
