@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-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, 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-gray-50:oklch(98.5% .002 247.839);--spacing:.25rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #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)}}@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%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, 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;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{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:rgba(0,0,0,0);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:rgba(0,0,0,0);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}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance: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{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.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}}.m-0{margin:calc(var(--spacing) * 0)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.overflow-hidden{overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.bg-gray-50{background-color:var(--color-gray-50)}.p-0{padding:calc(var(--spacing) * 0)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--color-primary:#1a56db;--color-primary-hover:#1e40af;--color-primary-light:#eff6ff;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-success:#16a34a;--color-warning:#d97706;--color-surface:#fff;--color-surface-raised:#f9fafb;--color-border:#e5e7eb;--color-border-strong:#d1d5db;--color-text-primary:#111827;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-text-on-primary:#fff;--color-editor-bg:#1e2028;--color-toolbar-bg:#fff;--color-toolbar-border:#e5e7eb;--color-panel-bg:#fff;--color-panel-border:#e5e7eb;--color-ridge:#2563eb;--color-hip:#7c3aed;--color-valley:#059669;--color-eave:#374151;--toolbar-height:48px;--toolbar-tools-height:40px;--statusbar-height:24px;--properties-panel-width:280px;--color-gold:#d97706;--color-bg:#f9fafb;--color-hover:#f3f4f6;--transition-fast:.15s ease;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--radius-sm:4px;--radius-md:6px;--radius-lg:8px}*,:before,:after{box-sizing:border-box}html,body{height:100%;color:var(--color-text-primary);background-color:var(--color-surface-raised);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5}#app{flex-direction:column;height:100%;display:flex}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.25}p{margin:0}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text-primary);outline:none;padding:8px 12px;font-size:14px;line-height:1.5;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(26,86,219,.15)}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--color-text-muted)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}label{color:var(--color-text-secondary);margin-bottom:4px;font-size:13px;font-weight:500;display:block}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;line-height:1.25;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-text-on-primary);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-raised);border-color:#9ca3af}.btn-danger{background-color:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background-color:var(--color-danger-hover)}.btn-ghost{color:var(--color-text-secondary);background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0)}.btn-ghost:hover:not(:disabled){background-color:var(--color-surface-raised);color:var(--color-text-primary)}.btn-sm{padding:4px 10px;font-size:13px}.btn-lg{padding:12px 24px;font-size:15px}.btn-icon{border-radius:var(--radius-md);padding:8px}.btn-icon.active,.btn-icon[aria-pressed=true]{background-color:var(--color-primary-light);color:var(--color-primary);border-color:#bfdbfe}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.form-group{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.form-group:last-child{margin-bottom:0}.modal-backdrop{z-index:1000;background:rgba(0,0,0,.5);justify-content:center;align-items:center;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:400px;max-width:90vw;max-height:90vh;padding:24px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h2{font-size:18px}.modal-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:8px;margin-top:24px;padding-top:16px;display:flex}.toast-container{z-index:2000;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);align-items:center;gap:10px;min-width:280px;max-width:400px;padding:12px 16px;font-size:14px;animation:.2s toast-in;display:flex}.toast-success{border-left:4px solid var(--color-success)}.toast-error{border-left:4px solid var(--color-danger)}.toast-warning{border-left:4px solid var(--color-warning)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.spinner{border:2px solid var(--color-border-strong);border-top-color:var(--color-primary);border-radius:50%;flex-shrink:0;width:20px;height:20px;animation:.6s linear infinite spin}.spinner-lg{border-width:3px;width:40px;height:40px}@keyframes spin{to{transform:rotate(360deg)}}.divider{border:none;border-top:1px solid var(--color-border);margin:16px 0}.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-danger{color:var(--color-danger);margin-top:4px;font-size:12px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.topbar{height:var(--toolbar-height);background:var(--color-surface);border-bottom:1px solid var(--color-toolbar-border);z-index:100;flex-shrink:0;align-items:center;gap:12px;padding:0 16px;display:flex}.topbar-logo{letter-spacing:.05em;color:var(--color-primary);font-size:18px;font-weight:700;text-decoration:none}.topbar-title{color:var(--color-text-primary);font-size:15px;font-weight:600}.topbar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.login-page{background:linear-gradient(135deg,#eff6ff,#dbeafe,#eff6ff);justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.auth-container{width:100%;max-width:440px}.auth-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:40px 36px}.auth-brand{text-align:center;margin-bottom:32px}.auth-logo{letter-spacing:.1em;color:var(--color-primary);margin-bottom:6px;font-size:28px;font-weight:800;display:block}.auth-tagline{color:var(--color-text-secondary);font-size:15px}.auth-form{flex-direction:column;display:flex}.auth-options{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.checkbox-label{color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:400;display:flex}.checkbox-label input{width:auto}.auth-link{color:var(--color-primary);font-size:13px}.auth-submit{justify-content:center;width:100%;margin-top:4px}.auth-footer{text-align:center;color:var(--color-text-secondary);margin-top:20px;font-size:13px}.auth-success{text-align:center;padding:24px 0}.auth-success-icon{color:var(--color-success);justify-content:center;margin-bottom:16px;display:flex}.auth-success h2{margin-bottom:8px}.auth-success p{color:var(--color-text-secondary);margin-bottom:8px}.action-bar{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:12px;padding:12px 16px;display:flex}.action-bar-right{align-items:center;gap:8px;margin-left:auto;display:flex}.search-input{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:240px;padding:6px 12px;font-size:14px}.sort-select{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;padding:6px 12px;font-size:14px}.dashboard-main{flex:1;padding:24px;overflow-y:auto}.projects-loading{justify-content:center;padding:60px 0;display:flex}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;display:grid}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}.project-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}.project-card:focus{outline:2px solid var(--color-primary);outline-offset:2px}.project-thumbnail{aspect-ratio:4/3;width:100%;overflow:hidden}.project-thumbnail img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.project-thumbnail-placeholder{border-radius:var(--radius-sm);background:linear-gradient(135deg,#f5f0eb,#ede6df,#e8dfd6,#ede6df,#f5f0eb);width:100%;height:100%}.project-card-body{padding:12px}.project-card-name{color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.project-card-client{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.project-card-date{color:var(--color-text-muted);margin-top:4px;font-size:12px}.project-card-menu{opacity:0;border:1px solid var(--color-border);background:#fff;transition:opacity .15s;position:absolute;top:8px;right:8px}.project-card:hover .project-card-menu{opacity:1}.projects-empty{text-align:center;color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex}.empty-icon{color:var(--color-text-muted);justify-content:center;margin-bottom:16px;display:flex}.projects-empty h3{color:var(--color-text-primary);margin-bottom:8px;font-size:18px}.projects-empty p{color:var(--color-text-secondary);margin-bottom:20px}.user-menu{position:relative}.user-menu-btn{gap:4px}.dropdown-menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:200;min-width:160px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.dropdown-item{width:100%;color:var(--color-text-primary);text-align:left;cursor:pointer;background:0 0;border:none;padding:10px 16px;font-size:14px;text-decoration:none;transition:background-color .1s;display:block}.dropdown-item:hover{background-color:var(--color-surface-raised)}.dropdown-item-danger{color:var(--color-danger)}.start-method-group{border:none;margin:0 0 16px;padding:0}.start-method-group legend{color:var(--color-text-secondary);margin-bottom:12px;font-size:14px;font-weight:500}.start-method-cards{grid-template-columns:1fr 1fr;gap:12px;display:grid}.start-method-card{border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:10px;padding:16px;transition:border-color .15s,background-color .15s;display:flex}.start-method-card:hover,.start-method-card.selected{border-color:var(--color-primary);background-color:var(--color-primary-light)}.start-method-icon{color:var(--color-primary);justify-content:center;display:flex}.start-method-card strong{color:var(--color-text-primary);font-size:13px;font-weight:600}.editor-page{background:var(--color-editor-bg)}.editor-topbar{height:var(--toolbar-height);background:var(--color-surface);border-bottom:1px solid var(--color-toolbar-border);flex-shrink:0;align-items:center;gap:8px;padding:0 12px;display:flex}.editor-project-name{text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:14px;font-weight:600;overflow:hidden}.editor-topbar-center{align-items:center;gap:4px;display:flex}.editor-topbar-right{align-items:center;gap:8px;margin-left:auto;display:flex}.mode-select{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;padding:4px 10px;font-size:13px}.editor-toolbar{height:var(--toolbar-tools-height);background:var(--color-surface);border-bottom:1px solid var(--color-toolbar-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 8px;display:flex}.toolbar-tools{align-items:center;gap:2px;display:flex}.toolbar-separator{background:var(--color-border);width:1px;height:20px;margin:0 4px}.toolbar-actions{align-items:center;gap:4px;display:flex}.editor-main{flex:1;display:flex;overflow:hidden}.editor-viewport-container{background:#1e2028;flex:1;position:relative;overflow:hidden}.pane-label{color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.08em;pointer-events:none;z-index:20;font-size:11px;font-weight:600;position:absolute;top:8px}.pane-label-left{left:12px}.pane-label-right{left:calc(50% + 12px)}.properties-panel{width:var(--properties-panel-width);background:var(--color-surface);border-left:1px solid var(--color-panel-border);flex-direction:column;flex-shrink:0;transition:width .2s;display:flex;overflow:hidden}.properties-panel.collapsed{width:40px}.properties-panel.collapsed .properties-panel-content{display:none}.properties-panel-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.properties-panel-header h2{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);font-size:11px;font-weight:700}.properties-panel-content{flex:1;padding:12px;overflow-y:auto}.properties-loading{justify-content:center;padding:32px 0;display:flex}.status-bar{height:var(--statusbar-height);background:var(--color-surface);border-top:1px solid var(--color-toolbar-border);color:var(--color-text-secondary);flex-shrink:0;align-items:center;gap:8px;padding:0 12px;font-size:12px;display:flex}.status-separator{color:var(--color-border-strong)}.status-clickable{cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.status-clickable:hover{color:#2196f3}.satellite-page{flex-direction:column;height:100%;display:flex;overflow:hidden}.satellite-address-bar{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;padding:8px 16px}.satellite-address-input-group{align-items:center;gap:8px;max-width:600px;display:flex}.address-icon{color:var(--color-text-muted);flex-shrink:0}.address-input{flex:1}.satellite-map-container{flex:1;overflow:hidden}.satellite-toolbar{background:var(--color-surface);border-top:1px solid var(--color-border);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex}.satellite-tools{align-items:center;gap:4px;display:flex}.toolbar-separator-v{background:var(--color-border);width:1px;height:20px;margin:0 4px}.satellite-status{color:var(--color-text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.settings-main{flex:1;padding:32px;overflow-y:auto}.settings-container{max-width:760px;margin:0 auto}.settings-tabs{border-bottom:2px solid var(--color-border);gap:0;margin-bottom:32px;display:flex}.settings-tab{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 20px;font-size:14px;font-weight:500;transition:color .15s,border-color .15s}.settings-tab:hover{color:var(--color-text-primary)}.settings-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.settings-panel h2{color:var(--color-text-primary);margin-bottom:24px;font-size:20px}.radio-group{flex-direction:column;gap:8px;display:flex}.radio-label{color:var(--color-text-primary);cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:400;display:flex}.radio-label input{width:auto}.settings-form-actions{border-top:1px solid var(--color-border);margin-top:24px;padding-top:20px}.settings-loading{justify-content:center;padding:48px 0;display:flex}.settings-placeholder{color:var(--color-text-muted);text-align:center;padding:48px 0}.settings-readonly-value{color:var(--color-text-primary);margin:0;padding:8px 0;font-size:14px}.settings-section-divider{border:none;border-top:1px solid var(--color-border);margin:28px 0}.settings-section-title{color:var(--color-text-primary);margin:0 0 16px;font-size:15px;font-weight:600}.settings-toast{border-radius:var(--radius-sm);z-index:2000;pointer-events:none;padding:10px 18px;font-size:14px;font-weight:500;animation:.2s settings-toast-in;position:fixed;bottom:24px;right:24px}@keyframes settings-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.settings-toast--success{color:#dcfce7;background:#166534;border:1px solid #15803d}.settings-toast--error{color:#fee2e2;background:#7f1d1d;border:1px solid #991b1b}.settings-logo-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.settings-logo-preview{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:80px;height:60px;color:var(--color-text-secondary);background:linear-gradient(135deg,#f5f0eb,#ede6df,#e8dfd6,#ede6df,#f5f0eb);justify-content:center;align-items:center;display:flex;overflow:hidden}.settings-logo-upload-btn{cursor:pointer}.settings-logo-hint{color:var(--color-text-secondary);font-size:12px}.settings-team-table{border-collapse:collapse;width:100%;font-size:14px}.settings-team-table th{text-align:left;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;font-size:12px;font-weight:600}.settings-team-table td{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);vertical-align:middle;padding:10px}.settings-team-table tr:last-child td{border-bottom:none}.settings-pricing-header{align-items:center;gap:12px;margin-bottom:20px;display:flex}.settings-pricing-table{border-collapse:collapse;width:100%;margin-bottom:8px;font-size:14px}.settings-pricing-table thead tr{border-bottom:2px solid var(--color-border)}.settings-pricing-table tbody tr{border-bottom:1px solid var(--color-border)}.settings-pricing-table tbody tr:last-child{border-bottom:none}.settings-pricing-th-name,.settings-pricing-td-name{text-align:left;width:50%;padding:10px}.settings-pricing-th-unit,.settings-pricing-td-unit{text-align:left;width:15%;padding:10px}.settings-pricing-th-price,.settings-pricing-td-price{text-align:left;width:35%;padding:10px}.settings-pricing-th-name,.settings-pricing-th-unit,.settings-pricing-th-price{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);font-size:12px;font-weight:600}.settings-pricing-td-name{color:var(--color-text-primary);vertical-align:middle}.settings-pricing-td-unit,.settings-pricing-td-price{vertical-align:middle}.settings-price-input-wrap{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);align-items:center;max-width:140px;display:flex;overflow:hidden}.settings-price-symbol{color:var(--color-text-secondary);background:var(--color-bg);border-right:1px solid var(--color-border);flex-shrink:0;padding:0 8px;font-size:13px;line-height:34px}.settings-price-input{flex:1;min-width:0;padding:6px 8px;border:none!important;border-radius:0!important}.settings-price-input:focus{box-shadow:none;outline:none}.settings-price-input-wrap:focus-within{outline:2px solid var(--color-gold);outline-offset:1px}.settings-sub-current{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:8px;margin-bottom:28px;padding:16px 20px;display:flex}.settings-sub-current-row{align-items:center;gap:12px;font-size:14px;display:flex}.settings-sub-label{color:var(--color-text-secondary);flex-shrink:0;min-width:120px}.settings-sub-value{color:var(--color-text-primary);font-weight:500}.settings-sub-tier-badge{color:var(--color-gold);border-radius:var(--radius-sm);background:rgba(196,160,100,.15);border:1px solid #c4a0644d;padding:2px 10px;font-size:13px;font-weight:600;display:inline-block}.settings-sub-status--active{color:#16a34a;font-weight:500}.settings-tier-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media(max-width:640px){.settings-tier-grid{grid-template-columns:1fr}}.settings-tier-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;gap:8px;padding:20px;display:flex}.settings-tier-card--current{border-color:var(--color-gold);box-shadow:0 0 0 1px var(--color-gold)}.settings-tier-name{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-secondary);font-size:12px;font-weight:700}.settings-tier-price{color:var(--color-text-primary);font-size:22px;font-weight:700}.settings-tier-current-label{color:var(--color-gold);font-size:12px;font-weight:600}.settings-tier-features{flex-direction:column;flex:1;gap:6px;margin:8px 0;padding:0;list-style:none;display:flex}.settings-tier-features li{color:var(--color-text-secondary);padding-left:16px;font-size:13px;position:relative}.settings-tier-features li:before{content:"";background:var(--color-text-muted);border-radius:50%;width:6px;height:6px;position:absolute;top:6px;left:0}.settings-tier-action{margin-top:8px}.settings-tier-current-btn{color:var(--color-text-secondary);font-size:13px;font-weight:500;display:inline-block}.not-found-page{justify-content:center;align-items:center;height:100%;display:flex}.not-found-container{text-align:center;padding:48px 24px}.not-found-code{color:var(--color-border-strong);font-size:72px;font-weight:800;line-height:1}.not-found-title{color:var(--color-text-primary);margin-bottom:12px;font-size:24px}.not-found-desc{color:var(--color-text-secondary);margin-bottom:24px}.viewport-pane{position:absolute;top:0;bottom:0;overflow:hidden}.viewport-pane-left{left:0}.viewport-pane-right{right:0}.viewport-divider{cursor:col-resize;z-index:10;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;background:#374151;width:5px;transition:background-color .15s;position:absolute;top:0;bottom:0}.viewport-divider:hover{background:var(--color-primary)}.dimension-label{color:#fff;white-space:nowrap;pointer-events:none;letter-spacing:.02em;background:rgba(0,0,0,.72);border-radius:3px;padding:2px 6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:11px;font-weight:600}.plan-overlay-container{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.plan-overlay-label{position:absolute;transform:translate(-50%,-50%)}.dimension-label-2d{color:#fff;white-space:nowrap;pointer-events:none;background:rgba(37,99,235,.85);border-radius:2px;padding:2px 5px;font-size:10px;font-weight:700}.element-dimension-label{color:#fff;white-space:nowrap;pointer-events:none;background:rgba(0,0,0,.75);border-radius:3px;padding:2px 6px;font-size:11px;font-weight:600}.face-dimension-label{color:#fff;white-space:nowrap;pointer-events:none;background:rgba(20,60,120,.8);border-radius:3px;padding:3px 8px;font-size:12px;font-weight:600}.roof-type-label{color:var(--color-text-primary);border:1px solid var(--color-border);white-space:nowrap;pointer-events:none;background:rgba(255,255,255,.9);border-radius:2px;padding:2px 5px;font-size:10px;font-weight:600}.snap-indicator{pointer-events:none;background:rgba(20,184,166,.2);border:2px solid #14b8a6;border-radius:50%;width:14px;height:14px;margin-top:-7px;margin-left:-7px}.snap-indicator-vertex{background:rgba(245,158,11,.2);border-color:#f59e0b;border-radius:2px}.editor-page.simple-mode .advanced-only{display:none}.context-menu{z-index:9999;color:#f9fafb;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:#1f2937;border:1px solid #374151;border-radius:6px;min-width:160px;padding:4px 0;font-size:13px;display:none;position:fixed;box-shadow:0 8px 24px rgba(0,0,0,.4)}.context-menu-item{cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:6px 14px;transition:background .1s;display:flex}.context-menu-item:hover{background:#374151}.context-menu-item.disabled{color:#6b7280;cursor:default}.context-menu-item.disabled:hover{background:0 0}.context-menu-separator{background:#374151;height:1px;margin:4px 0}.prop-section{margin-bottom:16px}.prop-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:4px;font-size:11px;font-weight:700}.prop-section-divider{background:var(--color-border);height:1px;margin-bottom:10px}.prop-subsection-title{color:var(--color-text-muted);letter-spacing:.04em;margin:10px 0 6px;font-size:11px;font-weight:600}.prop-row{margin-bottom:8px}.prop-empty{color:var(--color-text-muted);text-align:center;padding:16px 0;font-size:13px}.prop-no-data{color:var(--color-text-muted);padding:4px 0 8px;font-size:12px}.prop-stat-row{justify-content:space-between;align-items:baseline;padding:3px 0;font-size:13px;display:flex}.prop-stat-label{color:var(--color-text-secondary);flex-shrink:0}.prop-stat-value{color:var(--color-text-primary);text-align:right;font-weight:500}.prop-label{color:var(--color-text-secondary);margin-bottom:3px;font-size:12px;font-weight:500;display:block}.prop-number-input{border:1px solid var(--color-border);background:var(--color-surface);width:72px;color:var(--color-text-primary);text-align:right;-webkit-appearance:none;appearance:none;-moz-appearance:textfield;border-radius:4px;padding:4px 6px;font-size:13px;transition:border-color .15s}.prop-number-input:focus{border-color:var(--color-primary);outline:none}.prop-number-input:disabled{opacity:.5;cursor:not-allowed}.prop-select{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text-primary);cursor:pointer;border-radius:4px;padding:5px 8px;font-size:13px;transition:border-color .15s}.prop-select:focus{border-color:var(--color-primary);outline:none}.unit-input-row{margin-bottom:6px}.unit-input-control{align-items:center;gap:4px;display:flex}.unit-label{color:var(--color-text-muted);white-space:nowrap;min-width:24px;font-size:12px}.pitch-input-row{margin-bottom:6px}.pitch-input-control{align-items:center;gap:4px;display:flex}.pitch-divider{color:var(--color-text-secondary);white-space:nowrap;font-size:13px}.pitch-hint{color:var(--color-text-muted);margin-top:2px;padding-left:2px;font-size:11px}.roof-type-grid{grid-template-columns:repeat(3,1fr);gap:4px;margin-top:4px;display:grid}.roof-type-btn{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-secondary);border-radius:5px;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:6px 4px 4px;font-size:10px;transition:border-color .12s,background .12s,color .12s;display:flex}.roof-type-btn:hover{border-color:var(--color-primary);color:var(--color-text-primary);background:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.roof-type-btn:hover{background:color-mix(in srgb,var(--color-primary) 6%,var(--color-surface))}}.roof-type-btn.selected{border-color:var(--color-primary);background:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.roof-type-btn.selected{background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface))}}.roof-type-btn.selected{color:var(--color-primary);font-weight:600}.roof-type-icon{color:currentColor;justify-content:center;align-items:center;width:40px;height:28px;display:flex}.roof-type-icon svg{width:40px;height:28px}.roof-type-btn .roof-type-label{text-align:center;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;background:0 0;border:none;border-radius:0;width:100%;padding:0;font-size:10px;line-height:1;overflow:hidden}.prop-slider-group{align-items:center;gap:8px;display:flex}.prop-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-border);cursor:pointer;border-radius:2px;outline:none;flex:1;height:4px}.prop-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--color-primary);cursor:pointer;border-radius:50%;width:14px;height:14px;-webkit-transition:transform .1s;transition:transform .1s}.prop-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.prop-slider::-moz-range-thumb{background:var(--color-primary);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px}.prop-slider-value{color:var(--color-text-secondary);text-align:right;min-width:36px;font-size:12px}.btn-danger{color:#fff;background:#dc2626;border:none}.btn-danger:hover{background:#b91c1c}.btn-delete-element{cursor:pointer;border-radius:5px;width:100%;padding:8px 12px;font-size:13px;font-weight:500;transition:background .15s}.prop-collapse-btn{color:var(--color-text-muted);flex-shrink:0;transition:transform .2s}.properties-panel.collapsed .prop-collapse-btn{transform:rotate(180deg)}.vh-panel-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 14px 8px;display:flex}.vh-panel-header h2{color:var(--color-text-primary);margin:0;font-size:13px;font-weight:600}.vh-refresh-btn{color:var(--color-text-muted);transition:color .15s,transform .2s}.vh-refresh-btn:hover{color:var(--color-text-primary)}.vh-refresh-btn:active{transform:rotate(180deg)}.vh-panel-content{flex:1;padding:8px 0;overflow-y:auto}.vh-list{margin:0;padding:0;list-style:none}.vh-item{border-bottom:1px solid var(--color-border);padding:10px 14px;transition:background .1s}.vh-item:last-child{border-bottom:none}.vh-item:hover{background:var(--color-surface-hover,#ffffff0a)}.vh-item--current{background:var(--color-primary-subtle,#3b82f614);border-left:2px solid var(--color-primary)}.vh-item--current:hover{background:var(--color-primary-subtle,#3b82f61f)}.vh-item-header{align-items:center;gap:6px;margin-bottom:4px;display:flex}.vh-version-num{color:var(--color-text-primary);flex:1;font-size:13px;font-weight:600}.vh-current-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary);background:var(--color-primary-subtle,#3b82f626);border-radius:3px;padding:1px 5px;font-size:10px;font-weight:600}.vh-load-btn{flex-shrink:0;margin-left:auto}.btn-sm{cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface-raised,#2a2a2a);color:var(--color-text-primary);white-space:nowrap;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:500;transition:background .15s,border-color .15s}.btn-sm:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-sm:disabled{opacity:.4;cursor:not-allowed}.vh-item-meta{align-items:center;gap:8px;margin-bottom:3px;display:flex}.vh-date{color:var(--color-text-secondary);font-size:11px}.vh-author{color:var(--color-text-muted);font-size:11px}.vh-author:before{content:"·";margin-right:4px}.vh-description{color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-word;margin-top:2px;font-size:11px;display:block}.vh-state{color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:32px 16px;font-size:12px;display:flex}.vh-state-empty{color:var(--color-text-muted);font-size:13px}.vh-state-error{color:#f87171}.vh-retry-btn{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;padding:4px 10px;font-size:12px}.vh-retry-btn:hover{background:rgba(248,113,113,.1)}.vh-spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite vh-spin}@keyframes vh-spin{to{transform:rotate(360deg)}}.mat-panel{z-index:200;background:var(--color-surface);border-left:1px solid var(--color-panel-border);flex-direction:column;width:480px;max-width:100%;position:absolute;top:0;bottom:0;right:0;overflow:hidden;box-shadow:-4px 0 16px rgba(0,0,0,.12)}.mat-panel-inner{flex-direction:column;height:100%;display:flex}.mat-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.mat-title{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary);font-size:13px;font-weight:700}.mat-close-btn{color:var(--color-text-muted);flex-shrink:0}.mat-close-btn:hover{color:var(--color-text-primary)}.mat-tabs{border-bottom:1px solid var(--color-border);scrollbar-width:none;flex-shrink:0;display:flex;overflow-x:auto}.mat-tabs::-webkit-scrollbar{display:none}.mat-tab{white-space:nowrap;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:12px;font-weight:500;transition:color .15s,border-color .15s}.mat-tab:hover{color:var(--color-text-primary)}.mat-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.mat-body{flex:1;padding:14px 16px;overflow-y:auto}.mat-empty{color:var(--color-text-muted);text-align:center;padding:24px 0;font-size:13px}.mat-summary{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:14px;padding:10px 12px}.mat-summary-row{justify-content:space-between;align-items:baseline;padding:3px 0;font-size:12px;display:flex}.mat-summary-row-total{border-top:1px solid var(--color-border);margin-top:4px;padding-top:6px}.mat-summary-label{color:var(--color-text-secondary);flex-shrink:0;margin-right:8px}.mat-summary-value{color:var(--color-text-primary);text-align:right;font-weight:500}.mat-grand-total{color:var(--color-primary);font-size:14px;font-weight:700}.mat-table{border-collapse:collapse;width:100%;font-size:12px}.mat-th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:6px 8px;font-size:11px;font-weight:600}.mat-th-name{width:40%}.mat-th-qty,.mat-th-price,.mat-th-total{text-align:right}.mat-th-unit{text-align:left}.mat-td{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);vertical-align:middle;padding:7px 8px}.mat-td-name{font-weight:500}.mat-td-qty,.mat-td-price,.mat-td-total{text-align:right;font-variant-numeric:tabular-nums}.mat-td-unit{color:var(--color-text-secondary)}.mat-tr:last-child .mat-td{border-bottom:none}.mat-tr:hover .mat-td{background:var(--color-surface-raised)}.mat-tr-total .mat-td{border-top:2px solid var(--color-border-strong);border-bottom:none;padding-top:10px}.mat-total-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);font-size:11px;font-weight:700}.mat-total-value{color:var(--color-primary);font-size:13px;font-weight:700}.mat-table-edit .mat-td{padding:5px 8px}.mat-edit-hint{color:var(--color-text-muted);margin-bottom:10px;font-size:12px}.mat-td-price-edit{padding:4px 8px}.mat-price-input-wrap{justify-content:flex-end;align-items:center;gap:3px;display:flex}.mat-currency-symbol{color:var(--color-text-secondary);font-size:12px}.mat-price-input{border:1px solid var(--color-border);background:var(--color-surface);width:72px;color:var(--color-text-primary);text-align:right;-webkit-appearance:none;appearance:none;-moz-appearance:textfield;border-radius:4px;padding:4px 6px;font-size:12px;transition:border-color .15s}.mat-price-input:focus{border-color:var(--color-primary);outline:none}.mat-edit-actions{border-top:1px solid var(--color-border);gap:8px;margin-top:14px;padding-top:12px;display:flex}.mat-footer{border-top:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;display:flex}.mat-footer-left,.mat-footer-right{align-items:center;gap:8px;display:flex}.ks-tooltip{z-index:9000;color:#f9fafb;white-space:nowrap;pointer-events:none;opacity:0;background:#111827;border-radius:5px;align-items:center;gap:6px;padding:5px 9px;font-size:12px;line-height:1.4;transition:opacity .12s,transform .12s;display:inline-flex;position:fixed;transform:translateY(4px)}.ks-tooltip--visible{opacity:1;transform:translateY(0)}.ks-tooltip-label{color:#f9fafb;font-size:12px}.ks-tooltip-kbd{color:#e5e7eb;background:#374151;border:1px solid #4b5563;border-radius:3px;padding:1px 5px;font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,Consolas,monospace;font-size:11px;line-height:1.5;display:inline-block}@media(forced-colors:active){.ks-tooltip{color:buttonface;background:buttontext;border:1px solid buttonface}.ks-tooltip-kbd{color:buttontext;background:buttonface;border:1px solid buttontext}}.exp-overlay{z-index:1000;backdrop-filter:blur(2px);background:rgba(0,0,0,.5);justify-content:center;align-items:center;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.exp-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;width:480px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);display:flex;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.3)}.exp-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.exp-title{color:var(--color-text-primary);margin:0;font-size:16px;font-weight:600}.exp-close-btn{width:28px;height:28px;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.exp-close-btn:hover{background:var(--color-hover);color:var(--color-text-primary)}.exp-body{flex:1;padding:20px;overflow-y:auto}.exp-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);margin:0 0 12px;font-size:11px;font-weight:600}.exp-format-row{cursor:pointer;align-items:flex-start;gap:10px;padding:8px 0;display:flex}.exp-format-row--disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.exp-format-row--locked{opacity:.7}.exp-radio{accent-color:var(--color-gold);cursor:pointer;flex-shrink:0;margin-top:2px}.exp-format-label{color:var(--color-text-primary);flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}.exp-tier-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--color-gold);border-radius:var(--radius-sm);background:rgba(196,160,100,.12);border:1px solid #c4a0644d;padding:1px 6px;font-size:10px;font-weight:600}.exp-upgrade-link{color:var(--color-gold);font-size:12px;text-decoration:none}.exp-upgrade-link:hover{text-decoration:underline}.exp-sub-options{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-direction:column;gap:8px;margin:2px 0 8px 26px;padding:10px 14px;display:flex}.exp-sub-option{color:var(--color-text-primary);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.exp-sub-option--inline{flex-direction:row;align-items:center}.exp-sub-label{color:var(--color-text-secondary);flex-shrink:0;font-size:13px}.exp-checkbox{accent-color:var(--color-gold);cursor:pointer;flex-shrink:0}.exp-select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;flex:1;padding:5px 8px;font-size:13px}.exp-select:focus{outline:2px solid var(--color-gold);outline-offset:1px}.exp-progress{flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 20px;display:flex}.exp-spinner{border:3px solid var(--color-border);border-top-color:var(--color-gold);border-radius:50%;width:36px;height:36px;animation:.75s linear infinite exp-spin}@keyframes exp-spin{to{transform:rotate(360deg)}}.exp-progress-label{color:var(--color-text-primary);margin:0;font-size:15px;font-weight:500}.exp-progress-hint{color:var(--color-text-secondary);margin:0;font-size:13px}.exp-result{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 20px;display:flex}.exp-result-icon{justify-content:center;align-items:center;width:56px;height:56px;display:flex}.exp-result-title{color:var(--color-text-primary);margin:0;font-size:16px;font-weight:600}.exp-result-msg{color:var(--color-text-secondary);margin:0;font-size:13px}.exp-footer{border-top:1px solid var(--color-border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;padding:14px 20px;display:flex}.exp-export-btn:disabled{opacity:.45;cursor:not-allowed}.sw-steps{border-bottom:1px solid var(--color-border);align-items:center;gap:0;padding:12px 12px 10px;display:flex}.sw-step{white-space:nowrap;align-items:center;gap:5px;display:flex}.sw-step-num{border:2px solid var(--color-border-strong);width:22px;height:22px;color:var(--color-text-muted);background:var(--color-surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.sw-step--active .sw-step-num{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.sw-step--done .sw-step-num{border-color:var(--color-success);background:var(--color-success);color:#fff}.sw-step-label{color:var(--color-text-muted);font-size:11px;font-weight:500}.sw-step--active .sw-step-label{color:var(--color-primary);font-weight:600}.sw-step--done .sw-step-label{color:var(--color-text-secondary)}.sw-step-connector{background:var(--color-border);flex:1;min-width:8px;height:2px;margin:0 6px}.sw-body{flex:1;padding:14px 12px;overflow-y:auto}.sw-step-content{flex-direction:column;gap:10px;display:flex}.sw-step-title{color:var(--color-text-primary);margin:0;font-size:14px;font-weight:600}.sw-step-desc{color:var(--color-text-secondary);margin:0;font-size:13px;line-height:1.5}.sw-sat-btn{align-self:flex-start}.sw-hint{color:var(--color-text-muted);margin:0;font-size:12px}.sw-check-msg{color:var(--color-success);margin:0;font-size:13px}.sw-review-summary{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 12px}.sw-review-row{justify-content:space-between;padding:4px 0;font-size:13px;display:flex}.sw-review-label{color:var(--color-text-secondary)}.sw-review-value{color:var(--color-text-primary);font-weight:500}.sw-review-actions{gap:8px;display:flex}.sw-nav{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
