:root{--plaster:#fafafa;--mustard:#e9c46a;--forest:#264653;--olive:#7a8b52;--bg:#f5f2ed;--bg-raised:#fff;--bg-surface:#fafafa;--bg-hover:#f0ece6;--border:#2646531a;--border-strong:#26465333;--border-active:var(--mustard);--text:var(--forest);--text-dim:#264653b3;--text-muted:#26465373;--accent:var(--mustard);--accent-hover:#d4af5a;--danger:#c1534f;--success:var(--olive);--warning:#d4943a;--shadow-soft:0 1px 2px #2646530a, 0 4px 12px #2646530f;--shadow-btn:0 2px 4px #e9c46a4d, 0 4px 12px #e9c46a33;--shadow-btn-hover:0 4px 8px #e9c46a59, 0 8px 24px #e9c46a40;--shadow-elevated:0 4px 12px #2646530d, 0 16px 40px #2646531a;--shadow-dramatic:0 8px 24px #26465314, 0 32px 64px #2646531f;--sidebar-w:300px;--header-h:56px;--toolbar-h:46px;--font-heading:"Lora", Georgia, serif;--font-body:"DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"DM Sans", monospace;--radius-pill:50px;--radius-card:12px;--radius-sm:6px;--radius-xs:4px;--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--transition-fast:.15s var(--ease-out-quart);--transition-med:.25s var(--ease-out-quart);--transition-slow:.4s var(--ease-out-expo)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5;overflow:hidden}.app{flex-direction:column;height:100vh;display:flex}.app-header{height:var(--header-h);background:var(--bg-raised);border-bottom:1px solid var(--border);box-shadow:var(--shadow-soft);z-index:10;flex-shrink:0;align-items:center;gap:16px;padding:0 20px;display:flex;position:relative}.app-header:after{content:"";background:linear-gradient(90deg, var(--olive) 0%, var(--mustard) 50%, var(--olive) 100%);opacity:.85;height:3px;position:absolute;bottom:-1px;left:0;right:0}.app-logo{flex-shrink:0;align-items:center;gap:10px;display:flex}.logo-icon{width:28px;height:28px}.logo-text{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--forest);transition:color var(--transition-fast);font-size:22px;font-weight:600}.app-logo:hover .logo-text{color:var(--olive)}.project-header-meta{flex-direction:column;align-items:flex-end;gap:3px;min-width:0;margin-left:auto;display:flex}.project-header-topline{align-items:center;min-width:0;display:flex}.project-header-name-btn{border:1px solid var(--border);background:var(--bg-surface);border-radius:var(--radius-pill);color:var(--text);cursor:pointer;min-width:0;max-width:320px;transition:all var(--transition-fast);align-items:center;gap:8px;padding:4px 10px;display:inline-flex}.project-header-name-btn:hover{border-color:var(--border-active);background:var(--bg-hover)}.project-header-name-text{font-family:var(--font-body);color:var(--forest);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.project-header-name-edit{color:var(--text-muted);white-space:nowrap;font-size:11px}.project-header-name-input{border:1px solid var(--border-active);border-radius:var(--radius-pill);background:var(--bg-raised);color:var(--forest);font-family:var(--font-body);min-width:180px;max-width:320px;padding:5px 10px;font-size:13px;font-weight:600}.project-header-name-input:focus{outline:none;box-shadow:0 0 0 3px #e9c46a33}.project-header-draft-label{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-dim);padding:4px 10px;font-size:12px;font-weight:600}.project-save-status{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-pill);padding:2px 8px;font-size:11px;font-weight:700}.project-save-status-idle{color:var(--text-dim);background:#26465314}.project-save-status-saving{color:#8a5a1d;background:#d4943a2e}.project-save-status-saved{color:#4a6128;background:#7a8b5233}.project-save-status-error{color:#8a2f2b;background:#c1534f29}.project-rename-error{color:var(--danger);font-size:11px;font-weight:600}.app-body{flex:1;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--bg-raised);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{background:#7a8b5240;border-radius:3px}.main-canvas{background:radial-gradient(circle at 50% 50%, #7a8b5208 0%, transparent 70%), var(--bg);flex:1;position:relative;overflow:hidden}.canvas-container{width:100%;height:100%;position:relative}.canvas-empty{z-index:1;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.canvas-empty-icon{opacity:.5;margin-bottom:16px;font-size:56px;animation:3s ease-in-out infinite breathe}.canvas-empty-title{font-family:var(--font-heading);color:var(--text-dim);letter-spacing:-.01em;font-size:24px;font-weight:500}.canvas-empty-sub{color:var(--text-muted);text-align:center;max-width:280px;margin-top:8px;font-size:14px;line-height:1.5}.zoom-indicator{background:var(--bg-raised);box-shadow:var(--shadow-soft);border-radius:var(--radius-pill);font-family:var(--font-body);color:var(--olive);pointer-events:none;border:1px solid #7a8b5233;padding:4px 12px;font-size:12px;font-weight:500;position:absolute;bottom:14px;right:14px}.toolbar{height:var(--toolbar-h);background:var(--bg-raised);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:4px;padding:0 12px;display:flex}.toolbar-group{align-items:center;gap:4px;display:flex}.toolbar-separator{background:var(--border-strong);width:1px;height:22px;margin:0 8px}.toolbar-spacer{flex:1}.tool-btn{border-radius:var(--radius-pill);color:var(--text-dim);font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:5px;padding:6px 12px;font-size:13px;font-weight:500;display:flex}.tool-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text);border-color:var(--border);transform:translateY(-1px)}.tool-btn.active{background:var(--mustard);color:var(--forest);border-color:var(--mustard);box-shadow:var(--shadow-btn), 0 0 0 3px #e9c46a26;font-weight:700;transform:translateY(-1px)}.tool-btn:disabled{opacity:.35;cursor:not-allowed}.tool-icon{font-size:16px;line-height:1}.tool-label{font-weight:inherit}.grid-size-select{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-xs);color:var(--text);font-family:var(--font-body);cursor:pointer;padding:4px 6px;font-size:12px;font-weight:500}.export-menu-container{position:relative}.export-dropdown{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-card);min-width:200px;box-shadow:var(--shadow-elevated);z-index:100;animation:fadeInUp .2s var(--ease-out-expo) both;transform-origin:100% 0;padding:6px 0;position:absolute;top:calc(100% + 6px);right:0}.export-dropdown-header{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:11px;font-weight:700;font-family:var(--font-body);padding:6px 14px 4px}.export-dropdown-item{text-align:left;width:100%;font-family:var(--font-body);color:var(--text);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:8px 14px;font-size:13px;display:block}.export-dropdown-item:hover:not(:disabled){background:var(--bg-hover);padding-left:18px}.export-dropdown-item:disabled{opacity:.4;cursor:not-allowed}.export-dropdown-divider{background:var(--border);height:1px;margin:4px 0}.floor-plan-loader{flex:1;align-items:center;min-width:0;display:flex}.floor-tabs{align-items:center;gap:4px;display:flex;overflow-x:auto}.floor-tab{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--text-dim);font-family:var(--font-body);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;display:flex}.floor-tab.active{background:var(--forest);color:var(--plaster);border-color:var(--forest);font-weight:600;box-shadow:0 2px 8px #26465340,0 0 0 3px #26465314}.floor-tab:hover:not(.active){background:var(--bg-hover);color:var(--text);border-color:var(--border-strong)}.floor-tab-cal{color:var(--olive);font-size:12px}.floor-tab.active .floor-tab-cal{color:var(--mustard)}.floor-tab-close{color:inherit;cursor:pointer;opacity:.5;background:0 0;border:none;padding:0 2px;font-size:15px;line-height:1;transition:opacity .15s}.floor-tab-close:hover{opacity:1}.floor-tab-name{cursor:default}.floor-tab-name-input{color:inherit;font:inherit;background:0 0;border:none;outline:none;width:10ch;min-width:4ch;padding:0}.add-tab{padding:6px 14px;font-size:18px}.drop-zone{cursor:pointer;flex:1;justify-content:center;align-items:center;display:flex}.drop-zone-content{color:var(--olive);align-items:center;gap:10px;display:flex}.drop-zone-icon{font-size:22px}.drop-zone-title{font-size:14px;font-weight:600}.drop-zone-sub{color:var(--text-muted);font-size:13px}.calibration-panel{border-bottom:1px solid var(--border);padding:16px 18px}.calibration-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.calibration-header h3{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.06em;color:var(--forest);padding-bottom:6px;font-size:15px;font-weight:600;position:relative}.calibration-header h3:after{content:"";background:var(--olive);border-radius:1px;width:24px;height:2px;position:absolute;bottom:0;left:0}.calibrated-badge{color:var(--olive);border-radius:var(--radius-pill);background:#7a8b5226;border:1px solid #7a8b5240;padding:2px 8px;font-size:12px;font-weight:700}.calibration-info{color:var(--text-muted);font-size:12px;font-family:var(--font-body);margin-bottom:8px;font-weight:500}.calibration-steps{flex-direction:column;gap:10px;margin-top:10px;display:flex}.cal-step{color:var(--text-dim);align-items:center;gap:10px;font-size:13px;display:flex}.cal-step-num{background:var(--bg-hover);border:1.5px solid var(--border-strong);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;transition:all .2s;display:flex}.cal-step-num.done{background:var(--olive);border-color:var(--olive);color:#fff}.cal-check{color:var(--olive);font-size:15px}.cal-pixel-dist{color:var(--text-muted);font-size:12px;font-family:var(--font-body);padding:4px 0;font-weight:500}.detected-dims{margin-top:6px}.detected-dims-label{color:var(--text-muted);margin-bottom:6px;font-size:12px;font-weight:500}.detected-dim-btn{background:var(--bg-hover);border:1px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--text);font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);margin:3px 4px 3px 0;padding:5px 12px;font-size:12px;font-weight:600;display:inline-block}.detected-dim-btn:hover{background:var(--mustard);border-color:var(--mustard);color:var(--forest);box-shadow:var(--shadow-btn);transform:translateY(-1px)}.manual-entry{margin-top:10px}.manual-entry-label{color:var(--text-muted);margin-bottom:6px;font-size:12px;font-weight:500}.manual-inputs{align-items:center;gap:8px;margin-bottom:8px;display:flex}.manual-inputs label{color:var(--text-dim);align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex}.manual-inputs input{background:var(--bg);border:1.5px solid var(--border-strong);border-radius:var(--radius-xs);width:52px;color:var(--text);font-family:var(--font-body);text-align:center;padding:5px 8px;font-size:13px;font-weight:500;transition:border-color .2s}.manual-inputs input:focus{border-color:var(--mustard);outline:none;box-shadow:0 0 0 3px #e9c46a33}.ocr-progress{margin:10px 0}.ocr-progress-label{color:var(--text-dim);margin-bottom:6px;font-size:12px;font-weight:500}.ocr-progress-bar{background:var(--bg);border-radius:3px;height:6px;overflow:hidden}.ocr-progress-fill{background:linear-gradient(90deg, var(--olive), var(--mustard));border-radius:3px;height:100%;transition:width .3s}.palette{flex-direction:column;flex:1;gap:10px;min-height:0;padding:16px 18px;display:flex}.palette-header{justify-content:space-between;align-items:center;display:flex}.palette-header h2{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.06em;color:var(--forest);padding-bottom:6px;font-size:15px;font-weight:600;position:relative}.palette-header h2:after{content:"";background:var(--mustard);border-radius:1px;width:24px;height:2px;position:absolute;bottom:0;left:0}.palette-notice{border:1px solid #e9c46a59;border-left:4px solid var(--mustard);border-radius:var(--radius-card);color:var(--text-dim);background:#e9c46a1f;align-items:flex-start;gap:8px;padding:10px 14px;font-size:12px;font-weight:500;display:flex}.palette-notice-icon{flex-shrink:0;font-size:14px}.placing-indicator{border:1.5px solid var(--mustard);border-radius:var(--radius-card);background:#e9c46a26;padding:10px 14px;box-shadow:0 0 0 3px #e9c46a14}.placing-indicator-text{color:var(--text);margin-bottom:8px;font-size:13px;font-weight:500}.placing-dims{font-family:var(--font-body);color:var(--text-dim);margin-top:3px;font-size:12px;font-weight:600;display:block}.preset-editor{background:var(--bg);border:1px solid var(--border-strong);border-left:4px solid var(--olive);border-radius:var(--radius-card);padding:12px 14px}.preset-editor-name{margin-bottom:10px;font-size:14px;font-weight:700}.dim-inputs{align-items:center;gap:8px;margin-bottom:10px;display:flex}.dim-inputs label{color:var(--text-dim);align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex}.dim-inputs input{background:var(--bg-raised);border:1.5px solid var(--border-strong);border-radius:var(--radius-xs);width:56px;color:var(--text);font-family:var(--font-body);text-align:center;padding:5px 8px;font-size:13px;font-weight:500;transition:border-color .2s}.dim-inputs input:focus{border-color:var(--mustard);outline:none;box-shadow:0 0 0 3px #e9c46a33}.dim-x{color:var(--text-muted);font-size:13px}.preset-editor-actions{gap:8px;display:flex}.palette-search{background:var(--bg);border:1.5px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--text);font-family:var(--font-body);width:100%;padding:8px 14px;font-size:13px;font-weight:500;transition:border-color .2s}.palette-search::placeholder{color:var(--text-muted)}.palette-search:focus{border-color:var(--mustard);outline:none;box-shadow:0 0 0 3px #e9c46a26}.category-tabs{flex-wrap:wrap;gap:4px;display:flex}.cat-tab{border:1px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--text-muted);font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);background:0 0;padding:5px 12px;font-size:12px;font-weight:600}.cat-tab:hover{background:var(--bg-hover);color:var(--text-dim);border-color:var(--border-strong);transform:translateY(-1px)}.cat-tab.active{background:var(--forest);color:var(--plaster);border-color:var(--forest);box-shadow:0 2px 6px #26465333,0 0 0 2px #26465314}.preset-list{flex-direction:column;flex:1;gap:2px;min-height:0;display:flex;overflow-y:auto}.preset-list::-webkit-scrollbar{width:5px}.preset-list::-webkit-scrollbar-track{background:0 0}.preset-list::-webkit-scrollbar-thumb{background:#7a8b5233;border-radius:3px}.preset-item{border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-body);cursor:pointer;text-align:left;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;align-items:center;gap:10px;padding:8px 10px;font-size:13px;font-weight:500;display:flex}.preset-item:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border);transform:translate(3px)}.preset-item.active{border-color:var(--mustard);box-shadow:inset 3px 0 0 var(--mustard);background:#e9c46a24}.preset-item:disabled{opacity:.35;cursor:not-allowed}.preset-swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px;box-shadow:inset 0 0 0 1px #0000001a}.preset-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.preset-dims{font-family:var(--font-body);color:var(--text-muted);flex-shrink:0;font-size:11px;font-weight:600}.selected-panel{border:1px solid #7a8b5226;border-left:4px solid var(--olive);border-radius:var(--radius-card);background:#7a8b520a;margin-top:auto;padding:14px}.selected-panel-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.selected-panel-header h3{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.06em;color:var(--forest);font-size:12px;font-weight:600}.name-input{background:var(--bg-raised);border:1.5px solid var(--border-strong);border-radius:var(--radius-xs);width:100%;color:var(--text);font-family:var(--font-body);padding:6px 10px;font-size:14px;font-weight:600;transition:border-color .2s}.name-input:focus{border-color:var(--mustard);outline:none;box-shadow:0 0 0 3px #e9c46a33}.selected-dims{font-family:var(--font-body);color:var(--text);margin-top:8px;font-size:13px;font-weight:600}.selected-dims-inches{color:var(--text-muted);margin-left:6px;font-size:11px;font-weight:500}.selected-rotation{font-family:var(--font-body);color:var(--text-dim);margin-top:4px;font-size:12px;font-weight:500}.selected-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.btn-sm{border-radius:var(--radius-pill);font-family:var(--font-body);cursor:pointer;border:1.5px solid #0000;padding:6px 14px;font-size:12px;font-weight:700;transition:all .2s}.btn-primary{background:var(--mustard);color:var(--forest);border-color:var(--mustard);box-shadow:var(--shadow-btn)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-btn-hover);transform:translateY(-2px)}.btn-primary:active:not(:disabled){box-shadow:var(--shadow-btn);transform:translateY(0)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{color:var(--text-dim);border-color:var(--border-strong);background:0 0}.btn-ghost:hover{color:var(--forest);border-color:var(--forest);background:#2646530d}.btn-danger{color:var(--danger);background:0 0;border-color:#c1534f4d}.btn-danger:hover{border-color:var(--danger);background:#c1534f14}.btn-cancel{color:var(--text-dim);border-color:var(--border-strong);background:0 0}.btn-cancel:hover{background:var(--bg-hover);color:var(--text)}.btn-icon{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px;font-size:16px;line-height:1;transition:color .15s}.btn-icon:hover{color:var(--text)}.auth-loading{background:var(--bg);justify-content:center;align-items:center;height:100vh;display:flex}.auth-spinner{border:3px solid #e9c46a40;border-top-color:var(--mustard);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.auth-page{background:radial-gradient(ellipse at 30% 20%, #7a8b5214 0%, transparent 50%), radial-gradient(ellipse at 70% 80%, #e9c46a0f 0%, transparent 50%), var(--bg);justify-content:center;align-items:center;height:100vh;padding:24px;display:flex}.auth-card{background:var(--bg-raised);border:1px solid var(--border);box-shadow:var(--shadow-dramatic);text-align:center;width:100%;max-width:420px;animation:fadeInUp .6s var(--ease-out-expo) both;border-radius:20px;padding:56px 48px}.auth-logo{width:72px;height:72px;animation:fadeIn .8s var(--ease-out-expo) .2s both;margin-bottom:28px}.auth-title{font-family:var(--font-heading);color:var(--forest);letter-spacing:-.02em;animation:fadeInUp .6s var(--ease-out-expo) .15s both;margin-bottom:8px;font-size:2rem;font-weight:600}.auth-subtitle{color:var(--text-dim);animation:fadeInUp .6s var(--ease-out-expo) .25s both;margin-bottom:36px;font-size:1rem;line-height:1.6}.auth-btn{border-radius:var(--radius-pill);width:100%;font-family:var(--font-body);cursor:pointer;transition:all var(--transition-med);justify-content:center;align-items:center;gap:10px;padding:14px 24px;font-size:.95rem;font-weight:600;display:flex}.auth-btn-google{background:var(--bg-raised);color:var(--forest);border:2px solid var(--border-strong);animation:fadeInUp .6s var(--ease-out-expo) .35s both}.auth-btn-google:hover{border-color:var(--forest);box-shadow:var(--shadow-elevated);transform:translateY(-2px)}.auth-divider{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;animation:fadeInUp .6s var(--ease-out-expo) .45s both;align-items:center;margin:24px 0;font-size:.75rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-divider span{padding:0 14px}.auth-btn-guest{color:var(--text-dim);border:1px solid var(--border);animation:fadeInUp .6s var(--ease-out-expo) .5s both;background:0 0}.auth-btn-guest:hover{color:var(--text);border-color:var(--border-strong);transform:translateY(-1px)}.auth-footnote{color:var(--text-muted);animation:fadeIn .8s var(--ease-out-expo) .6s both;margin-top:28px;font-size:.8rem;line-height:1.5}.user-menu{flex-shrink:0;margin-left:10px;position:relative}.user-avatar-btn{border:1px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;color:var(--text);font-family:var(--font-body);background:0 0;align-items:center;gap:8px;padding:4px 12px 4px 4px;font-size:.85rem;transition:all .15s;display:flex}.user-avatar-btn:hover{border-color:var(--border-strong);background:var(--bg-hover)}.user-avatar{object-fit:cover;border-radius:50%;width:28px;height:28px}.user-avatar-fallback{background:var(--olive);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:600;display:flex}.user-dropdown{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-elevated);z-index:100;min-width:260px;animation:fadeInUp .2s var(--ease-out-expo) both;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.user-dropdown-item{text-align:left;width:100%;font-family:var(--font-body);color:var(--text);cursor:pointer;background:0 0;border:none;padding:10px 16px;font-size:.85rem;transition:background .1s;display:block}.user-dropdown-item:hover{background:var(--bg-hover)}.user-dropdown-bmc{background:color-mix(in srgb, var(--bg-hover) 42%, transparent);padding:10px 14px 8px}.user-dropdown-bmc .bmc-btn{box-sizing:border-box;max-width:100%;width:100%!important;min-width:0!important}.user-dropdown-divider{background:var(--border);height:1px}.guest-sign-in-btn{background:var(--mustard);color:var(--forest);border-radius:var(--radius-pill);font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);border:none;margin-left:auto;padding:6px 16px;font-size:.8rem;font-weight:600}@media (width<=1200px){.project-header-name-edit{display:none}.project-header-name-btn,.project-header-name-input{max-width:220px}}@media (width<=980px){.project-header-meta{display:none}.user-menu{margin-left:auto}}.guest-sign-in-btn:hover{background:var(--accent-hover);box-shadow:var(--shadow-btn);transform:translateY(-1px)}.project-picker{flex-direction:column;flex:1;align-items:center;padding:48px 24px;display:flex;overflow-y:auto}.project-picker-loading{color:var(--text-dim);margin-top:48px;font-size:.95rem}.project-picker-header{justify-content:space-between;align-items:center;width:100%;max-width:600px;margin-bottom:24px;display:flex}.project-picker-title{font-family:var(--font-heading);color:var(--forest);letter-spacing:-.02em;font-size:1.6rem;font-weight:600}.project-picker-empty{color:var(--text-dim);text-align:center;flex-direction:column;align-items:center;gap:24px;margin-top:48px;font-size:.95rem;display:flex}.sample-card{background:var(--bg-raised);border-radius:var(--radius-card);cursor:pointer;transition:all var(--transition-med);text-align:left;font-family:var(--font-body);color:var(--forest);border:2px dashed #7a8b5259;align-items:center;gap:16px;padding:20px 28px;display:flex}.sample-card:hover{border-color:var(--olive);background:var(--bg-raised);box-shadow:var(--shadow-elevated);border-style:solid;transform:translateY(-2px)}.sample-card-icon{font-size:2rem;line-height:1}.sample-card-text{flex-direction:column;gap:2px;display:flex}.sample-card-text strong{font-size:1rem;font-weight:600}.sample-card-text small{color:var(--text-muted);font-size:.82rem}.project-list{flex-direction:column;gap:8px;width:100%;max-width:600px;display:flex}.project-archive-section{width:100%;max-width:600px;margin-top:24px}.project-archive-title{font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;font-size:.82rem;font-weight:700}.project-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-card);cursor:pointer;transition:all var(--transition-med);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.project-card:hover{border-color:#7a8b524d;border-left:3px solid var(--olive);box-shadow:var(--shadow-elevated);transform:translateY(-2px)}.project-card-archived{cursor:default;opacity:.82;background:var(--bg-surface)}.project-card-archived:hover{border-color:var(--border);border-left:1px solid var(--border);box-shadow:none;transform:none}.project-card-info{flex-direction:column;gap:2px;display:flex}.project-card-name{font-family:var(--font-body);color:var(--forest);font-size:1rem;font-weight:600}.project-card-date{color:var(--text-muted);font-size:.8rem}.project-card-actions{gap:4px;display:flex}.project-rename-input{font-family:var(--font-body);color:var(--forest);border:1px solid var(--border-active);border-radius:var(--radius-xs);outline:none;padding:2px 6px;font-size:1rem;font-weight:600}.shared-view{background:var(--bg);flex-direction:column;height:100vh;display:flex}.shared-header{height:var(--header-h);background:var(--bg-raised);border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:0 20px;display:flex}.shared-project-name{font-family:var(--font-heading);color:var(--forest);font-size:1.1rem;font-weight:600}.shared-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg);border-radius:var(--radius-pill);border:1px solid var(--border);padding:2px 10px;font-size:.75rem;font-weight:600}.shared-canvas{flex:1;overflow:hidden}.shared-error{text-align:center;height:100%;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.shared-error h2{font-family:var(--font-heading);color:var(--forest);font-size:1.4rem}
