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:2rem auto;max-width:32rem;padding:2rem;max-height:calc(100% - 4rem);overflow-y:auto}.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}.layer-conflict-overlay{position:fixed;inset:0;z-index:65;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55)}.layer-conflict-card{background:#241c10;border:1px solid rgba(255,200,90,.4);border-radius:12px;padding:1.2rem 1.4rem;width:min(500px,92vw);display:flex;flex-direction:column;gap:.7rem}.layer-conflict-title{font-weight:700;color:#ffc85a}.layer-conflict-intro,.layer-conflict-note{font-size:.85rem;line-height:1.5}.layer-conflict-note{color:#ffe28a}.layer-conflict-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.layer-conflict-item{display:flex;flex-direction:column;gap:.15rem;padding:.5rem .6rem;border:1px solid rgba(255,200,90,.25);border-radius:8px;font-size:.85rem}.layer-conflict-type{font-weight:600}.layer-conflict-files{color:#cdd6c2}.layer-conflict-actions{display:flex;justify-content:flex-end}.layer-conflict-close{border:1px solid rgba(255,200,90,.45);border-radius:8px;background:rgba(255,200,90,.12);color:#ffc85a;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;flex:1 1}.dock-right-controls{display:flex;flex-direction:column;gap:.65rem;min-height: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;position:relative}.canvas-stage-wrap{display:flex;flex-direction:row;align-items:stretch;gap:.5rem;flex:1 1;min-height:0}.canvas-tool-rail{gap:.5rem;padding:.4rem .35rem;background:rgba(9,13,6,.72);border:1px solid rgba(218,255,139,.18);border-radius:10px;align-self:flex-start}.canvas-tool-group,.canvas-tool-rail{display:flex;flex-direction:column;align-items:center}.canvas-tool-group{gap:.35rem}.canvas-tool-divider{width:60%;height:1px;margin:.15rem 0;background:rgba(218,255,139,.18)}.canvas-tool-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:#17200f;border:1px solid rgba(218,255,139,.32);border-radius:8px;color:#f1f0e8;cursor:pointer}.canvas-tool-btn:hover{background:rgba(218,255,139,.18)}.canvas-tool-btn:focus-visible{outline:2px solid #dafe8b;outline-offset:1px}.canvas-tool-btn.is-active{background:rgba(218,254,139,.16);border-color:#dafe8b;color:#dafe8b}.canvas-tool-btn:disabled{opacity:.4;cursor:not-allowed}.canvas-tool-icon{display:inline-flex;width:20px;height:20px}.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-stage.has-options{grid-template-rows:auto auto minmax(0,1fr)}.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-options-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem;padding:.4rem .6rem;background:rgba(9,13,6,.72);border:1px solid rgba(218,255,139,.18);border-radius:10px;font-size:.78rem}.selection-context-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.22rem .6rem;border:1px solid rgba(218,255,139,.2);border-radius:999px;background:rgba(218,254,139,.06);color:#dafe8b;font-weight:500}.selection-context-chip.is-empty{border-color:rgba(255,255,255,.12);background:transparent;color:rgba(255,255,255,.4);font-weight:400}.selection-context-chip__meta{color:#b9c7aa}.selection-context-chip+.canvas-options-edit-form{border-left:1px solid rgba(218,255,139,.18);padding-left:.6rem}.chip-action{font-family:inherit;font-size:.75rem;line-height:1.1;padding:.24rem .7rem;border:1px solid transparent;border-radius:6px;cursor:pointer}.chip-action--part{background:rgba(218,254,139,.15);border-color:rgba(218,255,139,.45);color:#dafe8b}.chip-action--part:hover{background:rgba(218,254,139,.28);border-color:#dafe8b}.chip-action--clear{background:transparent;border-color:rgba(255,255,255,.28);color:rgba(255,255,255,.72)}.chip-action--clear:hover{background:rgba(255,138,138,.12);border-color:rgba(255,138,138,.5);color:#ff8a8a}.canvas-options-edit-form{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem}.canvas-options-edit-form .options-edit-field{display:flex;align-items:center;gap:.3rem;color:#b9c7aa}.canvas-options-edit-form .options-edit-field input[type=number]{width:5.5rem;padding:.3rem .45rem;border-radius:7px;border:1px solid rgba(203,213,245,.35);background:#10131c;color:rgba(255,255,255,.92);font:inherit}.canvas-options-edit-form .options-edit-field input[type=checkbox]{margin:0}.canvas-options-save{padding:.35rem .8rem;border:1px solid rgba(218,255,139,.45);border-radius:8px;background:#dafe8b;color:#17200f;font:inherit;font-weight:600;cursor:pointer}.canvas-options-save:hover{background:#e8ffab}.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;min-height:0;overflow:hidden}.geometry-pan-layer,.geometry-viewport{height:100%;position:relative;width:100%}.geometry-pan-layer.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;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,.geometry-svg.is-dragging{cursor:default}.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-ruler-overlay{height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.canvas-ruler{pointer-events:none}.canvas-ruler-strip{fill:rgba(9,14,8,.92)}.canvas-ruler-corner{fill:rgba(9,14,8,.98)}.canvas-ruler-tick{stroke:rgba(218,255,139,.5);stroke-width:1;vector-effect:non-scaling-stroke}.canvas-ruler-tick.is-minor{stroke:rgba(185,199,170,.28)}.canvas-ruler-label{fill:rgba(218,255,139,.72);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.canvas-crosshair{pointer-events:none}.canvas-crosshair-line{stroke:rgba(218,255,139,.45);stroke-width:1;vector-effect:non-scaling-stroke}.canvas-crosshair-marker-line{stroke:#dafe8b;stroke-width:1.6;vector-effect:non-scaling-stroke}.canvas-crosshair-label-bg{fill:rgba(23,32,15,.95);stroke:rgba(218,255,139,.4);stroke-width:1;vector-effect:non-scaling-stroke}.canvas-crosshair-label{fill:#dafe8b;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.geometry-opening{cursor:default;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-opening.is-group-selected{fill:rgba(218,255,139,.24);stroke:#dafe8b;stroke-width:2;stroke-dasharray:5 2.5}.geometry-opening.is-capped{stroke-dasharray:3 2}.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}.recommendation-card p{margin:0}.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}.parsing-layer-row{align-items:center;color:#cdd6c2;display:flex;font-size:.82rem;gap:.5rem;padding:.35rem .5rem}.parsing-layer-dot{animation:parsing-pulse 1s ease-in-out infinite;background:#dafe8b;border-radius:50%;flex:0 0 auto;height:7px;width:7px}.parsing-layer-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parsing-layer-count{color:#b9c7aa;font-size:.72rem;padding:.2rem .5rem}@keyframes parsing-pulse{0%,to{opacity:.35}50%{opacity:1}}.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-overlay-toggle{display:flex;align-items:center;gap:.35rem;width:100%;margin-bottom:.4rem;padding:.3rem .45rem;font-size:.72rem;color:rgba(255,255,255,.82);background:rgba(218,255,139,.06);border:1px solid rgba(218,255,139,.18);border-radius:8px;cursor:pointer}.stencil-overlay-toggle.is-on{color:#dafe8b;background:rgba(218,255,139,.16);border-color:rgba(218,255,139,.5)}.stencil-overlay-toggle__box{font-size:.85rem;line-height:1}.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:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:12px;cursor:-webkit-grab;cursor:grab;display:grid;grid-gap:.3rem .3rem;gap:.3rem .3rem;grid-template-columns:18px minmax(0,1fr);grid-template-rows:auto auto auto;padding:.45rem .5rem}.layer-list>li>.layer-color-input{grid-column:1;grid-row:1}.layer-list>li>.layer-item{grid-column:2;grid-row:1}.layer-list>li>.layer-actions{grid-column:1/-1;grid-row:2}.layer-list>li>.layer-role-select{grid-column:1/-1;grid-row:3}.layer-list>li>.layer-advisory{grid-column:1/-1;grid-row:4}.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-reason{flex-basis:100%;margin:0;color:#b9c1dd;font-size:.7rem;line-height:1.35;overflow-wrap:anywhere}.layer-advisory-cited{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}.layer-advisory-cited__label{color:#8d96b8;font-size:.68rem;white-space:nowrap}.layer-advisory-cited__chip{padding:.05rem .35rem;background:rgba(203,213,245,.12);border:1px solid rgba(203,213,245,.25);border-radius:999px;color:#cbd5f5;font-size:.66rem;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;justify-content:center}.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:none;border:0;border-radius:8px;color:inherit;cursor:pointer;display:grid;grid-gap:.55rem;gap:.55rem;grid-template-columns:minmax(0,1fr) 18px;padding:.3rem .35rem;text-align:left;width:100%}.layer-item:hover{background:rgba(218,255,139,.1)}.layer-item.is-hidden{opacity:.4}.layer-color-input{background:none;border:1px solid rgba(255,255,255,.25);border-radius:4px;cursor:pointer;height:18px;padding:0;width:18px}.layer-color-input::-webkit-color-swatch-wrapper{padding:0}.layer-color-input::-webkit-color-swatch{border:none;border-radius:3px}.layer-color-input::-moz-color-swatch{border:none;border-radius:3px}.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){.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)}.ui-tooltip-wrap{position:relative;display:inline-flex}.ui-tooltip{position:absolute;z-index:9999;display:flex;flex-direction:column;gap:2px;width:max-content;max-width:18rem;padding:6px 9px;background:rgba(15,23,42,.96);color:#f8fafc;border:1px solid rgba(218,255,139,.28);border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.35);line-height:1.3;pointer-events:none}.ui-tooltip[data-placement=right]{top:50%;left:100%;margin-left:8px;transform:translateY(-50%)}.ui-tooltip[data-placement=left]{top:50%;right:100%;margin-right:8px;transform:translateY(-50%)}.ui-tooltip[data-placement=top]{bottom:100%;left:50%;margin-bottom:8px;transform:translateX(-50%)}.ui-tooltip[data-placement=bottom]{top:100%;left:50%;margin-top:8px;transform:translateX(-50%)}.ui-tooltip-title{font-size:.76rem;font-weight:600;color:#dafe8b}.ui-tooltip-desc{font-size:.72rem;color:#cbd5e1}.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)}.inspector-cap-button+.inspector-cap-button{margin-top:.5rem}.inspector-cap-button:disabled{opacity:.45;cursor:default}.inspector-cap-button-secondary{background:transparent;color:#dafe8b;border:1px solid rgba(218,254,139,.55);font-weight:600}.inspector-cap-button-secondary:hover:not(:disabled){filter:none;border-color:#dafe8b;background:rgba(218,254,139,.1)}.options-cap-form{flex-direction:column;align-items:stretch;gap:.5rem}.options-cap-form input[type=range]{width:7rem}.cap-form-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem .9rem}.cap-form-row+.cap-form-row{border-top:1px solid rgba(218,255,139,.1);padding-top:.5rem}.cap-form-params .options-edit-field>span{min-width:6.5rem;text-align:right}.cap-form-metrics-row{align-items:baseline;gap:.3rem .9rem}.cap-form-actions{justify-content:center}.cap-kind-group{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.cap-kind-option{display:flex;align-items:center;gap:6px;font-size:.82rem;color:#b9c7aa;cursor:pointer}.cap-form-status{color:#cbd5f5;font-size:.82rem;min-width:6rem}.cap-form-error{color:#fecaca;font-size:.82rem}.cap-metrics{display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem .7rem;font-size:.78rem}.cap-metrics h4{margin:0;font-size:.78rem;font-weight:600;color:#94a3b8}.cap-metrics dl{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .7rem}.cap-metric-row{display:inline-flex;align-items:baseline;gap:.3rem}.cap-metric-row dt{color:#94a3b8}.cap-metric-row dd{margin:0}.canvas-options-edit-form .edit-readout{width:100%;padding-top:.35rem;border-top:1px solid rgba(148,163,184,.25)}.canvas-options-edit-form .edit-readout dt{color:#94a3b8}.canvas-options-edit-form .edit-readout-none{color:#94a3b8;font-size:.78rem}.cap-metric-ok{color:#dafe8b}.cap-metric-warn{color:#fbbf24}.cap-form-close{width:28px;height:28px;background:transparent;color:#cbd5f5;border:1px solid rgba(203,213,245,.35);border-radius:6px;cursor:pointer;font-size:1.1rem;line-height:1}.cap-form-close:hover{background:#334155}.options-cap-form .canvas-options-save:disabled{opacity:.55;cursor:not-allowed}.options-direction-form{flex-direction:column;align-items:stretch;gap:.5rem}.direction-form-hints{color:#94a3b8;font-size:.82rem}.direction-face-grid{display:grid;grid-template-columns:repeat(2,auto);justify-content:center;grid-gap:.4rem 1.2rem;gap:.4rem 1.2rem}.canvas-options-edit-form .options-edit-field.direction-face{display:flex;align-items:center;gap:.35rem}.direction-face-label{min-width:3.5rem;text-align:right;color:#b9c7aa}.direction-mode-toggle{font-family:inherit;font-size:.75rem;line-height:1.1;padding:.24rem .6rem;min-width:3.6rem;border:1px solid rgba(218,255,139,.45);border-radius:6px;background:rgba(218,254,139,.15);color:#dafe8b;cursor:pointer}.direction-mode-toggle:hover{background:rgba(218,254,139,.28);border-color:#dafe8b}.direction-mode-toggle.is-cut{border-color:rgba(251,191,36,.55);background:rgba(251,191,36,.14);color:#fbbf24}.direction-mode-toggle.is-cut:hover{background:rgba(251,191,36,.24);border-color:#fbbf24}.cap-preview-polygon{fill:rgba(218,254,139,.18);stroke:#dafe8b;stroke-width:1.6;stroke-dasharray:4 3}.cap-preview-polygon,.geometry-cap-applied{pointer-events:none;vector-effect:non-scaling-stroke}.geometry-cap-applied{fill:rgba(218,255,139,.5);stroke:#dafe8b;stroke-width:1.6}.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-cross line{stroke:#ffd479;stroke-width:1.25;vector-effect:non-scaling-stroke}.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}.geometry-guard-violation{fill:none;stroke:#ff5d73;stroke-width:2;stroke-dasharray:5 3;vector-effect:non-scaling-stroke;pointer-events:none}.canvas-guard-wrap{position:relative;margin-left:auto;display:inline-flex;align-items:center}.canvas-guard-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border-radius:8px;border:1px solid rgba(218,255,139,.28);background:rgba(9,13,6,.72);color:rgba(255,255,255,.72);font-size:.76rem;cursor:pointer}.canvas-guard-badge:hover{border-color:rgba(218,255,139,.5)}.canvas-guard-badge.is-violation{border-color:#ff5d73;background:rgba(255,93,115,.16);color:#ff9eb1}.guard-settings-popover{position:absolute;top:calc(100% + .4rem);right:0;z-index:30;display:flex;flex-direction:column;gap:.5rem;min-width:13rem;padding:.6rem .7rem;border-radius:10px;border:1px solid rgba(218,255,139,.28);background:rgba(9,13,6,.96);box-shadow:0 8px 24px rgba(0,0,0,.45)}.guard-settings-popover label{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.76rem}.guard-settings-popover input[type=number]{width:5rem}.edit-preview-rect{fill:rgba(218,255,139,.12);stroke:#daff8b;stroke-width:1.5;pointer-events:none}.edit-handle,.edit-preview-rect{vector-effect:non-scaling-stroke}.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}.stencil-preview-side-toggle{display:inline-flex;align-items:center;gap:0;border:1px solid rgba(218,254,139,.5);border-radius:8px;overflow:hidden}.stencil-preview-side-toggle__btn{background:rgba(255,255,255,.06);color:inherit;border:none;border-left:1px solid rgba(218,254,139,.35);padding:.45rem .7rem;font-size:.78rem;font-weight:600;white-space:nowrap;cursor:pointer}.stencil-preview-side-toggle__btn:first-child{border-left:none}.stencil-preview-side-toggle__btn.is-active{background:#dafe8b;color:#17200f}.stencil-preview-side-toggle__btn:not(.is-active):hover{background:rgba(218,254,139,.18)}.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}.silk-label-candidate,.smd-candidate{pointer-events:none;vector-effect:non-scaling-stroke}.silk-label-candidate{fill:rgba(250,204,21,.14);stroke:#facc15;stroke-width:1.2}.silk-label-candidate.is-selected{fill:rgba(250,204,21,.35);stroke:#f59e0b;stroke-width:2}.silk-label-candidate.coverage-matched:not(.is-selected){fill:rgba(52,211,153,.1);stroke:#34d399}.silk-label-candidate.coverage-merged:not(.is-selected){fill:rgba(167,139,250,.1);stroke:#a78bfa}.silk-label-candidate.coverage-graphic:not(.is-selected){fill:rgba(148,163,184,.1);stroke:#94a3b8}.silk-label-candidate.coverage-non-refdes:not(.is-selected){fill:rgba(251,146,60,.1);stroke:#fb923c}.silk-label-candidate.coverage-unread:not(.is-selected){fill:rgba(250,204,21,.14);stroke:#facc15}.refdes-coverage-legend{margin:4px 0 0;font-size:11px;line-height:1.4;opacity:.75}.component-candidate{fill:rgba(52,211,153,.25);stroke:#34d399;stroke-width:1.2;pointer-events:none;vector-effect:non-scaling-stroke}.component-candidate.is-selected{fill:rgba(52,211,153,.6);stroke:#059669;stroke-width:2}.refdes-pair-panel{position:absolute;top:52px;right:12px;width:300px;max-height:calc(100% - 72px);overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--border,#cbd5f5);border-radius:10px;background:var(--surface,#ffffff);box-shadow:0 8px 24px rgba(15,23,42,.14);font-size:12px;z-index:30}.refdes-pair-panel.is-embedded{position:static;width:auto;max-height:none;border:none;border-radius:0;background:transparent;box-shadow:none;padding:0;z-index:auto}.refdes-pair-header{display:flex;align-items:center;gap:8px}.refdes-pair-count{color:var(--muted-foreground,#64748b)}.refdes-pair-close{margin-left:auto;border:none;background:transparent;font-size:16px;line-height:1;cursor:pointer}.refdes-pair-hint{margin:0 0 6px;color:var(--muted-foreground,#64748b)}.refdes-pair-draft dl{display:grid;grid-template-columns:auto 1fr;grid-gap:2px 8px;gap:2px 8px;margin:0 0 8px}.refdes-pair-draft dl>div{display:contents}.refdes-pair-draft dt{color:var(--muted-foreground,#64748b)}.refdes-pair-draft dd{margin:0}.refdes-pair-draft-actions{display:flex;gap:6px}.refdes-pair-draft-actions input{flex:1 1;min-width:0;padding:4px 6px;border:1px solid var(--border,#cbd5f5);border-radius:6px}.refdes-pair-empty{margin:0;color:var(--muted-foreground,#64748b)}.refdes-pair-table{width:100%;border-collapse:collapse}.refdes-pair-table td,.refdes-pair-table th{padding:4px 6px;border-bottom:1px solid var(--border,#e2e8f0);text-align:left;white-space:nowrap}.refdes-pair-text{border:none;background:transparent;padding:0;cursor:pointer;font:inherit;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.refdes-pair-footer{display:flex;gap:6px;justify-content:flex-end}.refdes-section-title{margin:0 0 4px;font-size:11px;font-weight:600;color:var(--muted-foreground,#64748b);text-transform:uppercase;letter-spacing:.04em}.refdes-queue-list{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto;border:1px solid var(--border,#e2e8f0);border-radius:8px}.refdes-queue-row{display:flex;align-items:center;gap:4px;padding:2px 6px;border-bottom:1px solid var(--border,#eef2f7)}.refdes-queue-row:last-child{border-bottom:none}.refdes-queue-row.is-active{background:rgba(250,204,21,.18);outline:1px solid #f59e0b}.refdes-queue-row.is-matched .refdes-queue-status{color:#059669;font-weight:600}.refdes-queue-select{flex:1 1;min-width:0;display:flex;justify-content:space-between;gap:8px;border:none;background:transparent;padding:3px 2px;cursor:pointer;font:inherit;text-align:left}.refdes-queue-status{color:var(--muted-foreground,#64748b);white-space:nowrap}.refdes-queue-coords{color:var(--muted-foreground,#94a3b8);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.refdes-pair-actions{display:flex;gap:2px}.refdes-pair-actions button{border:none;background:transparent;cursor:pointer;padding:2px 4px;color:var(--muted-foreground,#64748b)}.refdes-pair-actions button:hover{color:inherit}.refdes-auto{display:flex;flex-direction:column;gap:10px}.refdes-auto-controls{display:flex;flex-direction:column;gap:4px}.refdes-auto-read{align-self:flex-start;border:1px solid var(--border,#cbd5f5);border-radius:6px;background:transparent;padding:4px 10px;font:inherit;font-weight:600;color:var(--foreground,#f1f0e8);cursor:pointer}.refdes-auto-read:hover:not(:disabled){border-color:#dafe8b;background:rgba(218,254,139,.1);color:#dafe8b}.refdes-auto-read:disabled{opacity:.5;cursor:default}.refdes-auto-disabled{margin:0;color:var(--muted-foreground,#64748b);font-size:11px}.refdes-auto-suggestions-head{display:flex;flex-direction:column;gap:6px;margin-top:2px}.refdes-auto-suggestions-head .refdes-section-title{margin:0}.refdes-auto-threshold-row{display:flex;align-items:center;gap:8px}.refdes-auto-threshold{flex:0 0 96px;width:96px;accent-color:#dafe8b;cursor:pointer}.refdes-auto-threshold:disabled{opacity:.5;cursor:default}.refdes-auto-threshold-value{min-width:34px;text-align:right;color:var(--foreground,#f1f0e8);font-size:11px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.refdes-auto-approve-all{flex:1 1 auto;min-width:0;border:1px solid var(--border,#cbd5f5);border-radius:6px;background:transparent;padding:3px 8px;font:inherit;font-size:11px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted-foreground,#64748b);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.refdes-auto-approve-all:hover:not(:disabled){border-color:#dafe8b;color:#dafe8b}.refdes-auto-approve-all:disabled{opacity:.5;cursor:default}.refdes-auto-list{list-style:none;margin:6px 0 0;padding:0 2px 0 0;display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto}.refdes-auto-row{display:flex;align-items:stretch;gap:2px;border:1px solid var(--border,#e2e8f0);border-radius:8px;background:rgba(255,255,255,.03);transition:border-color .12s ease,background-color .12s ease}.refdes-auto-row:hover{border-color:rgba(218,254,139,.5);background:rgba(218,254,139,.07)}.refdes-auto-select{flex:1 1;min-width:0;display:grid;grid-template-columns:96px 1fr auto;grid-template-areas:"thumb text conf" "thumb coords coords";align-items:center;grid-column-gap:8px;column-gap:8px;grid-row-gap:1px;row-gap:1px;border:none;background:transparent;padding:5px;font:inherit;color:inherit;text-align:left;cursor:pointer}.refdes-auto-crop{grid-area:thumb;width:96px;height:60px;object-fit:contain;background:#0a0d08;border:1px solid rgba(255,255,255,.08);border-radius:6px}.refdes-auto-crop:not([src]){visibility:hidden}.refdes-auto-text{grid-area:text;min-width:0;overflow:hidden;color:var(--foreground,#f1f0e8);font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.refdes-auto-confidence{grid-area:conf;justify-self:end;border:1px solid var(--border,#e2e8f0);border-radius:999px;background:rgba(255,255,255,.04);padding:1px 6px;color:var(--muted-foreground,#64748b);font-size:10px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.refdes-auto-coords{grid-area:coords;min-width:0;overflow:hidden;color:var(--muted-foreground,#94a3b8);font-size:10.5px;text-overflow:ellipsis;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.refdes-auto-actions{flex-shrink:0;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:4px 6px 4px 0}.refdes-auto-actions button{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:5px;background:transparent;padding:0;color:var(--muted-foreground,#64748b);font-size:12px;line-height:1;cursor:pointer}.refdes-auto-actions button:first-child:hover:not(:disabled){border-color:rgba(52,211,153,.5);background:rgba(52,211,153,.14);color:#34d399}.refdes-auto-actions button:last-child:hover:not(:disabled){border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.14);color:#f87171}.refdes-auto-actions button:disabled{opacity:.4;cursor:default}.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-progress{height:8px;border-radius:999px;background:rgba(218,254,139,.14);overflow:hidden;margin:.4rem 0 1rem}.auto-classify-progress__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#a9d94f,#dafe8b 50%,#a9d94f);background-size:200% 100%;animation:auto-classify-shimmer 1.1s linear infinite;transition:width .22s linear}@keyframes auto-classify-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.auto-classify-reviewing{display:flex;align-items:baseline;gap:.5rem;margin:0 0 .35rem;font-size:.94rem;font-weight:500;color:#dafe8b;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.auto-classify-reviewing__role{font-size:.8rem;font-weight:400;color:rgba(255,255,255,.55)}.auto-classify-progress__count{margin:0 0 .6rem;font-size:.82rem;color:rgba(255,255,255,.55);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.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}.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}.geometry-svg.is-select-mode{cursor:crosshair}.geometry-svg.is-shift-grouping,.geometry-svg.is-shift-grouping .geometry-opening{cursor:copy}.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}.field input:not([type=checkbox]),.field select,.field textarea{padding:.4rem .6rem;border-radius:7px;border:1px solid rgba(203,213,245,.35);background:#10131c;color:rgba(255,255,255,.92);font-size:var(--panel-font-md)}.field input:disabled,.field select:disabled{opacity:.5}.field--row input[type=checkbox]{width:auto;margin:0}.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}.refdes-auto-modal-overlay{position:fixed;inset:0;background:rgba(8,10,14,.72);display:flex;align-items:center;justify-content:center;z-index:1350;padding:1rem}.refdes-auto-modal-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)}.refdes-auto-modal-title{margin:0 0 1rem;font-size:1.02rem;color:#dafe8b}.refdes-auto-modal-bar{position:relative;height:8px;border-radius:999px;background:rgba(218,254,139,.14);overflow:hidden;margin:.4rem 0 1rem}.refdes-auto-modal-bar__seg{position:absolute;top:0;left:0;height:100%;width:40%;border-radius:999px;background:linear-gradient(90deg,rgba(218,254,139,0),#dafe8b 50%,rgba(218,254,139,0));animation:refdes-auto-modal-indeterminate 1.3s ease-in-out infinite}@keyframes refdes-auto-modal-indeterminate{0%{transform:translateX(-100%)}to{transform:translateX(250%)}}.refdes-auto-modal-elapsed{margin:0 0 .55rem;font-size:.9rem;font-weight:500;color:rgba(255,255,255,.82);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.refdes-auto-modal-hint{margin:0;font-size:.82rem;line-height:1.5;color:rgba(255,255,255,.6)}.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}.vendor-rule-capture-input{width:100%;box-sizing:border-box;margin-bottom:1.1rem;padding:.45rem .6rem;border-radius:7px;border:1px solid rgba(203,213,245,.35);background:#10131c;color:rgba(255,255,255,.92);font-size:.85rem}.vendor-rule-capture-input:disabled{opacity:.5;cursor:default}.vendor-rule-capture-warning{margin:-.3rem 0 .9rem;padding:.5rem .7rem;border-radius:7px;border:1px solid rgba(250,204,21,.4);background:rgba(250,204,21,.1);color:#f6d873;font-size:.78rem;line-height:1.5}.vendor-rule-capture-confirm{background:#dafe8b;border-color:#dafe8b;color:#17200f}.vendor-prefix-rule-card{display:flex;flex-direction:column;gap:.75rem}.vendor-prefix-rule-card .confirm-dialog-title{margin:0}.vendor-prefix-rule-field{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:#cbd5f5}.vendor-prefix-rule-input{width:100%;box-sizing:border-box;padding:.45rem .6rem;border-radius:7px;border:1px solid rgba(203,213,245,.35);background:#10131c;color:rgba(255,255,255,.92);font-size:.85rem}.vendor-prefix-rule-input:disabled{opacity:.5;cursor:default}.vendor-prefix-rule-ops{display:flex;gap:1rem;font-size:.82rem}.vendor-prefix-rule-ops label{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}.vendor-prefix-rule-warning{margin:0;padding:.5rem .7rem;border-radius:7px;border:1px solid rgba(250,204,21,.4);background:rgba(250,204,21,.1);color:#f6d873;font-size:.78rem;line-height:1.5}.vendor-prefix-rule-error{margin:0;color:#ff8f8f;font-size:.78rem}.silk-link{display:flex;flex-direction:column;gap:.6rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid rgba(203,213,245,.15)}.silk-link-title{margin:0;font-size:.85rem;color:rgba(255,255,255,.92)}.silk-link-saved{margin:0;font-size:.8rem;color:#cbd5f5}.silk-link-empty{margin:0;font-size:.78rem;color:rgba(203,213,245,.6)}.silk-link-create-prefix-rule{align-self:flex-start;padding:.35rem .8rem;border-radius:7px;border:1px solid rgba(203,213,245,.4);background:transparent;color:#cbd5f5;font-size:.78rem;font-weight:600;cursor:pointer}.silk-link-create-prefix-rule:hover:not(:disabled){border-color:#dafe8b;color:#dafe8b}.silk-link-create-prefix-rule:disabled{opacity:.5;cursor:default}.silk-link-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.silk-link-select{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.4rem .6rem;border-radius:7px;border:1px solid rgba(203,213,245,.25);background:#10131c;color:rgba(255,255,255,.88);font-size:.8rem;cursor:pointer;text-align:left}.silk-link-select:hover{border-color:rgba(218,254,139,.6)}.silk-link-row.is-active .silk-link-select{border-color:#dafe8b;background:rgba(218,254,139,.12)}.silk-link-distance{color:rgba(203,213,245,.6);font-size:.74rem;white-space:nowrap}.silk-link-draft{display:flex;gap:.5rem}.silk-link-draft input{flex:1 1;min-width:0;box-sizing:border-box;padding:.4rem .6rem;border-radius:7px;border:1px solid rgba(203,213,245,.35);background:#10131c;color:rgba(255,255,255,.92);font-size:.82rem}.silk-link-draft input:disabled{opacity:.5}.silk-link-draft button{padding:.4rem .8rem;border-radius:7px;border:1px solid #dafe8b;background:#dafe8b;color:#17200f;font-size:.78rem;font-weight:600;cursor:pointer;white-space:nowrap}.silk-link-draft button:disabled{opacity:.45;cursor:default}.vendor-rule-list-overlay{position:fixed;inset:0;background:rgba(8,10,14,.72);display:flex;align-items:center;justify-content:center;z-index:1280;padding:1rem}.vendor-rule-list-card{background:#1a1d23;border:1px solid rgba(120,160,255,.28);border-radius:12px;padding:1.3rem 1.5rem;width:min(640px,100%);max-height:80vh;overflow-y:auto;box-shadow:0 14px 48px rgba(0,0,0,.55);color:rgba(255,255,255,.92)}.vendor-rule-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem}.vendor-rule-list-heading{display:flex;flex-direction:column;gap:.15rem}.vendor-rule-list-workspace{font-size:.78rem;color:#9fb0d9}.vendor-rule-list-close{background:transparent;border:none;color:#cbd5f5;font-size:1.3rem;line-height:1;cursor:pointer}.vendor-rule-list-error{margin:0 0 .8rem;font-size:.82rem;color:#ff9b9b}.vendor-rule-list-empty{margin:.6rem 0;font-size:.85rem;color:#cbd5f5}.vendor-rule-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.vendor-rule-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.6fr) auto auto;align-items:center;grid-gap:.7rem;gap:.7rem;padding:.6rem .7rem;border:1px solid rgba(255,255,255,.08);border-radius:8px}.vendor-rule-row-name{display:flex;gap:.4rem}.vendor-rule-name-input{min-width:0;flex:1 1;padding:.3rem .5rem;border-radius:6px;border:1px solid rgba(203,213,245,.35);background:#10131c;color:rgba(255,255,255,.92);font-size:.8rem}.vendor-rule-name-save{padding:.3rem .7rem;border-radius:6px;border:1px solid rgba(120,160,255,.5);background:transparent;color:#cbd5f5;font-size:.78rem;cursor:pointer}.vendor-rule-row-sig{font-size:.76rem;color:#9fb0d0;word-break:break-all}.vendor-rule-row-active{display:flex;align-items:center;gap:.35rem;font-size:.78rem;color:#cbd5f5;white-space:nowrap}.vendor-rule-row-delete{padding:.3rem .7rem;border-radius:6px;border:1px solid rgba(255,107,107,.4);background:transparent;color:#ff9b9b;font-size:.78rem;cursor:pointer}.vendor-rule-row-delete:hover{border-color:#ff6b6b;color:#ff6b6b}.vendor-rule-name-input:disabled,.vendor-rule-name-save:disabled,.vendor-rule-row-delete:disabled{opacity:.5;cursor:default}.vendor-rule-suggest-actions{display:flex;gap:.5rem;flex-wrap:wrap}.vendor-rule-suggest-actions button{padding:.35rem .8rem;border-radius:7px;border:1px solid rgba(203,213,245,.4);background:transparent;color:#cbd5f5;font-size:.78rem;font-weight:600;cursor:pointer}.vendor-rule-suggest-actions button:hover:not(:disabled){border-color:#dafe8b;color:#dafe8b}.vendor-rule-suggest-actions button:disabled{opacity:.5;cursor:default}.vendor-rule-suggest-actions .vendor-rule-revert-all{color:#ff9b9b;border-color:rgba(255,107,107,.5)}.vendor-rule-suggest-actions .vendor-rule-revert-all:hover:not(:disabled){background:rgba(255,107,107,.15);border-color:#ff6b6b;color:#ff6b6b}.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}