body,html{margin:0;padding:0;font-family:Malgun Gothic,맑은 고딕,Apple SD Gothic Neo,Noto Sans KR,Helvetica Neue,Arial,sans-serif;background:radial-gradient(circle at 12% 14%,rgba(199,239,87,.18),transparent 28rem),linear-gradient(135deg,#101510,#1d271d 58%,#080b08);color:#f1f0e8}*{box-sizing:border-box}body,html{height:100vh;overflow:hidden}body{flex-direction:column;min-height:100vh}body,main{display:flex}main{flex:1 1;min-height:0;overflow:hidden;flex-direction:column}a{color:inherit;text-decoration:none}footer,header,main{margin:0;max-width:none;padding:.85rem 1.4rem}main{padding-block:0}header{padding-block:.3rem}header h1{font-size:.9rem;letter-spacing:-.02em;line-height:1.2;margin:0;max-width:none}footer{padding-block:.25rem;font-size:.72rem;color:rgba(185,199,170,.7)}.app-header-row{align-items:center;display:flex;gap:1rem;justify-content:space-between}.app-header-toolbar{flex:1 1;min-width:0;display:flex;justify-content:center}.app-header-toolbar:not(:empty){border-inline:1px solid rgba(255,255,255,.12);padding-inline:.9rem;margin-inline:.25rem}.app-header-toolbar .top-toolbar{background:transparent;border:none;padding:0;margin-bottom:0}header{position:relative;z-index:30}.app-header-controls{align-items:center;display:flex;gap:.85rem}.workspace-selector{align-items:center;display:inline-flex;font-size:.8rem;gap:.5rem}.workspace-user{color:#b9c7aa;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-selector select{background:#17200f;border:1px solid rgba(218,255,139,.32);border-radius:999px;color:#f1f0e8;cursor:pointer;font:inherit;padding:.3rem .65rem}.workspace-dropdown{min-width:18rem;max-height:60vh;overflow-y:auto;padding:.3rem}.workspace-dropdown__group+.workspace-dropdown__group{margin-top:.3rem;padding-top:.3rem;border-top:1px solid rgba(218,255,139,.18)}.workspace-dropdown__tenant{display:flex;align-items:center;gap:.4rem;width:100%;background:transparent;border:none;cursor:pointer;color:#d8e3c8;font-size:.78rem;font-weight:600;padding:.4rem .5rem;border-radius:8px;text-align:left}.workspace-dropdown__tenant:hover{background:rgba(218,255,139,.1)}.workspace-dropdown__caret{flex:0 0 auto;width:.8rem;color:#b9c7aa;font-size:.7rem}.workspace-dropdown__tenant-name{flex:1 1;min-width:0;overflow-wrap:anywhere}.workspace-dropdown__count{flex:0 0 auto;min-width:1.4rem;text-align:center;background:rgba(218,255,139,.16);color:#dafe8b;border-radius:999px;font-size:.7rem;font-weight:700;padding:.05rem .4rem}.workspace-dropdown__empty,.workspace-dropdown__row{margin-left:.6rem}.workspace-dropdown__row{display:flex;align-items:stretch;gap:.25rem}.workspace-dropdown__select{flex:1 1;min-width:0;text-align:left;background:transparent;border:none;border-radius:8px;color:#f1f0e8;cursor:pointer;font:inherit;padding:.4rem .55rem;overflow-wrap:anywhere}.workspace-dropdown__select.is-active,.workspace-dropdown__select:hover{background:rgba(218,255,139,.14)}.workspace-dropdown__delete{flex:0 0 auto;width:1.9rem;border:1px solid rgba(255,120,110,.4);border-radius:8px;background:transparent;color:#ff7a6e;cursor:pointer;font-weight:700}.workspace-dropdown__delete:hover{background:rgba(255,120,110,.18)}.workspace-dropdown__delete-icon{width:15px;height:15px;display:block;margin:0 auto}.workspace-dropdown__empty{color:#8a978a;font-size:.78rem;padding:.3rem .55rem}.workspace-create{align-items:center;background:#dafe8b;border-radius:999px;color:#17200f;display:inline-flex;font-weight:700;height:26px;justify-content:center;text-decoration:none;width:26px}.workspace-create:hover{background:#c8f06a}.workspace-logout{background:transparent;border:1px solid rgba(218,255,139,.32);border-radius:999px;color:#f1f0e8;cursor:pointer;font:inherit;padding:.3rem .7rem}.workspace-logout:hover{background:rgba(218,255,139,.18)}.logout-confirm-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(6,9,6,.62);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.logout-confirm-card{background:#121712;border:1px solid rgba(218,255,139,.24);border-radius:16px;box-shadow:0 18px 48px rgba(0,0,0,.55);color:#f1f0e8;max-width:320px;padding:1.5rem 1.5rem 1.25rem;width:calc(100% - 2.5rem)}.logout-confirm-message{font-size:1.02rem;line-height:1.5;margin:0 0 1.25rem;text-align:center}.logout-confirm-actions{display:flex;gap:.6rem;justify-content:center}.logout-confirm-cancel,.logout-confirm-yes{border-radius:999px;cursor:pointer;font:inherit;padding:.45rem 1.1rem}.logout-confirm-cancel{background:transparent;border:1px solid rgba(241,240,232,.3);color:#f1f0e8}.logout-confirm-cancel:hover{background:rgba(241,240,232,.12)}.logout-confirm-yes{background:#daff8b;border:1px solid #daff8b;color:#1a2208;font-weight:600}.logout-confirm-yes:hover{background:#c9f06f}.login-screen{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:1.5rem;overflow:auto;background-color:#0a0e0a}.login-screen:before{background-image:url(/title.png);background-size:contain;background-position:50%;background-repeat:no-repeat;-webkit-mask-image:radial-gradient(ellipse 78% 82% at 50% 50%,#000 46%,rgba(0,0,0,0) 100%);mask-image:radial-gradient(ellipse 78% 82% at 50% 50%,#000 46%,rgba(0,0,0,0) 100%)}.login-screen:after,.login-screen:before{content:"";position:absolute;inset:0;z-index:0}.login-screen:after{background:rgba(2,6,23,.45)}.login-locale-switcher{position:absolute;top:1rem;right:1.25rem;z-index:2}.login-page{position:relative;z-index:1;width:100%;max-width:26rem;background:rgba(15,23,42,.86);border:1px solid rgba(218,255,139,.28);border-radius:22px;padding:2rem;box-shadow:0 24px 64px rgba(0,0,0,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.altscodex-login-button{width:100%;margin-top:.5rem;padding:.7rem 1rem;background:#dafe8b;color:#17200f;border:none;border-radius:10px;font-weight:700;cursor:pointer}.altscodex-login-button:not(:disabled):hover{filter:brightness(.95)}.altscodex-login-button:disabled{opacity:.55;cursor:not-allowed}.login-page h2{font-size:1.6rem;margin:0 0 .5rem}.login-error{color:#ff9eb1;font-size:.85rem;margin:0}.locale-switcher{align-items:center;display:inline-flex;font-size:.8rem;gap:.5rem}.locale-switcher-label{color:#b9c7aa;font-weight:600;font-size:.8rem}.locale-switcher select{background:#17200f;border:1px solid rgba(218,255,139,.32);border-radius:999px;color:#f1f0e8;cursor:pointer;font:inherit;padding:.3rem .65rem}footer{color:#b9c7aa;font-size:.9rem}button,input{font:inherit}.workflow{display:flex;flex-direction:column;gap:.3rem;flex:1 1;min-height:0;padding-block:.35rem}.hero-panel,.panel{background:rgba(238,236,218,.08);border:1px solid rgba(218,255,139,.2);border-radius:18px;box-shadow:0 12px 36px rgba(0,0,0,.22)}.hero-panel{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem;padding:.45rem .9rem;max-height:30vh;overflow-y:auto;flex-shrink:0}.hero-panel h2{font-size:1rem;letter-spacing:0;line-height:1.2;margin:0}.hero-panel .eyebrow{color:rgba(218,254,139,.78);margin:0 0 .25rem}.hero-panel>p{color:rgba(255,255,255,.7);font-size:.92rem;line-height:1.5;margin:.35rem 0 .6rem;max-width:56ch}.eyebrow{color:#dafe8b;letter-spacing:.12em;text-transform:uppercase}.status-line{flex:0 0 auto;font-size:.82rem;color:rgba(218,254,139,.92);margin:0;text-align:right}.upload-card{align-items:center;background:#dafe8b;border-radius:999px;color:#17200f;cursor:pointer;display:inline-flex;font-weight:700;gap:.65rem;margin:0;padding:.45rem .75rem}.upload-card span{font-size:.8rem}.upload-card input{max-width:14rem}.pending-files{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;font-size:.78rem;margin:0;padding:.55rem .75rem}.pending-files-count{color:#dafe8b;font-weight:700;margin:0 0 .35rem}.pending-files-list{color:#b9c7aa;display:grid;grid-gap:.15rem;gap:.15rem;list-style:none;margin:0;max-height:6rem;overflow-y:auto;padding:0}.load-button{background:#dafe8b;border:0;border-radius:12px;color:#17200f;cursor:pointer;font:inherit;font-weight:700;padding:.5rem 1rem;white-space:nowrap}.load-button[disabled]{cursor:not-allowed;opacity:.55}.load-button-spinner{animation:stencil-spin .8s linear infinite;border-radius:50%;border:2px solid rgba(23,32,15,.3);border-top-color:#17200f;display:inline-block;height:14px;margin-right:.45rem;vertical-align:-3px;width:14px}@keyframes stencil-spin{to{transform:rotate(1turn)}}.processing-bar{background:rgba(218,255,139,.12);border-radius:6px;flex-basis:100%;height:16px;overflow:hidden;position:relative;margin-top:.4rem}.processing-bar-fill{background:linear-gradient(90deg,#b6e35a,#dafe8b);height:100%;transition:width .22s ease-out;border-radius:6px}.processing-bar-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.72rem;font-weight:700;color:#17200f;pointer-events:none}.load-warning{align-items:center;background:rgba(255,158,177,.12);border:1px solid rgba(255,158,177,.45);border-radius:10px;color:#ff9eb1;display:flex;flex-basis:100%;font-size:.9rem;font-weight:600;gap:.5rem;margin:0;padding:.55rem .85rem}.load-warning-link{background:#dafe8b;border-radius:999px;color:#17200f;font-weight:700;padding:.25rem .7rem;text-decoration:none;white-space:nowrap}.load-warning-link:hover{background:#c8f06a}.onboarding-page{background:rgba(238,236,218,.08);border:1px solid rgba(218,255,139,.2);border-radius:22px;margin:3rem auto;max-width:32rem;padding:2rem}.onboarding-page h2{font-size:1.6rem;margin:0 0 .5rem}.onboarding-note{color:#b9c7aa;font-size:.85rem;margin:0 0 1.5rem}.onboarding-form{display:grid;grid-gap:1.25rem;gap:1.25rem}.onboarding-form fieldset{border:1px solid rgba(255,255,255,.12);border-radius:14px;display:grid;grid-gap:.95rem;gap:.95rem;padding:1.1rem 1.15rem}.onboarding-form legend{color:#dafe8b;font-size:.78rem;font-weight:700;letter-spacing:.05em;padding:0 .5rem}.onboarding-section-help{color:#b9c7aa;font-size:.8rem;margin:0 0 .25rem}.onboarding-field{display:grid;grid-gap:.3rem;gap:.3rem}.onboarding-label{color:#f1f0e8;font-size:.85rem;font-weight:600}.onboarding-hint{color:#b9c7aa;font-size:.72rem;line-height:1.4}.onboarding-form label{display:grid;font-size:.85rem;grid-gap:.35rem;gap:.35rem}.onboarding-form input{background:rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.16);border-radius:12px;color:#f1f0e8;font:inherit;padding:.6rem .85rem}.onboarding-form button{background:#dafe8b;border:0;border-radius:999px;color:#17200f;cursor:pointer;font-weight:700;padding:.7rem 1rem}.onboarding-form button[disabled]{cursor:not-allowed;opacity:.6}.onboarding-actions{display:flex;align-items:center;gap:.6rem}.onboarding-form .onboarding-cancel{background:transparent;border:1px solid rgba(255,255,255,.25);color:#cdd6c2;font-weight:600}.onboarding-error{color:#ff9eb1;font-size:.85rem;margin:0}.workspace-grid{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:320px minmax(0,1fr) 320px 320px;transition:grid-template-columns .32s ease;flex:1 1;min-height:0;overflow:hidden}.panel--collapsed{padding:0;margin:0;border:none;opacity:0;pointer-events:none;visibility:hidden;min-width:0;overflow:hidden;transition:opacity .2s ease,padding .32s ease,visibility 0s linear .32s}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.panel-header h3{margin:0;font-size:.95rem;min-width:0;overflow-wrap:anywhere}.panel-close{width:26px;height:26px;background:transparent;color:#cbd5f5;border:1px solid rgba(203,213,245,.3);border-radius:6px;font-size:1.1rem;line-height:1;cursor:pointer}.panel-close:hover{background:rgba(218,254,139,.1);border-color:#dafe8b;color:#dafe8b}.canvas-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.canvas-panel-toggles{display:flex;gap:.4rem;flex-wrap:wrap}.panel-open-button{background:transparent;color:#dafe8b;border:1px solid rgba(218,254,139,.55);border-radius:6px;padding:.3rem .65rem;font-size:.78rem;font-weight:600;cursor:pointer}.panel-open-button:hover{background:rgba(218,254,139,.1)}.dock-icon-rail{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.5rem .2rem;min-width:0}.dock-icon-button{width:32px;height:32px;background:transparent;color:#dafe8b;border:1px solid rgba(218,254,139,.55);border-radius:8px;font-weight:700;font-size:.9rem;cursor:pointer}.dock-icon-button:hover{background:rgba(218,254,139,.12)}.dock-shell{min-height:0}.dock-shell,.right-rail{display:flex;flex-direction:column;min-width:0}.right-rail{gap:.6rem;overflow:hidden}.right-rail>.dock-icon-rail,.right-rail>.dock-shell{flex:1 1;min-height:0}.mask-derived-banner--rail{flex-direction:column;align-items:stretch;gap:.5rem}.mask-derived-banner--rail .mask-derived-banner__ack{margin-left:0}.review-status-card{display:flex;flex-direction:column;gap:.5rem;flex:0 0 auto}.right-rail{overflow-y:auto;min-height:0}.auto-extract-strip{display:flex;flex-direction:column;gap:.5rem;padding:.7rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;flex:0 0 auto}.auto-extract-strip .auto-extract-button{width:100%}.auto-extract-run-row{display:flex;align-items:stretch;gap:.4rem}.auto-extract-run-row .auto-extract-button{flex:1 1;width:auto}.auto-extract-info-button{flex:0 0 auto;width:1.7rem;border-radius:8px;border:1px solid rgba(218,254,139,.45);background:transparent;color:#dafe8b;font-style:italic;font-weight:700;cursor:pointer}.auto-extract-info-button:hover{background:rgba(218,254,139,.15)}.auto-extract-info-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55)}.auto-extract-info-card{background:#1b2410;border:1px solid rgba(218,254,139,.35);border-radius:12px;padding:1.2rem 1.4rem;width:min(460px,90vw);display:flex;flex-direction:column;gap:.7rem}.auto-extract-info-title{font-weight:700;color:#dafe8b}.auto-extract-info-intro,.auto-extract-info-note{font-size:.85rem;line-height:1.5}.auto-extract-info-note{color:#ffe28a}.auto-extract-info-steps{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;line-height:1.5}.auto-extract-info-actions{display:flex;justify-content:flex-end}.auto-extract-info-close{border:1px solid rgba(218,254,139,.45);border-radius:8px;background:rgba(218,254,139,.12);color:#dafe8b;padding:.35rem 1rem;cursor:pointer}.dock-panel{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:.9rem;display:flex;flex-direction:column;gap:.55rem;min-width:0;min-height:0;overflow:hidden}.dock-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.dock-panel-title{margin:0;font-size:1rem;color:#f3fff0}.dock-panel-close{width:26px;height:26px;background:transparent;color:#cbd5f5;border:1px solid rgba(203,213,245,.3);border-radius:6px;font-size:1rem;line-height:1;cursor:pointer}.dock-panel-close:hover{background:rgba(218,254,139,.1);border-color:#dafe8b;color:#dafe8b}.dock-panel-body{gap:.65rem;overflow-y:auto}.dock-panel-body,.dock-tabs{display:flex;flex-direction:column;min-height:0}.dock-tabs{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:18px;overflow:hidden;min-width:0}.dock-tabs-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .5rem;border-bottom:1px solid rgba(255,255,255,.08)}.dock-tabs-buttons{display:flex;gap:.25rem;flex-wrap:wrap}.dock-tab-button{background:transparent;color:#cbd5f5;border:1px solid transparent;border-radius:8px;padding:.3rem .6rem;font-size:.8rem;font-weight:600;cursor:pointer}.dock-tab-button:hover{color:#dafe8b;border-color:rgba(218,254,139,.35)}.dock-tab-button.is-active{color:#dafe8b;background:rgba(218,254,139,.12);border-color:rgba(218,254,139,.55)}.dock-tabs-close{width:26px;height:26px;background:transparent;color:#cbd5f5;border:1px solid rgba(203,213,245,.3);border-radius:6px;font-size:1rem;line-height:1;cursor:pointer}.dock-tabs-close:hover{background:rgba(218,254,139,.1);border-color:#dafe8b;color:#dafe8b}.dock-tabs-body{display:flex;flex-direction:column;padding:.9rem;overflow-y:auto;min-height:0;flex:1 1}.dock-tabpanel{display:flex;flex-direction:column;gap:.65rem;min-height:0}.dock-tabpanel[hidden]{display:none}.top-toolbar{padding:.4rem .75rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:12px;margin-bottom:.6rem}.top-toolbar,.top-toolbar-section{display:flex;align-items:center;gap:.5rem}.top-toolbar-section{flex-wrap:wrap}.pulldown{position:relative;display:inline-block}.pulldown-trigger{background:transparent;color:#dafe8b;border:1px solid rgba(218,254,139,.55);border-radius:8px;padding:.35rem .7rem;font-size:.82rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem}.pulldown-trigger.is-open,.pulldown-trigger:hover{background:rgba(218,254,139,.12)}.pulldown-caret{font-size:.7rem;opacity:.7}.pulldown-panel{position:absolute;top:calc(100% + 4px);z-index:600;min-width:220px;background:#0c110c;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:.55rem;box-shadow:0 14px 30px rgba(0,0,0,.45)}.pulldown-panel--left{left:0}.pulldown-panel--right{right:0}.pulldown-empty{color:#b9c7aa;font-size:.85rem;margin:0;padding:.6rem .4rem;text-align:center;max-width:280px;line-height:1.5}.export-pulldown-body{display:flex;flex-direction:column;gap:.55rem;min-width:260px}.status-bar{display:flex;align-items:center;gap:1rem;padding:.35rem .85rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;color:#b9c7aa;flex-shrink:0}.status-bar-segment{display:inline-flex;align-items:center;gap:.3rem}.status-bar-label{color:#7f9072;text-transform:lowercase}.workflow-stepper-compact{display:inline-flex;align-items:center;gap:.35rem;list-style:none;margin:0;padding:0}.workflow-step-compact{display:inline-flex;align-items:center;font-size:.8rem;line-height:1}.workflow-step-compact-dot{color:rgba(218,254,139,.25);font-size:.7rem}.workflow-step-compact[data-state=active] .workflow-step-compact-dot{color:#dafe8b;font-size:.85rem}.workflow-step-compact[data-state=done] .workflow-step-compact-dot{color:rgba(218,254,139,.7)}.workflow-step-compact-active-label{margin-left:.4rem;color:#dafe8b;font-weight:600;font-size:.78rem;letter-spacing:.02em;text-transform:uppercase}.panel{min-width:0;padding:1.1rem}.panel h3{margin:0 0 .85rem}.panel ul{display:grid;grid-gap:.65rem;gap:.65rem;list-style:none;margin:0;padding:0}.edit-controls,.panel li,.recommendation-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:.8rem;margin:1rem 0 0;min-width:0}.edit-controls>*+*{margin-top:.75rem}.edit-controls legend{font-weight:600;padding:0}.opening small,.panel li span,.recommendation-card span{color:#b9c7aa;display:block;font-size:.85rem}.canvas-panel{display:flex;flex-direction:column;gap:.65rem;min-height:0;overflow:hidden}.canvas-stage{display:grid;grid-template-rows:auto minmax(0,1fr);grid-gap:.45rem;gap:.45rem;position:relative;flex:1 1;min-height:0}.canvas-rendering-overlay{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;gap:.6rem;background:rgba(8,10,14,.6);border-radius:8px;color:rgba(255,255,255,.92);font-size:.8rem;font-weight:600;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.canvas-rendering-spinner{animation:stencil-spin .8s linear infinite;border:3px solid rgba(218,254,139,.25);border-top-color:#dafe8b;border-radius:50%;display:inline-block;width:22px;height:22px}.canvas-toolbar{align-items:center;display:flex;flex-wrap:wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;gap:.5rem}.canvas-toolbar button{background:#17200f;border:1px solid rgba(218,255,139,.32);border-radius:999px;color:#f1f0e8;cursor:pointer;font:inherit;padding:.28rem .7rem}.canvas-toolbar button:hover{background:rgba(218,255,139,.18)}.canvas-zoom-group{align-items:stretch;background:#17200f;border:1px solid rgba(218,255,139,.32);border-radius:8px;display:inline-flex;overflow:hidden}.canvas-zoom-group button.canvas-icon-button{align-items:center;background:transparent;border:0;border-radius:0;color:#f1f0e8;cursor:pointer;display:inline-flex;font-size:1.05rem;font-weight:700;height:28px;justify-content:center;line-height:1;padding:0;width:30px}.canvas-zoom-group button.canvas-icon-button+button.canvas-icon-button{border-left:1px solid rgba(218,255,139,.32)}.canvas-zoom-group button.canvas-icon-button:hover{background:rgba(218,255,139,.18)}.canvas-coords{color:#dafe8b;flex:1 1}.canvas-zoom{color:#b9c7aa}.canvas-placeholder{fill:rgba(218,255,139,.55);font-family:inherit;font-size:22px}.geometry-viewport{background:rgba(4,7,4,.62);border:1px solid rgba(218,255,139,.18);border-radius:14px;flex:1 1;height:100%;min-height:0;overflow:hidden;position:relative;width:100%}.geometry-viewport.is-dragging{will-change:transform}.geometry-underlay{height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.geometry-svg{aspect-ratio:auto;background:transparent;cursor:-webkit-grab;cursor:grab;display:block;height:100%;max-height:none;min-height:0;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.geometry-svg.is-dragging{cursor:-webkit-grabbing;cursor:grabbing}.geometry-board{fill:rgba(218,255,139,.025);stroke:rgba(218,255,139,.16)}.geometry-feature{fill:none;stroke:rgba(185,199,170,.34);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25;vector-effect:non-scaling-stroke}circle.geometry-feature{fill:rgba(185,199,170,.26)}.geometry-flash{stroke-linecap:round;stroke-width:4}.board-outline-rect,.geometry-flash{fill:none;vector-effect:non-scaling-stroke}.board-outline-rect{stroke:rgba(158,203,255,.65);stroke-width:1.6;pointer-events:none}.geometry-opening{cursor:pointer;fill:rgba(218,255,139,.38);stroke:rgba(218,255,139,.86);stroke-width:1.4;vector-effect:non-scaling-stroke}.geometry-opening.is-selected{fill:rgba(255,243,176,.82);stroke:#fff5ad;stroke-width:2.2}.geometry-opening.is-locked{pointer-events:none;stroke-dasharray:3 3}.geometry-empty{border:1px dashed rgba(218,255,139,.24);border-radius:18px;color:#b9c7aa;margin:0;padding:1rem}.opening-map{display:grid;grid-gap:.5rem;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.canvas-bottom-panel{margin-top:.5rem;flex-shrink:0}.canvas-bottom-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem;padding:.45rem .8rem;background:rgba(218,254,139,.08);border:1px solid rgba(218,255,139,.22);border-radius:8px;color:#f1f0e8;font-size:.8rem;font-weight:600;cursor:pointer}.canvas-bottom-toggle:hover{background:rgba(218,254,139,.14)}.canvas-bottom-body{margin-top:.4rem;max-height:38vh;overflow-y:auto;display:grid;grid-gap:.5rem;gap:.5rem}.feature-strip{display:none}.feature-strip span{background:rgba(218,255,139,.08);border-radius:999px;color:#d9e7ca;font-size:.78rem;padding:.35rem .55rem}.decision-row button,.edit-controls button,.opening{background:#17200f;border:1px solid rgba(218,255,139,.28);border-radius:12px;color:#f1f0e8;cursor:pointer;font:inherit;overflow:hidden;padding:.55rem .7rem;text-align:left}.opening>small,.opening>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.decision-row button[aria-pressed=true],.edit-controls button,.opening.is-selected{background:#dafe8b;color:#17200f}.edit-controls button{border-radius:12px;padding:.6rem .9rem;text-align:center;white-space:nowrap}.decision-row button{text-align:center}.edit-summary{color:#dafe8b;margin:0}.edit-summary-strong{font-size:1.05rem;font-weight:700;background:rgba(218,254,139,.12);border:1px solid rgba(218,254,139,.45);border-radius:8px;padding:.45rem .75rem;display:inline-block}.decision-badge{display:inline-flex;align-items:center;align-self:flex-start;gap:4px;font-weight:700;font-size:.85rem;padding:.25rem .6rem;border-radius:999px;letter-spacing:.02em;cursor:help}.decision-badge.is-accepted{background:#dafe8b;color:#17200f;border:1px solid #b6e35a}.decision-badge.is-rejected{background:#fecaca;color:#7f1d1d;border:1px solid #ef4444}.recommendation-card{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}.decision-row{display:flex;gap:.5rem}.recommendation-explain-button{align-self:flex-start;background:transparent;border:1px solid rgba(218,255,139,.4);border-radius:999px;color:#daff8b;cursor:pointer;font:inherit;font-size:.8rem;padding:.2rem .7rem}.recommendation-explain-button:hover{background:rgba(218,255,139,.16)}.explain-modal-overlay{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:rgba(6,9,6,.66);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.explain-modal-card{background:#121712;border:1px solid rgba(218,255,139,.24);border-radius:18px;box-shadow:0 18px 48px rgba(0,0,0,.55);color:#f1f0e8;display:flex;flex-direction:column;max-height:80vh;max-width:520px;width:100%}.explain-modal-header{align-items:center;border-bottom:1px solid rgba(255,255,255,.1);display:flex;gap:.75rem;justify-content:space-between;padding:1rem 1.25rem}.explain-modal-title{font-size:1.05rem;margin:0}.explain-modal-close{background:transparent;border:none;color:#b9c7aa;cursor:pointer;font-size:1rem;line-height:1;padding:.25rem}.explain-modal-close:hover{color:#f1f0e8}.explain-modal-body{display:flex;flex-direction:column;gap:1rem;overflow-y:auto;padding:1.1rem 1.25rem}.explain-modal-intro{color:#cdd9c0;line-height:1.55;margin:0}.explain-modal-section{display:flex;flex-direction:column;gap:.35rem}.explain-modal-section-title{color:#daff8b;font-size:.92rem;margin:0}.explain-modal-list li,.explain-modal-section p{line-height:1.55;margin:0}.explain-modal-list{display:flex;flex-direction:column;gap:.5rem;margin:0;padding-left:1.1rem}.explain-modal-code{background:rgba(255,255,255,.08);border-radius:6px;font-size:.85em;padding:.05rem .35rem}.explain-modal-footer{border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:flex-end;padding:.9rem 1.25rem}.explain-modal-confirm{background:#daff8b;border:1px solid #daff8b;border-radius:999px;color:#1a2208;cursor:pointer;font:inherit;font-weight:600;padding:.45rem 1.3rem}.explain-modal-confirm:hover{background:#c9f06f}.edit-controls label{display:flex;flex-direction:column;gap:.3rem;min-width:0}.edit-controls label:first-of-type{flex-direction:row;align-items:center;gap:.5rem}.edit-controls input[type=number]{background:rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.16);border-radius:12px;color:#f1f0e8;padding:.65rem}.layer-list{display:grid;grid-gap:.4rem;gap:.4rem;list-style:none;margin:0;padding:0}.stencil-sides{margin:0 0 .6rem;padding:.4rem .5rem;background:rgba(120,200,255,.06);border:1px solid rgba(120,200,255,.25);border-radius:8px}.stencil-sides__title{font-size:.74rem;font-weight:700;opacity:.8;margin-bottom:.35rem}.stencil-sides__list{display:grid;grid-gap:.3rem;gap:.3rem;list-style:none;margin:0;padding:0}.stencil-sides__toggle{display:flex;align-items:center;gap:.4rem;width:100%;padding:.3rem .45rem;background:rgba(255,255,255,.05);color:inherit;border:1px solid transparent;border-radius:6px;font-size:.8rem;cursor:pointer;text-align:left}.stencil-sides__toggle.is-visible{border-color:rgba(120,200,255,.5);background:rgba(120,200,255,.12)}.stencil-sides__label{font-weight:600}.stencil-sides__count{margin-left:auto;opacity:.7;font-size:.74rem}.layer-list>li{align-items:center;background:none;border:0;border-radius:12px;cursor:-webkit-grab;cursor:grab;display:grid;grid-gap:.3rem .3rem;gap:.3rem .3rem;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;padding:0}.layer-list>li>.layer-item{grid-column:1;grid-row:1}.layer-list>li>.layer-actions{grid-column:2;grid-row:1}.layer-list>li>.layer-role-select{grid-column:1/-1;grid-row:2}.layer-list>li>.layer-advisory{grid-column:1/-1;grid-row:3}.layer-advisory{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.3rem;padding:.4rem .5rem;background:rgba(255,196,0,.08);border:1px solid rgba(255,196,0,.4);border-radius:8px;font-size:.74rem}.layer-advisory-badge{font-weight:700;color:#ffce4a;white-space:nowrap}.layer-advisory-detail{color:#e6e9f5;min-width:0;overflow-wrap:anywhere}.layer-advisory-actions{display:flex;gap:.3rem;margin-left:auto}.layer-advisory-accept,.layer-advisory-keep{border-radius:6px;padding:.18rem .5rem;font-size:.72rem;font-weight:600;cursor:pointer}.layer-advisory-accept{background:#dafe8b;color:#10131c;border:1px solid #dafe8b}.layer-advisory-keep{background:transparent;color:#cbd5f5;border:1px solid rgba(203,213,245,.4)}.layer-list>li:active{cursor:-webkit-grabbing;cursor:grabbing}.layer-list>li.is-dragging{opacity:.45}.layer-list>li.is-drop-before{box-shadow:inset 0 3px 0 #dafe8b}.layer-list>li.is-drop-after{box-shadow:inset 0 -3px 0 #dafe8b}.layer-actions{display:flex;gap:.25rem}.layer-action{background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.16);border-radius:6px;color:#b9c7aa;cursor:pointer;font-family:inherit;font-size:.7rem;font-weight:700;height:24px;padding:0;width:24px}.layer-action:hover{background:rgba(218,255,139,.16);color:#f1f0e8}.layer-action.is-active{background:#dafe8b;border-color:#dafe8b;color:#17200f}.layer-item{align-items:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;color:inherit;cursor:pointer;display:grid;grid-gap:.55rem;gap:.55rem;grid-template-columns:14px minmax(0,1fr) 18px;padding:.5rem .6rem;text-align:left;width:100%}.layer-item:hover{background:rgba(218,255,139,.1)}.layer-item.is-hidden{opacity:.4}.layer-swatch{border-radius:4px;display:inline-block;height:14px;width:14px}.layer-meta strong{font-size:.85rem}.layer-meta small,.layer-meta strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-meta small{color:#b9c7aa;font-size:.7rem}.layer-eye{font-size:.95rem;opacity:.85;text-align:center}.layer-item.is-hidden .layer-eye{opacity:.35}.violation-panel{display:grid;grid-gap:.65rem;gap:.65rem}.violation-params{display:grid;grid-gap:.55rem;gap:.55rem}.violation-params input{background:rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.16);border-radius:10px;color:#f1f0e8;font:inherit;padding:.5rem .65rem}.violation-run-button{background:#dafe8b;border:0;border-radius:12px;color:#17200f;cursor:pointer;font:inherit;font-weight:700;padding:.55rem 1rem;white-space:nowrap}.violation-run-button[disabled]{cursor:not-allowed;opacity:.55}.violation-hint{color:#b9c7aa;font-size:.78rem;margin:0}.violation-error{color:#ff9eb1;font-size:.8rem;margin:0}.violation-summary{color:#dafe8b;font-size:.8rem;font-weight:700;margin:0}.violation-summary-row{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.violation-export-button{background:transparent;border:1px solid rgba(218,255,139,.4);border-radius:999px;color:#dafe8b;cursor:pointer;font:inherit;font-size:.72rem;padding:.3rem .65rem}.violation-export-button:hover{background:rgba(218,255,139,.14)}.violation-export-button[disabled]{cursor:not-allowed;opacity:.4}.violation-persist-toggle{align-items:flex-start;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:10px;cursor:pointer;display:grid;font-size:.78rem;grid-gap:.45rem;gap:.45rem;grid-template-columns:auto minmax(0,1fr);padding:.5rem .65rem}.violation-persist-toggle strong{display:block;font-size:.82rem}.violation-persist-toggle small{color:#b9c7aa;display:block;font-size:.7rem;margin-top:.15rem}.violation-filters{display:flex;gap:.3rem}.violation-filters button{background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.16);border-radius:999px;color:#b9c7aa;cursor:pointer;font:inherit;font-size:.72rem;padding:.3rem .65rem}.violation-filters button.is-active{background:#dafe8b;border-color:#dafe8b;color:#17200f}.violation-empty{color:#b9c7aa;font-size:.78rem;margin:0}.violation-list{display:grid;grid-gap:.4rem;gap:.4rem;list-style:none;max-height:22rem;overflow-y:auto}.violation-list,.violation-list>li{margin:0;padding:0}.violation-item{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:10px;color:inherit;cursor:pointer;display:grid;font:inherit;grid-gap:.2rem;gap:.2rem;padding:.55rem .65rem;text-align:left;width:100%}.violation-item:hover{background:rgba(218,255,139,.12)}.violation-item.severity-critical{border-left:3px solid #ff9eb1}.violation-item.severity-warning{border-left:3px solid #ffe28a}.violation-item.severity-review{border-left:3px solid #8ab4ff}.violation-item strong{font-size:.85rem}.violation-item small{color:#b9c7aa;font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:1280px){.workspace-grid{grid-template-columns:280px minmax(0,1fr) 280px!important}.violation-panel{grid-column:1/-1}}@media (max-width:1100px){.workspace-grid{grid-template-columns:1fr!important}.geometry-viewport{height:60vh;min-height:22rem}}.onboarding-tenant-summary{margin:0;padding:.65rem .85rem;background:rgba(218,254,139,.1);border:1px solid rgba(218,254,139,.4);border-radius:8px;color:#dafe8b;font-weight:600}.workspace-entry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.workspace-entry{border:1px solid rgba(218,254,139,.25);border-radius:10px;padding:.85rem 1rem;background:rgba(15,23,42,.4);display:flex;flex-direction:column;gap:.55rem}.workspace-entry-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.workspace-entry-index{font-weight:700;color:#dafe8b;font-size:.9rem;letter-spacing:.02em}.workspace-entry-remove{background:transparent;border:1px solid rgba(239,68,68,.6);color:#fecaca;border-radius:6px;padding:.2rem .6rem;font-size:.78rem;cursor:pointer}.workspace-entry-remove:hover{background:rgba(239,68,68,.15)}.workspace-add-button{margin-top:.75rem;background:transparent;border:1px dashed rgba(218,254,139,.55);color:#dafe8b;border-radius:8px;padding:.55rem .9rem;cursor:pointer;font-weight:600}.workspace-add-button:hover{background:rgba(218,254,139,.08)}.cursor-tooltip{position:fixed;z-index:9999;pointer-events:none;max-width:22rem;padding:6px 10px;background:rgba(15,23,42,.92);color:#f8fafc;font-size:.78rem;line-height:1.35;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.25);white-space:pre-wrap;word-break:break-word}.inspector-panel{position:fixed;top:0;right:0;bottom:0;z-index:800;width:24rem;max-width:92vw;display:flex;flex-direction:column;background:#0f172a;color:#e2e8f0;border-left:1px solid #1e293b;box-shadow:-10px 0 28px rgba(0,0,0,.4);overflow:hidden;animation:inspector-slide-in .18s ease-out}@keyframes inspector-slide-in{0%{transform:translateX(100%)}to{transform:translateX(0)}}.inspector-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:8px;gap:8px;padding:10px 12px;background:#1e293b;border-bottom:1px solid #334155}.inspector-kind{text-transform:uppercase;font-size:.68rem;letter-spacing:.04em;color:#94a3b8;background:#0f172a;padding:2px 8px;border-radius:999px}.inspector-title{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inspector-close{width:28px;height:28px;border:none;background:transparent;color:#cbd5f5;font-size:1.2rem;line-height:1;border-radius:6px;cursor:pointer}.inspector-close:hover{background:#334155}.inspector-body{padding:12px;overflow:auto;flex:1 1 auto}.inspector-body dl{margin:0;display:flex;flex-direction:column;gap:6px}.inspector-row{display:grid;grid-template-columns:5.5rem 1fr;grid-gap:8px;gap:8px;align-items:start;font-size:.76rem}.inspector-row dt{color:#94a3b8;font-weight:500;min-width:0;overflow-wrap:anywhere}.inspector-row dd{margin:0;min-width:0;word-break:break-word;overflow-wrap:anywhere}.inspector-swatch-row{display:inline-flex;align-items:center;gap:6px}.inspector-swatch{width:14px;height:14px;border-radius:4px;border:1px solid rgba(255,255,255,.2)}.inspector-raw{border-top:1px solid #1e293b;padding:8px 12px;font-size:.76rem;background:#0b1220}.inspector-raw summary{cursor:pointer;color:#94a3b8;padding:4px 0}.inspector-raw pre{margin:6px 0 0;max-height:14rem;overflow:auto;background:#020617;padding:8px;border-radius:6px;color:#cbd5f5}.violation-suggest-cap{width:100%;margin-top:.35rem;background:transparent;border:1px dashed rgba(218,254,139,.55);color:#dafe8b;border-radius:6px;padding:.3rem .5rem;font-size:.78rem;font-weight:600;cursor:pointer}.violation-suggest-cap:hover{background:rgba(218,254,139,.1)}.inspector-footer{border-top:1px solid #1e293b;padding:10px 12px;background:#0b1220}.inspector-cap-button{width:100%;background:#dafe8b;color:#17200f;border:none;border-radius:8px;padding:.55rem .8rem;font-weight:700;cursor:pointer}.inspector-cap-button:hover{filter:brightness(.95)}.cap-drawer{position:fixed;top:0;right:24rem;bottom:0;z-index:799;width:22rem;max-width:90vw;display:flex;flex-direction:column;background:#0f172a;color:#e2e8f0;border-left:1px solid #1e293b;box-shadow:-8px 0 24px rgba(0,0,0,.35);animation:inspector-slide-in .18s ease-out}.cap-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#1e293b;border-bottom:1px solid #334155}.cap-drawer-close{width:28px;height:28px;background:transparent;color:#cbd5f5;border:none;border-radius:6px;cursor:pointer;font-size:1.2rem}.cap-drawer-close:hover{background:#334155}.cap-drawer-body{padding:12px;overflow:auto;flex:1 1 auto;display:flex;flex-direction:column;gap:12px}.cap-drawer-target{margin:0;color:#94a3b8;font-size:.82rem;word-break:break-all}.cap-kind-fieldset{border:1px solid #1e293b;border-radius:8px;padding:.5rem .75rem;display:flex;flex-direction:column;gap:.35rem}.cap-kind-fieldset legend{color:#94a3b8;font-size:.78rem;padding:0 .4rem}.cap-kind-option{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer}.cap-ratio-row{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.cap-ratio-row input[type=range]{width:100%}.cap-drawer-status{margin:0;color:#cbd5f5;font-size:.82rem}.cap-drawer-error{margin:0;color:#fecaca;font-size:.82rem}.cap-metrics dl{margin:0;display:flex;flex-direction:column;gap:4px}.cap-metric-row{display:grid;grid-template-columns:7rem 1fr;grid-gap:8px;gap:8px;font-size:.82rem}.cap-metric-row dt{color:#94a3b8;min-width:0;overflow-wrap:anywhere}.cap-metric-row dd{margin:0;min-width:0;word-break:break-word;overflow-wrap:anywhere}.cap-metric-ok{color:#dafe8b}.cap-metric-warn{color:#fbbf24}.cap-drawer-footer{padding:12px;border-top:1px solid #1e293b;background:#0b1220}.cap-drawer-save{width:100%;background:#dafe8b;color:#17200f;border:none;border-radius:8px;padding:.6rem .9rem;font-weight:700;cursor:pointer}.cap-drawer-save:disabled{opacity:.55;cursor:not-allowed}.cap-preview-polygon{fill:rgba(218,254,139,.18);stroke:#dafe8b;stroke-width:1.6;stroke-dasharray:4 3;pointer-events:none;vector-effect:non-scaling-stroke}.export-stencil-row{display:flex;gap:.6rem;margin-top:.6rem;flex-wrap:wrap}.export-stencil-download{background:transparent;color:#dafe8b;border:1px solid #dafe8b;border-radius:8px;padding:.55rem .95rem;font-weight:700;cursor:pointer}.export-stencil-download:not(:disabled):hover{background:rgba(218,254,139,.1)}.confirm-dialog-spinner{border:2px solid rgba(255,143,127,.35);border-top-color:#ff8f7f;border-radius:50%;margin-right:.45rem}.confirm-dialog-spinner,.export-download-spinner{animation:stencil-spin .8s linear infinite;display:inline-block;width:13px;height:13px;vertical-align:-2px}.export-download-spinner{border:2px solid rgba(218,254,139,.3);border-top-color:#dafe8b;border-radius:50%;margin-right:.4rem}.export-stencil-download:disabled{opacity:.5;cursor:not-allowed}.export-gate-reason{color:#ffb4a8;font-size:.8rem;line-height:1.4;margin:.5rem 0 0}.export-signoff-approve{background:#dafe8b;color:#14210a;border:1px solid #dafe8b;border-radius:8px;padding:.55rem .95rem;font-weight:700;cursor:pointer}.export-signoff-approve:not(:disabled):hover{background:#c8f06e}.export-signoff-approve:disabled{opacity:.5;cursor:not-allowed}.export-signoff-spinner{animation:stencil-spin .8s linear infinite;border:2px solid rgba(20,33,10,.3);border-top-color:#14210a;border-radius:50%;display:inline-block;width:13px;height:13px;margin-right:.45rem;vertical-align:-2px}.export-signoff-status{color:#dafe8b;font-size:.8rem;font-weight:700}.review-triage{align-items:center;border:1px solid rgba(255,255,255,.12);border-radius:12px;display:flex;flex-wrap:wrap;gap:.5rem 1rem;padding:.4rem .85rem}.review-triage--pending{background:rgba(255,196,92,.1);border-color:rgba(255,196,92,.35)}.review-triage--fresh{background:rgba(218,255,139,.08);border-color:rgba(218,255,139,.28)}.review-triage-count{font-size:.85rem;font-weight:600}.review-triage-count--critical{color:#ff8f7f}.review-triage-count--review{color:#8ab4ff}.trust-gerber-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:rgba(255,255,255,.7);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.trust-gerber-toggle.is-active{color:#ffd479;font-weight:700}.reduce-percent-field{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:rgba(255,255,255,.7);-webkit-user-select:none;-moz-user-select:none;user-select:none}.reduce-percent-field__input{width:3.4rem;padding:.2rem .35rem;background:rgba(255,255,255,.06);color:inherit;border:1px solid rgba(255,255,255,.18);border-radius:6px;font-size:.8rem}.trust-gerber-banner{margin:.5rem 0;padding:.45rem .7rem;border:1px solid rgba(255,212,121,.45);border-radius:8px;background:rgba(255,212,121,.08);color:#ffd479;font-size:.82rem}.pipeline-modal-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55)}.pipeline-modal-card{background:#1b2410;border:1px solid rgba(138,180,255,.4);border-radius:12px;padding:1.2rem 1.4rem;width:min(440px,92vw);display:flex;flex-direction:column;gap:.7rem}.pipeline-modal-head{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem}.pipeline-modal-title{font-weight:700;margin:0}.pipeline-elapsed{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#8ab4ff;font-size:.85rem}.pipeline-current{display:flex;align-items:center;gap:.5rem;color:#dafe8b;font-weight:700;margin:0}.pipeline-spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(218,254,139,.3);border-top-color:#dafe8b;animation:stencil-spin .8s linear infinite;flex:0 0 auto}.pipeline-progress{border:1px solid rgba(138,180,255,.35);border-radius:10px;padding:.6rem .8rem;margin:.5rem 0;background:rgba(138,180,255,.06);display:flex;flex-direction:column;gap:.5rem}.pipeline-progress-track{height:6px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden}.pipeline-progress-fill{height:100%;background:#8ab4ff;transition:width .3s ease}.pipeline-stages{display:flex;flex-wrap:wrap;gap:.75rem;list-style:none;margin:0;padding:0;font-size:.8rem}.pipeline-stage{display:flex;flex-direction:column;color:rgba(255,255,255,.45)}.pipeline-stage--running{color:#dafe8b;font-weight:700}.pipeline-stage--done{color:#8ab4ff}.pipeline-stage--error{color:#ff8f7f;font-weight:700}.pipeline-stage-detail{font-size:.72rem;opacity:.8}.pipeline-error{color:#ff8f7f;font-size:.8rem;margin:0}.pipeline-summary{border-top:1px solid rgba(255,255,255,.12);padding-top:.5rem}.pipeline-summary-title{font-weight:700;margin:0 0 .3rem}.pipeline-summary-counts{display:flex;flex-wrap:wrap;gap:.75rem;list-style:none;margin:0;padding:0;font-size:.8rem}.pipeline-close{align-self:flex-end;background:transparent;color:#dafe8b;border:1px solid #dafe8b;border-radius:8px;padding:.35rem .8rem;font-weight:700;cursor:pointer}.pipeline-next-steps{margin:.5rem 0 0;font-size:.85rem;line-height:1.5;color:#cfe0b6}.pipeline-finish{display:flex;flex-direction:column;gap:.4rem;align-items:flex-end}.pipeline-close-hint{margin:0;font-size:.82rem;color:#8ab4ff}.pipeline-close--cta{background:#dafe8b;color:#14210a;align-self:stretch;padding:.55rem .9rem;animation:pipeline-close-pulse 1.6s ease-in-out infinite}@keyframes pipeline-close-pulse{0%,to{box-shadow:0 0 0 0 rgba(218,254,139,.5)}50%{box-shadow:0 0 0 6px rgba(218,254,139,0)}}.review-triage-count--warning{color:#ffd479}.review-triage-status{color:#b9c7aa;font-size:.8rem;margin-left:auto}.review-triage-scope{color:#9ecbff;border:1px solid rgba(158,203,255,.45);border-radius:999px;padding:.05rem .5rem;font-size:.75rem;white-space:nowrap}.review-queue-bar{align-items:center;background:rgba(134,217,255,.08);border:1px solid rgba(134,217,255,.28);border-radius:12px;display:flex;flex-wrap:wrap;gap:.5rem .75rem;padding:.4rem .85rem}.review-queue-progress{color:#cde6ff;font-size:.85rem;font-weight:600}.review-queue-mark,.review-queue-next{background:transparent;border:1px solid rgba(134,217,255,.4);border-radius:999px;color:#cdeeff;cursor:pointer;font:inherit;font-size:.8rem;padding:.25rem .8rem}.review-queue-mark{margin-left:auto}.review-queue-mark:not(:disabled):hover,.review-queue-next:not(:disabled):hover{background:rgba(134,217,255,.16)}.review-queue-mark:disabled,.review-queue-next:disabled{opacity:.45;cursor:not-allowed}.violation-item.is-reviewed{opacity:.55}.violation-reviewed-tag{color:#9be38a;font-weight:700;margin-left:.35rem}.canvas-overlay-toggle{background:transparent;border:1px solid rgba(255,196,92,.4);border-radius:999px;color:#ffd479;cursor:pointer;font:inherit;font-size:.8rem;padding:.2rem .7rem}.canvas-overlay-toggle.is-active{background:rgba(255,196,92,.18)}.geometry-svg.is-measure-mode{cursor:crosshair}.measure-line{stroke:#ffd479;stroke-width:1.25;stroke-dasharray:5 3;vector-effect:non-scaling-stroke}.measure-point{fill:#ffd479}.canvas-measure-readout{color:#ffd479;font-size:.8rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.edit-diff-rect{fill:none;stroke:#daff8b;stroke-width:1.5;stroke-dasharray:4 2;vector-effect:non-scaling-stroke;pointer-events:none}.edit-diff-rect.is-suppressed{stroke:#ff8f7f;stroke-dasharray:2 2}.edit-preview-rect{fill:rgba(218,255,139,.12);stroke:#daff8b;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}.edit-handle{fill:#daff8b;stroke:#1a2208;stroke-width:1;pointer-events:auto}.edit-handle:hover{fill:#ffffff}.edit-handle-move{fill:#86d9ff}.stencil-preview-poly,.stencil-preview-rect{fill:rgba(218,254,139,.85);stroke:#17200f;stroke-width:.6;pointer-events:none;vector-effect:non-scaling-stroke}.pipeline-thickness-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55)}.pipeline-thickness-card{background:#1b2410;border:1px solid rgba(218,254,139,.35);border-radius:12px;padding:1.2rem 1.4rem;width:min(360px,90vw);display:flex;flex-direction:column;gap:.8rem}.pipeline-thickness-title{font-weight:700;margin:0}.pipeline-thickness-field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.pipeline-thickness-field input{padding:.45rem .6rem;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#0f1607;color:inherit}.pipeline-thickness-error{color:#ff8f7f;font-size:.8rem;margin:0}.pipeline-thickness-range-warning,.violation-thickness-warning{color:#ffd166;font-size:.8rem;margin:.2rem 0 0;line-height:1.4}.pipeline-thickness-actions{display:flex;justify-content:flex-end;gap:.6rem}.pipeline-thickness-confirm{background:#dafe8b;color:#14210a;border:1px solid #dafe8b;border-radius:8px;padding:.4rem .9rem;font-weight:700;cursor:pointer}.pipeline-thickness-confirm:disabled{opacity:.5;cursor:not-allowed}.pipeline-thickness-cancel{background:transparent;color:inherit;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:.4rem .9rem;cursor:pointer}.windowpane-overlay-rect{fill:rgba(218,254,139,.85);stroke:#8ab4ff;stroke-width:1;stroke-dasharray:3 2;pointer-events:none;vector-effect:non-scaling-stroke}.extract-stencil-button{display:inline-flex;align-items:center;gap:.1rem;background:#dafe8b;color:#17200f;border:none;border-radius:8px;padding:.55rem 1.05rem;font-weight:700;white-space:nowrap;cursor:pointer}.extract-stencil-button:not(:disabled):hover{filter:brightness(.95)}.extract-stencil-button:disabled{background:rgba(218,254,139,.25);color:rgba(241,240,232,.55);cursor:not-allowed}.extract-stencil-spinner{animation:stencil-spin .8s linear infinite;border-radius:50%;border:2px solid rgba(23,32,15,.3);border-top-color:#17200f;display:inline-block;height:14px;width:14px;margin-right:.45rem;vertical-align:-3px}.workspace-required-overlay{z-index:1000;background:rgba(2,6,23,.7)}.workspace-required-overlay,.workspace-switching-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.workspace-switching-overlay{z-index:1200;background:rgba(8,10,14,.72)}.workspace-switching-card{display:inline-flex;align-items:center;gap:.7rem;background:#1a1d23;color:rgba(255,255,255,.92);border:1px solid rgba(218,254,139,.32);border-radius:12px;padding:1.1rem 1.5rem;font-weight:600;box-shadow:0 14px 48px rgba(0,0,0,.55)}.workspace-switching-spinner{animation:stencil-spin .8s linear infinite;border:3px solid rgba(218,254,139,.25);border-top-color:#dafe8b;border-radius:50%;display:inline-block;width:22px;height:22px}.workspace-required-card{max-width:26rem;width:100%;background:#0f172a;color:#f1f0e8;border:1px solid rgba(218,254,139,.45);border-radius:12px;padding:1.25rem 1.5rem;box-shadow:0 20px 50px rgba(0,0,0,.5)}.workspace-required-card h3{margin:0 0 .5rem;font-size:1.15rem;color:#dafe8b}.workspace-required-card p{margin:0 0 1rem;line-height:1.55;color:#cbd5f5;font-size:.92rem}.workspace-required-actions{display:flex;gap:.6rem;justify-content:flex-end}.workspace-required-create{background:#dafe8b;color:#17200f;text-decoration:none;font-weight:700;padding:.5rem .9rem;border-radius:8px}.workspace-required-create:hover{filter:brightness(.95)}.workspace-required-dismiss{background:transparent;color:#cbd5f5;border:1px solid rgba(203,213,245,.4);border-radius:8px;padding:.5rem .9rem;cursor:pointer}.workspace-required-dismiss:hover{background:rgba(203,213,245,.08)}.layer-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap}.layer-panel-actions{display:flex;gap:.4rem;flex-wrap:wrap}.layer-button-spinner{display:inline-block;width:10px;height:10px;border-radius:50%;border:2px solid rgba(218,254,139,.35);border-top-color:#dafe8b;margin-right:.35rem;vertical-align:-2px;animation:layer-button-spin .8s linear infinite}@keyframes layer-button-spin{to{transform:rotate(1turn)}}.layer-auto-classify-button:disabled,.layer-reparse-button:disabled{opacity:.7;cursor:progress}.layer-auto-classify-button{background:transparent;color:#dafe8b;border:1px solid #dafe8b;border-radius:6px;padding:.35rem .7rem;font-size:.78rem;font-weight:700;cursor:pointer}.layer-auto-classify-button:hover{background:rgba(218,254,139,.1)}.layer-reparse-button{background:#dafe8b;color:#17200f;border:none;border-radius:6px;padding:.35rem .7rem;font-size:.78rem;font-weight:700;cursor:pointer}.layer-reparse-button:hover{filter:brightness(.95)}.layer-role-select{margin-top:.25rem;font-size:.72rem;background:rgba(15,23,42,.6);color:#cbd5f5;border:1px solid rgba(218,254,139,.3);border-radius:4px;padding:.15rem .3rem;max-width:100%}.layer-role-select:focus-visible{outline:1px solid #dafe8b}.app-header-link{color:#dafe8b;text-decoration:none;font-weight:600;padding:.35rem .7rem;border:1px solid rgba(218,254,139,.45);border-radius:8px}.app-header-link:hover{background:rgba(218,254,139,.1)}.features-page{max-width:56rem;margin:0 auto;padding:2rem 1.5rem 3rem}.features-header{margin-bottom:1.5rem}.features-header h2{margin:0 0 .25rem;font-size:1.6rem;color:#f1f0e8}.features-subtitle{margin:0 0 .75rem;color:#cbd5f5}.features-back{display:inline-block;margin-top:.4rem;color:#dafe8b;text-decoration:none;font-size:.9rem}.features-back:hover{text-decoration:underline}.features-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem;counter-reset:features}.features-card{counter-increment:features;background:rgba(15,23,42,.4);border:1px solid rgba(218,254,139,.25);border-radius:10px;padding:1rem 1.25rem}.features-card:before{content:counter(features) ".";display:inline-block;font-weight:700;color:#dafe8b;margin-right:.5rem}.features-card h3{display:inline;margin:0;font-size:1.05rem;color:#f1f0e8}.features-card p{margin:.5rem 0 0;color:#d9d6c7;line-height:1.55;font-size:.92rem}.smd-candidate{fill:rgba(99,102,241,.12);stroke:#818cf8;stroke-width:1.2;stroke-dasharray:3 2;pointer-events:none;vector-effect:non-scaling-stroke}.feature-chip{border:1px solid var(--border,#cbd5f5);background:transparent;border-radius:6px;padding:4px 8px;font:inherit;color:inherit;cursor:pointer;white-space:nowrap}.feature-chip:hover{background:rgba(99,102,241,.1)}.auto-classify-overlay{position:fixed;inset:0;background:rgba(8,10,14,.72);display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem}.auto-classify-card{background:#1a1d23;border:1px solid rgba(218,254,139,.32);border-radius:12px;padding:1.5rem 1.75rem 1.4rem;width:min(440px,100%);box-shadow:0 14px 48px rgba(0,0,0,.55);color:rgba(255,255,255,.92)}.auto-classify-card[data-phase=done]{border-color:rgba(218,254,139,.6)}.auto-classify-card[data-phase=error]{border-color:rgba(255,138,138,.55)}.auto-classify-card h3{margin:0 0 .85rem;font-size:1.02rem;color:#dafe8b}.auto-classify-spinner{width:34px;height:34px;border-radius:50%;border:3px solid rgba(218,254,139,.22);border-top-color:#dafe8b;margin:.4rem auto 1rem;animation:auto-classify-spin .8s linear infinite}@keyframes auto-classify-spin{to{transform:rotate(1turn)}}.auto-classify-body{margin:0 0 .75rem;font-size:.93rem;line-height:1.55;color:rgba(255,255,255,.9)}.auto-classify-body--done{color:#dafe8b;font-weight:500}.auto-classify-body--error{color:#ff8a8a}.auto-classify-steps{margin:0 0 .75rem 1.1rem;padding:0;font-size:.86rem;line-height:1.7;color:rgba(255,255,255,.72)}.auto-classify-hint{margin:0 0 .6rem;font-size:.82rem;line-height:1.5;color:rgba(255,255,255,.6)}.auto-classify-actions{display:flex;justify-content:flex-end;margin-top:.9rem}.auto-classify-ok{background:#dafe8b;color:#0e1116;border:none;border-radius:8px;padding:.5rem 1.4rem;font-size:.93rem;font-weight:600;cursor:pointer;transition:background .12s ease}.auto-classify-ok:hover{background:#c8ed72}.auto-classify-ok:focus-visible{outline:2px solid #dafe8b;outline-offset:2px}.export-stencil-warning{display:inline-block;color:#ffd166;font-size:.85rem;font-weight:500;padding:.25rem .6rem;border:1px solid rgba(255,209,102,.45);border-radius:6px;background:rgba(255,209,102,.08)}.export-stencil-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:rgba(255,255,255,.78);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.export-stencil-toggle input[type=checkbox]{cursor:pointer;accent-color:#dafe8b}.toast-stack{position:fixed;top:1rem;right:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:1200;max-width:min(420px,calc(100vw - 2rem));pointer-events:none}.toast{display:flex;align-items:flex-start;gap:.6rem;padding:.7rem .85rem .7rem 1rem;border-radius:10px;background:#1a1d23;color:rgba(255,255,255,.94);font-size:.88rem;line-height:1.45;box-shadow:0 10px 32px rgba(0,0,0,.45);border-left:4px solid #94a3b8;pointer-events:auto;animation:toast-slide-in .22s ease-out}@keyframes toast-slide-in{0%{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}.toast[data-kind=error]{border-left-color:#ff8a8a}.toast[data-kind=warning]{border-left-color:#ffd166}.toast[data-kind=info]{border-left-color:#dafe8b}.toast-message{flex:1 1;white-space:pre-wrap}.toast-dismiss{background:transparent;border:none;color:rgba(255,255,255,.55);font-size:1.15rem;line-height:1;cursor:pointer;padding:0 .15rem;margin-top:-1px}.toast-dismiss:hover{color:rgba(255,255,255,.95)}.toast-dismiss:focus-visible{outline:2px solid rgba(218,254,139,.6);outline-offset:2px}.workflow-stepper{display:flex;align-items:center;gap:.45rem;padding:.55rem 1.4rem;margin:0;list-style:none;font-size:.85rem;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02);overflow-x:auto;scrollbar-width:thin}.workflow-step{display:inline-flex;align-items:center;gap:.45rem;padding:.32rem .85rem .32rem .5rem;border-radius:999px;white-space:nowrap;border:1px solid transparent;color:rgba(255,255,255,.5);transition:background .15s ease,color .15s ease,border-color .15s ease}.workflow-step+.workflow-step:before{content:"→";margin-right:.45rem;margin-left:-.1rem;color:rgba(255,255,255,.22)}.workflow-step[data-state=active]{background:rgba(218,254,139,.12);border-color:rgba(218,254,139,.5);color:#dafe8b;font-weight:500}.workflow-step[data-state=done]{color:rgba(218,254,139,.78)}.workflow-step-index{display:inline-flex;width:1.35rem;height:1.35rem;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.06);font-size:.72rem;font-weight:700;color:rgba(255,255,255,.75)}.workflow-step[data-state=active] .workflow-step-index{background:#dafe8b;color:#0e1116}.workflow-step[data-state=done] .workflow-step-index{background:rgba(218,254,139,.15);color:#dafe8b}.opening-map-more{display:inline-block;padding:.3rem .7rem;border-radius:999px;background:rgba(255,255,255,.05);color:rgba(255,255,255,.65);font-size:.75rem;border:1px dashed rgba(255,255,255,.18);align-self:center}.cap-preview-block{display:flex;flex-direction:column;gap:.5rem;margin-top:.4rem}.cap-preview-svg{width:100%;height:240px;background:rgba(0,0,0,.35);border-radius:8px;border:1px solid rgba(218,254,139,.18);display:block}.cap-preview-original{fill:none;stroke:rgba(255,255,255,.55);vector-effect:non-scaling-stroke}.cap-preview-cap{fill:rgba(218,254,139,.32);stroke:#dafe8b;vector-effect:non-scaling-stroke}.cap-preview-legend{list-style:none;margin:0;padding:0;display:flex;gap:.9rem;font-size:.78rem;color:rgba(255,255,255,.75)}.cap-preview-legend li{display:inline-flex;align-items:center;gap:.45rem}.cap-preview-legend li:before{content:"";display:inline-block;width:.85rem;height:.85rem;border-radius:2px}.cap-preview-legend-original:before{border:1.5px dashed rgba(255,255,255,.7);background:transparent}.cap-preview-legend-cap:before{background:rgba(218,254,139,.32);border:1.5px solid #dafe8b}.canvas-mode-bar{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;background:rgba(255,255,255,.03);border-bottom:1px solid rgba(255,255,255,.08);font-size:.82rem}.tools-menu{position:relative;display:inline-block}.tools-menu-trigger{display:inline-flex;align-items:center;gap:.45rem;background:rgba(0,0,0,.3);border:1px solid rgba(218,254,139,.32);border-radius:7px;padding:.32rem .7rem;color:rgba(255,255,255,.88);cursor:pointer;font-family:inherit;font-size:.82rem}.tools-menu-trigger.is-open,.tools-menu-trigger:hover{border-color:#dafe8b;color:#dafe8b}.tools-menu-trigger-label{font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;color:rgba(218,254,139,.75)}.tools-menu-trigger-active{font-size:.82rem;color:inherit}.tools-menu-caret{font-size:.7rem;opacity:.7}.tools-menu-list{position:absolute;top:calc(100% + .35rem);left:0;margin:0;padding:.35rem;list-style:none;background:#1a1d23;border:1px solid rgba(218,254,139,.3);border-radius:9px;box-shadow:0 14px 38px rgba(0,0,0,.55);z-index:60;min-width:240px}.tools-menu-item{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:start;grid-gap:.55rem;gap:.55rem;padding:.5rem .6rem;background:transparent;border:1px solid transparent;border-radius:6px;color:rgba(255,255,255,.88);cursor:pointer;font-family:inherit;text-align:left}.tools-menu-item:hover{background:rgba(218,254,139,.1);border-color:rgba(218,254,139,.35)}.tools-menu-item.is-active{background:rgba(218,254,139,.15);border-color:rgba(218,254,139,.5)}.tools-menu-item-icon{font-size:1.05rem;line-height:1.3}.tools-menu-item-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.tools-menu-item-label{font-size:.88rem;color:#f4f8e7;font-weight:500}.tools-menu-item-desc{font-size:.74rem;color:rgba(255,255,255,.6);line-height:1.35}.tools-menu-item-check{color:#dafe8b;font-size:.9rem;align-self:center}.canvas-mode-btn{background:transparent;border:1px solid rgba(255,255,255,.18);border-radius:6px;color:rgba(255,255,255,.7);padding:.32rem .85rem;cursor:pointer;font-family:inherit;font-size:.82rem}.canvas-mode-btn:hover{border-color:rgba(218,254,139,.5);color:#dafe8b}.canvas-mode-btn.is-active{background:#dafe8b;border-color:#dafe8b;color:#0e1116;font-weight:600}.canvas-mode-count{margin-left:.4rem;padding:.25rem .65rem;border-radius:999px;background:rgba(218,254,139,.15);color:#dafe8b;font-size:.78rem;font-weight:500}.canvas-mode-clear{background:transparent;border:1px dashed rgba(255,255,255,.22);border-radius:6px;color:rgba(255,255,255,.6);padding:.22rem .65rem;cursor:pointer;font-family:inherit;font-size:.75rem}.canvas-mode-clear:hover{color:#ff8a8a;border-color:rgba(255,138,138,.5)}.geometry-svg.is-select-mode{cursor:crosshair}.canvas-selection-box{fill:rgba(218,254,139,.08);stroke:#dafe8b;stroke-width:1.5;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}.batch-action-panel{background:rgba(218,254,139,.06);border-bottom:1px solid rgba(218,254,139,.22);padding:.6rem .9rem .75rem;display:grid;grid-gap:.55rem;gap:.55rem;font-size:.85rem}.batch-action-tabs{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:.35rem;gap:.35rem}.batch-action-tab{display:flex;flex-direction:column;align-items:center;gap:.18rem;padding:.5rem .4rem .55rem;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.14);border-radius:8px;color:rgba(255,255,255,.72);cursor:pointer;font-family:inherit;text-align:center;transition:border-color .12s ease,background .12s ease,color .12s ease}.batch-action-tab:hover{border-color:rgba(218,254,139,.45);color:#dafe8b}.batch-action-tab.is-active{border-color:#dafe8b;background:rgba(218,254,139,.15);color:#dafe8b;font-weight:600}.batch-action-tab-icon{font-size:1.1rem;line-height:1}.batch-action-tab-label{font-size:.78rem;line-height:1.25}.batch-action-card{display:grid;grid-gap:.45rem;gap:.45rem;padding:.55rem .7rem .6rem;background:rgba(0,0,0,.2);border:1px solid rgba(218,254,139,.18);border-radius:8px}.batch-action-card-hint{margin:0;color:rgba(255,255,255,.88);font-size:.85rem;line-height:1.45}.batch-action-card-example{margin:0;color:rgba(218,254,139,.78);font-size:.76rem;line-height:1.4}.batch-action-card-warning{margin:0;color:#ffd166;font-size:.78rem;line-height:1.4}.batch-action-card-note{margin:0;color:rgba(255,255,255,.55);font-size:.75rem;font-style:italic}.batch-action-apply-danger{background:#ff8a8a!important;border-color:#ff8a8a!important;color:#1a0606!important}.batch-action-apply-danger:hover:not(:disabled){background:#ff6b6b!important}.batch-action-distribution{margin:0;padding:.32rem .6rem;font-size:.78rem;color:rgba(218,254,139,.85);background:rgba(0,0,0,.25);border-radius:6px}.geometry-opening.is-batch-highlighted{stroke:#dafe8b!important;stroke-width:2.5!important;filter:drop-shadow(0 0 4px rgba(218,254,139,.85));animation:batch-highlight-pulse 1.4s ease-in-out infinite}@keyframes batch-highlight-pulse{0%,to{filter:drop-shadow(0 0 3px rgba(218,254,139,.7))}50%{filter:drop-shadow(0 0 7px rgba(218,254,139,1))}}.batch-action-header{display:flex;align-items:baseline;gap:.75rem}.batch-action-header strong{color:#dafe8b;font-size:.92rem}.batch-action-target-count{color:rgba(255,255,255,.75);font-size:.8rem}.batch-action-hint{margin:0;color:rgba(255,255,255,.65);font-size:.78rem;line-height:1.45}.batch-action-field{display:flex;align-items:center;gap:.6rem}.batch-action-field>span{color:rgba(255,255,255,.85)}.batch-action-percent-row{display:inline-flex;align-items:center;gap:.3rem}.batch-action-percent-row input{background:rgba(0,0,0,.35);border:1px solid rgba(218,254,139,.3);border-radius:6px;color:#f4f8e7;padding:.3rem .5rem;font-family:inherit;font-size:.9rem;width:5rem}.batch-action-percent-row input:focus-visible{outline:2px solid rgba(218,254,139,.6);outline-offset:1px}.batch-action-percent-row>span{color:rgba(255,255,255,.7)}.batch-action-explainer{margin:0;color:rgba(255,255,255,.55);font-size:.74rem;line-height:1.4}.batch-action-buttons{display:flex;gap:.45rem;justify-content:flex-end}.batch-action-apply,.batch-action-clear{font-family:inherit;font-size:.85rem;border-radius:6px;padding:.42rem 1rem;cursor:pointer}.batch-action-clear{background:transparent;border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.7)}.batch-action-clear:hover{border-color:rgba(255,138,138,.5);color:#ff8a8a}.batch-action-apply{background:#dafe8b;border:1px solid #dafe8b;color:#0e1116;font-weight:600}.batch-action-apply:hover:not(:disabled){background:#c8ed72}.batch-action-apply:disabled{opacity:.5;cursor:not-allowed}:root{--panel-font-sm:0.72rem;--panel-font-md:0.82rem;--panel-font-lg:0.95rem;--panel-gap:0.6rem;--panel-pad:0.75rem}.panel-section{display:flex;flex-direction:column;gap:var(--panel-gap);padding:var(--panel-pad);margin:0;min-width:0;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:14px}.panel-section__title{margin:0;font-size:var(--panel-font-lg);font-weight:600;color:#f3fff0;min-width:0;overflow-wrap:anywhere}.field{display:flex;flex-direction:column;gap:.3rem;min-width:0;font-size:var(--panel-font-md)}.field__label{font-size:var(--panel-font-sm);color:#94a3b8}.field__label,.field__value{min-width:0;overflow-wrap:anywhere}.field__value{margin:0;word-break:break-word}.field--inline{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);grid-gap:.5rem;gap:.5rem;align-items:start}.field--row{flex-direction:row;align-items:center;gap:.5rem}.field input,.field select,.field textarea{width:100%;min-width:0;box-sizing:border-box}.panel-save-button{width:100%;padding:.6rem .9rem;border:1px solid rgba(218,255,139,.45);border-radius:12px;background:#dafe8b;color:#17200f;font:inherit;font-weight:600;cursor:pointer;text-align:center}.panel-save-button:hover{background:#e6ffa0}.panel-save-button:disabled{background:rgba(218,254,139,.25);color:rgba(241,240,232,.55);cursor:not-allowed}.export-download-overlay{position:fixed;inset:0;background:rgba(8,10,14,.72);display:flex;align-items:center;justify-content:center;z-index:1200;padding:1rem}.export-download-card{background:#1a1d23;border:1px solid rgba(218,254,139,.32);border-radius:12px;padding:1.5rem 1.75rem 1.4rem;width:min(420px,100%);box-shadow:0 14px 48px rgba(0,0,0,.55);color:rgba(255,255,255,.92)}.export-download-title{margin:0 0 .9rem;font-size:1rem}.export-download-bar{position:relative;height:18px;background:rgba(255,255,255,.08);border-radius:6px;overflow:hidden}.export-download-fill{height:100%;background:linear-gradient(90deg,#b6e35a,#dafe8b);border-radius:6px;transition:width .2s ease-out}.export-download-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:#10131c}.export-download-body{margin:.8rem 0 0;font-size:.8rem;color:#cbd5f5}.confirm-dialog-overlay{position:fixed;inset:0;background:rgba(8,10,14,.72);display:flex;align-items:center;justify-content:center;z-index:1300;padding:1rem}.confirm-dialog-card{background:#1a1d23;border:1px solid rgba(255,120,120,.35);border-radius:12px;padding:1.4rem 1.6rem;width:min(420px,100%);box-shadow:0 14px 48px rgba(0,0,0,.55);color:rgba(255,255,255,.92)}.confirm-dialog-title{margin:0 0 .7rem;font-size:1rem}.confirm-dialog-message{margin:0 0 1.1rem;font-size:.85rem;color:#cbd5f5;line-height:1.5}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}.confirm-dialog-cancel,.confirm-dialog-confirm{border-radius:7px;padding:.4rem .9rem;font-size:.82rem;font-weight:600;cursor:pointer}.confirm-dialog-cancel{background:transparent;color:#cbd5f5;border:1px solid rgba(203,213,245,.4)}.confirm-dialog-confirm{background:#ff6b6b;color:#10131c;border:1px solid #ff6b6b}.confirm-dialog-cancel:disabled,.confirm-dialog-confirm:disabled{opacity:.5;cursor:default}.layer-action-delete{color:#ff9b9b}.layer-action-delete:hover{background:rgba(255,107,107,.15);border-color:#ff6b6b;color:#ff6b6b}.layer-delete-all-button{background:transparent;color:#ff9b9b;border:1px solid rgba(255,107,107,.5);border-radius:6px;padding:.3rem .6rem;font-size:.74rem;font-weight:600;cursor:pointer}.layer-delete-all-button:hover{background:rgba(255,107,107,.15);border-color:#ff6b6b;color:#ff6b6b}.geometry-flash-shape{fill-opacity:.9;stroke:none}.mask-derived-banner{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-bottom:.5rem;padding:.5rem .75rem;background:rgba(255,170,60,.12);border:1px solid rgba(255,170,60,.5);border-radius:8px;font-size:.82rem;color:#ffd79a}.mask-derived-banner.is-acknowledged{background:rgba(120,200,120,.1);border-color:rgba(120,200,120,.4);color:#b7e6b7}.mask-derived-banner__text{min-width:0;overflow-wrap:anywhere}.mask-derived-banner__drill-warning{flex-basis:100%;min-width:0;overflow-wrap:anywhere;color:#ffb4a2;font-weight:600}.mask-derived-banner__ack{margin-left:auto;font-weight:600}.mask-derived-banner__button{margin-left:auto;background:#ffce4a;color:#10131c;border:none;border-radius:6px;padding:.3rem .7rem;font-weight:700;font-size:.78rem;cursor:pointer}.mask-derived-banner__source{display:flex;align-items:center;gap:.35rem;margin-left:auto}.mask-derived-banner__source-label{font-size:.76rem;opacity:.85}.mask-derived-banner__source-button{background:rgba(255,255,255,.08);color:inherit;border:1px solid rgba(255,170,60,.5);border-radius:6px;padding:.25rem .6rem;font-size:.76rem;font-weight:600;cursor:pointer}.mask-derived-banner__source-button.is-selected{background:#ffce4a;color:#10131c;border-color:#ffce4a}.mask-derived-banner__source-button:disabled{opacity:.5;cursor:progress}