@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:#ff6568;--color-red-500:#fb2c36;--color-red-600:#e40014;--color-green-100:#dcfce7;--color-green-700:#008138;--color-green-800:#016630;--color-blue-500:#3080ff;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5dc;--color-gray-400:#99a1af;--color-gray-500:#6a7282;--color-gray-600:#4a5565;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-xs:.125rem;--radius-sm:.25rem;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-400:lab(63.7053% 60.7449 31.3109);--color-red-500:lab(55.4814% 75.0732 48.8528);--color-red-600:lab(48.4493% 77.4328 61.5452);--color-green-100:lab(96.186% -13.8464 6.52362);--color-green-700:lab(47.0329% -47.0239 31.4788);--color-green-800:lab(37.4616% -36.7971 22.9692);--color-blue-500:lab(54.1736% 13.3368 -74.6839);--color-gray-50:lab(98.2596% -.247031 -.706708);--color-gray-100:lab(96.1596% -.082314 -1.13575);--color-gray-200:lab(91.6229% -.159085 -2.26791);--color-gray-300:lab(85.1236% -.612259 -3.7138);--color-gray-400:lab(65.9269% -.832707 -8.17474);--color-gray-500:lab(47.7841% -.393212 -10.0268);--color-gray-600:lab(35.6337% -1.58697 -10.8425)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.w-full{width:100%}.max-w-\[120px\]{max-width:120px}.min-w-0{min-width:0}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-100{background-color:var(--color-green-100)}.p-3{padding:calc(var(--spacing) * 3)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-4{padding-top:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-red-400{color:var(--color-red-400)}.uppercase{text-transform:uppercase}@media (hover:hover){.hover\:text-blue-500:hover{color:var(--color-blue-500)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-red-600:hover{color:var(--color-red-600)}}@media (min-width:48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}:root{--primary:#0f172a;--primary-light:#1e293b;--accent:#3b82f6;--accent-hover:#2563eb;--accent-glow:#3b82f626;--gold:#f59e0b;--gold-light:#fbbf24;--surface:#fff;--surface-alt:#f8fafc;--surface-dark:#0f172a;--glass:#ffffffd9;--glass-border:#fff3;--border:#e2e8f0;--border-hover:#cbd5e1;--text:#0f172a;--text-light:#f8fafc;--text-muted:#64748b;--text-soft:#94a3b8;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--radius:12px;--radius-sm:8px;--radius-xs:6px;--shadow-sm:0 1px 3px #00000014;--shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-glow:0 0 20px #3b82f626;--transition:all .2s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}body{background:var(--surface-alt);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:Inter,Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px}.hero-bg{background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#334155 100%);position:relative;overflow:hidden}.hero-bg:before{content:"";opacity:.08;pointer-events:none;background:url(https://images.unsplash.com/photo-1631679706909-1844bbd07221?w=1920&q=80) 50%/cover no-repeat;position:absolute;inset:0}.hero-bg:after{content:"";pointer-events:none;background:radial-gradient(circle,#3b82f61a 0%,#0000 70%);width:600px;height:600px;position:absolute;top:-50%;right:-20%}.app-container{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-header{background:var(--primary);z-index:100;border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:10px 24px;display:flex;position:relative}.app-header:after{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:.5;height:1px;position:absolute;bottom:0;left:0;right:0}.logo{align-items:center;gap:10px;display:flex}.logo-icon{background:linear-gradient(135deg, var(--accent), #8b5cf6);border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 4px 12px #3b82f64d}.logo-icon svg{color:#fff}.logo-text h1{color:#fff;letter-spacing:-.5px;margin:0;font-size:16px;font-weight:800}.logo-text p{color:var(--text-soft);letter-spacing:.5px;text-transform:uppercase;margin:0;font-size:10px}.module-tabs{background:#ffffff0f;border:1px solid #ffffff14;border-radius:10px;gap:3px;padding:4px;display:flex}.module-tab{cursor:pointer;color:var(--text-soft);transition:var(--transition);letter-spacing:.2px;background:0 0;border:none;border-radius:8px;padding:7px 18px;font-size:12px;font-weight:600}.module-tab:hover{color:#fff;background:#ffffff0f}.module-tab.active{color:#fff;background:var(--accent);box-shadow:0 2px 8px #3b82f666}.view-controls{background:#ffffff0f;border:1px solid #ffffff14;border-radius:8px;gap:2px;padding:3px;display:flex}.view-btn{color:var(--text-soft);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:6px;padding:5px 12px;font-size:11px;font-weight:600}.view-btn:hover{color:#fff}.view-btn.active{color:#fff;background:#ffffff26;box-shadow:inset 0 1px #ffffff1a}.app-main{background:linear-gradient(#f1f5f9 0%,#e2e8f0 100%);flex:1;display:flex;overflow:hidden}.app-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:14px;width:340px;min-width:340px;padding:14px 16px;display:flex;overflow-y:auto;box-shadow:2px 0 12px #00000008}.app-sidebar::-webkit-scrollbar{width:4px}.app-sidebar::-webkit-scrollbar-track{background:0 0}.app-sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.app-content{flex:1;padding:20px 24px;overflow-y:auto}.app-content::-webkit-scrollbar{width:6px}.app-content::-webkit-scrollbar-track{background:0 0}.app-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.divider{background:linear-gradient(90deg, transparent, var(--border), transparent);height:1px;margin:2px 0}.input-panel{flex-direction:column;gap:12px;display:flex}.section-block{background:var(--surface-alt);border-radius:var(--radius);border:1px solid var(--border);transition:var(--transition);padding:12px}.section-block:hover{border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.section-title{color:var(--text);letter-spacing:.3px;margin-bottom:10px;font-size:11px;font-weight:800}.input-group{flex-direction:column;gap:3px;display:flex}.input-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:9px;font-weight:700}.input-group input,.input-group select{border:1px solid var(--border);border-radius:var(--radius-xs);width:100%;transition:var(--transition);background:var(--surface);color:var(--text);padding:6px 10px;font-size:13px;font-weight:600}.input-group input:focus,.input-group select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.input-group input:hover,.input-group select:hover{border-color:var(--border-hover)}.preset-btn{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);cursor:pointer;transition:var(--transition);text-align:center;color:var(--text-muted);padding:5px 8px;font-size:10px;font-weight:600}.preset-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-glow);transform:translateY(-1px)}.preset-btn.active{background:linear-gradient(135deg, var(--accent), #6366f1);color:#fff;border-color:#0000;box-shadow:0 2px 8px #3b82f64d}.toggle-label{cursor:pointer;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;font-weight:500;display:flex}.toggle-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);border-radius:4px}.project-manager{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);border-radius:var(--radius);color:#fff;padding:12px}.project-name-input{border-radius:var(--radius-xs);color:#fff;background:#ffffff14;border:1px solid #ffffff26;flex:1;min-width:0;padding:6px 10px;font-size:13px;font-weight:700}.project-name-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #3b82f633}.project-name-input::placeholder{color:var(--text-soft)}.client-input{border-radius:var(--radius-xs);width:100%;color:var(--text-soft);background:#ffffff0d;border:1px solid #ffffff1a;margin-top:6px;padding:5px 10px;font-size:11px}.client-input:focus{border-color:var(--accent);color:#fff;outline:none}.client-input::placeholder{color:#94a3b899}.projects-dropdown{border-radius:var(--radius-sm);background:#ffffff0d;border:1px solid #ffffff1a;max-height:180px;margin-top:10px;padding:8px;overflow-y:auto}.project-item{border-radius:var(--radius-xs);cursor:pointer;align-items:center;gap:8px;padding:6px 8px;transition:background .1s;display:flex}.project-item:hover{background:#ffffff14}.project-item.active{background:#3b82f633}.cabinet-list{background:var(--surface-alt);border-radius:var(--radius);border:1px solid var(--border);padding:10px}.cabinet-item{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);border:1px solid #0000;align-items:center;gap:8px;padding:8px 10px;display:flex}.cabinet-item:hover{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-sm)}.cabinet-item.active{background:var(--accent-glow);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.btn-sm{border-radius:var(--radius-xs);cursor:pointer;transition:var(--transition);color:#fff;background:#ffffff14;border:1px solid #ffffff26;padding:5px 10px;font-size:12px}.btn-sm:hover{background:#ffffff26}.btn-sm.btn-primary{background:linear-gradient(135deg, var(--accent), #6366f1);border-color:#0000;box-shadow:0 2px 6px #3b82f64d}.btn-sm.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.export-section{background:var(--surface-alt);border-radius:var(--radius);border:1px solid var(--border);padding:12px}.export-btn{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);cursor:pointer;transition:var(--transition);text-align:center;padding:8px 10px;font-size:11px;font-weight:600}.export-btn:hover{border-color:var(--accent);background:var(--accent-glow);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.export-btn.btn-accent{background:linear-gradient(135deg, var(--accent), #6366f1);color:#fff;border-color:#0000;box-shadow:0 2px 8px #3b82f64d}.export-btn.btn-accent:hover{transform:translateY(-1px);box-shadow:0 4px 14px #3b82f666}.section-header{align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.section-header h2{letter-spacing:-.3px;margin:0;font-size:16px;font-weight:800}.sketch-container,.production-container{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);padding:20px}.tab-btn{cursor:pointer;color:var(--text-muted);transition:var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:12px;font-weight:600}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.data-table{border-collapse:collapse;width:100%;font-size:11px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);background:var(--surface-alt);border-bottom:2px solid var(--border);white-space:nowrap;padding:8px 10px;font-size:9px;font-weight:800}.data-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:7px 10px}.data-table tr:hover td{background:#f8fafc}.data-table tfoot td{border-top:2px solid var(--border);border-bottom:none;padding-top:10px;font-size:12px}.summary-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);transition:var(--transition);flex-direction:column;gap:4px;padding:14px;display:flex}.summary-card:hover{border-color:var(--accent);box-shadow:var(--shadow), 0 0 0 2px var(--accent-glow);transform:translateY(-2px)}.summary-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;font-size:9px;font-weight:800}.summary-value{color:var(--text);letter-spacing:-.5px;font-size:22px;font-weight:900}.badge{border-radius:20px;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.badge-success{color:#065f46;background:#d1fae5}.badge-warning{color:#92400e;background:#fef3c7}@media (max-width:1024px){.app-main{flex-direction:column}.app-sidebar{width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--border);max-height:45vh}}@media (max-width:768px){.app-header{flex-wrap:wrap;gap:8px;padding:8px 12px}.view-controls{order:3;justify-content:center;width:100%}.module-tabs{order:2}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.sketch-container,.production-container{animation:.3s ease-out fadeIn}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}
:root{--bg:#f2f5f9;--panel:#fff;--panel-2:#f7f9fc;--ink:#0f172a;--ink-2:#475569;--ink-3:#94a3b8;--line:#e6eaf0;--line-strong:#d5dce6;--accent:#3b82f6;--accent-2:#6366f1;--accent-soft:#3b82f61a;--dark:#111827;--dark-2:#1f2937;--ok:#10b981;--warn:#f59e0b;--danger:#ef4444;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px #0f172a0d;--shadow:0 1px 2px #0f172a0a, 0 10px 28px #0f172a12;--shadow-lg:0 2px 6px #0f172a0f, 0 24px 48px #0f172a1a;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Plus Jakarta Sans", "Inter", system-ui, sans-serif}html,body{height:100%;margin:0;overflow:hidden}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}.app-container{background:var(--bg);height:100vh;overflow:hidden}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink)}.app-header{background:var(--dark);z-index:20;border-bottom:1px solid #ffffff0f;flex:0 0 68px;align-items:center;gap:26px;height:68px;min-height:68px;padding:0 22px;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #0f172a2e}.app-header:after{display:none}.logo{gap:11px}.logo-icon{background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:flex;box-shadow:0 6px 16px #3b82f659}.logo-text h1{color:#fff;letter-spacing:-.01em;font-size:16px;font-weight:800}.logo-text p{color:#ffffff73;text-transform:uppercase;letter-spacing:.14em;font-size:9.5px}.chapter-nav{scrollbar-width:none;flex-wrap:nowrap;align-items:center;gap:0;margin-left:auto;display:flex;overflow-x:auto}.chapter-nav::-webkit-scrollbar{display:none}.chapter-tab{color:#ffffff6b;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;padding:8px 14px 8px 10px;transition:color .18s;display:flex;position:relative}.chapter-tab+.chapter-tab:before{content:"";background:#ffffff1f;border-radius:2px;width:12px;height:1.5px;position:absolute;top:50%;left:-6px;transform:translateY(-50%)}.chapter-tab .step-badge{letter-spacing:.02em;color:#ffffff8c;background:#ffffff0a;border:1.5px solid #ffffff29;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:10.5px;font-weight:700;transition:all .18s;display:flex}.chapter-tab span:last-child{font-size:11.5px;font-weight:600}.chapter-tab:hover{color:#ffffffd9}.chapter-tab:hover .step-badge{color:#fff;border-color:#ffffff59}.chapter-tab.completed{color:#ffffff9e}.chapter-tab.completed .step-badge{color:#34d399;background:#10b98124;border-color:#10b9818c}.chapter-tab.active{color:#fff}.chapter-tab.active .step-badge{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 4px #3b82f638,0 6px 14px #3b82f666}.app-main{background:var(--bg);gap:0}.app-sidebar{background:var(--panel-2);border-right:1px solid var(--line);flex-direction:column;gap:14px;padding:18px;display:flex}.app-content{background:var(--bg);padding:22px}.v-splitter{cursor:col-resize;z-index:20;background:0 0;flex:0 0 9px;align-self:stretch;width:9px;transition:background .15s;position:relative}.v-splitter:after{content:"";background:var(--line-strong);opacity:.5;border-radius:3px;width:3px;height:46px;transition:opacity .15s,background .15s,height .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.v-splitter:hover{background:#3b82f60f}.v-splitter:hover:after,.v-splitter.dragging:after{opacity:1;background:var(--accent);height:64px}.v-splitter.dragging{background:#3b82f61a}@media (max-width:1024px){.v-splitter{display:none}}.divider{border-top:1px solid var(--line);margin:2px 0}.section-block,.panel-section>.acc,.opening-card,.library-card,.catalog-item,.offer-summary,.curved-views{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.section-block{flex-direction:column;gap:10px;padding:14px;transition:box-shadow .18s,border-color .18s;display:flex}.section-block:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}.panel-section{flex-direction:column;gap:12px;display:flex}.panel-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);padding:2px 2px 0;font-size:15px;font-weight:800}.panel-subtitle{text-transform:uppercase;letter-spacing:.11em;color:var(--ink-3);padding:6px 2px 0;font-size:10px;font-weight:700}.section-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);font-size:11.5px;font-weight:700}.panel-hint{color:var(--ink-3);font-size:11px;line-height:1.55}.panel-empty{color:var(--ink-3);border:1.5px dashed var(--line-strong);border-radius:var(--radius-sm);text-align:center;background:var(--panel-2);padding:12px;font-size:11px}.panel-warning{border-radius:var(--radius-sm);color:#92400e;background:#fffbeb;border:1px solid #fde68a;padding:10px 12px;font-size:11px;line-height:1.55}.panel-grid-2{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px;display:grid}.panel-grid-2>*{min-width:0}.panel-grid-2 .field input,.panel-grid-2 .field select,.panel-grid-2 .field textarea{width:100%;min-width:0}.panel-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-panel .field{min-width:0}.admin-panel .field>span{white-space:normal;font-size:10px;line-height:1.35}.admin-panel .field input,.admin-panel .field select,.admin-panel .field textarea{width:100%;min-width:0}.admin-panel .offer-row{font-size:11px}.acc{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.acc summary{font-family:var(--font-display);color:var(--ink);cursor:pointer;background:var(--panel);-webkit-user-select:none;user-select:none;padding:11px 14px;font-size:11.5px;font-weight:700;list-style:none;transition:background .15s}.acc summary:hover{background:var(--panel-2)}.acc summary:before{content:"▸";color:var(--accent);margin-right:7px;font-size:10px}.acc[open] summary{border-bottom:1px solid var(--line)}.acc[open] summary:before{content:"▾"}.field{color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em;flex-direction:column;gap:4px;font-size:10.5px;font-weight:600;display:flex}.field input,.field select,.field textarea,.input-group input,.input-group select,.project-name-input,.client-input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:12.5px;font-family:var(--font);color:var(--ink);background:var(--panel);text-transform:none;letter-spacing:normal;padding:8px 11px;transition:border-color .15s,box-shadow .15s}.field input:hover,.field select:hover,.field textarea:hover{border-color:#b9c4d2}.field input:focus,.field select:focus,.field textarea:focus,.input-group input:focus,.input-group select:focus,.project-name-input:focus,.client-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #3b82f629}.checkbox-field{text-transform:none;letter-spacing:normal;flex-direction:row;align-items:center;gap:9px;padding-top:4px;font-size:11.5px}.checkbox-field input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);padding:0}.option-cards{grid-template-columns:1fr 1fr;gap:8px;display:grid}.preset-grid{grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:6px;display:grid}.option-card,.preset-btn,.quick-preset{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;transition:all .16s;display:flex}.option-card b,.quick-preset b{font-family:var(--font-display);color:var(--ink);font-size:11.5px;font-weight:700}.option-card small,.quick-preset small{color:var(--ink-3);font-size:9.5px;line-height:1.4}.option-card .price{color:var(--warn);font-variant-numeric:tabular-nums;font-weight:700}.option-card:hover,.preset-btn:hover,.quick-preset:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 6px 16px #3b82f624}.option-card.active,.preset-btn.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px #3b82f621, var(--shadow-sm)}.quick-preset{background:linear-gradient(135deg,#fff,#f6f8fc)}.quick-preset:hover{border-color:var(--warn);box-shadow:0 6px 16px #f59e0b29}.quick-presets{grid-template-columns:1fr 1fr;gap:8px;display:grid}.data-table{border-collapse:separate;border-spacing:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:100%;box-shadow:var(--shadow-sm);overflow:hidden}.data-table th{background:var(--panel-2);color:var(--ink-3);text-transform:uppercase;letter-spacing:.09em;text-align:left;border-bottom:1px solid var(--line);padding:9px 12px;font-size:9.5px;font-weight:700}.data-table td{color:var(--ink-2);border-bottom:1px solid var(--line);vertical-align:middle;padding:9px 12px;font-size:12px}.data-table tbody tr:nth-child(2n) td{background:#fafbfd}.data-table tbody tr:hover td{background:var(--accent-soft)}.data-table tfoot td{background:var(--panel-2);border-top:1.5px solid var(--line-strong);color:var(--ink);border-bottom:none;font-weight:700}.data-table.compact td,.data-table.compact th{overflow-wrap:anywhere;padding:6px 7px;font-size:10.5px}.hw-table{table-layout:fixed}.hw-table th:first-child{width:24px}.hw-table th:nth-child(3){width:56px}.hw-table th:nth-child(4){width:28px}.hw-table th:nth-child(5){width:64px}.table-scroll{border-radius:var(--radius);width:100%;max-width:100%;overflow-x:auto}.table-scroll>.data-table{min-width:100%}.table-scroll::-webkit-scrollbar{height:5px}.table-scroll::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}.mono{font-variant-numeric:tabular-nums;color:var(--ink-2);font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:10.5px}.selectable-row{cursor:pointer;transition:background .12s}.selectable-row.active td{box-shadow:inset 3px 0 0 var(--accent);background:var(--accent-soft)!important}.mini-btn{border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);font-family:var(--font);color:var(--ink-2);cursor:pointer;padding:7px 12px;font-size:11px;font-weight:600;transition:all .15s}.mini-btn:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 4px 10px #3b82f624}.mini-btn.accent{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 4px 12px #3b82f647}.mini-btn.accent:hover{background:var(--accent-2);color:#fff}.mini-btn.danger{color:var(--danger);border-color:#fecaca;padding:4px 9px}.mini-btn.danger:hover{border-color:var(--danger);background:#fef2f2}.export-section{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px}.export-btn{border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);font-family:var(--font);color:var(--ink-2);cursor:pointer;padding:9px 10px;font-size:11px;font-weight:600;transition:all .15s}.export-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px);box-shadow:0 6px 14px #3b82f629}.export-btn.btn-accent{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;border-color:#0000;box-shadow:0 6px 16px #3b82f652}.export-btn.btn-accent:hover{color:#fff;filter:brightness(1.06)}.export-btn.full{width:100%}.sketch-container,.production-container{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:12px;padding:16px;display:flex}.scene-resizable{align-self:flex-start;max-width:100%;position:relative}.scene-resizable>.scene3d-wrap{flex:auto;min-height:420px}.section-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.scene-max-btn,.scene-reset-btn{border:1px solid var(--line-strong);background:var(--panel);border-radius:var(--radius-sm);width:34px;height:34px;color:var(--ink-2);cursor:pointer;justify-content:center;align-items:center;font-size:15px;line-height:1;transition:all .15s;display:inline-flex}.scene-max-btn:hover,.scene-reset-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.scene-max-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.resize-handle{z-index:6;transition:background .15s;position:absolute}.resize-handle:hover{background:#3b82f647}.rh-n{cursor:ns-resize;border-radius:5px;height:10px;top:-5px;left:14px;right:14px}.rh-s{cursor:ns-resize;border-radius:5px;height:10px;bottom:-5px;left:14px;right:14px}.rh-e{cursor:ew-resize;border-radius:5px;width:10px;top:14px;bottom:14px;right:-5px}.rh-w{cursor:ew-resize;border-radius:5px;width:10px;top:14px;bottom:14px;left:-5px}.rh-ne{cursor:nesw-resize;border-radius:4px;width:16px;height:16px;top:-6px;right:-6px}.rh-nw{cursor:nwse-resize;border-radius:4px;width:16px;height:16px;top:-6px;left:-6px}.rh-se{cursor:nwse-resize;border-radius:4px;width:16px;height:16px;bottom:-6px;right:-6px}.rh-sw{cursor:nesw-resize;border-radius:4px;width:16px;height:16px;bottom:-6px;left:-6px}.rh-ne,.rh-nw,.rh-se,.rh-sw{background:#94a3b838;box-shadow:inset 0 0 0 1px #94a3b866}.rh-ne:hover,.rh-nw:hover,.rh-se:hover,.rh-sw:hover{background:var(--accent);box-shadow:none}.scene-fullscreen{border:none;border-top:1px solid var(--line);z-index:45;border-radius:0;padding:18px;animation:none;position:fixed;inset:68px 0 auto;transform:none;width:auto!important;max-width:none!important;height:calc(100vh - 68px)!important;margin:0!important}.scene-fullscreen>.scene3d-wrap,.scene-fullscreen>.sketch-container{flex:auto;min-height:0}.section-header{justify-content:space-between;align-items:center;gap:12px;padding:0 4px;display:flex}.section-header h2{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:15px;font-weight:800}.scene3d-wrap{border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(#f8fafc 0%,#e9eef5 100%);width:100%;height:100%;min-height:560px;position:relative;overflow:hidden}.scene3d-canvas{width:100%;height:100%;position:absolute;inset:0}.scene3d-canvas canvas{display:block}.scene3d-toolbar{pointer-events:none;flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex;position:absolute;top:14px;left:14px;right:14px}.scene3d-group{pointer-events:auto;-webkit-backdrop-filter:blur(14px);background:#ffffffd1;border:1px solid #0f172a14;border-radius:999px;flex-wrap:wrap;gap:3px;padding:4px;display:flex;box-shadow:0 8px 24px #0f172a1a}.scene3d-btn{color:var(--ink-2);font-family:var(--font);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:8px 15px;font-size:11.5px;font-weight:600;transition:all .15s}.scene3d-btn:hover{color:var(--accent);background:#3b82f61a}.scene3d-btn.active{background:var(--accent);color:#fff;box-shadow:0 4px 12px #3b82f659}.scene3d-hint{-webkit-backdrop-filter:blur(12px);color:#fffffff0;letter-spacing:.01em;white-space:nowrap;pointer-events:none;background:#0f172a8c;border:1px solid #ffffff24;border-radius:999px;padding:8px 18px;font-size:11px;font-weight:500;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 10px 26px #0f172a47}.view-toggle,.view-controls,.view-controls-inline{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;gap:3px;padding:3px;display:flex}.view-btn{font-family:var(--font);color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:7px 16px;font-size:11.5px;font-weight:600;transition:all .15s}.view-btn:hover{color:var(--accent)}.view-btn.active{background:var(--panel);color:var(--accent);box-shadow:var(--shadow-sm)}.offer-summary{flex-direction:column;gap:6px;padding:12px;display:flex}.offer-row{color:var(--ink-2);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;font-size:11.5px;display:flex}.offer-row.discount{color:var(--danger)}.offer-row.total{font-family:var(--font-display);color:var(--ink);border-top:1.5px solid var(--line-strong);margin-top:3px;padding-top:8px;font-size:15px;font-weight:800}.offer-row.margin{color:var(--ok);font-weight:700}.offer-row.dim-row{color:var(--ink-3);padding-left:12px;font-size:10px}.library-grid,.openings-list,.catalog-list{flex-direction:column;gap:10px;display:flex}.catalog-list{max-height:clamp(300px,100vh - 430px,680px);padding-right:3px;overflow-y:auto}.opening-card,.library-card,.catalog-item{flex-direction:column;gap:8px;padding:12px;transition:box-shadow .16s,border-color .16s;display:flex}.opening-card:hover,.library-card:hover,.catalog-item:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}.library-card.fav{border-color:var(--warn);background:#fffbeb}.library-thumb{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--line);background:linear-gradient(#f8fafc,#e9eef5);width:100%;height:120px}.library-thumb.empty{justify-content:center;align-items:center;font-size:28px;display:flex}.library-info{flex-direction:column;gap:2px;display:flex}.library-info b{font-family:var(--font-display);color:var(--ink);font-size:12px}.library-info small{color:var(--ink-3);font-size:10px}.library-actions,.catalog-item-head{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.catalog-item-head{justify-content:space-between}.catalog-item-head b{font-family:var(--font-display);color:var(--ink);font-size:11.5px}.library-place{border-top:1.5px dashed var(--line-strong);flex-direction:column;gap:8px;padding-top:10px;display:flex}.opening-head{font-family:var(--font-display);color:var(--ink);justify-content:space-between;align-items:center;font-size:11.5px;font-weight:700;display:flex}.curved-views{padding:14px}.curved-svg{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-sm)}.project-manager,.cabinet-list{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.cabinet-item{border-radius:var(--radius-sm);border:1.5px solid #0000;transition:all .15s}.cabinet-item:hover{background:var(--accent-soft)}.cabinet-item.active{background:var(--accent-soft);border-color:var(--accent)}.projects-dropdown{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg)}.project-item{border-radius:6px}.btn-sm{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--panel);transition:all .15s}.btn-sm:hover{background:var(--accent-soft)}.btn-sm.btn-primary{background:var(--accent);border-color:var(--accent)}.summary-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:all .16s}.summary-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.summary-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.09em;font-size:9.5px;font-weight:700}.summary-value{color:var(--ink);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:800}.badge-success{color:#065f46;background:#d1fae5}.badge-warning{color:#92400e;background:#fef3c7}.app-sidebar::-webkit-scrollbar{width:6px}.app-content::-webkit-scrollbar{width:6px}.catalog-list::-webkit-scrollbar{width:6px}.app-sidebar::-webkit-scrollbar-track{background:0 0}.app-content::-webkit-scrollbar-track{background:0 0}.catalog-list::-webkit-scrollbar-track{background:0 0}.app-sidebar::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}.app-content::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}.catalog-list::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}.app-sidebar::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}.app-content::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}.catalog-list::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}@media (max-width:1024px){.chapter-tab span:last-child{display:none}.chapter-tab{padding:8px 6px}.chapter-tab+.chapter-tab:before{display:none}}@media (max-width:768px){.app-header{flex-wrap:wrap;gap:12px;height:auto;padding:12px 16px}.panel-grid-2,.option-cards,.quick-presets{grid-template-columns:1fr}}
