:root { --ink:#1e2a2d; --muted:#718083; --faint:#a4b0af; --line:#dbe3e0; --canvas:#f5f7f5; --panel:#fff; --green:#1e725e; --green-dark:#155342; --mint:#e8f2ed; --amber:#aa6d2e; --amber-bg:#f8f0e5; --red:#b94b43; --shadow:0 10px 30px rgba(31,53,48,.06); --radius:14px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--canvas); font-family:'DM Sans',ui-sans-serif,system-ui,-apple-system,sans-serif; font-size:14px; line-height:1.45; }
button, input, select, textarea { font:inherit; }
button { cursor:pointer; }
.hidden { display:none !important; }
.mobile-only { display:none; }
.login-view { min-height:100vh; display:grid; place-items:center; padding:32px; background:radial-gradient(circle at 85% 15%,#e3f0eb 0,transparent 33%),var(--canvas); }
.login-card { width:min(100%,420px); padding:48px 46px 40px; background:rgba(255,255,255,.88); border:1px solid var(--line); border-radius:20px; box-shadow:0 22px 70px rgba(34,60,55,.1); }
.brand-mark { width:40px; height:40px; display:grid; place-items:center; margin-bottom:28px; color:#fff; background:var(--green); border-radius:11px; font-size:22px; font-weight:700; letter-spacing:-.08em; }
.brand-mark-small { width:28px; height:28px; margin:0; border-radius:8px; font-size:16px; }
.eyebrow,.section-kicker,.label-muted { margin:0; color:var(--green); font-family:'DM Mono',monospace; font-size:10px; font-weight:500; letter-spacing:.11em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:10px; font-size:32px; line-height:1.08; letter-spacing:-.045em; }
h2 { margin-bottom:0; font-size:17px; letter-spacing:-.02em; }
h3 { margin-bottom:4px; font-size:14px; }
.lede { max-width:460px; color:var(--muted); font-size:15px; }
.login-card .lede { margin-bottom:30px; }
.stack-form { display:grid; gap:8px; }
label { color:#56676a; font-size:12px; font-weight:600; }
input, select, textarea { width:100%; color:var(--ink); background:#fbfcfb; border:1px solid #cad6d2; border-radius:8px; outline:0; transition:border .18s,box-shadow .18s,background .18s; }
input,select { height:40px; padding:0 12px; }
textarea { min-height:110px; padding:10px 12px; resize:vertical; line-height:1.5; }
input:focus,select:focus,textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(30,114,94,.12); background:#fff; }
.button { min-height:40px; display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:0 15px; border:1px solid transparent; border-radius:8px; font-weight:600; white-space:nowrap; transition:background .15s,border .15s,transform .15s; }
.button:hover { transform:translateY(-1px); }.button:active { transform:translateY(0); }
.button-primary { color:#fff; background:var(--green); }.button-primary:hover { background:var(--green-dark); }.button-secondary { color:var(--green-dark); background:#fff; border-color:#bdcbc6; }.button-secondary:hover { background:var(--mint); border-color:var(--green); }.button-wide { width:100%; margin-top:12px; }
.text-button { padding:0; color:var(--green); background:none; border:0; font-size:12px; font-weight:600; }.text-button:hover { color:var(--green-dark); }.text-button span { font-size:16px; vertical-align:-1px; }
.icon-button { width:34px; height:34px; display:inline-grid; place-items:center; color:var(--muted); background:transparent; border:1px solid transparent; border-radius:8px; font-size:19px; line-height:1; }.icon-button:hover { color:var(--ink); background:var(--mint); }.icon-button:focus-visible,.button:focus-visible,.text-button:focus-visible,.nav-button:focus-visible { outline:3px solid rgba(30,114,94,.28); outline-offset:2px; }
.form-error { min-height:18px; margin:3px 0 0; color:var(--red); font-size:12px; }.login-footnote { display:flex; align-items:center; gap:8px; margin:26px 0 0; color:var(--muted); font-size:11px; }.status-dot { width:7px; height:7px; display:inline-block; flex:none; border-radius:50%; }.status-dot-green { background:#3d9c75; box-shadow:0 0 0 3px rgba(61,156,117,.12); }
.toast-region { position:fixed; z-index:30; right:18px; bottom:18px; display:flex; flex-direction:column; align-items:flex-end; gap:8px; pointer-events:none; }.toast { max-width:min(380px,calc(100vw - 36px)); padding:11px 14px; color:var(--ink); background:#fff; border:1px solid var(--line); border-left:3px solid var(--green); border-radius:8px; box-shadow:0 10px 28px rgba(31,53,48,.15); font-size:12px; }.toast-error { border-left-color:var(--red); }.toast-success { border-left-color:#3d9c75; }
.app-view { min-height:100vh; display:flex; }.sidebar { width:254px; display:flex; flex-direction:column; flex:none; padding:20px 14px 14px; background:#edf2ef; border-right:1px solid var(--line); }.sidebar-head { display:flex; align-items:center; justify-content:space-between; padding:0 10px 31px; }.wordmark { display:flex; align-items:center; gap:9px; color:var(--ink); font-size:16px; font-weight:700; letter-spacing:-.03em; text-decoration:none; }.workspace-label { padding:0 11px 10px; }.workspace-email { display:block; margin-top:4px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.sidebar-section-head { display:flex; align-items:center; justify-content:space-between; padding:16px 10px 8px; }.project-list { display:flex; flex-direction:column; gap:3px; }.project-item { width:100%; display:flex; align-items:center; gap:10px; padding:10px; color:#516164; background:transparent; border:0; border-radius:8px; text-align:left; }.project-item:hover { background:#e4ece8; }.project-item.active { color:var(--green-dark); background:#dcece5; font-weight:600; }.project-symbol { width:21px; height:21px; display:grid; place-items:center; color:var(--green); background:#d9e9e3; border-radius:6px; font-family:'DM Mono',monospace; font-size:11px; }.project-empty,.sidebar-empty { padding:12px 11px; color:var(--muted); font-size:12px; }.sidebar-bottom { margin-top:auto; }.pilot-card { display:flex; gap:10px; padding:12px 10px; margin:10px 0; background:#e3ede8; border:1px solid #d5e4de; border-radius:10px; }.pilot-card strong,.pilot-card span { display:block; }.pilot-card strong { margin-bottom:2px; color:var(--green-dark); font-size:11px; }.pilot-card span:last-child { color:var(--muted); font-size:10px; }.nav-button { width:100%; display:flex; gap:10px; align-items:center; padding:10px; color:var(--muted); background:transparent; border:0; border-radius:8px; text-align:left; }.nav-button:hover { color:var(--ink); background:#e4ece8; }.nav-icon { width:21px; text-align:center; font-size:17px; }
.workspace { width:100%; min-width:0; }.topbar { height:70px; display:flex; align-items:center; justify-content:space-between; padding:0 44px; background:rgba(245,247,245,.84); border-bottom:1px solid var(--line); }.breadcrumb { display:flex; align-items:center; gap:12px; }.breadcrumb-muted,.breadcrumb-slash { color:var(--faint); }.topbar-actions { display:flex; align-items:center; gap:12px; }.capability-summary { color:var(--muted); font-family:'DM Mono',monospace; font-size:10px; }.capability-summary::before { content:''; width:6px; height:6px; display:inline-block; margin-right:7px; background:#3d9c75; border-radius:50%; vertical-align:1px; }.content { max-width:1260px; padding:47px 44px 70px; margin:0 auto; }.hero-row { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:31px; }.hero-row h1 { margin-top:7px; }.workspace-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.panel { min-height:260px; padding:24px; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }.panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; margin-bottom:22px; }.section-kicker { margin-bottom:6px; color:var(--faint); }.asset-list,.job-list,.connection-list,.artifact-list { display:flex; flex-direction:column; gap:7px; }.asset-row,.job-row,.connection-row,.artifact-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px; border:1px solid #e2e9e5; border-radius:9px; }.asset-row:hover,.job-row:hover,.connection-row:hover,.artifact-row:hover { border-color:#b9d1c7; background:#fbfdfb; }.row-main { min-width:0; }.row-title { margin:0 0 3px; overflow:hidden; color:var(--ink); font-size:13px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }.row-meta { margin:0; overflow:hidden; color:var(--muted); font-family:'DM Mono',monospace; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.row-arrow { color:var(--faint); font-size:17px; }.pill { display:inline-flex; align-items:center; gap:5px; padding:4px 8px; color:var(--muted); background:#f1f5f3; border-radius:20px; font-family:'DM Mono',monospace; font-size:10px; white-space:nowrap; }.pill-green { color:var(--green-dark); background:var(--mint); }.pill-amber { color:var(--amber); background:var(--amber-bg); }.pill-red { color:var(--red); background:#f9e9e6; }.empty-state { min-height:168px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:16px; color:var(--muted); text-align:center; }.empty-state p { max-width:250px; margin-bottom:14px; font-size:12px; }.empty-state h3 { color:var(--ink); }.empty-icon { width:34px; height:34px; display:grid; place-items:center; margin-bottom:9px; color:var(--green); background:var(--mint); border-radius:10px; font-size:19px; }.compact { min-height:100px; }.compact p { margin:0; }
.welcome-state { min-height:calc(100vh - 70px); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:44px; text-align:center; }.welcome-state p:not(.eyebrow) { max-width:370px; color:var(--muted); }.welcome-orbit { width:62px; height:62px; display:grid; place-items:center; margin-bottom:23px; color:var(--green); background:var(--mint); border:1px solid #d2e7dc; border-radius:50%; font-size:26px; }
.modal { width:min(100% - 32px,440px); padding:0; color:var(--ink); background:var(--canvas); border:0; border-radius:16px; box-shadow:0 25px 80px rgba(23,49,42,.2); }.modal::backdrop { background:rgba(16,35,31,.37); backdrop-filter:blur(3px); }.modal-wide { width:min(100% - 32px,890px); }.modal-card { padding:27px; }.modal-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:22px; }.modal-head h2 { font-size:21px; }.modal-note,.field-help { color:var(--muted); font-size:12px; }.modal-note { margin:-9px 0 17px; }.modal-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:18px; }.check-row { display:flex; align-items:flex-start; gap:10px; padding:11px 0; color:var(--ink); border-bottom:1px solid var(--line); }.check-row input { width:16px; height:16px; margin-top:1px; accent-color:var(--green); }.check-row strong,.check-row small { display:block; }.check-row small { margin-top:2px; color:var(--muted); font-size:11px; font-weight:400; }.check-disabled { opacity:.42; }fieldset { padding:0; margin:19px 0 0; border:0; }legend { margin-bottom:6px; color:#56676a; font-size:12px; font-weight:600; }.copy-field { display:flex; gap:8px; }.copy-field input { font-family:'DM Mono',monospace; font-size:11px; }.token-card .button-wide { margin-top:23px; }
.detail-toolbar { display:flex; align-items:center; gap:10px; padding:13px 0; margin-bottom:22px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.detail-toolbar label { margin-right:-4px; }.detail-toolbar select { width:auto; min-width:180px; }.branch-origin { color:var(--muted); font-family:'DM Mono',monospace; font-size:10px; }.detail-toolbar .button { margin-left:auto; }.source-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:24px; }.subhead { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:11px; }.subhead h3 { margin:0; }.count-badge { padding:3px 7px; color:var(--muted); background:#eaf0ed; border-radius:12px; font-family:'DM Mono',monospace; font-size:10px; }.revision-list { max-height:400px; overflow:auto; }.revision-item { padding:13px; margin-bottom:7px; background:#fff; border:1px solid var(--line); border-radius:9px; cursor:pointer; }.revision-item:hover,.revision-item.selected { border-color:#7db19d; box-shadow:0 0 0 2px rgba(30,114,94,.09); }.revision-item.selected { background:#f8fcf9; }.revision-item-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }.revision-id { color:var(--muted); font-family:'DM Mono',monospace; font-size:10px; }.revision-details { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding-top:9px; margin-top:9px; border-top:1px solid #edf1ef; }.revision-detail-label { display:block; color:var(--faint); font-family:'DM Mono',monospace; font-size:9px; text-transform:uppercase; }.revision-detail-value { display:block; margin-top:2px; overflow:hidden; color:var(--muted); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.revision-form { padding:17px; background:#f7faf8; border:1px solid #e1ebe6; border-radius:11px; }.revision-form textarea { min-height:84px; margin-bottom:12px; }.revision-form .code-input { min-height:55px; font-family:'DM Mono',monospace; font-size:11px; }.revision-form .button { margin-top:4px; }
.job-form { display:grid; gap:8px; }.job-form textarea { min-height:80px; margin-bottom:7px; }.job-form .code-input { min-height:56px; font-family:'DM Mono',monospace; font-size:11px; }.job-progress { padding:13px; margin-top:17px; background:#f1f7f3; border:1px solid #d4e6dc; border-radius:9px; color:var(--green-dark); font-size:12px; }.history-list { display:flex; flex-direction:column; gap:8px; max-height:55vh; overflow:auto; }.history-item { padding:14px; background:#fff; border:1px solid var(--line); border-radius:9px; }.history-item-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }.history-item small { display:block; margin-top:5px; color:var(--muted); }.result-box { padding:11px; margin-top:10px; overflow:auto; color:#49615b; background:#f6faf7; border-radius:7px; font-family:'DM Mono',monospace; font-size:10px; white-space:pre-wrap; }.connection-row .button,.artifact-row .button { min-height:32px; padding:0 10px; font-size:11px; }.connections-detail-list,.artifacts-detail-list { display:flex; flex-direction:column; gap:9px; }.connection-detail { padding:14px; background:#fff; border:1px solid var(--line); border-radius:9px; }.connection-detail-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }.capability-list { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
@media (max-width:900px) { .sidebar { width:220px; }.topbar { padding:0 25px; }.content { padding:36px 25px 60px; }.panel { padding:19px; } }
@media (max-width:700px) { .mobile-only { display:inline-grid; }.app-view { position:relative; }.sidebar { position:fixed; z-index:10; inset:0 auto 0 0; width:min(88vw,290px); transform:translateX(-105%); transition:transform .2s; box-shadow:14px 0 35px rgba(31,53,48,.13); }.app-view.sidebar-open .sidebar { transform:translateX(0); }.topbar { height:62px; padding:0 15px; gap:10px; }.topbar-actions { gap:3px; }.capability-summary { display:none; }.breadcrumb { min-width:0; overflow:hidden; white-space:nowrap; }.breadcrumb strong { overflow:hidden; text-overflow:ellipsis; }.content { padding:29px 15px 50px; }.hero-row { display:block; margin-bottom:24px; }.hero-row .button { margin-top:8px; }.workspace-grid { grid-template-columns:1fr; }.panel { min-height:0; }.welcome-state { min-height:calc(100vh - 62px); padding:25px; }.login-card { padding:35px 25px 28px; }.source-layout { grid-template-columns:1fr; }.detail-toolbar { flex-wrap:wrap; }.detail-toolbar select { flex:1; min-width:120px; }.detail-toolbar .button { margin-left:0; }.modal-wide { width:min(100% - 18px,890px); }.modal-card { padding:20px; }.modal-actions { flex-wrap:wrap; }.modal-actions .button { flex:1; }.copy-field { align-items:stretch; }.copy-field .button { min-width:70px; } }
.panel-actions { display:flex; align-items:center; gap:12px; }
.activity-heading { display:flex; align-items:center; gap:7px; }
.activity-help-button { width:20px; height:20px; display:inline-grid; place-items:center; padding:0; color:var(--green-dark); background:var(--mint); border:1px solid #b9dcca; border-radius:50%; font-family:Georgia,serif; font-size:12px; font-weight:700; line-height:1; }
.activity-help-button:hover { background:#d7ebe1; }
.activity-help-button:focus-visible,.activity-help-close:focus-visible { outline:3px solid rgba(30,114,94,.28); outline-offset:2px; }
.activity-help-popover { width:min(360px,calc(100vw - 32px)); padding:15px 16px 14px; margin:10px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:11px; box-shadow:0 14px 38px rgba(31,53,48,.16); }
.activity-help-popover:popover-open { position:fixed; inset:50% auto auto 50%; transform:translate(-50%,-50%); }
.activity-help-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:7px; }
.activity-help-head h3 { margin:0; font-size:14px; }
.activity-help-popover p { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.activity-help-close { width:24px; height:24px; display:grid; place-items:center; padding:0; color:var(--muted); background:transparent; border:0; border-radius:6px; font-size:18px; line-height:1; }
.activity-help-close:hover { color:var(--ink); background:var(--mint); }
.developer-tools { max-width:1260px; padding:0 15px 18px; margin:-16px auto 0; color:var(--muted); }
.developer-tools summary { width:max-content; padding:7px 0; color:var(--green-dark); cursor:pointer; font-size:12px; font-weight:600; }
.developer-tools-body { display:flex; align-items:center; gap:14px; padding:12px 14px; background:#eef5f1; border:1px solid #d9e8df; border-radius:9px; }
.developer-tools-body p { margin:0; font-size:12px; }
.developer-tools-body .text-button { margin-left:auto; }
.job-row,.history-item { cursor:pointer; }
.job-row:focus-visible,.history-item:focus-visible { outline:3px solid rgba(30,114,94,.22); outline-offset:2px; }
.job-progress { display:flex; flex-direction:column; gap:8px; }
.job-progress-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.job-progress-title { color:var(--green-dark); font-size:14px; font-weight:700; }
.job-progress-meta { color:var(--muted); font-family:'DM Mono',monospace; font-size:10px; }
.job-outcome { padding:10px 11px; background:#fff; border:1px solid #d9e8df; border-radius:7px; }
.job-outcome.good { color:var(--green-dark); background:var(--mint); border-color:#b9dcca; }
.job-outcome.bad { color:#8f3e39; background:#fdf1ef; border-color:#edcbc7; }
.job-outcome.neutral { color:var(--amber); background:var(--amber-bg); border-color:#edd9bd; }
.assertion-summary { display:flex; flex-wrap:wrap; gap:6px; margin-top:2px; }
.assertion-failures { display:flex; flex-direction:column; gap:5px; padding-left:18px; margin:2px 0 0; color:#8f3e39; font-size:12px; }
.assertion-failures li::marker { color:var(--red); }
.job-artifact { display:flex; align-items:center; gap:8px; color:var(--green-dark); font-size:12px; }
.job-artifact a { color:var(--green); font-weight:600; }
.technical-result { margin-top:3px; }
.technical-result summary { color:var(--muted); cursor:pointer; font-size:11px; }
.technical-result .result-box { margin-top:7px; }
.job-progress .button { align-self:flex-start; min-height:32px; font-size:11px; }
@media (max-width:700px) { .developer-tools { padding:0 15px 15px; margin:-10px auto 0; }.developer-tools-body { align-items:flex-start; flex-direction:column; }.developer-tools-body .text-button { margin-left:0; } }
.revision-form #revision-id-input { font-family:'DM Mono',monospace; font-size:11px; color:var(--muted); }
.tool-schema { padding:8px 10px; margin:0 0 8px; color:var(--muted); background:#f1f5f3; border:1px solid var(--line); border-radius:7px; font-size:11px; }.tool-schema summary { cursor:pointer; color:var(--green-dark); font-weight:600; }.tool-schema pre { max-height:180px; overflow:auto; padding-top:8px; margin:8px 0 0; color:#536360; font-family:'DM Mono',monospace; font-size:10px; white-space:pre-wrap; }
.check-findings h4 { margin:6px 0; font-size:12px; }
.check-findings ul { margin:0; padding-left:20px; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.result-measurements { display:grid; grid-template-columns:max-content 1fr; gap:6px 18px; margin:8px 0; font-size:12px; }
.result-measurements dt { color:var(--muted); }
.result-measurements dd { margin:0; overflow-wrap:anywhere; }
.oauth-consent { min-height:100vh; display:grid; place-items:center; padding:24px; background:var(--canvas); }
.oauth-consent > .modal-card { width:min(100%, 480px); }
.project-nav-item { display:flex; align-items:center; gap:4px; }
.project-nav-item .project-item { flex:1; min-width:0; }
.project-settings-button { width:28px; height:32px; border:0; color:var(--faint); background:transparent; border-radius:7px; cursor:pointer; }
.project-settings-button:hover { color:var(--green-dark); background:var(--mint); }
.credential-actions { display:flex; gap:8px; margin-top:12px; }
.credential-list { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
.credential-list .connection-detail-head { flex-wrap:wrap; }
.credential-status { margin-top:14px; padding-top:12px; border-top:1px solid var(--line); }
.credential-list .button { min-height:30px; padding:0 9px; font-size:11px; }
.preview-badge { padding:4px 8px; color:var(--green-dark); background:var(--mint); border-radius:20px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.04em; }
.preview-controls { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto; align-items:end; gap:9px; margin-bottom:17px; }
.preview-field { min-width:0; }
.preview-field label { display:block; margin-bottom:5px; }
.preview-controls .button { min-height:40px; }
.preview-stage { min-height:260px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:12px; background:#f7faf8; border:1px solid #e1ebe6; border-radius:11px; text-align:center; }
.preview-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:205px; color:var(--muted); }
.preview-empty h3 { color:var(--ink); }
.preview-empty p { max-width:280px; margin:0; font-size:12px; }
.preview-image { width:100%; height:260px; object-fit:contain; border-radius:7px; }
.preview-status { width:100%; min-height:18px; padding-top:10px; margin:0; color:var(--muted); font-size:11px; line-height:1.4; text-align:left; }
.preview-status-error { color:var(--red); }
@media (max-width:700px) { .preview-controls { grid-template-columns:1fr; align-items:stretch; }.preview-controls .button { width:100%; }.preview-image { height:220px; } }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.library-toolbar { display:flex; gap:9px; margin-bottom:17px; }
.library-toolbar input { flex:1; }
.library-layout { display:grid; grid-template-columns:minmax(210px,.78fr) minmax(0,1.35fr); gap:18px; }
.library-entries,.library-detail { min-width:0; padding:15px; background:#f7faf8; border:1px solid #e1ebe6; border-radius:11px; }
.library-entry-list,.library-revision-list { display:flex; flex-direction:column; gap:7px; max-height:310px; overflow:auto; }
.library-entry,.library-revision { width:100%; display:flex; align-items:center; gap:10px; padding:11px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:8px; text-align:left; }
.library-entry:hover,.library-entry.selected,.library-revision:hover,.library-revision.selected { border-color:#7db19d; background:#f8fcf9; }
.library-entry strong,.library-entry small,.library-revision strong,.library-revision small { display:block; }
.library-entry small,.library-revision small { margin-top:3px; color:var(--muted); font-size:10px; font-weight:400; }
.library-entry .row-arrow { margin-left:auto; }
.library-preview { position:relative; min-height:150px; display:grid; place-items:center; margin:3px 0 13px; background:#fff; border:1px solid var(--line); border-radius:8px; color:var(--muted); font-size:11px; }
.library-preview img { width:100%; height:180px; object-fit:contain; }
.library-preview span { position:absolute; }
.library-metadata { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:6px 14px; padding:10px 0 13px; margin:0; border-bottom:1px solid var(--line); font-size:11px; }
.library-metadata dt { color:var(--muted); }
.library-metadata dd { min-width:0; margin:0; overflow-wrap:anywhere; }
.library-revisions { margin-top:14px; }
.library-revisions h4 { margin:0 0 8px; font-size:12px; }
.library-revision { cursor:pointer; }
.library-revision input { width:16px; height:16px; flex:none; accent-color:var(--green); }
.library-revision .text-button { margin-left:auto; flex:none; font-size:10px; }
.library-import-form { padding-top:14px; margin-top:14px; border-top:1px solid var(--line); }
.library-import-form .button { width:100%; margin-top:5px; }
.library-upload { padding:15px; margin-top:18px; background:#eef5f1; border:1px solid #d9e8df; border-radius:11px; }
.library-upload .subhead { margin-bottom:10px; }
.library-upload-actions { display:flex; align-items:center; gap:12px; }
.library-upload-fields { display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:10px; }
.library-upload-form .modal-actions { margin-top:8px; }
.library-upload-form .modal-actions .button { margin-top:0; }
.vendor-script-hint { padding:7px 9px; margin:-5px 0 10px; color:#577069; background:#eef5f1; border-radius:6px; }
.vendor-script-hint code { color:var(--green-dark); font-family:'DM Mono',monospace; font-size:10px; }
.vendor-dependencies { padding-top:4px; margin:0 0 12px; }
.vendor-dependencies-list { max-height:190px; overflow:auto; }
.vendor-dependency-row { padding:8px 0; }
.vendor-dependency-row small { display:block; color:var(--muted); font-size:10px; font-weight:400; }
.revision-feedback { grid-column:1 / -1; padding:17px; background:#f7faf8; border:1px solid #e1ebe6; border-radius:11px; }
.revision-feedback textarea { min-height:68px; max-height:180px; margin-bottom:5px; }
.feedback-actions { display:flex; justify-content:flex-end; }
.feedback-actions .button { min-height:34px; padding:0 11px; }
.feedback-actions-split { justify-content:space-between; margin:0 0 9px; }
.modal-viewer { width:min(100% - 32px,1120px); }
.cad-viewer { display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:13px 17px; }
.cad-viewer-stage { position:relative; grid-row:span 3; min-height:500px; overflow:hidden; background:#f7faf8; border:1px solid #dce8e1; border-radius:11px; }
.cad-canvas-host { position:absolute; inset:0; }
.cad-canvas-host canvas { display:block; width:100%; height:100%; cursor:grab; outline:0; }
.cad-canvas-host canvas:active { cursor:grabbing; }
.cad-canvas-loading { pointer-events:none; opacity:.52; }
.cad-marker-host { position:absolute; inset:0; pointer-events:none; }
.cad-marker { position:absolute; z-index:2; width:24px; height:24px; padding:0; transform:translate(-50%,-50%); color:#fff; background:var(--green); border:2px solid #fff; border-radius:50%; box-shadow:0 2px 7px rgba(18,55,44,.25); cursor:pointer; font:700 10px/1 'DM Mono',monospace; pointer-events:auto; }
.cad-marker:hover { background:var(--green-dark); }
.cad-viewer-status { position:absolute; inset:auto 12px 10px; z-index:3; margin:0; padding:6px 8px; color:#49615b; background:rgba(255,255,255,.9); border:1px solid #dce8e1; border-radius:6px; font-size:10px; pointer-events:none; }
.cad-viewer-status-error { color:var(--red); border-color:#edcbc7; }
.cad-viewer-controls,.cad-mode-controls { display:flex; flex-wrap:wrap; gap:6px; align-content:start; }
.cad-viewer-controls,.cad-mode-controls,.cad-note-composer { grid-column:2; }
.cad-viewer-controls .button,.cad-mode-controls .button { min-height:31px; padding:0 10px; font-size:11px; }
.cad-note-composer,.cad-note-list { padding:13px; background:#f7faf8; border:1px solid #e1ebe6; border-radius:9px; }
.cad-note-composer { display:flex; flex-direction:column; gap:8px; }
.cad-note-composer textarea { min-height:95px; resize:vertical; }
.cad-note-at { margin:0; color:var(--muted); font-size:11px; line-height:1.4; }
.cad-composer-actions { display:flex; flex-direction:column; align-items:stretch; gap:7px; }
.cad-note-composer .button { min-height:34px; font-size:11px; }
.cad-note-list { grid-column:1 / -1; display:flex; flex-direction:column; gap:8px; max-height:320px; overflow:auto; }
.cad-viewer-note { padding:10px; background:#fff; border:1px solid var(--line); border-radius:7px; }
.cad-viewer-note .feedback-body { margin:6px 0; }
.cad-viewer-note .text-button { font-size:10px; }
.cad-viewer-note .text-button + .text-button { margin-left:14px; }
@media (max-width:760px) { .modal-viewer { width:min(100% - 18px,1120px); }.cad-viewer { grid-template-columns:1fr; }.cad-viewer-stage { grid-row:auto; min-height:360px; }.cad-viewer-controls,.cad-mode-controls,.cad-note-composer,.cad-note-list { grid-column:auto; }.cad-note-list { max-height:240px; } }
.revision-feedback-list { display:flex; flex-direction:column; gap:8px; max-height:290px; margin-top:13px; overflow:auto; }
.feedback-item { padding:11px; background:#fff; border:1px solid var(--line); border-radius:8px; }
.feedback-item-head,.feedback-meta { display:flex; align-items:center; justify-content:space-between; gap:9px; }
.feedback-author { color:var(--green-dark); font-size:11px; font-weight:700; }
.feedback-body { margin:8px 0; color:var(--ink); font-size:12px; white-space:pre-wrap; overflow-wrap:anywhere; }
.feedback-meta { color:var(--muted); font-family:'DM Mono',monospace; font-size:9px; }
.feedback-meta .text-button { font-family:inherit; font-size:10px; }
.feedback-resolved { opacity:.72; }
.artifact-copy-panel { padding:15px; margin-bottom:18px; background:#eef5f1; border:1px solid #d9e8df; border-radius:11px; }
.artifact-copy-controls { display:grid; grid-template-columns:1fr 1.3fr auto; align-items:end; gap:10px; }
.artifact-copy-controls select { min-width:0; }
.artifact-copy-controls .button { min-height:40px; }
@media (max-width:700px) { .library-layout,.library-upload-fields { grid-template-columns:1fr; }.library-entry-list,.library-revision-list { max-height:220px; } }
@media (max-width:700px) { .artifact-copy-controls { grid-template-columns:1fr; align-items:stretch; }.artifact-copy-controls .button { width:100%; } }

/* Component workbench: geometry is the stable surface, with one inspector. */
.component-workbench { padding:22px 26px 20px; max-width:1800px; margin:auto; }
.component-open .sidebar { width:190px; }
.component-open .sidebar .pilot-card { display:none; }
.component-open .topbar { padding:0 26px; height:56px; }
.component-open .capability-summary { display:none; }
.workbench-header { margin-bottom:16px; }
.workbench-title-row { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:18px; }
.workbench-component-select { width:min(230px,50%); height:34px; font-size:12px; }
.workbench-identity { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.workbench-identity h1 { font-size:27px; margin:4px 0 7px; }
.workbench-identity .field-help { margin:0; }
.workbench-choices { display:flex; align-items:end; flex-wrap:wrap; gap:8px; }
.workbench-choices label { display:grid; gap:4px; }
.workbench-choices select { width:170px; }
.workbench-choices .button { font-size:12px; padding:0 12px; }
.workbench-notice { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; background:var(--amber-bg); color:#835623; border:1px solid #e5d4b8; border-radius:8px; padding:10px 13px; margin-top:12px; font-size:12px; }
.workbench-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; align-items:stretch; gap:16px; height:max(530px,calc(100vh - 235px)); }
.workbench-model { display:flex; flex-direction:column; min-width:0; min-height:0; }
.workbench-model-identity { margin:0 0 9px; font-size:12px; color:#546b63; }
.workbench-viewer { flex:1; min-height:0; display:flex; flex-direction:column; gap:9px; }
.workbench-viewer .cad-viewer-stage { flex:1; min-height:250px; grid-row:auto; border-radius:12px; }
.workbench-viewer .cad-viewer-controls,.workbench-viewer .cad-mode-controls { grid-column:auto; }
.workbench-viewer .cad-viewer-controls .button,.workbench-viewer .cad-mode-controls .button { padding:0 9px; min-height:32px; }
.workbench-model-empty { display:grid; place-items:center; min-height:350px; flex:1; padding:36px; background:#edf3ef; border:1px dashed #bfd0c7; border-radius:12px; color:#5e746b; text-align:center; }
.workbench-inspector { min-width:0; min-height:0; display:flex; flex-direction:column; background:white; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.workbench-tabs { display:flex; border-bottom:1px solid var(--line); padding:0 8px; }
.workbench-tab { flex:1; padding:15px 5px 12px; border:0; border-bottom:3px solid transparent; background:white; color:var(--muted); font-size:12px; font-weight:600; }
.workbench-tab[aria-selected="true"] { color:var(--green-dark); border-bottom-color:var(--green); }
.workbench-more { display:flex; gap:18px; padding:10px 17px; border-bottom:1px solid #edf1ef; }
.workbench-more .text-button { font-weight:500; font-size:11px; }
.workbench-panel-body { flex:1; min-height:0; overflow:auto; padding:18px; }
.workbench-panel h2 { font-size:16px; margin-bottom:10px; }
.workbench-panel .field-help { line-height:1.6; }
.workbench-panel details { margin-top:18px; font-size:12px; }
.workbench-panel summary { cursor:pointer; color:var(--green-dark); }
.workbench-panel textarea { min-height:100px; margin:5px 0 16px; font:11px/1.5 ui-monospace,monospace; }
.workbench-panel #wb-source { min-height:230px; }
.workbench-parameter { margin:18px 0; }
.workbench-parameter > label { display:block; margin-bottom:6px; overflow-wrap:anywhere; }
.workbench-parameter-control { display:flex; gap:12px; align-items:center; }
.workbench-parameter-control input { min-width:0; font-variant-numeric:tabular-nums; }
.workbench-parameter > small { display:block; margin-top:5px; font-size:10px; }
.workbench-apply { border-top:1px solid var(--line); padding:13px 17px; background:#fafcfb; }
.workbench-apply .field-help { margin:0; font-size:11px; line-height:1.5; }
.workbench-apply .form-error:empty { display:none; }
.workbench-apply-actions { display:flex; justify-content:space-between; gap:8px; margin-top:10px; }
.workbench-apply-actions .button { font-size:12px; min-width:0; white-space:normal; }
.workbench-history-item { display:flex; flex-direction:column; align-items:start; gap:6px; width:100%; text-align:left; margin:10px 0; padding:12px; border:1px solid var(--line); border-radius:8px; background:white; }
.workbench-history-item.selected { border-color:var(--green); background:#f2f8f4; }
.workbench-history-item span { font-size:12px; }
.workbench-history-item small { font-size:10px; }
.workbench-check-status { padding:9px 11px; font-size:12px; background:#f0f4f2; border-radius:6px; }
.status-passed { color:var(--green-dark); background:var(--mint); }
.status-checks_failed,.status-failed { color:var(--red); background:#fdf1ef; }
.status-review,.status-running,.status-queued { color:var(--amber); background:var(--amber-bg); }
.workbench-check-result { margin-top:18px; font-size:12px; }
.workbench-check-result .job-outcome { margin-bottom:9px; }
.workbench-check-result .assertion-summary .pill { font-size:9px; }
.workbench-check-result .check-findings { margin:14px 0; }
.workbench-check-result .check-findings h4 { margin:0 0 5px; }
.workbench-check-result .check-findings ul { padding-left:18px; }
.workbench-check-result .result-box { overflow-wrap:anywhere; }
.workbench-operation { padding:8px 0; display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px; border-bottom:1px solid var(--line); }
.workbench-output { padding:12px 0; border-bottom:1px solid var(--line); display:grid; gap:5px; }
.workbench-output a { color:var(--green); overflow-wrap:anywhere; }
.workbench-output small { font-size:10px; }
.admin-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(220px,.8fr); gap:22px; align-items:start; }
.admin-section,.admin-create { min-width:0; }
.admin-create { padding:18px; background:#edf2ef; border:1px solid var(--line); border-radius:12px; }
.admin-create h3 { margin-bottom:14px; }
.admin-users,.admin-audit { border-top:1px solid var(--line); }
.admin-user-row { display:flex; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); }
.admin-user-identity { min-width:0; }
.admin-user-identity strong,.admin-user-identity small { display:block; overflow-wrap:anywhere; }
.admin-user-identity small { margin-top:3px; color:var(--muted); font-family:'DM Mono',monospace; font-size:9px; }
.admin-user-badges { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.account-badge { display:inline-block; padding:3px 7px; color:var(--green-dark); background:var(--mint); border-radius:999px; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.account-badge-muted { color:var(--muted); background:#e5e9e7; }
.admin-user-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:6px; }
.admin-user-actions .button { min-width:0; height:32px; padding:0 9px; font-size:10px; }
.button-danger { color:var(--red); border-color:#e6c5bf; }
.button-danger:hover { color:#fff; background:var(--red); border-color:var(--red); }
.admin-audit-section { margin-top:28px; }
.admin-audit { max-height:260px; overflow:auto; }
.admin-audit-row { display:flex; justify-content:space-between; gap:18px; padding:12px 0; border-bottom:1px solid var(--line); }
.admin-audit-row p { margin:3px 0 0; font-size:11px; }
.admin-audit-row time { flex:none; }
@media (max-width:700px) { .admin-layout { grid-template-columns:1fr; }.admin-user-row,.admin-audit-row { flex-direction:column; }.admin-user-actions { justify-content:flex-start; } }
.workbench-review-actions { display:flex; gap:10px; margin:14px 0; align-items:center; }
.workbench-review-actions .button { font-size:11px; padding:0 10px; }
.workbench-review .cad-note-composer { padding:10px; }
.workbench-review .cad-mode-controls .button { flex:1; }
.workbench-review .cad-note-list { max-height:none; padding:0; margin-top:12px; background:none; border:0; overflow:visible; }
.workbench-review textarea { font:12px/1.5 inherit; margin-bottom:0; }
.cad-viewer-retry { position:absolute; top:12px; left:12px; z-index:4; pointer-events:auto; }
.cad-marker-occluded { opacity:.65; border-style:dashed; background:#fff; color:var(--green-dark); border-color:var(--green); }
.cad-marker-offscreen { border-radius:5px; border-style:dashed; }
.cad-marker-selected { outline:3px solid #e0a639; outline-offset:2px; }
.cad-viewer-note-selected { border-color:#b17e22; box-shadow:0 0 0 2px #f6deb3; }
.cad-canvas-host canvas:focus-visible,.cad-marker:focus-visible,.workbench-tab:focus-visible,.workbench-history-item:focus-visible { outline:3px solid #518a73; outline-offset:-3px; }
.overview-preview { margin-top:24px; }
.overview-preview > summary { color:var(--green); cursor:pointer; padding:10px 0; }
.assets-panel { grid-column:1 / -1; min-width:0; }
.asset-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:12px; }
.asset-row { min-width:0; text-align:left; border:1px solid var(--line); padding:20px 16px; border-radius:9px; background:#fafcfb; }
.asset-row .row-main { flex:1; }
.asset-row .row-title,.asset-row .row-meta { display:block; white-space:normal; overflow-wrap:anywhere; }
.asset-row .row-arrow { flex-shrink:0; }
button:disabled { opacity:.5; cursor:default; transform:none; }
@media (max-width:1150px) { .component-open .sidebar { width:170px; }.component-workbench { padding:20px 16px; }.workbench-layout { grid-template-columns:minmax(0,1fr) 300px; gap:12px; }.workbench-identity { align-items:start; flex-direction:column; }.workbench-layout { height:max(520px,calc(100vh - 290px)); } }
@media (max-width:820px) { .component-open .sidebar { width:150px; }.workbench-layout { grid-template-columns:minmax(0,1fr); height:auto; }.workbench-viewer { min-height:430px; }.workbench-inspector { min-height:420px; max-height:600px; }.workbench-choices { width:100%; }.workbench-choices label { flex:1; }.workbench-choices select { width:100%; }.workbench-panel-body { max-height:430px; } }
@media (max-width:700px) { .component-open .sidebar { width:min(88vw,290px); }.component-open .topbar { padding:0 15px; }.component-workbench { padding:18px 12px; }.workbench-identity h1 { font-size:24px; }.workbench-viewer { min-height:390px; }.workbench-choices .button { padding:0 8px; font-size:11px; } }

[hidden] { display:none !important; }
.mobile-only { display:none; }
.workbench-layout { height:max(400px,calc(100dvh - 242px)); }
@media (max-width:1150px) { .workbench-layout { height:max(400px,calc(100dvh - 295px)); } }
@media (max-width:820px) { .workbench-layout { height:auto; } }
@media (max-width:700px) { .mobile-only { display:inline-grid; } }

.workbench-model-head { display:flex; align-items:start; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:9px; }
.workbench-model-head .workbench-model-identity { margin:0; }
.workbench-evidence-status { font-size:10px; padding:3px 7px; border-radius:5px; }
.workbench-representation { display:flex; gap:3px; padding:2px; border:1px solid var(--line); border-radius:7px; background:#fff; }
.workbench-representation .text-button { padding:4px 8px; font-size:11px; border-radius:5px; }
.workbench-representation .text-button[aria-pressed="true"] { background:#e4f1e9; color:var(--green-dark); font-weight:700; }
.workbench-drawing { flex:1; min-height:0; display:flex; overflow:hidden; }
.drawing-viewer { min-height:0; flex:1; display:flex; flex-direction:column; gap:8px; overflow:hidden; }
.drawing-viewer-head { display:flex; justify-content:space-between; align-items:baseline; gap:10px; min-width:0; }
.drawing-viewer-head h2 { margin:0; font-size:15px; white-space:nowrap; }
.drawing-viewer-head .field-help { margin:0; min-width:0; font-size:11px; line-height:1.35; text-align:right; }
.drawing-toolbar,.drawing-actions { display:flex; flex-wrap:wrap; align-items:end; gap:8px; }
.drawing-toolbar label { display:grid; gap:4px; color:var(--muted); font-size:10px; }
.drawing-toolbar select { max-width:160px; min-width:0; }
.drawing-toolbar .text-button { padding:5px 7px; }
.drawing-empty { display:grid; gap:12px; min-height:170px; align-content:center; padding:22px; border:1px dashed #bfd0c7; border-radius:10px; background:#f7faf8; }
.drawing-stage { position:relative; flex:1; min-height:0; display:grid; place-items:center; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#edf3ef; }
.drawing-stage:focus-visible { outline:3px solid #518a73; outline-offset:2px; }
.drawing-stage.drawing-note-mode { cursor:crosshair; }
.drawing-stage.drawing-dimension-mode { cursor:crosshair; }
.drawing-svg { display:block; width:100%; height:100%; min-height:0; max-height:none; object-fit:contain; transform-origin:center; transition:transform .12s ease; cursor:inherit; }
.drawing-markers { position:absolute; inset:0; pointer-events:none; }
.drawing-dimension-overlay { position:absolute; inset:0; pointer-events:none; }
.drawing-marker { position:absolute; width:12px; height:12px; transform:translate(-50%,-50%); border:2px solid #a65b22; border-radius:50%; background:#fff7ed; box-shadow:0 1px 3px #0004; }
.drawing-marker.pending { border-color:#2a6a50; background:#dff0e6; }
.drawing-marker.resolved { opacity:.45; }
.drawing-dimension-point { position:absolute; width:14px; height:14px; transform:translate(-50%,-50%); border:2px solid #2563eb; border-radius:50%; background:#dbeafe; box-shadow:0 1px 3px #0004; }
.drawing-dimension-circle { position:absolute; transform:translate(-50%,-50%); box-sizing:border-box; border:2px solid #2563eb; border-radius:50%; background:color-mix(in srgb,#dbeafe 35%,transparent); }
.drawing-dimension-line { position:absolute; height:2px; transform-origin:0 50%; background:#2563eb; box-shadow:0 1px 1px #fff; }
.drawing-stale { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:9px 11px; border:1px solid #e5d4b8; border-radius:7px; background:var(--amber-bg); color:#835623; font-size:12px; }
.drawing-report { font-size:12px; }
.drawing-report ul { margin:7px 0 0; padding-left:18px; }
.drawing-notes { display:grid; gap:10px; }
.drawing-inspector-tabs { display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:10px; }
.drawing-inspector-tabs .text-button { padding:6px 8px; border-radius:5px 5px 0 0; font-size:11px; }
.drawing-inspector-tabs .text-button[aria-pressed="true"],.drawing-dimension-tools .text-button[aria-pressed="true"] { color:#fff; background:#1d4e89; border-color:#163c69; }
.drawing-dimensions { display:grid; gap:10px; }
.drawing-dimension-tools { display:flex; flex-wrap:wrap; gap:5px; }
.drawing-dimension-tools .text-button { padding:5px 7px; font-size:11px; border:1px solid var(--line); border-radius:5px; }
.drawing-dimension-preview { padding:9px; border:1px solid #b6d1ed; border-radius:7px; background:#f1f7fe; }
.drawing-dimension-preview p { margin:0 0 7px; font-size:12px; }
.drawing-dimension-row { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:center; gap:6px; padding:8px 0; border-top:1px solid var(--line); }
.drawing-dimension-row p { grid-column:1 / -1; margin:0; font-size:11px; }
.drawing-dimension-row input { min-width:0; }
.drawing-dimension-row > button { grid-column:span 2; }
.drawing-dimension-field { grid-column:span 3; display:grid; gap:2px; color:var(--muted); font-size:9px; }
.drawing-notes h3 { margin:0; font-size:14px; }
.drawing-note-form { display:grid; gap:7px; }
.drawing-note-form textarea { min-height:88px; font:12px/1.45 inherit; }
.drawing-note { padding:10px 0; border-top:1px solid var(--line); }
.drawing-note p { margin:0 0 5px; white-space:pre-wrap; }
.drawing-note.resolved { opacity:.68; }

@media (min-width:821px) {
  .component-workbench { display:flex; flex-direction:column; height:calc(100dvh - 56px); }
  .workbench-layout { height:auto; flex:1; min-height:360px; }
  .workbench-header { flex:none; }
}

.cad-marker-draft { background:#b66a08; color:#fff; border-color:#fff; box-shadow:0 0 0 3px rgba(182,106,8,.22); font-size:17px; }
.cad-marker-draft.cad-marker-occluded { background:#fff; color:#9a5804; border-color:#b66a08; }
.cad-marker-resolved { background:#6e7c77; }

.cad-mode-controls .button[aria-pressed="true"] { color:#fff; background:var(--green-dark); border-color:#0e4435; box-shadow:inset 0 2px 4px rgba(0,0,0,.22); transform:translateY(1px); }

.comparison-label { display:block; margin:14px 0 10px; font-size:12px; }
.comparison-label select { width:100%; margin-top:6px; }
.revision-comparison { font-size:12px; overflow-wrap:anywhere; }
.revision-comparison h3 { font-size:12px; margin:18px 0 6px; }
.revision-comparison ul { padding-left:18px; margin:6px 0; }
.revision-comparison li { margin:6px 0; }
.comparison-direction { font-weight:600; margin-top:16px; }
.comparison-table { width:100%; border-collapse:collapse; font-size:11px; margin:8px 0; }
.comparison-table th,.comparison-table td { padding:8px 4px; text-align:right; border-bottom:1px solid var(--line); vertical-align:top; }
.comparison-table th:first-child { text-align:left; font-weight:500; }
.comparison-delta { display:block; color:var(--green-dark); }

.workbench-export-options { display:flex; flex-direction:column; gap:10px; margin:14px 0; }
.workbench-export-options select { display:block; width:100%; margin-top:5px; }
.workbench-export-options label { font-size:12px; }
.workbench-export-activity,.workbench-output-group { margin:14px 0; border-top:1px solid var(--line); padding-top:12px; }
.workbench-output-group summary { font-size:11px; font-weight:600; }
.engineering-findings { margin:14px 0; padding-top:10px; border-top:1px solid var(--line); overflow-wrap:anywhere; }
.engineering-findings summary { font-size:12px; font-weight:600; cursor:pointer; }
.engineering-finding { padding:8px 0; border-bottom:1px solid var(--line); }
.engineering-finding p { font-size:12px; margin:6px 0; }
.engineering-findings pre { white-space:pre-wrap; font-size:11px; line-height:1.5; }

.comparison-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:10px 0; }
.comparison-actions .text-button { font-size:11px; }

/* Vendor preparation keeps geometry choices beside the measured preview. */
.vendor-derivation-layout { display:grid; grid-template-columns:minmax(230px,1fr) minmax(260px,1.2fr); gap:24px; align-items:start; }
.vendor-derivation-controls,.vendor-derivation-result { min-width:0; }
.vendor-derivation-controls > label { display:block; margin-top:14px; }
.vendor-derivation-controls > label:first-child { margin-top:0; }
.vendor-cut-controls { display:grid; grid-template-columns:1fr 1.6fr; gap:8px 12px; align-items:center; margin:10px 0 18px; }
.vendor-cut-controls label { margin:0; }
#vendor-derivation-measurements { display:block; line-height:1.7; }
#vendor-derivation-preview { min-height:260px; margin-top:12px; }
#vendor-derivation-preview img { height:280px; }
#vendor-derivation-error { overflow-wrap:anywhere; }
@media (max-width:650px) { .vendor-derivation-layout { grid-template-columns:1fr; gap:12px; } #vendor-derivation-preview img { height:210px; } #vendor-derivation-preview { min-height:210px; } }

.workbench-section-inspection { padding-bottom:18px; margin-bottom:20px; border-bottom:1px solid var(--line); }
.workbench-section-inspection h3 { margin-bottom:7px; font-size:14px; }
.workbench-section-preview { display:block; width:100%; max-height:320px; object-fit:contain; background:#fff; border:1px solid var(--line); border-radius:8px; margin-top:12px; }
.workbench-scene-inspection { padding-bottom:18px; margin-bottom:20px; border-bottom:1px solid var(--line); }
.workbench-scene-inspection h3 { margin-bottom:7px; font-size:14px; }
.cad-scene-controls { width:100%; margin-top:10px; border-top:1px solid var(--line); padding-top:10px; }
.cad-scene-part-list { display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:8px; }
.cad-scene-part-list .check-row { font-size:12px; }
.cad-scene-swatch { width:12px; height:12px; border-radius:50%; display:inline-block; border:1px solid rgba(0,0,0,.2); }

.cad-scene-controls:not([hidden]) { display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
.cad-scene-controls .cad-scene-part-list { margin-top:0; }

.drawing-layout-overlay { position:absolute; inset:0; pointer-events:none; }
.drawing-view-handle { position:absolute; pointer-events:auto; border:1px dashed #2e6d89; background:#2e6d8908; border-radius:2px; color:#245366; padding:2px; font-size:10px; text-align:left; display:flex; align-items:flex-start; cursor:grab; touch-action:none; }
.drawing-view-handle.selected { border:2px solid #2563eb; background:#2563eb15; }
.drawing-view-handle:active { cursor:grabbing; }
.drawing-layout { display:grid; gap:12px; }
.drawing-layout-coordinates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.drawing-layout-coordinates input { min-width:0; }
.drawing-inspector-tabs { flex-wrap:wrap; }
.drawing-check-status { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.drawing-checks { overflow-wrap:anywhere; }
.drawing-checks p { font-size:12px; line-height:1.5; }
.drawing-check-group { margin:12px 0; }
.drawing-check-finding { padding:10px 0; border-bottom:1px solid var(--line); }
.drawing-check-rule,.drawing-check-meta { font-size:11px; color:var(--muted); }
.drawing-check-blocking h3 { color:#9c342c; }
.drawing-layout > p { margin:0; }
.drawing-check-heading { display:grid; gap:5px; font-size:12px; }
.drawing-check-meta { display:flex; flex-wrap:wrap; gap:5px; align-items:center; }
.drawing-alignment-guide { position:absolute; pointer-events:none; border:0 dashed #d83f94; }
.drawing-alignment-guide.x { border-left-width:1px; }
.drawing-alignment-guide.y { border-top-width:1px; }
.drawing-layout-alignment summary { cursor:pointer; font-size:12px; }
.drawing-layout-alignment select { margin:8px 0; }
.drawing-alignment-buttons { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.drawing-dimension-drag-line { position:absolute; height:12px; min-height:0; border:0; border-radius:0; padding:0; pointer-events:auto; cursor:move; touch-action:none; transform-origin:0 50%; background:linear-gradient(to bottom,transparent 5px,#2563ebaa 5px,#2563ebaa 7px,transparent 7px); }
.drawing-dimension-drag-line:hover,.drawing-dimension-drag-line:focus-visible { outline:1px dashed #2563eb; }
.drawing-dimension-drag-text { position:absolute; width:18px; height:18px; min-height:0; padding:0; border:1px solid #2563eb; border-radius:4px; background:#eff6ff; color:#164a9d; font-size:11px; transform:translate(-50%,-150%); pointer-events:auto; cursor:move; touch-action:none; }

.drawing-dimension-drag-text::after { content:""; position:absolute; top:100%; left:50%; height:9px; border-left:1px dotted #2563eb; pointer-events:none; }

.drawing-dimension-automation { display:flex;flex-wrap:wrap;gap:7px;padding:10px 0;border-block:1px solid var(--line); }
.drawing-dimension-automation label { display:grid;gap:3px;width:100%;font-size:11px;color:var(--muted); }
.drawing-dimension-automation button { font-size:11px;padding:7px; }
.drawing-dimension-automation p { margin:0; }
.drawing-dimension-row.selected { background:#fff4df;box-shadow:inset 3px 0 #b86b0b;padding-inline:7px;border-radius:5px; }
.drawing-dimension-row > .drawing-dimension-select { grid-column:1 / -1;text-align:left;font-size:12px; }
.drawing-dimension-row > .drawing-dimension-locate { grid-column:1 / -1;justify-self:start; }
.drawing-dimension-drag-text { width:auto;min-width:25px;padding-inline:3px; }
.drawing-dimension-drag-text.selected { background:#fff0ca;border-color:#a85a00;color:#804400;box-shadow:0 0 0 2px #ffcf70; }
.drawing-dimension-drag-line.selected { background:linear-gradient(to bottom,transparent 4px,#ba6400 4px,#ba6400 8px,transparent 8px); }

.drawing-svg { position:absolute;max-width:none;object-fit:fill;transition:none; }
.drawing-camera-help { margin:0;color:var(--muted);font-size:10px; }
.drawing-zoom-readout { font-size:10px;align-self:center;min-width:32px;text-align:center; }
.drawing-pan-ready,.drawing-pan-ready * { cursor:grab !important; }
.drawing-panning,.drawing-panning * { cursor:grabbing !important; }
.component-workbench.drawing-expanded { position:fixed;inset:0;z-index:90;max-width:none;background:var(--page,#f5f8f6);padding:12px 18px;height:100dvh;display:flex;flex-direction:column; }
.drawing-expanded .workbench-header { display:none; }
.drawing-expanded .workbench-layout { flex:1;height:auto;min-height:0; }

.flatparts-dialog { width:min(1000px,94vw);max-height:92dvh;overflow:auto;padding:22px; }
.flatparts-head { display:flex;justify-content:space-between;align-items:center;gap:16px; }
.flatparts-form { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px; }
.flatparts-form label { display:grid;gap:4px;font-size:12px; }
.flatparts-form input,.flatparts-form select { min-width:0;width:100%; }
.flatparts-form > button { align-self:end; }
.flatparts-results { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px; }
.flatparts-result img { display:block;width:100%;height:230px;object-fit:contain;background:white;border:1px solid var(--line); }
.flatparts-result p,.flatparts-result li,.flatparts-result summary { font-size:12px;line-height:1.5; }
.flatparts-result .drawing-actions { margin-top:8px; }
@media(max-width:700px){.flatparts-form{grid-template-columns:repeat(2,minmax(0,1fr));}.flatparts-results{grid-template-columns:1fr;}}

.asset-filters { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 16px; }
.asset-filter { padding:7px 11px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--muted); font-size:12px; }
.asset-filter:hover { border-color:var(--green); color:var(--green-dark); }
.asset-filter[aria-pressed="true"] { background:var(--green-dark); border-color:var(--green-dark); color:#fff; }
.asset-filter:focus-visible { outline:3px solid #518a73; outline-offset:2px; }

.flatparts-history { margin:14px 0; }
.flatparts-history label { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.flatparts-history select { max-width:100%; }
.flat-assembly-dialog { width:min(1120px,94vw);max-height:92dvh;overflow:auto;padding:22px; }
.flat-assembly-viewer .cad-mode-controls,.flat-assembly-viewer .cad-note-composer,.flat-assembly-viewer .cad-note-list { display:none; }
.flat-assembly-viewer .cad-viewer-stage { min-height:480px; }

/* Flat components share the component workspace and preserve revision-specific outputs. */
.flat-assembly-parameters { display:grid; grid-template-columns:1fr auto; gap:9px 12px; font-size:13px; }
.flat-assembly-parameters dt { color:var(--muted); }
.flat-assembly-parameters dd { margin:0; overflow-wrap:anywhere; text-align:right; }
#flat-panel-outputs .flatparts-result { margin-bottom:18px; }
#flat-panel-outputs .drawing-actions { flex-wrap:wrap; }

.flat-fit-form { margin-bottom:18px; }
.flat-fit-form label { display:grid; gap:6px; }
.flat-fit-form input { width:100%; }
.flat-fit-result h3 { margin-top:18px; }
.flat-fit-result .field-help,.flat-fit-findings { font-size:12px; line-height:1.5; }
.flat-fit-findings { padding-left:18px; }
.flat-fit-interface { border-top:1px solid var(--line); margin-top:16px; }
.flat-fit-interface h4 { margin:12px 0; }
.flat-fit-interface .flat-assembly-parameters { grid-template-columns:minmax(0,1fr) minmax(0,1fr); font-size:12px; }
.flat-fit-result > a { display:inline-block; margin-top:18px; }

.flat-fit-controls { margin-bottom:18px; }
.flat-fit-controls .flat-fit-form { margin-top:12px; }

.project-load-status { margin: 12px 28px; }
.project-load-status .workbench-notice { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 6px 0; }
.project-load-status .text-button { flex-shrink: 0; }

/* Connect-an-assistant entry points: a banner when nobody has connected yet, and the wizard dialog. */
.assistant-connect-banner { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:11px 15px; margin:0 0 20px; background:var(--amber-bg); border:1px solid #e5d4b8; border-radius:9px; color:#835623; font-size:12px; }
.wizard-steps { display:flex; flex-wrap:wrap; gap:7px; padding:0; margin:0 0 20px; list-style:none; }
.wizard-step { flex:1; min-width:120px; padding:8px 10px; color:var(--muted); background:#fff; border:1px solid var(--line); border-radius:8px; font-family:'DM Mono',monospace; font-size:10px; text-align:center; }
.wizard-step.active { color:var(--green-dark); background:var(--mint); border-color:#b9dcca; font-weight:700; }
.wizard-body { min-height:220px; }
.wizard-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:9px; margin-bottom:14px; }
.wizard-card { display:flex; align-items:flex-start; gap:9px; padding:12px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:9px; cursor:pointer; }
.wizard-card:hover { border-color:#7db19d; background:#fbfdfb; }
.wizard-card input { flex:0 0 auto; width:16px; height:16px; padding:0; margin:2px 0 0; accent-color:var(--green); }
.wizard-card span { flex:1 1 auto; min-width:0; text-align:left; overflow-wrap:anywhere; }
.model-warning { padding:13px 14px; margin:0 0 8px; color:#835623; background:var(--amber-bg); border:1px solid #e5d4b8; border-radius:9px; font-size:12px; line-height:1.55; }
.model-warning details { margin-top:9px; }
.model-warning summary { color:#835623; cursor:pointer; font-weight:600; }
.model-warning details p { margin-top:6px; }
.snippet-block { display:flex; flex-direction:column; gap:8px; }
.snippet-row { display:flex; align-items:flex-start; gap:8px; }
.snippet { flex:1; min-width:0; padding:11px; margin:0; overflow:auto; color:#49615b; background:#f1f5f3; border:1px solid var(--line); border-radius:7px; font-family:'DM Mono',monospace; font-size:11px; white-space:pre-wrap; }
.wizard-hints { display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.wizard-hint { padding:11px 12px; background:#fff; border:1px solid var(--line); border-radius:8px; }
.wizard-hint p { margin:0 0 7px; font-size:12px; overflow-wrap:anywhere; }
.assistant-activity-list { display:flex; flex-direction:column; gap:6px; margin:10px 0 6px; }
.assistant-activity-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 11px; border:1px solid #e2e9e5; border-radius:8px; }
@media (max-width:700px) { .snippet-row { flex-direction:column; align-items:stretch; } }
