:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#171717;--border:#e5e5e5;--muted:#6f6f76;--panel:#fff;--panel-soft:#fafafa;--accent:#111;--accent-soft:#ededed;--green:#0f8a4b;--amber:#9a6700;--red:#c7352b;--blue:#1f5eff;background:#f7f7f8;font-family:Inter,SF Pro Text,PingFang SC,Microsoft YaHei,Arial,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}.file-input{display:none}.app-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);background:#fff;padding:24px 16px}.brand{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:0 8px 24px;display:flex}.brand img{width:148px;height:auto}.brand span{color:var(--muted);font-size:13px}nav{gap:4px;margin-top:20px;display:grid}.nav-button,.secondary-button,.primary-button{color:#262626;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:0 12px;display:inline-flex}.nav-button{justify-content:flex-start;width:100%}.nav-button:hover,.nav-button.active{background:var(--accent-soft)}.secondary-button{border-color:var(--border);background:#fff}.secondary-button:hover{background:#f4f4f5}.primary-button{background:var(--accent);color:#fff}.primary-button:hover{background:#2c2c2c}.main{min-width:0;padding:28px}.topbar{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px;display:flex}.eyebrow{color:var(--muted);margin:0 0 8px;font-size:13px}h1,h2,p{margin-top:0}h1{letter-spacing:0;margin-bottom:0;font-size:28px;line-height:1.25}h2{margin-bottom:0;font-size:16px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.notice{color:#654200;background:#fff9e8;border:1px solid #f0d48a;border-radius:6px;margin-bottom:16px;padding:10px 12px}.workspace{gap:16px;display:grid}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.metric-card,.panel{border:1px solid var(--border);background:var(--panel);border-radius:8px}.metric-card{padding:16px}.metric-card span,.metric-card small{color:var(--muted)}.metric-card strong{margin:8px 0;font-size:30px;line-height:1.2;display:block}.subtle{color:var(--muted);margin:6px 0 0;line-height:1.6}.inline-actions,.filter-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.filter-row label{border:1px solid var(--border);background:#fff;border-radius:6px;align-items:center;gap:8px;min-height:34px;padding:0 10px;display:inline-flex}.filter-row input,.review-form input{min-width:0;font:inherit;background:0 0;border:0;outline:0}.source-file-list{gap:8px;display:grid}.source-file-row{border:1px solid var(--border);background:var(--panel-soft);border-radius:6px;align-items:center;gap:12px;padding:12px;display:flex}.source-file-row div{gap:3px;display:grid}.source-file-row span{color:var(--muted);font-size:13px}.split-layout,.graph-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.panel{padding:16px}.panel-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}select{border:1px solid var(--border);background:#fff;border-radius:6px;height:34px;padding:0 10px}.service-list,.task-list,.step-list{gap:10px;display:grid}.service-row,.task-row,.step-row{border:1px solid var(--border);background:var(--panel-soft);border-radius:6px;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.task-row p,.step-row p,.body-copy{color:var(--muted);margin-bottom:0;line-height:1.7}.task-row .secondary-button{min-width:58px}.step-row{justify-content:flex-start}.step-row>span{color:#fff;background:#111;border-radius:17px;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;display:inline-flex}.status-badge{white-space:nowrap;color:#444;background:#eee;border-radius:999px;align-items:center;padding:4px 8px;font-size:12px;display:inline-flex}.status-badge.ok,.status-badge.ready,.status-badge.generated{color:var(--green);background:#e7f7ee}.status-badge.needs_review,.status-badge.queued{color:var(--amber);background:#fff2cc}.status-badge.error{color:var(--red);background:#fdebea}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:12px 10px;font-size:14px}th{color:var(--muted);background:#fafafa;font-weight:500}.empty-state{min-height:220px;color:var(--muted);text-align:center;border:1px dashed #d8d8d8;border-radius:8px;place-items:center;padding:20px;display:grid}.empty-state.compact{min-height:80px}.compact-button{min-width:96px}.drawer-backdrop{z-index:20;background:#00000047;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{border-left:1px solid var(--border);background:#fff;grid-template-rows:auto minmax(0,1fr);width:min(1120px,100vw - 40px);height:100vh;display:grid;box-shadow:-20px 0 50px #0000001f}.drawer-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 22px;display:flex}.drawer-header h2{max-width:820px;line-height:1.45}.icon-button{width:36px;padding:0}.drawer-body{grid-template-columns:minmax(0,1fr) 360px;gap:0;min-height:0;display:grid}.pdf-frame{background:#f1f1f1;border:0;width:100%;height:100%}.review-form{border-left:1px solid var(--border);align-content:start;gap:14px;padding:18px;display:grid;overflow:auto}.review-form label{color:var(--muted);gap:7px;font-size:13px;display:grid}.review-form input,.review-form select{border:1px solid var(--border);color:#171717;background:#fff;border-radius:6px;width:100%;height:36px;padding:0 10px}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.title-block-preview{border:1px solid var(--border);background:var(--panel-soft);border-radius:6px;padding:12px}.title-block-preview p{max-height:130px;color:var(--muted);word-break:break-all;margin:8px 0 0;font-size:12px;line-height:1.6;overflow:auto}.graph-panel{background-color:#fff;background-image:linear-gradient(#f3f3f3 1px,#0000 1px),linear-gradient(90deg,#f3f3f3 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-height:360px;position:relative}.graph-node{border:1px solid var(--border);background:#fff;border-radius:8px;place-items:center;min-width:92px;min-height:44px;display:grid;position:absolute;box-shadow:0 8px 20px #0000000f}.graph-node.root{border-color:#111;top:38px;left:38%}.graph-node.device{top:160px;left:15%}.graph-node.cable{top:158px;right:14%}.graph-node.drawing{bottom:38px;left:40%}.graph-icon{color:var(--blue);position:absolute;top:calc(50% - 14px);left:calc(50% - 14px)}@media (width<=980px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border)}.brand{padding-bottom:16px}nav{grid-template-columns:repeat(5,minmax(0,1fr))}.nav-button{justify-content:center}.metric-grid,.split-layout,.graph-layout{grid-template-columns:1fr}.topbar{flex-direction:column}.topbar-actions{justify-content:flex-start}.drawer-body{grid-template-columns:1fr}.pdf-frame{min-height:60vh}.review-form{border-left:0;border-top:1px solid var(--border)}}@media (width<=640px){.main{padding:18px}nav{grid-template-columns:1fr 1fr}.nav-button{justify-content:flex-start}.topbar-actions{width:100%}.topbar-actions button{flex:120px}.filter-row,.inline-actions{justify-content:stretch}.filter-row>*,.inline-actions>*{flex:160px}.drawer{width:100vw}h1{font-size:23px}}
