:root{color:#0f172a;background:#eef2f7;font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:1180px;min-height:100vh}button,input,select{font:inherit}button{border:1px solid #cbd5e1;border-radius:8px;padding:9px 14px;color:#0f172a;background:#fff;cursor:pointer}button:hover{border-color:#0f766e}button:disabled{cursor:not-allowed;opacity:.5}button.primary,form button{color:#fff;background:#0f766e;border-color:#0f766e}button.secondary{background:transparent}input{border:1px solid #cbd5e1;border-radius:7px;padding:8px 10px}select{border:1px solid #cbd5e1;border-radius:7px;padding:8px 10px;background:#fff}h1,h2,p{margin-top:0}.eyebrow{margin-bottom:5px;color:#0f766e;font-size:12px;font-weight:800;letter-spacing:.13em}.muted,.hint{color:#64748b}.error{color:#b91c1c}.banner{margin:0 24px 14px;padding:10px 14px;background:#fee2e2;border-radius:8px}.access-page{display:grid;min-height:100vh;place-items:center;background:radial-gradient(circle at top,#ccfbf1,#eef2f7 54%)}.access-card{width:440px;padding:42px;border:1px solid #dbe4ee;border-radius:18px;background:#fffffff0;box-shadow:0 22px 60px #0f172a1f}.access-card form{display:grid;gap:10px;margin-top:28px}.access-card .hint{margin:22px 0 0;font-size:12px}.workspace{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;color:#fff;background:#0f172a}.topbar h1{margin:0;font-size:22px}.topbar-actions{display:flex;align-items:center;gap:18px}.toolbar{display:flex;align-items:end;gap:9px;padding:12px 24px;background:#fff;border-bottom:1px solid #dbe4ee}.toolbar label{display:grid;gap:4px;color:#475569;font-size:11px}.toolbar input{width:125px}.rulebar{display:flex;align-items:center;gap:14px;padding:8px 24px;background:#f8fafc;border-bottom:1px solid #dbe4ee;font-size:12px}.rulebar label{display:flex;align-items:center;gap:5px;color:#475569}.rulebar input{width:92px;padding:5px 7px}.workspace-grid{display:grid;grid-template-columns:minmax(920px,1fr) 480px;gap:16px;padding:16px 24px 28px}.canvas-shell{overflow:hidden;width:902px;height:522px;border:1px solid #cbd5e1;border-radius:12px;background:#dce5ef;box-shadow:0 8px 28px #0f172a14}.canvas-caption{margin:8px 0;color:#64748b;font-size:12px}aside{display:grid;align-content:start;gap:12px}.panel{padding:15px;border:1px solid #dbe4ee;border-radius:12px;background:#fff}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.panel-title h2{margin:0;font-size:15px}.panel-title span{padding:3px 8px;border-radius:999px;background:#e2e8f0;font-size:11px;font-weight:800}.panel-title span.pass{color:#166534;background:#dcfce7}.panel-title span.fail{color:#991b1b;background:#fee2e2}.stackup-view{display:grid;gap:3px}.stackup-layer{display:grid;grid-template-columns:120px 1fr auto;align-items:center;min-height:30px;padding:5px 8px;border:1px solid rgba(15,23,42,.15);border-radius:4px;color:#0f172a;font-size:11px}.stackup-layer span{color:#334155}.stackup-layer small{color:#475569}.stackup-conductor{background:#fbbf24}.stackup-dielectric{background:#bfdbfe}.stackup-solder-mask{background:#86efac}.stackup-adhesive{background:#fbcfe8}.stackup-other{background:#e2e8f0}.stackup-note{margin:9px 0 0;color:#64748b;font-size:11px}.component-list{display:grid;gap:7px;max-height:330px;overflow:auto}.component-list article{display:grid;grid-template-columns:128px 150px 1fr;align-items:center;gap:8px;padding:8px;border-radius:7px;background:#f8fafc}.component-identity input{width:90px;padding:5px 7px;font-weight:700}.coordinate-inputs{display:grid;grid-template-columns:1fr 1fr;gap:4px}.coordinate-inputs input{min-width:0;width:100%;padding:5px 6px;font-family:ui-monospace,monospace;font-size:11px}.component-actions{display:flex;flex-wrap:wrap;gap:4px}.component-list small{display:block;color:#64748b}.component-list code{color:#475569;font-size:11px}button.icon{padding:5px 7px;font-size:11px}.violations{display:grid;gap:6px;margin:0;padding-left:18px;max-height:150px;overflow:auto;color:#475569;font-size:12px}.task-row{display:flex;justify-content:space-between;padding:7px 0;border-top:1px solid #e2e8f0;font-size:12px}.admin-page{min-height:100vh;padding-bottom:32px}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;color:#fff;background:#0f172a}.admin-header h1{margin:0;font-size:25px}.admin-header .muted{margin:6px 0 0;color:#94a3b8}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(460px,1fr));gap:16px;padding:20px 32px}.admin-panel{min-height:220px;padding:18px;border:1px solid #dbe4ee;border-radius:12px;background:#fff;box-shadow:0 8px 22px #0f172a0d}.admin-panel h2{margin-bottom:14px;font-size:17px}.compact-form{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;margin-bottom:14px}.compact-form.project-form{grid-template-columns:1fr 1fr 120px 120px auto}.compact-form.admin-user-form{grid-template-columns:1fr 1fr 1.4fr auto}.compact-form.customer-grant-form{grid-template-columns:minmax(240px,1fr) 120px auto}.compact-form.state-form{grid-template-columns:1fr auto}.compact-form.retention-form{grid-template-columns:1fr 1.2fr 1.2fr auto}.stackup-editor-panel{grid-column:1 / -1}.stackup-editor{display:grid;gap:7px}.stackup-editor-row{display:grid;grid-template-columns:40px 1fr 150px 1fr 130px 150px;align-items:center;gap:7px;padding:8px;border-radius:8px;background:#f8fafc}.stackup-editor-row input,.stackup-editor-row select{min-width:0;width:100%}.stackup-row-actions,.stackup-editor-actions{display:flex;gap:5px}.stackup-editor-actions{justify-content:flex-end;margin-top:5px}.retention-summary{display:grid;gap:4px;margin-bottom:14px;color:#334155}.list-row{display:flex;width:100%;align-items:center;justify-content:space-between;margin-top:6px;padding:10px;border:1px solid transparent;background:#f8fafc;text-align:left}.list-row.selected{color:#115e59;border-color:#5eead4;background:#f0fdfa}.list-row.static{border-radius:8px}.list-row small{color:#64748b}.customer-grant-editor{margin-top:14px;padding:14px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc}.customer-grant-editor>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.customer-grant-editor h3{margin:0 0 3px;font-size:15px}.customer-grant-row{display:grid;grid-template-columns:minmax(220px,1fr) 80px auto auto;align-items:center;gap:8px;padding:9px 0;border-top:1px solid #e2e8f0}.danger-link{padding:3px 7px;color:#b91c1c;border-color:#fecaca;background:#fff}.audit-panel{grid-column:1 / -1}.audit-row{display:grid;grid-template-columns:240px 100px 1fr;gap:12px;padding:8px 0;border-top:1px solid #e2e8f0;font-size:12px}.audit-row time{color:#64748b;text-align:right}.secret-banner{margin:18px 32px 0;padding:14px;color:#854d0e;border:1px solid #fde68a;border-radius:9px;background:#fefce8}.mfa-banner{display:flex;align-items:center;gap:10px;margin:12px 32px 0;padding:12px;border:1px solid #99f6e4;border-radius:9px;background:#f0fdfa;font-size:12px}.mfa-banner input{width:100px}.admin-error{margin:14px 32px 0}body{min-width:1024px}.compact-topbar{min-height:48px;padding:8px 16px}.project-heading{display:flex;align-items:baseline;gap:10px;min-width:0}.project-heading strong{color:#5eead4;font-size:12px;letter-spacing:.08em}.project-heading span{overflow:hidden;font-size:17px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.compact-topbar .topbar-actions{gap:10px;font-size:12px}.compact-topbar button.secondary{color:#fff;border-color:#64748b}.compact-topbar button.secondary:hover{border-color:#5eead4}.compact-button{padding:5px 10px}.compact-toolbar{min-height:45px;align-items:center;gap:6px;padding:6px 16px}.compact-toolbar button{padding:6px 9px;font-size:12px}.tool-group{display:flex;align-items:center;gap:5px}.tool-group strong{margin-right:3px;color:#475569;font-size:11px}.toolbar-spacer{flex:1}.compact-rulebar{flex-wrap:wrap;padding:6px 16px}.compact-rulebar input{width:86px}.rules-trigger{display:inline-flex;align-items:center;gap:5px}.rules-trigger span{padding:1px 5px;border-radius:999px;color:#0f766e;background:#ccfbf1;font-size:9px}.rule-editor-backdrop{position:fixed;z-index:1000;inset:0;display:grid;padding:24px;background:#0f172a80;place-items:center}.rule-editor-dialog{width:min(1040px,100%);max-height:min(760px,calc(100vh - 48px));overflow:hidden;border:1px solid #cbd5e1;border-radius:12px;background:#fff;box-shadow:0 24px 70px #0f172a4d}.rule-editor-header,.rule-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px}.rule-editor-header{border-bottom:1px solid #e2e8f0}.rule-editor-header>div{display:grid;gap:2px}.rule-editor-header>div>strong{font-size:16px}.rule-editor-header small,.rule-editor-footer small{color:#64748b;font-size:10px}.rule-editor-footer{border-top:1px solid #e2e8f0;background:#f8fafc}.rules-table-wrap{padding:12px 16px 14px}.rules-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.rules-table-toolbar>div{display:grid;gap:2px}.rules-table-toolbar small{color:#64748b;font-size:10px}.rules-table-scroll{max-height:430px;overflow:auto;border:1px solid #dbe4ee;border-radius:7px}.rules-table{width:100%;overflow:hidden;border-collapse:separate;border-spacing:0;background:#fff;font-size:11px}.rules-table th{padding:5px 8px;color:#475569;border-bottom:1px solid #cbd5e1;background:#f1f5f9;text-align:left;white-space:nowrap}.rules-table td{padding:4px 8px;border-bottom:1px solid #e2e8f0}.rules-table tr:last-child td{border-bottom:0}.rules-table th:nth-child(4),.rules-table td:nth-child(4){width:170px}.rules-table th:nth-child(5),.rules-table td:nth-child(5){width:180px}.rules-table th:last-child,.rules-table td:last-child{width:72px;text-align:center}.rules-table input[type=number]{width:140px;padding:4px 7px}.rules-table input[type=checkbox]{width:15px;height:15px;accent-color:#0f766e}.fixed-rule-label{color:#94a3b8;font-size:10px}.danger-link{padding:3px 6px;color:#b91c1c;border-color:#fecaca;background:#fff;font-size:10px}.empty-rule-row td{padding:14px;color:#64748b;text-align:center!important}.add-rule-panel{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(120px,.8fr) minmax(160px,1fr) auto;align-items:end;gap:8px;margin-bottom:10px;padding:10px;border:1px solid #99f6e4;border-radius:8px;background:#f0fdfa}.add-rule-panel label{display:grid;gap:3px;color:#475569;font-size:10px}.add-rule-panel select,.add-rule-panel input{width:100%;min-width:0;padding:5px 7px}.add-rule-actions{display:flex;gap:6px}.add-rule-error{grid-column:1 / -1;margin:0;font-size:10px}.scope-button{width:100%;overflow:hidden;padding:4px 7px;color:#0f766e;border-color:#99f6e4;background:#f0fdfa;font-size:10px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.rule-scope-backdrop{position:fixed;z-index:1100;inset:0;display:grid;padding:24px;background:#0f172a6b;place-items:center}.rule-scope-dialog{width:min(430px,100%);max-height:min(620px,calc(100vh - 48px));overflow-y:auto;padding:16px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;box-shadow:0 24px 70px #0f172a40}.rule-scope-header{display:flex;align-items:start;justify-content:space-between;margin-bottom:12px}.rule-scope-header div{display:grid;gap:2px}.rule-scope-header small,.scope-all-option small{color:#64748b;font-size:10px}.scope-all-option,.scope-layer-list label{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:7px;padding:8px;border:1px solid #dbe4ee;border-radius:7px}.scope-all-option{margin-bottom:8px;border-color:#99f6e4;background:#f0fdfa}.scope-all-option span{display:grid}.scope-layer-list{display:grid;gap:5px;max-height:310px;overflow-y:auto}.scope-layer-list input,.scope-all-option input{width:15px;height:15px;accent-color:#0f766e}.scope-layer-list small{color:#64748b;font-size:10px}.scope-error{margin:8px 0 0;font-size:11px}.rule-scope-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:14px}.compact-banner{margin:6px 16px;padding:7px 10px;font-size:12px}.canvas-first-grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:10px;height:calc(100vh - 93px);min-height:610px;padding:8px 12px 10px}.canvas-work-area{display:grid;min-width:0;min-height:0;grid-template-rows:minmax(0,1fr) auto}.canvas-work-area .canvas-shell{width:100%;height:100%;min-height:560px;border-radius:8px}.canvas-caption{margin:4px 2px 0;font-size:10px}.workspace-inspector{display:flex;min-height:0;gap:7px;overflow-y:auto;flex-direction:column}.compact-panel{min-height:0;padding:9px;border-radius:8px}.compact-panel .panel-title{margin-bottom:7px}.compact-panel .panel-title h2{font-size:13px}.layer-panel{flex:0 0 auto}.stackup-view{gap:2px}button.stackup-layer{display:grid;grid-template-columns:22px minmax(90px,1fr) minmax(64px,.8fr) auto;width:100%;min-height:27px;align-items:center;gap:4px;padding:3px 6px;border-radius:4px;color:#0f172a;font-size:10px;text-align:left}button.stackup-layer:hover{border-color:#0f766e}button.stackup-layer.active{outline:2px solid #0f766e;outline-offset:-2px}button.stackup-layer.hidden{opacity:.42;filter:grayscale(.75)}.layer-visibility{font-size:14px;text-align:center}.selected-panel{flex:0 0 auto}.selected-object-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.selected-object-grid label{display:grid;gap:2px;color:#64748b;font-size:9px}.selected-object-grid input,.selected-object-grid select{width:100%;min-width:0;padding:5px 6px;font-size:11px}.selected-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.compact-empty{margin:4px 0;font-size:11px}.inspector-section{flex:0 0 auto}.inspector-section>summary{display:flex;align-items:center;justify-content:space-between;color:#334155;cursor:pointer;font-size:12px;font-weight:800}.inspector-section>summary span{padding:2px 6px;border-radius:999px;background:#e2e8f0;font-size:10px}.inspector-section>summary span.pass{color:#166534;background:#dcfce7}.inspector-section>summary span.fail{color:#991b1b;background:#fee2e2}.inspector-section>summary .drc-summary-title{display:inline-flex;align-items:baseline;gap:5px;padding:0;border-radius:0;background:transparent;font-size:12px}.drc-summary-title small{color:#64748b;font-size:9px;font-weight:500}.compact-component-list{display:grid;gap:3px;max-height:145px;margin-top:7px;overflow-y:auto}.compact-component-list button{display:grid;grid-template-columns:70px 1fr 34px 18px;align-items:center;gap:4px;padding:4px 6px;border-radius:5px;background:#f8fafc;font-size:10px;text-align:left}.compact-component-list button.selected{border-color:#14b8a6;background:#f0fdfa}.compact-component-list button.hidden{opacity:.45}.compact-component-list small{color:#64748b}.compact-component-list i{color:#0f766e;font-style:normal}.workspace-inspector .violations{max-height:120px;margin-top:7px;font-size:10px}.workspace-inspector .violations li{cursor:pointer}.workspace-inspector .task-row{padding:5px 0;font-size:10px}@media(max-width:1180px){.canvas-first-grid{grid-template-columns:minmax(0,1fr) 320px}.tool-group strong{display:none}.compact-toolbar button{padding-inline:7px}}.cad-workspace{--cad-bg: #071321;--cad-panel: #0d1d2e;--cad-panel-2: #112437;--cad-border: #31455a;--cad-text: #d7e1eb;--cad-muted: #8da0b3;--cad-accent: #19b9b0;--cad-accent-2: #53d5cf;display:grid;grid-template-rows:54px 80px minmax(0,1fr) 36px;width:100vw;height:100vh;min-height:680px;overflow:hidden;color:var(--cad-text);background:var(--cad-bg)}.cad-workspace button,.cad-workspace input,.cad-workspace select{color:var(--cad-text);border-color:var(--cad-border);border-radius:4px;background:#0c1a29}.cad-workspace button:hover{border-color:var(--cad-accent)}.cad-workspace button:disabled{color:#617386;opacity:.55}.cad-topbar{display:flex;align-items:center;gap:20px;padding:0 18px;border-bottom:1px solid #2b4054;background:#06111f}.cad-brand{padding-right:20px;border-right:1px solid #415064;color:#f4f8fb;font-size:20px;font-weight:800;letter-spacing:-.02em;white-space:nowrap}.cad-project-meta{display:flex;align-items:center;gap:10px;font-size:13px}.cad-project-meta strong{color:#f1f5f9;font-size:14px}.cad-project-meta i,.cad-statusbar i{width:1px;height:22px;background:#3b4e61}.cad-top-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.cad-workspace button.cad-primary{min-width:90px;padding:8px 20px;color:#efffff;border-color:#0d7c7b;background:linear-gradient(#118d8a,#0d706f);font-weight:700}.cad-workspace button.cad-primary.wide{min-width:156px}.save-state{display:inline-flex;align-items:center;gap:7px;min-width:72px;color:#a9bac9;font-size:12px}.save-state b,.cad-statusbar .ready b{width:10px;height:10px;border-radius:50%;background:#51c569}.save-state.dirty b{background:#f4a83d}.cad-icon-button,.cad-user-button{min-width:32px;height:32px;padding:0;border:0!important;background:transparent!important;font-size:20px}.cad-user-button{color:#d9e4ec!important;font-size:15px!important}.cad-ribbon{display:flex;align-items:stretch;gap:10px;min-width:0;padding:6px 10px;border-bottom:1px solid var(--cad-border);background:linear-gradient(180deg,#13263a,#0d1b2b)}.ribbon-group{display:flex;align-items:stretch;gap:3px}.ribbon-group button{display:grid;min-width:55px;padding:5px 8px;border-color:transparent;background:transparent;color:#c9d5df;font-size:10px;place-items:center}.ribbon-group button span{min-height:27px;color:#dce8f0;font-size:22px;line-height:1}.ribbon-group button.active:hover,.ribbon-group button.active:focus{color:#e9ffff;background:#0f7779}.ribbon-separator{width:1px;margin:5px 0;background:#405165}.ribbon-spacer{flex:1;min-width:10px}.compact-add-tools button{min-width:64px}.compact-add-tools button span{color:var(--cad-accent-2)}.cad-main{display:grid;min-width:0;min-height:0;grid-template-columns:240px minmax(0,1fr) 330px;gap:6px;padding:6px;overflow:hidden}.cad-left-panel,.cad-right-panel,.cad-canvas-panel{min-width:0;min-height:0;border:1px solid var(--cad-border);border-radius:5px;background:var(--cad-panel)}.cad-left-panel{position:relative;display:flex;overflow:hidden;flex-direction:column}.cad-tabs{display:grid;grid-template-columns:1fr 1fr;padding:0 12px;border-bottom:1px solid #31455a}.cad-tabs button{padding:13px 4px 11px;border:0;border-bottom:2px solid transparent;background:transparent;color:#a8bac8;font-size:13px}.cad-tabs button.active{color:var(--cad-accent-2);border-bottom-color:var(--cad-accent)}.cad-search{display:grid;grid-template-columns:22px 1fr;align-items:center;margin:10px 12px 8px;border:1px solid var(--cad-border);border-radius:4px;background:#091522}.cad-search span{color:#9fb1c1;text-align:center}.cad-search input{width:100%;padding:6px 4px;border:0;outline:0;background:transparent;font-size:11px}.cad-tree{flex:1;padding:0 8px 34px;overflow-y:auto}.cad-tree details{margin-top:3px}.cad-tree summary{display:grid;grid-template-columns:16px 1fr auto;align-items:center;padding:5px 4px;color:#d8e4ec;cursor:pointer;font-size:11px;list-style:none}.cad-tree summary::-webkit-details-marker{display:none}.cad-tree summary small{color:#71879a}.cad-tree details>button{display:grid;grid-template-columns:24px 1fr 28px 20px;width:100%;align-items:center;gap:4px;margin:1px 0;padding:6px 7px 6px 24px;border:0;background:transparent;color:#cbd8e2;font-size:11px;text-align:left}.cad-tree details>button:hover{background:#153149}.cad-tree details>button.selected{color:#ecffff;background:linear-gradient(90deg,#117c7d,#155f66)}.cad-tree details>button.hidden{opacity:.42}.component-symbol{color:#72d7d3;font-size:15px}.cad-tree button small{color:#7f94a6}.cad-tree button i{color:#b8cad8;font-style:normal;text-align:center}.cad-layer-heading{display:flex;justify-content:space-between;padding:10px 12px;color:#9fb2c2;font-size:11px}.cad-left-panel .stackup-view{padding:0 8px}.cad-left-panel button.stackup-layer{grid-template-columns:21px 70px minmax(0,1fr);min-height:38px;color:#dce7ee;border-color:#31465a;background:#13273a;font-size:9px}.cad-left-panel button.stackup-layer small{display:none}.cad-left-panel button.stackup-layer.active{outline-color:var(--cad-accent);background:#16434c}.cad-panel-collapse{position:absolute;right:0;bottom:0;left:0;padding:9px 13px;border-top:1px solid #31455a;background:#102236;color:#c8d6e0;text-align:right}.cad-canvas-panel{display:grid;overflow:hidden;grid-template-rows:34px minmax(0,1fr);background:#081522}.cad-ruler{color:#8398aa;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}.cad-ruler-x{display:flex;align-items:end;justify-content:space-around;padding:0 10px 6px 40px;border-bottom:1px solid #3d5164;background:repeating-linear-gradient(90deg,transparent 0 19px,#53677a 20px 21px)}.cad-canvas-body{display:grid;min-height:0;grid-template-columns:38px minmax(0,1fr)}.cad-ruler-y{display:flex;align-items:center;justify-content:space-around;padding:4px 0;border-right:1px solid #3d5164;background:repeating-linear-gradient(180deg,transparent 0 19px,#53677a 20px 21px);writing-mode:vertical-rl;transform:rotate(180deg)}.cad-canvas-body .canvas-shell{width:100%;height:100%;min-height:0;border:0;border-radius:0;background-color:#091725;background-image:linear-gradient(rgba(56,83,106,.28) 1px,transparent 1px),linear-gradient(90deg,rgba(56,83,106,.28) 1px,transparent 1px);background-size:42px 42px;box-shadow:none}.cad-right-panel{display:flex;overflow-y:auto;flex-direction:column;gap:6px;border:0;background:transparent}.cad-tree,.cad-right-panel,.cad-violation-list{scrollbar-width:thin;scrollbar-color:#405a70 #091522}.cad-tree::-webkit-scrollbar,.cad-right-panel::-webkit-scrollbar,.cad-violation-list::-webkit-scrollbar{width:7px}.cad-tree::-webkit-scrollbar-track,.cad-right-panel::-webkit-scrollbar-track,.cad-violation-list::-webkit-scrollbar-track{background:#091522}.cad-tree::-webkit-scrollbar-thumb,.cad-right-panel::-webkit-scrollbar-thumb,.cad-violation-list::-webkit-scrollbar-thumb{border:1px solid #091522;border-radius:6px;background:#405a70}.cad-tree::-webkit-scrollbar-thumb:hover,.cad-right-panel::-webkit-scrollbar-thumb:hover,.cad-violation-list::-webkit-scrollbar-thumb:hover{background:#4f718b}.cad-inspector-section{border:1px solid var(--cad-border);border-radius:5px;background:var(--cad-panel)}.cad-inspector-section>header{display:flex;min-height:42px;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--cad-border)}.cad-inspector-section h2{margin:0;color:#e3ebf2;font-size:15px}.cad-inspector-section header small{color:#a5b7c5;font-size:9px}.property-section{flex:0 0 auto}.cad-properties{padding:8px 14px 12px}.selected-reference{display:flex;justify-content:space-between;padding:7px 0 9px;border-bottom:1px solid #31445a;color:#9bb0c0;font-size:10px}.selected-reference strong{color:var(--cad-accent-2);font-size:13px}.cad-properties>label,.property-pair label{display:grid;grid-template-columns:95px minmax(0,1fr);align-items:center;min-height:28px;color:#98aebe;font-size:10px}.cad-properties label b{color:#d7e2eb;font-weight:500}.cad-properties input,.cad-properties select{width:100%;min-width:0;padding:4px 6px;font-size:10px}.property-pair{display:grid;grid-template-columns:1fr 1fr;gap:7px}.property-pair label{display:grid;grid-template-columns:1fr;gap:2px}.property-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.property-actions button{padding:4px 7px;font-size:9px}.property-actions button.danger{color:#ff8b8b;border-color:#743d4a}.section-title-with-badge{display:flex;align-items:center;gap:8px}.section-title-with-badge b{min-width:19px;padding:2px 5px;border-radius:10px;color:#fff;background:#e65555;font-size:10px;text-align:center}.drc-section{flex:0 1 auto;min-height:145px}.cad-pass{margin:12px;padding:10px;color:#7ee19a;border:1px solid #285940;border-radius:4px;background:#102b24;font-size:11px}.cad-violation-list{max-height:210px;overflow-y:auto}.cad-violation-list>button{display:grid;width:100%;grid-template-columns:20px 1fr;gap:7px;padding:10px 12px;border:0;border-bottom:1px solid #2e4255;background:transparent;text-align:left}.cad-violation-list>button>span{display:grid;width:16px;height:16px;border-radius:50%;color:#fff;background:#ef5757;font-size:10px;place-items:center}.cad-violation-list strong{color:#dbe5ec;font-size:10px}.cad-violation-list p{margin:3px 0 0;color:#97aabc;font-size:9px;line-height:1.4}.drc-section footer{display:flex;justify-content:space-between;padding:7px 12px;color:#9db1c1;font-size:10px}.drc-section footer button{padding:0;color:var(--cad-accent-2);border:0;background:transparent;font-size:10px}.task-section{flex:1 0 120px}.task-section article{display:grid;grid-template-columns:14px 1fr auto auto;align-items:center;gap:6px;padding:7px 12px;font-size:9px}.task-section article button{padding:3px 5px;font-size:8px}.task-state{width:9px;height:9px;border:1px solid #70869a;border-radius:50%}.task-state.succeeded{border-color:#53cb73;background:#53cb73}.task-state.running{border-color:#e5ad43;background:#e5ad43}.cad-empty{margin:0;padding:14px;color:#8398aa;font-size:10px}.cad-statusbar{display:flex;align-items:center;gap:28px;padding:0 18px;border:1px solid var(--cad-border);border-radius:4px 4px 0 0;background:#102236;color:#b6c6d3;font-size:11px}.cad-statusbar .ready{display:flex;align-items:center;gap:7px}.status-spacer{flex:1}.cad-error-banner{position:fixed;z-index:1200;top:62px;right:20px;max-width:480px;padding:9px 12px;color:#ffd1d1;border:1px solid #8b3d4b;border-radius:4px;background:#4a202b;font-size:11px}.cad-workspace .rule-editor-dialog,.cad-workspace .rule-scope-dialog{color:var(--cad-text);border-color:var(--cad-border);background:var(--cad-panel-2)}.cad-workspace .rule-editor-header,.cad-workspace .rule-editor-footer{border-color:var(--cad-border);background:#0d1d2e}.cad-workspace .rules-table-toolbar small,.cad-workspace .rule-editor-header small,.cad-workspace .rule-editor-footer small{color:var(--cad-muted)}.cad-workspace .rules-table-scroll{border-color:var(--cad-border)}.cad-workspace .rules-table{background:#0c1a29}.cad-workspace .rules-table th{color:#a9bac8;border-color:var(--cad-border);background:#14283b}.cad-workspace .rules-table td{border-color:#263b4e}.cad-workspace .scope-button{color:var(--cad-accent-2);border-color:#256f71;background:#10333a}.cad-workspace .add-rule-panel,.cad-workspace .scope-all-option{color:var(--cad-text);border-color:#26787a;background:#10333a}.cad-workspace .add-rule-panel label,.cad-workspace .scope-layer-list small{color:var(--cad-muted)}.cad-workspace .scope-layer-list label{border-color:var(--cad-border)}.cad-workspace .empty-rule-row td{color:var(--cad-muted)}@media(max-width:1280px){.cad-main{grid-template-columns:210px minmax(0,1fr) 300px}.cad-ribbon{gap:4px}.ribbon-group button{min-width:48px;padding-inline:4px}.compact-add-tools button{min-width:56px}.cad-brand{font-size:17px}}.stackup-explorer{position:fixed;z-index:1300;inset:0;display:grid;min-width:1024px;grid-template-rows:64px minmax(0,1fr) 54px;color:#dce8ef;background:#071522}.stackup-explorer>header{display:flex;align-items:center;gap:24px;padding:0 18px;border-bottom:1px solid #32495d;background:#061421}.stackup-explorer>header i{width:1px;height:28px;background:#354b5e}.stackup-explorer>header span{color:#42d4cd}.stackup-explorer>header button{margin-left:auto;padding:8px 16px}.stackup-explorer-grid{display:grid;min-height:0;grid-template-columns:300px minmax(0,1fr) 320px;gap:1px;background:#344b5d}.stackup-manager,.stackup-inspector,.stackup-visual{min-width:0;min-height:0;background:#0b1b2a}.stackup-manager{overflow-y:auto}.stackup-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #354a5d;text-align:center}.stackup-tabs span,.stackup-tabs b{padding:14px;font-weight:500}.stackup-tabs b{color:#65e1da;border-bottom:2px solid #17a8a6;background:#103744}.stackup-manager h2{margin:15px 14px 8px;font-size:15px}.stackup-manager>button{display:grid;width:100%;min-height:56px;grid-template-columns:26px 28px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 14px;border:0;border-bottom:1px solid #2b4052;border-radius:0;background:#102333;text-align:left}.stackup-manager>button.active{background:linear-gradient(90deg,#0f7779,#12525e)}.stackup-manager>button.hidden{opacity:.42}.stackup-manager>button i{width:22px;height:22px;border:1px solid #c6dae5}.stackup-manager>button small{color:#b9c9d3}.stackup-manager .eye{color:#d7e9f1;font-size:16px;cursor:pointer}.stackup-manager>p{margin:16px;color:#8297a9;font-size:10px;line-height:1.6}.stackup-visual{display:grid;overflow:hidden;grid-template-rows:48% 52%}.stackup-plan{min-height:0;padding:14px 22px;background-color:#071522;background-image:linear-gradient(rgba(67,94,115,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(67,94,115,.22) 1px,transparent 1px);background-size:28px 28px}.stackup-plan svg{width:100%;height:100%}.stackup-board{fill:#10291f;stroke:#62b963;stroke-width:5}.stackup-plan rect:not(.stackup-board){stroke:#e0edf2;stroke-width:3;opacity:.78}.stackup-plan rect.emphasized{stroke:#65fff5;stroke-width:7;opacity:1;filter:drop-shadow(0 0 8px #24bebb)}.stackup-plan text{fill:#06131d;font-size:18px;font-weight:700;text-anchor:middle;pointer-events:none}.stackup-cross-section{position:relative;display:grid;min-height:0;grid-template-columns:minmax(0,1fr) 130px;grid-template-rows:34px minmax(0,1fr);gap:8px 18px;padding:8px 24px 18px;border-top:1px solid #40576a;background:linear-gradient(#0c1f2d,#071522)}.stackup-cross-section h2{grid-column:1 / -1;margin:0;color:#a7bac8;font-size:12px}.stackup-slab{display:flex;min-height:0;flex-direction:column;justify-content:center;border:1px solid #607386;box-shadow:0 16px 30px #020a10}.stackup-slab>div{display:flex;min-height:17px;align-items:center;justify-content:space-between;padding:0 12px;color:#071522;border-bottom:1px solid rgba(5,20,31,.55);font-size:10px;cursor:pointer}.stackup-slab>div.active{outline:3px solid #f4fbff;outline-offset:-3px}.stackup-slab>div.hidden{filter:grayscale(1);opacity:.28}.stackup-slab>div span{font-weight:700}.total-thickness{display:grid;align-content:center;justify-items:center;border-left:2px solid #d9e7ef}.total-thickness span{color:#9eb1c0;font-size:11px}.total-thickness strong{color:#49ddd4;font-size:20px}.stackup-inspector{display:flex;overflow-y:auto;flex-direction:column;gap:8px;padding:8px}.stackup-inspector section{border:1px solid #354b5f;border-radius:5px;background:#102332}.stackup-inspector h2{margin:0;padding:12px 14px;border-bottom:1px solid #354b5f;font-size:15px}.stackup-inspector dl{margin:0;padding:8px 14px}.stackup-inspector dl div{display:grid;grid-template-columns:85px 1fr;padding:6px 0;color:#a6bac8;font-size:11px}.stackup-inspector dd{margin:0;color:#e4edf2}.stackup-inspector table{width:100%;border-collapse:collapse;font-size:9px}.stackup-inspector th,.stackup-inspector td{padding:6px 8px;border:1px solid #2d4355;text-align:left}.stackup-inspector th{color:#99adbc}.stackup-inspector section>strong{display:inline-block;margin:14px;padding:10px 20px;border-radius:4px;font-size:20px}.stack-pass{color:#e9fff0;border:1px solid #55bf6c;background:#23863d}.stack-fail{color:#ffe5e5;border:1px solid #d56262;background:#7e3038}.stackup-inspector section>p{margin:0 14px 14px;color:#8fa4b5;font-size:10px;line-height:1.5}.stackup-explorer>footer{display:flex;align-items:center;gap:46px;padding:0 28px;border-top:1px solid #385064;background:#0d2030;color:#b7c8d4}.stackup-explorer>footer b{margin-left:8px;color:#50dad3}.auto-layout-overlay{position:fixed;z-index:1310;inset:0;display:grid;min-width:1120px;grid-template-rows:66px minmax(0,1fr) 92px;color:#102234;background:#edf2f5}.auto-layout-header{display:flex;align-items:center;justify-content:space-between;padding:0 22px;color:#e7f1f6;background:#06182a}.auto-layout-header>div{display:flex;align-items:center;gap:18px}.auto-layout-header strong{font-size:21px}.auto-layout-header i{width:1px;height:28px;background:#496075}.auto-layout-header span:last-child{color:#52d8d1}.auto-layout-header button{color:#dceaf1;border:0;background:transparent;font-size:28px}.auto-layout-body{display:grid;min-height:0;grid-template-columns:185px minmax(0,1fr) 280px}.auto-steps{color:#e3edf3;background:linear-gradient(155deg,#0d2a47,#071c31)}.auto-steps h2{margin:24px 20px 8px;font-size:17px}.auto-steps ol{margin:0;padding:0 12px;list-style:none}.auto-steps li{display:grid;grid-template-columns:30px 1fr;gap:8px;padding:20px 8px;border-bottom:1px solid #365069}.auto-steps li b{display:grid;width:24px;height:24px;border:1px solid #8ba1b4;border-radius:50%;place-items:center}.auto-steps li span{font-size:12px}.auto-steps li small{display:block;margin-top:5px;color:#8ca4b8;font-size:8px;line-height:1.4}.auto-steps li.done b{color:#05242a;border-color:#47d5cb;background:#47d5cb}.auto-steps li.active{color:#5fe5dd;border-left:3px solid #33c8c0;background:#123a55}.candidate-grid{display:grid;min-height:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px;overflow:auto}.candidate-card{display:grid;min-width:0;grid-template-rows:58px minmax(190px,1fr) auto;padding:10px;border:1px solid #c5d0d8;border-radius:7px;background:#fff;box-shadow:0 3px 12px #24394814;cursor:pointer}.candidate-card.selected{outline:3px solid #0c8a89;border-color:#0c8a89}.candidate-card>header{display:flex;align-items:start;justify-content:space-between;gap:6px}.candidate-card>header div{display:grid;gap:3px}.candidate-card>header strong{font-size:16px}.candidate-card>header small{color:#71808c;font-size:8px;line-height:1.3}.candidate-card>header>span{padding:5px 7px;border-radius:5px;color:#fff;background:#0b8e8d;font-size:9px;white-space:nowrap}.candidate-card svg{width:100%;height:100%;min-height:190px;border-radius:5px;background:#071522}.candidate-board{fill:#0c1d2c;stroke:#7d93a5;stroke-width:5}.candidate-component{stroke:#d6e6ef;stroke-width:3}.candidate-component.type-die{fill:#4d5966}.candidate-component.type-resistor{fill:#35577b}.candidate-component.type-capacitor{fill:#456f45}.candidate-card text{fill:#f1f6f8;font-size:23px;font-weight:600;text-anchor:middle;pointer-events:none}.candidate-card dl{margin:8px 0 0}.candidate-card dl div{display:flex;justify-content:space-between;padding:6px 3px;border-bottom:1px solid #d8e0e5;font-size:10px}.candidate-card dt{color:#536572}.candidate-card dd{margin:0;color:#117f7d;font-weight:700}.candidate-card dd.score{font-size:16px}.candidate-card dd.warning{color:#dd8118}.candidate-explain{padding:18px 20px;border-left:1px solid #c5d0d8;background:#f7f9fa}.candidate-explain h2{margin:0 0 14px;font-size:18px}.candidate-explain>strong{display:block;color:#087f7d;font-size:35px}.candidate-explain>strong small{color:#2d4355;font-size:15px}.candidate-explain p{margin-top:24px;color:#657581;font-size:11px}.candidate-explain ul{padding:0;list-style:none}.candidate-explain li{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #d2dce2;font-size:11px}.scope-note{margin-top:18px;padding:11px;color:#6b541b;border:1px solid #dfbd6e;border-radius:5px;background:#fff8e8;font-size:9px;line-height:1.6}.auto-layout-footer{display:flex;align-items:center;gap:12px;padding:0 28px;color:#dce9f0;background:#06182a}.auto-layout-footer>div{display:grid;flex:1;gap:5px}.auto-layout-footer>div strong{color:#51ddd5;font-size:16px}.auto-layout-footer>div span{color:#91a8b8;font-size:10px}.auto-layout-footer button{min-width:170px;padding:12px 18px;font-size:13px}.auto-layout-footer button.primary{color:#fff;border-color:#0ea3a0;background:#078987}.auto-layout-footer button.secondary{color:#dbe7ed;border-color:#91a4b2;background:transparent}.admin-page{display:grid;height:100vh;min-height:700px;grid-template-columns:220px minmax(0,1fr);grid-template-rows:64px minmax(0,1fr);padding:0;overflow:hidden;color:#14263a;background:#f1f4f7}.admin-page .admin-header{z-index:2;display:flex;grid-column:1 / -1;align-items:center;justify-content:flex-start;gap:22px;padding:0 22px;border-bottom:1px solid #274159;color:#eef6fa;background:linear-gradient(100deg,#071a31,#0c2d50)}.admin-brand{padding-right:20px;border-right:1px solid #4a6075;font-size:20px;font-weight:800;letter-spacing:.5px}.admin-page .admin-header>strong{font-size:17px;font-weight:500}.admin-identity{display:flex;align-items:center;gap:9px;margin-left:auto}.admin-identity small{color:#91a9bb}.admin-identity button{margin-left:8px;padding:6px 10px;color:#dbe7ee;border-color:#607789;background:transparent}.admin-sidebar{display:flex;min-height:0;flex-direction:column;padding:18px 0;background:linear-gradient(155deg,#0a2c4b,#071d35)}.admin-sidebar button{display:grid;width:100%;grid-template-columns:28px 1fr;align-items:center;padding:13px 18px;color:#c7d5df;border:0;border-left:3px solid transparent;border-radius:0;background:transparent;font-size:13px;text-align:left}.admin-sidebar button span{color:#afc1ce;font-size:17px;text-align:center}.admin-sidebar button:hover{background:#123c5b}.admin-sidebar button.active{color:#fff;border-left-color:#32d0c8;background:linear-gradient(90deg,#078784,#0c6c75)}.admin-sidebar a{margin:auto 20px 0;color:#8faabd;font-size:11px;text-decoration:none}.admin-content{min-width:0;min-height:0;padding:18px;overflow:auto}.admin-content>.admin-error,.admin-content>.secret-banner{margin:0 0 10px}.admin-page .mfa-banner{margin:0 0 12px}.section-dashboard .admin-grid{display:none}.section-customers .admin-grid>:not(.admin-customers),.section-projects .admin-grid>:not(.admin-projects),.section-access .admin-grid>:not(.admin-access),.section-tasks .admin-grid>:not(.admin-tasks),.section-notifications .admin-grid>:not(.admin-notifications),.section-audit .admin-grid>:not(.admin-audit),.section-admins .admin-grid>:not(.admin-admins){display:none}.admin-page .admin-grid{grid-template-columns:repeat(2,minmax(360px,1fr));gap:14px;padding:0}.admin-page .admin-panel{border-radius:7px;box-shadow:0 3px 12px #1b2f4014}.admin-dashboard{min-width:900px}.admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px}.admin-kpis article{display:grid;min-height:112px;grid-template-columns:70px 1fr;align-items:center;padding:12px 18px;border:1px solid #e1e7eb;border-radius:7px;background:#fff;box-shadow:0 3px 12px #1b2f4014}.admin-kpis article>span{display:grid;width:56px;height:56px;border-radius:50%;color:#078786;background:#e7f5f5;font-size:26px;place-items:center}.admin-kpis article:nth-child(3)>span{color:#229d63;background:#e9f7ef}.admin-kpis article:nth-child(4)>span{color:#e69219;background:#fff3df}.admin-kpis article div{display:grid;gap:3px}.admin-kpis small{color:#435465}.admin-kpis strong{color:#087e7d;font-size:30px;line-height:1}.admin-kpis article:nth-child(3) strong{color:#21965e}.admin-kpis article:nth-child(4) strong{color:#df8c14}.admin-kpis p{margin:2px 0 0;color:#758595;font-size:9px}.admin-dashboard-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(310px,.95fr);gap:14px;margin-top:14px}.admin-dashboard-main,.admin-dashboard-side{display:flex;min-width:0;flex-direction:column;gap:14px}.dashboard-card{border:1px solid #dfe6eb;border-radius:7px;background:#fff;box-shadow:0 3px 12px #1b2f4014}.dashboard-card>header{display:flex;min-height:48px;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid #e2e8ec}.dashboard-card>header h2{margin:0;font-size:14px}.dashboard-card>header small{display:block;margin-top:2px;color:#8493a0;font-size:8px}.dashboard-card>header button{padding:4px 7px;color:#087f7e;border:0;background:transparent;font-size:9px}.recent-projects-card table{width:100%;border-collapse:collapse;font-size:10px}.recent-projects-card th{padding:9px 12px;color:#657582;background:#f6f8fa;text-align:left}.recent-projects-card td{padding:9px 12px;border-top:1px solid #e6ebee}.recent-projects-card td:first-child{display:grid;gap:2px}.recent-projects-card td:first-child small{color:#84929d;font-size:8px}.recent-projects-card td button{padding:4px 6px;font-size:8px}.project-status{padding:4px 7px;border-radius:11px;color:#117c5b;background:#e6f5ef;font-size:8px}.project-status.closed{color:#65727c;background:#ebedef}.task-health-card{min-height:260px}.task-health-summary{display:flex;gap:22px;padding:12px 16px;color:#536473;font-size:10px}.task-health-summary div{display:flex;align-items:center;gap:5px}.task-health-summary span{width:8px;height:8px;border-radius:50%}.success-dot{background:#28a267}.failed-dot{background:#e05454}.pending-dot{background:#9aa9b4}.task-health-chart{position:relative;height:165px;margin:0 18px 16px;border-left:1px solid #bdc8d0;border-bottom:1px solid #bdc8d0}.chart-axis{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-around;color:#84939f;font-size:8px}.chart-axis i{display:block;width:100%;border-top:1px solid #e0e6ea}.task-bars{position:absolute;inset:10px 30px 0;display:flex;align-items:end;justify-content:space-around}.task-bars>div{display:grid;height:100%;align-items:end;justify-items:center;gap:6px}.task-bars b{width:55px;max-height:125px;min-height:4px;background:#2ba267}.task-bars b.failed{background:#e3564f}.task-bars b.pending{background:#8ea0ad}.task-bars small{color:#667785;font-size:9px}.dashboard-notice{display:grid;grid-template-columns:26px 1fr;gap:8px;margin:10px 12px;padding:10px;border:1px solid #f0c77d;border-radius:5px;background:#fff9ed}.dashboard-notice>span{display:grid;width:22px;height:22px;color:#fff;border-radius:50%;background:#ee9d24;place-items:center}.dashboard-notice strong{color:#a8670d;font-size:10px}.dashboard-notice p{margin:4px 0;color:#594d3d;font-size:9px;line-height:1.4}.dashboard-notice small{color:#998876;font-size:8px}.security-card>div{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:8px;padding:14px}.security-card>div>span{display:grid;width:38px;height:38px;border-radius:50%;color:#fff;background:#26a36b;place-items:center}.security-card p{display:grid;margin:0;gap:3px;font-size:10px}.security-card small{color:#788995;font-size:8px}.security-card button{padding:5px 8px;color:#17865d;border:0;background:#e4f5ec;font-size:9px}.dashboard-audit{display:grid;grid-template-columns:22px 1fr;gap:7px;padding:9px 13px;border-bottom:1px solid #e5eaed}.dashboard-audit>span{color:#07908d}.dashboard-audit div{display:grid;gap:3px;font-size:9px}.dashboard-audit small{color:#7d8d99;font-size:8px}.dashboard-card>.muted{padding:12px;font-size:10px}@media(max-width:1280px){.admin-page{grid-template-columns:190px minmax(0,1fr)}.admin-sidebar button{padding-inline:12px;font-size:11px}.admin-content{padding:12px}.admin-kpis{gap:8px}.admin-kpis article{grid-template-columns:54px 1fr;padding:9px}.admin-kpis article>span{width:45px;height:45px}}
