:root{--color-brand-primary:#545a70;--color-brand-secondary:#a0a8b2;--color-brand-neutral:#dad5d2;--color-brand-light:#f6efe9;--color-bg-page:#fff;--color-bg-sidebar:#545a70;--color-bg-sidebar-item-hover:#3f4456;--color-bg-estimate:#f6efe9;--color-bg-assistant-bubble:#f0f0f0;--color-bg-estimate-banner:#dad5d2;--color-bg-input:#fff;--color-border-sidebar:#6b7188;--color-border-sidebar-subtle:#4a4f5f;--color-border-estimate-banner:#c4bfbb;--color-border-input:#dad5d2;--color-border-card:#0000001a;--color-text-primary:#1a1a1a;--color-text-secondary:#5f5e5a;--color-text-label:#545a70;--color-text-muted:#888780;--color-text-sidebar:#fff;--color-text-sidebar-muted:#dad5d2;--color-text-sidebar-dim:#a0a8b2;--color-text-info:#545a70;--color-text-danger:#e74c3c;--color-text-on-primary:#fff;--color-primary:#545a70;--color-primary-hover:#3f4456;--color-primary-dark:#545a70;--color-primary-dark-hover:#3f4456;--font-family-base:"Montserrat", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-display:"League Spartan", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-size-base:1rem;--font-size-label:.85rem;--font-size-sidebar:.82rem;--font-size-small:.75rem;--font-size-xsmall:.7rem;--line-height-base:1.5;--sidebar-width:240px;--content-max-width-chat:800px;--content-max-width-estimate:720px;--page-padding-y:2rem;--page-padding-x:1.5rem;--radius-input:.5rem;--radius-button:.5rem;--radius-card:.75rem;--radius-bubble:1rem;--radius-sidebar-item:.4rem;--transition-fast:.15s ease}*,:before,:after{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;padding:0}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-base);background:var(--color-bg-page);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#__next{height:100%}.app-shell{height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-bg-sidebar);color:var(--color-text-sidebar);flex-direction:column;flex-shrink:0;padding:.75rem .5rem;display:flex}.sidebar-logo{justify-content:center;align-items:center;margin-bottom:.75rem;padding:.5rem 0;display:flex}.sidebar-main{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar-title{margin:0 0 .75rem .5rem;font-size:.95rem}.sidebar-search-input{width:100%;font-size:var(--font-size-small);border-radius:var(--radius-sidebar-item);border:1px solid var(--color-bg-sidebar-item-hover);color:var(--color-text-sidebar);background:#2a2a2a;outline:none;margin-bottom:.5rem;padding:.4rem .5rem;font-family:inherit}.sidebar-search-input::placeholder{color:var(--color-text-sidebar-dim)}.sidebar-nav{flex-direction:column;gap:.1rem;margin-bottom:.5rem;display:flex}.sidebar-nav-link{text-align:left;color:var(--color-text-sidebar);border-radius:var(--radius-sidebar-item);cursor:pointer;font-size:var(--font-size-label);background:0 0;border:none;padding:.4rem .5rem;font-family:inherit}.sidebar-nav-link.active,.sidebar-nav-link:hover{background:var(--color-bg-sidebar-item-hover)}.sidebar-new-btn{color:var(--color-text-sidebar);border:1px solid var(--color-border-sidebar);border-radius:var(--radius-sidebar-item);cursor:pointer;font-size:var(--font-size-small);text-align:left;background:0 0;margin-bottom:.5rem;padding:.4rem .5rem;font-family:inherit}.sidebar-new-btn:hover{background:var(--color-bg-sidebar-item-hover)}.sidebar-list{flex-direction:column;flex:1;gap:.05rem;display:flex;overflow-y:auto}.sidebar-empty{font-size:var(--font-size-small);color:#666;margin:0 .5rem}.sidebar-item-row{align-items:center;gap:.25rem;display:flex;position:relative}.sidebar-item{text-align:left;color:var(--color-text-sidebar);border-radius:var(--radius-sidebar-item);cursor:pointer;font-size:var(--font-size-sidebar);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;flex:1;padding:.35rem .5rem;font-family:inherit;overflow:hidden}.sidebar-item.active,.sidebar-item-row:hover .sidebar-item{background:var(--color-bg-sidebar-item-hover)}.sidebar-item-edit{color:var(--color-text-tertiary);cursor:pointer;opacity:0;background:0 0;border:none;align-items:center;padding:.25rem .5rem;font-size:14px;transition:opacity .15s;display:inline-flex}.sidebar-item-row:hover .sidebar-item-edit{opacity:1}.sidebar-item-edit:hover{color:var(--color-text-primary)}.sidebar-item-edit-input{border:1px solid var(--color-border-secondary);background:var(--color-background-primary);color:var(--color-text-primary);border-radius:4px;flex:1;padding:.5rem;font-family:inherit;font-size:13px}.sidebar-item-edit-input:focus{border-color:var(--color-text-info);outline:none;box-shadow:0 0 0 2px #175fa526}.sidebar-rename-input{color:#fff;background:0 0;border:1px solid #fff3;border-radius:4px;padding:4px 8px}.sidebar-item-duplicate,.sidebar-item-delete{cursor:pointer;opacity:0;color:#fff;background:0 0;border:none;align-items:center;margin-left:4px;padding:4px;transition:opacity .15s;display:inline-flex}.sidebar-item-row:hover .sidebar-item-duplicate,.sidebar-item-row:hover .sidebar-item-delete{opacity:.6}.sidebar-item-duplicate:hover,.sidebar-item-delete:hover{opacity:1}.sidebar-footer{font-size:var(--font-size-small);color:var(--color-text-sidebar-muted);border-top:1px solid var(--color-border-sidebar-subtle);margin-top:.5rem;padding:.5rem}.sidebar-user-email{word-break:break-all;margin:0 0 .4rem}.sidebar-signout-btn{width:100%;color:var(--color-text-sidebar);border:1px solid var(--color-border-sidebar);border-radius:var(--radius-sidebar-item);cursor:pointer;font-size:var(--font-size-small);background:0 0;padding:.35rem;font-family:inherit}.sidebar-signout-btn:hover{background:var(--color-bg-sidebar-item-hover)}.main-content{flex:1;overflow-y:auto}.form-group{margin-bottom:1rem}.form-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem;margin-bottom:1rem;display:grid}.form-label{font-size:var(--font-size-label);color:var(--color-text-label);margin-bottom:.35rem;display:block}.form-input,.form-select,.form-textarea{width:100%;font-family:inherit;font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-input);border:1px solid var(--color-border-input);border-radius:var(--radius-input);transition:border-color var(--transition-fast);outline:none;padding:.5rem .65rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary)}.form-textarea{resize:vertical;min-height:90px;line-height:var(--line-height-base)}.form-checkbox-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-bottom:1rem;display:grid}.form-checkbox-label{font-size:var(--font-size-label);border:1px solid var(--color-border-input);border-radius:var(--radius-input);cursor:pointer;align-items:center;gap:.5rem;padding:.5rem .65rem;display:flex}.btn{font-family:inherit;font-size:var(--font-size-base);border-radius:var(--radius-button);cursor:pointer;transition:background var(--transition-fast), transform .1s;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:500;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-text-on-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-dark{background:var(--color-primary-dark);color:var(--color-text-on-primary)}.btn-dark:hover:not(:disabled){background:var(--color-primary-dark-hover)}.btn-full{width:100%;padding:.85rem 1rem}.btn-ghost{color:var(--color-text-primary);border:1px solid var(--color-border-input);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-bg-estimate)}.btn-icon{color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-button);background:0 0;border:none;padding:.5rem}.btn-icon:hover{background:var(--color-bg-assistant-bubble)}.btn-secondary{color:var(--color-text-primary);border:1px solid var(--color-border-secondary);background:0 0}.btn-secondary:hover{background:var(--color-background-secondary)}.estimate-output{background:var(--color-bg-estimate);border-radius:var(--radius-card);border:1px solid var(--color-border-card);margin-top:1.5rem;padding:1.5rem}.estimate-output-header{border-bottom:1px solid var(--color-border-card);justify-content:space-between;align-items:baseline;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.estimate-project-name{color:var(--color-text-primary);font-size:1.1rem;font-weight:500}.estimate-meta{font-size:var(--font-size-small);color:var(--color-text-muted)}.markdown-body{line-height:var(--line-height-base)}.markdown-body p{margin:.5em 0}.markdown-body p:first-child{margin-top:0}.markdown-body p:last-child{margin-bottom:0}.markdown-body ul,.markdown-body ol{margin:.5em 0;padding-left:1.25em}.markdown-body li{margin:.2em 0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{margin:.75em 0 .4em;font-weight:600;line-height:1.3}.markdown-body h1{font-size:1.4rem}.markdown-body h2{font-size:1.2rem}.markdown-body h3{font-size:1.05rem}.markdown-body h4{font-size:1rem}.markdown-body code{background:#0000000f;border-radius:.25rem;padding:.1em .3em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.markdown-body pre{border-radius:var(--radius-input);background:#0000000f;margin:.75em 0;padding:.75rem;overflow-x:auto}.markdown-body pre code{background:0 0;padding:0}.markdown-body blockquote{border-left:3px solid var(--color-border-input);color:var(--color-text-secondary);margin:.75em 0;padding-left:1em}.markdown-body strong{font-weight:600}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-muted{color:var(--color-text-muted)}.text-small{font-size:var(--font-size-small)}.stack{flex-direction:column;gap:.75rem;display:flex}.chat-page{width:100%;height:100vh;padding:var(--page-padding-y) var(--page-padding-x);flex-direction:column;display:flex}.chat-heading{margin:0 0 1rem}.chat-messages{max-width:var(--content-max-width-chat);flex-direction:column;flex:1;gap:.75rem;width:100%;margin:0 auto 1rem;display:flex;overflow-y:auto}.chat-bubble{border-radius:var(--radius-bubble);word-wrap:break-word;max-width:70%;padding:.6rem 1rem}.chat-bubble-user{background:var(--color-primary);color:var(--color-text-on-primary);align-self:flex-end}.chat-bubble-assistant{background:var(--color-bg-assistant-bubble);color:var(--color-text-primary);align-self:flex-start}.chat-bubble-image{border-radius:var(--radius-input);max-width:100%;display:block}.chat-input-stack{z-index:5;margin-left:calc(-1 * var(--page-padding-x));margin-right:calc(-1 * var(--page-padding-x));padding:.75rem var(--page-padding-x);padding-bottom:calc(env(safe-area-inset-bottom) + .75rem);background:var(--color-bg-page);border-top:1px solid var(--color-border-card);-webkit-backdrop-filter:blur(8px);flex-shrink:0;margin-bottom:-1.5rem;position:sticky;bottom:0;box-shadow:0 -2px 12px #0000000f}.chat-attachment{background:var(--color-bg-assistant-bubble);border-radius:var(--radius-input);font-size:var(--font-size-label);justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.chat-attachment-remove{cursor:pointer;font-size:var(--font-size-label);color:var(--color-text-secondary);background:0 0;border:none}.chat-input-row{gap:.5rem;display:flex}.chat-attach-btn{color:var(--color-text-primary);border-radius:var(--radius-input);border:1px solid var(--color-border-input);cursor:pointer;background:var(--color-bg-page);transition:var(--transition-fast);justify-content:center;align-items:center;padding:.75rem;font-size:1.6rem;font-weight:600;display:flex}.chat-attach-btn:hover{color:var(--color-primary);transform:scale(1.08)}.chat-text-input{min-width:0;font-size:var(--font-size-base);border-radius:var(--radius-input);border:1px solid var(--color-border-input);outline:none;flex:1;padding:.75rem;font-family:inherit}.chat-text-input:focus{border-color:var(--color-primary)}.chat-input-row .btn{padding:.75rem 1.5rem}.chat-bubble .markdown-body p{margin:0 0 .5rem}.chat-bubble .markdown-body p:last-child{margin-bottom:0}.chat-bubble .markdown-body h1,.chat-bubble .markdown-body h2,.chat-bubble .markdown-body h3{margin:.5rem 0 .25rem;font-size:1rem}.estimate-page{max-width:var(--content-max-width-estimate);padding:var(--page-padding-y) var(--page-padding-x);margin:0 auto}.estimate-form-title{margin:0 0 1.5rem}.estimate-view-title{margin:0 0 .5rem}.estimate-view-date{font-size:var(--font-size-label);color:var(--color-text-muted);margin:0 0 1.5rem}.form-spaced{margin-bottom:1rem}.form-textarea{resize:vertical;font-family:inherit}.form-grid-2{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.estimate-checkbox-row{flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;display:flex}.estimate-checkbox-label{font-size:var(--font-size-label);cursor:pointer;align-items:center;gap:.5rem;display:flex}.estimate-photo-section{margin-bottom:1rem}.estimate-photo-btn{border:1px solid var(--color-border-input);border-radius:var(--radius-input);background:var(--color-bg-estimate);cursor:pointer;padding:.5rem 1rem;font-size:.9rem;display:inline-block}.estimate-photo-btn:hover{background:var(--color-bg-assistant-bubble)}.estimate-photo-filename{font-size:var(--font-size-label);color:var(--color-text-secondary);margin:.5rem 0 0}.estimate-generate-btn{margin-bottom:1.5rem}.estimate-discuss-btn{margin-bottom:1.5rem;padding:.6rem 1rem;font-size:.9rem}.estimate-details-card{background:var(--color-bg-page);border:1px solid var(--color-border-input);border-radius:var(--radius-input);margin-bottom:1.5rem;padding:1rem;font-size:.9rem}.estimate-details-card p{margin:0 0 .5rem}.estimate-details-card p:last-child{margin-bottom:0}.estimate-details-image{border-radius:var(--radius-input);max-width:100%;margin-top:.5rem;display:block}.estimate-output{background:var(--color-bg-estimate);border:1px solid var(--color-border-input);border-radius:var(--radius-card);margin-top:0;padding:1.5rem;font-size:.95rem;line-height:1.6}.login-page{min-height:100vh;font-family:var(--font-family-base);background:var(--color-bg-page);color:var(--color-text-primary);padding:var(--page-padding-y) var(--page-padding-x);flex-direction:column;justify-content:center;align-items:center;display:flex}.login-title{color:var(--color-text-primary);margin:0}.login-subtitle{margin:var(--page-padding-x) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:var(--line-height-base)}.login-button{margin-top:var(--page-padding-x)}@media (max-width:768px){.app-shell{display:block}.sidebar{z-index:1000;width:280px;transition:transform .3s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay{z-index:999;opacity:0;pointer-events:none;background:#00000080;transition:opacity .3s;position:fixed;inset:0}.sidebar-overlay.visible{opacity:1;pointer-events:auto}.mobile-header{background:var(--color-bg-page);border-bottom:1px solid var(--color-border-card);justify-content:space-between;align-items:center;padding:1rem;display:flex}.mobile-header-title{margin:0;font-size:1.1rem;font-weight:500}.hamburger-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:4px;padding:8px;display:flex}.hamburger-btn span{background:var(--color-text-primary);width:24px;height:2px;display:block}.main-content{width:100%;min-height:100dvh;padding:0}.chat-page{flex-direction:column;height:100dvh;padding:0 1rem 1rem;display:flex}.chat-heading{display:none}.chat-messages{flex:1;margin-top:1rem;overflow-y:auto}.chat-bubble{max-width:85%}.chat-input-stack{padding-bottom:max(2rem, env(safe-area-inset-bottom));bottom:env(safe-area-inset-bottom,0)}.form-grid-2{grid-template-columns:1fr}.estimate-checkbox-row{flex-direction:column;align-items:flex-start}.form-input,.form-select,.chat-text-input{font-size:16px}}.chat-input-row{width:100%}.chat-text-input{min-width:0}.estimate-page{padding:1rem}@media (min-width:769px){.mobile-header,.hamburger-btn,.sidebar-overlay{display:none!important}}
