@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";:root{--font-heading:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--color-primary-hue:224;--color-primary:hsl(var(--color-primary-hue), 85%, 58%);--color-primary-hover:hsl(var(--color-primary-hue), 85%, 52%);--color-primary-light:hsl(var(--color-primary-hue), 90%, 96%);--color-primary-glow:hsla(var(--color-primary-hue), 85%, 58%, .15);--color-success:#1eb857;--color-success-light:#edfcf3;--color-warning:#f59f0a;--color-warning-light:#fef7eb;--color-danger:#f43e5c;--color-danger-light:#feecef;--bg-app:#f4f6fa;--bg-surface:#fff;--bg-card:#fffc;--bg-sidebar:#0f172a;--text-main:#0f172a;--text-muted:#64748b;--text-light:#94a3b8;--text-white:#fff;--border-color:#e2e8f0;--border-light:#fff6;--border-radius-sm:8px;--border-radius-md:14px;--border-radius-lg:20px;--shadow-sm:0 2px 4px #00000005, 0 1px 2px #00000008;--shadow-md:0 10px 25px -5px #0f172a0d, 0 8px 16px -6px #0f172a08;--shadow-lg:0 20px 40px -10px #0f172a14, 0 12px 20px -8px #0f172a0d;--shadow-glow:0 0 25px var(--color-primary-glow);--shadow-sidebar:5px 0 30px #00000026;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-main);letter-spacing:-.02em;font-weight:600}button,input,select,textarea{font-family:inherit;font-size:inherit;outline:none}.app-container{width:100vw;min-height:100vh;display:flex;overflow:hidden}.app-sidebar{background-color:var(--bg-sidebar);width:280px;color:var(--text-white);box-shadow:var(--shadow-sidebar);z-index:10;flex-direction:column;flex-shrink:0;justify-content:space-between;padding:24px 16px;display:flex;position:relative}.sidebar-header{border-bottom:1px solid #ffffff1a;align-items:center;gap:12px;padding:8px 12px 24px;display:flex}.logo-icon{border-radius:var(--border-radius-sm);background:linear-gradient(135deg, var(--color-primary), #6366f1);width:40px;height:40px;font-size:20px;font-weight:800;font-family:var(--font-heading);justify-content:center;align-items:center;display:flex;box-shadow:0 4px 15px #6366f166}.logo-text{font-family:var(--font-heading);background:linear-gradient(90deg,#fff,#cbd5e1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:20px;font-weight:700}.sidebar-nav{flex-direction:column;flex-grow:1;gap:8px;margin-top:32px;display:flex}.nav-link{border-radius:var(--border-radius-sm);color:var(--text-light);cursor:pointer;transition:var(--transition-fast);align-items:center;gap:12px;padding:12px 16px;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{color:var(--text-white);background-color:#ffffff0a}.nav-link.active{color:var(--text-white);background:linear-gradient(135deg, var(--color-primary), hsla(var(--color-primary-hue), 85%, 50%, .7));font-weight:600;box-shadow:0 4px 12px #2563eb40}.sidebar-footer{border-top:1px solid #ffffff1a;align-items:center;gap:12px;padding-top:20px;display:flex}.user-avatar{object-fit:cover;background-color:#ffffff1a;border:2px solid #fff3;border-radius:50%;width:44px;height:44px}.user-info{flex-direction:column;flex-grow:1;display:flex;overflow:hidden}.user-name{color:var(--text-white);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.user-email{color:var(--text-light);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.logout-btn{color:var(--text-light);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;display:flex}.logout-btn:hover{color:var(--color-danger);background-color:#ef44441a}.app-main{flex-direction:column;flex-grow:1;height:100vh;display:flex;overflow:hidden}.app-header{background-color:var(--bg-surface);border-bottom:1px solid var(--border-color);height:72px;box-shadow:var(--shadow-sm);z-index:5;justify-content:space-between;align-items:center;padding:0 32px;display:flex}.header-title-container{flex-direction:column;display:flex}.header-subtitle{color:var(--text-muted);font-size:12px}.app-content{flex-grow:1;padding:32px;position:relative;overflow-y:auto}.glass-panel{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);transition:var(--transition-normal);border:1px solid #ffffff73;padding:24px}.glass-panel:hover{box-shadow:var(--shadow-lg);border-color:#ffffffb3}.btn{border-radius:var(--border-radius-sm);cursor:pointer;transition:var(--transition-normal);border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--color-primary), #4f46e5);color:var(--text-white);box-shadow:0 4px 15px #2563eb33}.btn-primary:hover{background:linear-gradient(135deg, var(--color-primary-hover), #4338ca);box-shadow:0 6px 20px #2563eb4d, var(--shadow-glow);transform:translateY(-1px)}.btn-secondary{background-color:var(--bg-surface);color:var(--text-main);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background-color:var(--bg-app);border-color:var(--text-light);transform:translateY(-1px)}.btn-danger{background-color:var(--color-danger);color:var(--text-white);box-shadow:0 4px 10px #ef444426}.btn-danger:hover{background-color:#f2183c;transform:translateY(-1px);box-shadow:0 6px 15px #ef444440}.btn-icon{cursor:pointer;color:var(--text-muted);transition:var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:8px;display:flex}.btn-icon:hover{color:var(--text-main);background-color:#0f172a0d}.form-group{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.form-label{color:var(--text-main);font-size:13px;font-weight:600}.form-control{border-radius:var(--border-radius-sm);border:1px solid var(--border-color);background-color:var(--bg-surface);transition:var(--transition-fast);color:var(--text-main);padding:12px 16px}.form-control:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.proposals-list-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.proposals-table{border-collapse:collapse;width:100%;margin-top:16px}.proposals-table th{text-align:left;color:var(--text-muted);border-bottom:2px solid var(--border-color);padding:14px 18px;font-size:13px;font-weight:600}.proposals-table td{color:var(--text-main);border-bottom:1px solid var(--border-color);vertical-align:middle;padding:18px;font-size:14px}.proposals-table tr:hover td{background-color:#0f172a03}.badge{text-transform:uppercase;border-radius:50px;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-draft{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-finalized{background-color:var(--color-success-light);color:var(--color-success)}.badge-pending{color:#f59e0b;background-color:#f59e0b1a}.badge-danger{color:#ef4444;background-color:#ef44441a}.badge-booked{color:#2563eb;background-color:#2563eb1a}.proposal-number-link{color:var(--color-primary);cursor:pointer;font-size:15px;font-weight:700;transition:color .15s,-webkit-text-decoration .15s,text-decoration .15s;display:inline-block}.proposal-number-link:hover{color:var(--color-primary-hover);text-decoration:underline}.wizard-progress{justify-content:space-between;max-width:800px;margin-bottom:32px;margin-left:auto;margin-right:auto;display:flex;position:relative}.wizard-progress:before{content:"";background-color:var(--border-color);z-index:1;height:3px;position:absolute;top:18px;left:30px;right:30px}.wizard-progress-bar{background:linear-gradient(to right, var(--color-primary), #6366f1);z-index:1;height:3px;transition:width var(--transition-slow);position:absolute;top:18px;left:30px}.wizard-step{z-index:2;flex-direction:column;flex:1;align-items:center;gap:8px;display:flex;position:relative}.step-indicator{background-color:var(--bg-surface);border:3px solid var(--border-color);width:40px;height:40px;color:var(--text-muted);transition:var(--transition-normal);border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.wizard-step.active .step-indicator{border-color:var(--color-primary);color:var(--color-primary);font-weight:800;box-shadow:0 0 15px #2563eb4d}.wizard-step.completed{cursor:pointer}.wizard-step.completed:hover .step-indicator{transform:scale(1.1);box-shadow:0 0 10px #10b98166}.wizard-step.completed:hover .step-label{font-weight:600;color:var(--color-success)!important}.wizard-step.completed .step-indicator{border-color:var(--color-success);background-color:var(--color-success);color:var(--text-white)}.step-label{color:var(--text-muted);text-align:center;transition:var(--transition-normal);font-size:12px;font-weight:600}.wizard-step.active .step-label{color:var(--text-main);font-weight:700}.wizard-step.completed .step-label{color:var(--color-success)}.studio-container{flex-direction:column;gap:16px;height:calc(100vh - 220px);display:flex}.studio-toolbar{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--border-radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.toolbar-group{align-items:center;gap:10px;display:flex}.toolbar-select{border-radius:var(--border-radius-sm);border:1px solid var(--border-color);background-color:var(--bg-surface);color:var(--text-main);cursor:pointer;padding:8px 12px;font-size:13px;font-weight:500}.studio-workspace{flex-grow:1;gap:16px;display:flex;overflow:hidden}.drawing-palette{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--border-radius-md);flex-direction:column;flex-shrink:0;gap:12px;width:240px;padding:16px;display:flex;overflow-y:auto}.palette-title{color:var(--text-main);border-bottom:1px solid var(--border-color);margin-bottom:8px;padding-bottom:8px;font-size:14px;font-weight:700}.palette-btn{border-radius:var(--border-radius-sm);border:1px solid var(--border-color);background-color:var(--bg-surface);color:var(--text-main);cursor:pointer;transition:var(--transition-fast);text-align:left;align-items:center;gap:12px;padding:12px 14px;font-weight:500;display:flex}.palette-btn:hover{background-color:var(--bg-app)}.palette-btn.active{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.palette-btn-indicator{border-radius:50%;width:12px;height:12px;margin-left:auto}.canvas-wrapper{border:2px dashed var(--text-light);border-radius:var(--border-radius-md);background-color:#cbd5e1;flex-grow:1;justify-content:center;align-items:center;padding:20px;display:flex;position:relative;overflow:auto}#estimation-canvas{box-shadow:var(--shadow-lg);cursor:crosshair;background-color:#fff;border-radius:4px;display:block}.canvas-hint{color:var(--text-white);pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0f172ad9;border-radius:30px;padding:6px 16px;font-size:12px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.pricing-container{flex-direction:column;gap:20px;display:flex}.pricing-table-card{overflow-x:auto}.price-input{border-radius:var(--border-radius-sm);border:1px solid var(--border-color);text-align:right;width:100px;padding:8px 12px}.grand-total-section{justify-content:flex-end;margin-top:20px;display:flex}.summary-card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--border-radius-md);flex-direction:column;gap:12px;width:320px;padding:20px;display:flex}.summary-row{justify-content:space-between;font-size:14px;display:flex}.summary-row.total{border-top:2px solid var(--border-color);color:var(--color-primary);padding-top:12px;font-size:18px;font-weight:700}.pdf-view-container{grid-template-columns:1fr 340px;align-items:start;gap:24px;display:grid}.pdf-preview-pane{border-radius:var(--border-radius-lg);background-color:#f1f5f9;justify-content:center;max-height:calc(100vh - 200px);padding:40px;display:flex;overflow-y:auto;box-shadow:inset 0 2px 10px #0000000d}.pdf-document{color:#1e293b;background-color:#fff;flex-direction:column;justify-content:space-between;width:210mm;min-height:297mm;padding:20mm;font-size:12px;display:flex;position:relative;box-shadow:0 5px 25px #0000001a}.pdf-header{border-bottom:2px solid #0f172a;justify-content:space-between;margin-bottom:24px;padding-bottom:20px;display:flex}.pdf-logo{color:#0f172a;font-size:24px;font-weight:800}.pdf-meta{text-align:right}.pdf-addresses{grid-template-columns:1fr 1fr;gap:40px;margin-bottom:32px;display:grid}.address-block h4{text-transform:uppercase;color:#64748b;margin-bottom:6px;font-size:10px}.pdf-table{border-collapse:collapse;width:100%;margin-bottom:30px}.pdf-table th{text-align:left;background-color:#f8fafc;border-bottom:2px solid #cbd5e1;padding:8px 12px;font-weight:700}.pdf-table td{border-bottom:1px solid #e2e8f0;padding:10px 12px}.pdf-canvas-snapshot{object-fit:contain;background-color:#f8fafc;border:1px solid #cbd5e1;width:100%;height:240px;margin-bottom:30px}.pdf-totals{width:250px;margin-bottom:40px;margin-left:auto}.pdf-totals-row{justify-content:space-between;padding:6px 0;display:flex}.pdf-totals-row.grand{border-top:2px solid #0f172a;padding-top:10px;font-size:16px;font-weight:700}.pdf-footer{text-align:center;color:#94a3b8;border-top:1px solid #e2e8f0;padding-top:20px;font-size:10px}.auth-container{background:radial-gradient(circle at 100% 0,#1e293b,#0f172a);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:var(--border-radius-lg);text-align:center;width:440px;color:var(--text-white);background-color:#1e293bb3;border:1px solid #ffffff14;padding:40px;box-shadow:0 20px 50px #0000004d}.auth-logo{background:linear-gradient(135deg, var(--color-primary), #6366f1);border-radius:16px;justify-content:center;align-items:center;width:60px;height:60px;margin-bottom:24px;font-size:28px;font-weight:800;display:inline-flex;box-shadow:0 8px 25px #6366f166}.auth-title{color:var(--text-white);margin-bottom:8px;font-size:28px}.auth-desc{color:var(--text-light);margin-bottom:32px;font-size:14px}.auth-btn-google{background-color:var(--text-white);color:#1e293b;border-radius:var(--border-radius-sm);cursor:pointer;width:100%;transition:var(--transition-normal);border:none;justify-content:center;align-items:center;gap:12px;margin-bottom:12px;padding:14px;font-weight:600;display:flex;box-shadow:0 4px 15px #0000001a}.auth-btn-google:hover{background-color:#f8fafc;transform:translateY(-1px);box-shadow:0 6px 20px #00000026}.google-icon{width:20px;height:20px}.auth-btn-mock{color:var(--text-light);border-radius:var(--border-radius-sm);cursor:pointer;width:100%;transition:var(--transition-fast);background:0 0;border:1px solid #fff3;padding:12px;font-weight:500}.auth-btn-mock:hover{color:var(--text-white);background-color:#ffffff05;border-color:#fff6}.placeholder-container{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:calc(100vh - 180px);display:flex}.placeholder-icon{width:80px;height:80px;color:var(--text-light);background-color:var(--bg-surface);box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;margin-bottom:20px;display:flex}.settings-grid{grid-template-columns:2fr 1fr;gap:24px;display:grid}.settings-card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--border-radius-md);margin-bottom:24px;padding:24px}.settings-subtitle{color:var(--text-muted);margin-bottom:20px;font-size:14px}.log-terminal{color:#38bdf8;background-color:#0f172a;border:1px solid #334155;border-radius:8px;height:350px;margin-top:12px;padding:16px;font-family:monospace;font-size:12px;overflow-y:auto}.fade-in{animation:fadeIn var(--transition-normal) forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media print{body *{visibility:hidden}.pdf-document,.pdf-document *{visibility:visible}.pdf-document{width:210mm;height:297mm;padding:10mm;position:absolute;top:0;left:0}}
