@font-face{font-family:"Baloo 2 Local";src:url(/fonts/baloo2-latin.woff2) format("woff2");font-weight:400 800;font-display:swap}:root{--display:"Baloo 2 Local","PingFang SC","Microsoft YaHei","Source Han Sans SC",sans-serif;--sans:-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif}h1,h2,h3,.ui-display{font-family:var(--display)}:root{--canvas: #FBF4E2;--cream: #FBF4E2;--card: #ffffff;--ink: #151009;--ink-2: #5c554a;--ink-3: #938b7d;--line: #e6e0cf;--line-2: #d8d0ba;--accent: #FFC72C;--yellow: #FFC72C;--yellow-soft: #FFE9A6;--accent-soft: #FFE9A6;--accent-ink: #2e2500;--pink: #FF6FA4;--pink-ink: #3a0016;--lav: #C9B8FF;--mint: #A7F0C0;--blue: #3B82F6;--green: #37B24D;--orange: #F97316;--red: #E3402B;--brick-red: #E3402B;--brick-blue: #3B82F6;--brick-green: #37B24D;--user-bubble: #17120b;--ok: #2f8a4c;--ok-soft: #e9f4ec;--info: #2e5d8a;--info-soft: #eaf1f8;--error: #c2452d;--error-soft: #faece8;--bd: 2.5px solid var(--ink);--hard: 4px 4px 0 var(--ink);--hard-sm: 3px 3px 0 var(--ink);--radius: 9px;--radius-lg: 12px;--text-display: 34px;--text-h: 20px;--text-xs: 11px;--text-sm: 13px;--text-md: 15px;--text-lg: 20px;--text-xl: 26px;--shadow: var(--hard-sm);--shadow-lg: var(--hard);--mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;font-family:var(--sans);font-size:var(--text-sm);color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--canvas);line-height:1.46}h1,h2,h3{font-weight:800;letter-spacing:-.01em;color:var(--ink)}code{background:#eef0f3;padding:1px 5px;border-radius:4px;font-size:.92em;font-family:var(--mono)}.layout{display:flex;flex-direction:column;min-height:0;min-width:0;flex:1}.spacer{flex:1}.hint{color:var(--ink-3);font-size:var(--text-sm)}.cad-guard-guide{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 18px 8px;padding:10px 14px;background:var(--yellow-soft);border:var(--bd);border-radius:var(--radius);box-shadow:var(--hard-sm);font-size:var(--text-sm)}.icn{vertical-align:-2px;flex:none}button .icn{margin-right:5px}button .icn.solo{margin-right:0}.brick{position:relative;display:inline-flex;flex:none;border-radius:6px;background:#fff;border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);transition:transform .15s ease}.brick:hover{transform:translateY(-1px)}.brick .stud{position:absolute;top:-4.5px;width:24%;height:5px;border-radius:1px 1px 0 0;background:var(--brick-color, var(--line-2))}.brick .stud:first-child{left:17%}.brick .stud+.stud{right:17%}.brick img{width:100%;height:100%;display:block;object-fit:cover;border-radius:1px;image-rendering:pixelated;padding:1px}.brick .brick-glyph{margin:auto;font-style:normal;font-size:.9em;color:var(--brick-color, var(--ink-3));line-height:1}.brick.dashed{border-style:dashed;box-shadow:none}.brick.dashed .stud{opacity:.5}.appbar{display:flex;align-items:center;gap:16px;background:var(--yellow);border-bottom:3px solid var(--ink);padding:0 20px;height:58px;position:sticky;top:0;z-index:20}.appbar-brand{display:flex;align-items:center;gap:9px;background:none;border:0;cursor:pointer;color:inherit;padding:0;font-family:var(--display);font-weight:800;font-size:21px;letter-spacing:-.01em}.appbar-fl{width:32px;height:32px;background:#17120b;border:2.5px solid #17120b;box-shadow:2px 2px #0000004d;display:grid;place-items:center;color:var(--yellow);font-weight:800;font-size:13px;transform:rotate(-4deg)}.appbar-nav{display:flex;gap:3px;overflow-x:auto}.appbar-tab{font-weight:700;font-size:15px;color:var(--ink);background:transparent;border:2px solid transparent;border-radius:9px;padding:6px 12px;cursor:pointer;white-space:nowrap}.appbar-tab.on{background:#17120b;color:var(--yellow)}.appbar-tab:hover:not(.on){border-color:var(--ink);background:#0000000f}.appbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}.shell{display:flex;flex-direction:column;min-height:100vh}.shell-body{flex:1;min-height:0;display:flex;flex-direction:column}.rail-logo{width:30px;height:22px;margin-bottom:12px;position:relative;background:var(--accent);border-radius:4px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:var(--text-sm);color:var(--accent-ink);font-family:var(--mono);letter-spacing:-.5px}.rail-logo:before,.rail-logo:after{content:"";position:absolute;top:-4px;width:8px;height:4px;border-radius:2px 2px 0 0;background:var(--accent)}.rail-logo:before{left:4px}.rail-logo:after{right:4px}.topbar{display:flex;align-items:center;gap:10px;height:54px;padding:0 20px;flex:none;background:var(--card);border-bottom:3px solid var(--ink);z-index:5}.topbar .title{font-size:18px;font-weight:700}.topbar .title{font-size:var(--text-md);font-weight:650;margin:0;white-space:nowrap;display:flex;align-items:center;gap:7px;color:var(--ink)!important}.app-tile{width:22px;height:22px;border-radius:var(--radius);flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-sm);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--tile-color, var(--accent)) 50%,transparent)}.topbar .app-tile{background:var(--tile-color, var(--yellow));border:2px solid var(--ink);box-shadow:var(--hard-sm);transform:rotate(-3deg)}.badge{padding:1.5px 8px;border-radius:3px;font-size:var(--text-xs);font-weight:600;background:#eef0f3;color:var(--ink-2);white-space:nowrap;display:inline-flex;align-items:center;gap:5px}.badge:before{content:"";width:6px;height:6px;border-radius:2px;background:var(--ink-3)}.badge.status-running:before,.badge.status-hosting:before{background:var(--accent)}.badge.status-done:before{background:var(--ok)}.badge.status-failed:before{background:var(--error)}.badge.status-interrupted:before{background:var(--ink-3)}.badge.status-awaiting_roster:before,.badge.status-synthesizing:before{background:var(--info)}.badge.status-running,.badge.status-hosting{background:var(--accent-soft);color:#6e5600}.badge.status-done{background:var(--ok-soft);color:var(--ok)}.badge.status-failed{background:var(--error-soft);color:var(--error)}.badge.status-awaiting_roster,.badge.status-synthesizing{background:var(--info-soft);color:var(--info)}.stepper{display:flex;align-items:center;gap:18px;padding:6px 16px;flex:none;background:var(--card);border-bottom:1px solid var(--line);font-size:var(--text-xs)}.stepper .step{position:relative;padding:2px 0 5px;color:var(--ink-3);font-weight:500;white-space:nowrap;border:none;background:none}.stepper .step:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:1px;background:transparent}.stepper .step.active{color:var(--ink);font-weight:650}.stepper .step.active:after{background:var(--accent)}.stepper .step.done{color:var(--ok)}.stepper .step.failed{color:var(--error)}.stepper .step.failed:after{background:var(--error)}.main{display:flex;flex:1;min-height:0}.chat-col{flex:1;max-width:780px;margin:0 auto;display:flex;flex-direction:column;min-width:0}.timeline{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:16px}.msg{display:flex;gap:10px;align-items:flex-start}.msg.user{flex-direction:row-reverse}.msg>.brick{width:32px;height:32px;animation:pop-in .25s cubic-bezier(.34,1.3,.64,1)}.msg .body{max-width:78%;min-width:0}.msg .who{font-size:var(--text-sm);font-weight:800;color:var(--ink);margin:0 0 3px 2px;display:flex;align-items:center}.msg.user .who{justify-content:flex-end;margin-right:2px}.msg-time{font-size:var(--text-xs);font-weight:700;color:var(--ink-3);margin-left:6px;font-family:var(--mono)}.bubble{padding:8px 12px;border-radius:var(--radius);background:var(--card);border:var(--bd);box-shadow:var(--hard);white-space:pre-wrap;line-height:1.46;font-size:var(--text-md);overflow-wrap:anywhere;word-break:break-word}.msg.user .bubble{background:var(--accent-soft);color:var(--accent-ink)}.msg.error .bubble{border:2.5px dashed var(--error);color:var(--error);background:var(--error-soft);box-shadow:none}.msg.speaking>.brick{animation:bounce .6s ease infinite alternate}@keyframes pop-in{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-3px)}}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}@keyframes slide-in{0%{transform:translate(16px);opacity:0}to{transform:none;opacity:1}}.tool-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.tool-card{padding:3px 9px;font-size:var(--text-xs);border-radius:var(--radius);background:var(--card);border:2px solid var(--ink);color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}.tool-card .tool-name{font-family:var(--mono);font-size:var(--text-xs);color:var(--ink)}.tool-card.failed{color:var(--error);background:var(--error-soft);border-color:var(--error)}.tool-card.citation{background:var(--accent-soft);border-color:var(--ink);color:var(--ink)}.cite-link{border:none;background:none;cursor:pointer;padding:0 2px;color:var(--ink);font-size:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}.cite-link:hover{color:var(--accent-ink);text-decoration-thickness:2.5px}.typing-msg{animation:pop-in .22s cubic-bezier(.34,1.3,.64,1)}.typing-msg>.brick{animation:bounce .6s ease infinite alternate}.typing-bubble{display:flex;align-items:center;gap:9px;min-height:18px;box-shadow:none;border-style:dashed;background:color-mix(in srgb,var(--card) 55%,transparent)}.typing-dots{display:inline-flex;gap:4px;flex:none}.typing-dots span{width:5px;height:5px;border-radius:1px;background:var(--ink-3);opacity:.4;animation:blink 1.2s infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}.typing-text{font-style:normal;font-size:var(--text-sm);color:var(--ink-2)}.stream-cursor{display:inline-block;width:7px;height:14px;margin-left:2px;background:var(--accent);vertical-align:-2px;animation:blink .9s steps(2) infinite}.streaming-msg>.brick{animation:bounce .6s ease infinite alternate}.msg.pending{opacity:.55}.msg.pending .bubble{box-shadow:none}.skill-chips{display:inline-flex;flex-wrap:wrap;gap:4px;margin:2px 0 2px 8px;vertical-align:middle}.skill-chips.enter{display:flex;margin:0 0 4px 2px;font-size:var(--text-xs);color:var(--ink-3);align-items:center;gap:5px}.skill-chip{font-style:normal;font-size:var(--text-xs);font-weight:600;padding:.5px 7px;border-radius:4px;background:var(--accent-soft);color:#6e5600;white-space:nowrap}.trace-link{border:none;background:none;cursor:pointer;color:var(--ink-3);opacity:0;margin-left:5px;padding:0;transition:opacity .15s;display:inline-flex;align-items:center}.msg:hover .trace-link{opacity:.8}.trace-link:hover{opacity:1!important;color:var(--ink)}.token-hint{font-size:var(--text-xs);font-weight:400;color:var(--ink-3);font-family:var(--mono);margin-left:6px;opacity:0;transition:opacity .15s;cursor:default}.msg:hover .token-hint{opacity:1}.ask-user{margin-top:5px;padding:5px 10px;font-size:var(--text-xs);font-weight:600;border-radius:var(--radius);background:var(--accent-soft);border:1px dashed color-mix(in srgb,var(--accent) 70%,#999);color:#6e5600;display:flex;align-items:center;gap:6px}.sidebar{width:var(--sidebar-w, 460px);min-width:300px;max-width:60vw;overflow-y:auto;padding:14px;position:relative;flex:none;background:transparent;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.sidebar-grip{position:absolute;left:-3px;top:0;bottom:0;width:7px;cursor:col-resize;z-index:2}.sidebar-grip:hover,.sidebar-grip.dragging{background:var(--accent);opacity:.5}.drawer{animation:slide-in .2s ease;background:var(--card)}.drawer-head{display:flex;align-items:center;justify-content:space-between}.drawer-head h3{margin:0;font-size:var(--text-md)}.card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card);padding:12px 14px;box-shadow:var(--shadow)}.card h3{margin:0 0 8px;font-size:var(--text-xs);font-weight:650;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);display:flex;align-items:center;gap:6px}.card h3 .hint{text-transform:none;letter-spacing:0;font-weight:400}.roster-row{display:flex;align-items:flex-start;gap:9px;padding:6px 0}.roster-row .brick{width:28px;height:28px;margin-top:4px}.roster-row .reason,.reason{font-size:var(--text-xs);color:var(--ink-2);line-height:1.5}.ops-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.ops-table th,.ops-table td{border:1px solid var(--line);padding:5px 7px;text-align:left;vertical-align:top}.ops-table th{background:#f2f3f6;font-weight:600}.confirm-card{margin:8px 0 0 42px;max-width:460px}.knowledge-line{margin:8px 0 10px}.knowledge-content{white-space:pre-wrap;word-break:break-word;font-size:var(--text-sm);line-height:1.75;background:#f2f3f6;border:1px solid var(--line);border-radius:var(--radius);padding:12px}.composer-wrap{border-top:2.5px solid var(--ink);background:var(--bg)}.composer{display:flex;gap:8px;padding:12px 20px 14px;align-items:flex-end}.composer .composer-input{flex:1;font-size:var(--text-md);line-height:1.45;resize:none;overflow-y:auto;max-height:132px;min-height:0}.composer .composer-input:focus{outline:2px solid var(--accent);outline-offset:1px}.composer .composer-input:disabled{background:#eef0f3}button{font-family:inherit;display:inline-flex;align-items:center;justify-content:center}button.primary{padding:7px 16px;font-size:var(--text-sm);font-weight:650;cursor:pointer;border:none;border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);box-shadow:0 1.5px color-mix(in srgb,var(--accent-ink) 30%,transparent)}button.primary:hover{filter:brightness(1.04)}button.primary:disabled{opacity:.4;cursor:default;filter:none}button.primary.big{font-size:var(--text-md);padding:10px 24px}button.ghost{padding:6px 12px;font-size:var(--text-sm);font-weight:500;cursor:pointer;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--card);color:var(--ink)}button.ghost:hover{border-color:var(--ink-3)}button.ghost.attention{border-color:var(--accent);color:#6e5600;background:var(--accent-soft)}.ui-btn.attach{padding:7px 10px}.picker{flex:1;overflow-y:auto;max-width:880px;margin:0 auto;padding:36px 28px 56px;width:100%}.home .home-head{display:flex;align-items:center;gap:10px}.home h1.display{font-size:var(--text-xl);font-weight:700;margin:0;letter-spacing:.005em}.home .home-sub{margin:4px 0 0}.home-actions{display:flex;align-items:center;gap:10px;margin:22px 0 32px;flex-wrap:wrap}.section-title{font-size:var(--text-xs);font-weight:650;color:var(--ink-3);text-transform:uppercase;letter-spacing:.09em;border-bottom:1px solid var(--line);padding-bottom:7px;margin-bottom:10px}.session-list{display:flex;flex-direction:column}.session-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;cursor:pointer;text-align:left;font-size:var(--text-sm);background:none;border:none;border-bottom:1px solid var(--line);border-radius:0;color:var(--ink)}.session-row:hover{background:var(--card);border-radius:var(--radius)}.session-title{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-app-card{display:block;width:100%;text-align:left;cursor:pointer;padding:14px 16px;margin-bottom:10px;color:var(--ink);font-family:inherit;position:relative;transition:transform .1s,box-shadow .1s}.home-app-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tile-color, var(--yellow))}.home-app-card:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}.home-app-card:active{transform:translate(1px,1px);box-shadow:3px 3px 0 var(--ink)}.home-app-card h2{margin:0 0 3px;font-size:var(--text-md);display:flex;align-items:center;gap:8px}.workflow-chain{margin-top:6px;font-weight:500;font-family:var(--mono);font-size:var(--text-xs)}.home-app-card .faces{display:flex;margin-top:10px;gap:6px}.home-app-card .faces .brick{width:26px;height:26px}.upload-zone{border:1.5px dashed var(--line-2);border-radius:var(--radius-lg);padding:26px;text-align:center;color:var(--ink-3);background:var(--card);cursor:pointer}.batch-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.batch-table td,.batch-table th{border-bottom:1px solid var(--line);padding:8px;text-align:left}.token-row{display:flex;gap:8px;margin-top:14px}.token-row input{flex:1}.roster-strip{display:flex;align-items:center;gap:5px;margin-left:4px}.roster-strip .brick{width:24px;height:24px}.roster-strip .brick.speaking{transform:translateY(-2px);z-index:2;--brick-color: var(--accent);animation:bounce .6s ease infinite alternate}.admin-nav{display:flex;flex-direction:column;gap:2px;padding:14px 10px;width:128px;border-right:1px solid var(--line);background:var(--card)}.admin-nav button{text-align:left;padding:7px 12px;font-size:var(--text-sm);cursor:pointer;border:none;border-radius:var(--radius);background:transparent;color:var(--ink-2);font-weight:500;justify-content:flex-start}.admin-nav button.active{background:var(--accent-soft);color:var(--ink);font-weight:650}.admin-content{flex:1;overflow-y:auto;padding:18px 22px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.admin-card{display:flex;flex-direction:column;gap:5px}.admin-card .form-actions{margin-top:auto}.admin-card-head{display:flex;gap:9px;align-items:center}.admin-card-head .brick{width:34px;height:34px}.admin-card.add{align-items:center;justify-content:center;color:var(--ink-3);cursor:pointer;border-style:dashed;border-width:1.5px;font-size:var(--text-sm);min-height:110px;box-shadow:none}.admin-card.add:hover{border-color:var(--accent);color:#6e5600;background:var(--accent-soft)}.admin-error{padding:8px 22px}.admin-row{display:flex;gap:9px;align-items:center}.tools-intro{padding:12px 14px;margin-bottom:12px;line-height:1.7;color:var(--ink-2);font-size:var(--text-sm)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#15181e73;display:flex;align-items:center;justify-content:center}.modal{width:min(600px,94vw);max-height:88vh;overflow-y:auto;background:var(--card);border-radius:var(--radius-lg);padding:20px 22px;animation:pop-in .16s ease;box-shadow:var(--shadow-lg)}.form-field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.form-field input:not([type=checkbox]):not([type=color]),.form-field textarea,.form-field select{padding:8px 11px;font-size:var(--text-sm);font-family:inherit;border:1px solid var(--line-2);border-radius:var(--radius);background:#fff;color:var(--ink)}.form-field textarea{resize:vertical;line-height:1.6}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:2px solid var(--accent);outline-offset:-1px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.form-actions{display:flex;gap:8px;margin-top:8px}.tool-option{display:flex;gap:8px;align-items:flex-start;padding:5px 0}.trace-modal pre{white-space:pre-wrap;word-break:break-word;font-size:var(--text-xs);line-height:1.6;font-family:var(--mono);background:#f2f3f6;border:1px solid var(--line);border-radius:var(--radius);padding:9px 11px;margin:4px 0 10px}.trace-block .trace-role{font-size:var(--text-xs);color:var(--ink-2);font-weight:650;text-transform:uppercase;letter-spacing:.05em}.trace-block .role-assistant{color:var(--info)}.trace-block .role-tool{color:#6e5600}.trace-modal summary{cursor:pointer;font-size:var(--text-xs);color:var(--ink-2)}.landing{min-height:100vh;display:flex;flex-direction:column;background:var(--canvas)}.landing-hero{background:var(--yellow);border-bottom:var(--bd);padding:64px 24px 48px;width:100%}.landing-hero-inner{max-width:720px;margin:0 auto;text-align:center}.landing-hero .eyebrow{display:inline-block;font-size:var(--text-xs);font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow);background:var(--ink);padding:5px 14px;border-radius:999px;margin-bottom:18px}.landing-hero h1{font-size:clamp(32px,6vw,56px);font-weight:800;margin:0 0 14px;line-height:1.15}.landing-hero h1 em{font-style:normal;box-shadow:inset 0 -.38em var(--pink)}.landing-hero .sub{font-size:var(--text-md);color:var(--ink-2);max-width:540px;margin:0 auto 26px}.landing-cta{display:flex;gap:12px;justify-content:center;margin-bottom:10px}.factory{max-width:940px;width:100%;margin:6px auto 0;padding:0 24px}.factory-stage{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:#20242d;box-shadow:var(--shadow-lg)}.factory-roof{height:48px;background:#171a21;clip-path:polygon(0 100%,0 40%,8% 0,16% 40%,24% 0,32% 40%,40% 0,48% 40%,56% 0,64% 40%,72% 0,80% 40%,88% 0,96% 40%,100% 55%,100% 100%)}.factory-floor{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:22px 22px 16px}.station{background:#2a2f3b;border-radius:var(--radius);padding:14px 10px 10px;text-align:center;border:1px solid #3a4150;animation:station-in .5s ease both}.station:nth-child(2){animation-delay:.12s}.station:nth-child(3){animation-delay:.24s}.station:nth-child(4){animation-delay:.36s}@keyframes station-in{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}.station .brick{width:46px;height:46px;animation:worker-bob 2.4s ease-in-out infinite}.station:nth-child(2) .brick{animation-delay:.5s}.station:nth-child(3) .brick{animation-delay:1s}.station:nth-child(4) .brick{animation-delay:1.5s}@keyframes worker-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.station .st-name{color:#e8eaee;font-size:var(--text-sm);font-weight:650;margin-top:9px}.station .st-duty{color:#98a1b3;font-size:var(--text-xs);margin-top:1px}.station .st-dots{display:flex;gap:3px;justify-content:center;margin-top:7px;height:5px}.station .st-dots i{width:4px;height:4px;border-radius:1.5px;background:var(--accent);opacity:.25;animation:blink 1.6s infinite}.station .st-dots i:nth-child(2){animation-delay:.3s}.station .st-dots i:nth-child(3){animation-delay:.6s}.conveyor{position:relative;height:42px;margin:0 22px 20px;background:#171a21;border-radius:var(--radius);overflow:hidden;border:1px solid #3a4150}.conveyor .belt{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,transparent 0 20px,#2a2f3b 20px 24px);animation:belt-move 1.2s linear infinite}@keyframes belt-move{to{transform:translate(24px)}}.conveyor .cargo{position:absolute;top:7px;left:-14%;display:flex;align-items:center;gap:7px;font-size:var(--text-xs);font-weight:650;color:#98a1b3;animation:cargo-run 7s linear infinite}@keyframes cargo-run{0%{left:-14%}to{left:104%}}.cargo .blueprint{width:26px;height:26px;border-radius:3px;background:#2e5d8a;border:2px solid #7ba7cd;background-image:linear-gradient(rgba(255,255,255,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.35) 1px,transparent 1px);background-size:6px 6px}.cargo.out{animation-delay:3.5s}.cargo .plansheet{width:26px;height:26px;border-radius:3px;background:#fff;border:2px solid var(--accent);background-image:linear-gradient(var(--line) 1px,transparent 1px);background-size:100% 6px;background-position:0 5px}.factory-caption{display:flex;justify-content:space-between;padding:0 26px 16px;color:#98a1b3;font-size:var(--text-xs)}.landing-values{max-width:940px;margin:36px auto 0;padding:0 24px;width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.value-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow)}.value-card .v-icon{width:28px;height:28px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:#6e5600}.value-card h3{font-size:var(--text-md);margin:10px 0 5px}.value-card p{margin:0;font-size:var(--text-sm);color:var(--ink-2);line-height:1.65}.landing-steps{max-width:940px;margin:36px auto;padding:0 24px;width:100%;display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}.step-card{flex:1;min-width:190px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px 16px;box-shadow:var(--shadow)}.step-card .s-num{display:inline-flex;width:22px;height:22px;border-radius:var(--radius);background:var(--user-bubble);color:var(--accent);align-items:center;justify-content:center;font-weight:750;font-size:var(--text-xs);font-family:var(--mono)}.step-card h3{font-size:var(--text-sm);margin:9px 0 3px}.step-card p{margin:0;font-size:var(--text-sm);color:var(--ink-2)}.landing-foot{text-align:center;padding:24px 24px 40px;color:var(--ink-2);font-size:var(--text-sm)}.landing-foot b{color:var(--ink)}.telemetry{flex:1;overflow-y:auto;max-width:940px;width:100%;margin:0 auto;padding:20px 24px}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px;margin-bottom:24px}.stat-tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:13px 14px;box-shadow:var(--shadow)}.stat-value{font-size:var(--text-xl);font-weight:700;color:var(--ink);line-height:1.2;font-variant-numeric:tabular-nums}.stat-label{font-size:var(--text-xs);color:var(--ink-3);margin-top:3px;text-transform:uppercase;letter-spacing:.05em}.app-stats{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.app-stat-card{display:flex;flex-direction:column;gap:8px}.app-stat-head{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-md);font-weight:600}.app-stat-body{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap}.app-stat-metrics{display:flex;gap:22px}.metric{display:flex;flex-direction:column}.metric-value{font-size:var(--text-lg);font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}.app-stat-week{display:flex;flex-direction:column;align-items:center;gap:3px}.mini-bars{display:flex;align-items:flex-end;gap:3px;height:40px}.mini-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;width:13px;position:relative}.mini-bar{width:100%;border-radius:2.5px 2.5px 0 0;background:var(--user-bubble);min-height:3px}.mini-bar.today{background:var(--accent)}.mini-label{font-size:var(--text-xs);color:var(--ink-3);line-height:1;margin-bottom:2px;font-family:var(--mono)}.status-bar{display:flex;gap:2px;height:6px;border-radius:3px;overflow:hidden}.status-bar .seg{border-radius:2px}.status-bar .seg.ok{background:var(--ok)}.status-bar .seg.bad{background:var(--error)}.status-bar .seg.run{background:var(--line-2)}.rank-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px;padding-bottom:36px}.rank-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.rank-row{display:grid;grid-template-columns:minmax(88px,150px) 1fr 32px;align-items:center;gap:9px;font-size:var(--text-sm)}.rank-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.rank-track{background:#eef0f3;border-radius:3px;height:10px;overflow:hidden}.rank-bar{display:block;height:100%;border-radius:3px;background:var(--info);min-width:3px}.rank-value{text-align:right;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:var(--text-xs)}.eval-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.eval-head .section-title{flex:1;margin-bottom:0;border:none}.eval-list{display:flex;flex-direction:column;gap:6px;margin:10px 0 24px}.score-badge{padding:1.5px 9px;border-radius:3px;font-size:var(--text-xs);font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}.score-badge.ok{background:var(--ok-soft);color:var(--ok)}.score-badge.warn{background:var(--accent-soft);color:#6e5600}.score-badge.bad{background:var(--error-soft);color:var(--error)}.check-list{display:flex;flex-direction:column;gap:5px;margin:10px 0}.check-row{display:flex;align-items:baseline;gap:9px;font-size:var(--text-sm)}.check-row .check-mark{font-weight:750;width:15px;text-align:center}.check-row.pass .check-mark{color:var(--ok)}.check-row.fail .check-mark{color:var(--error)}.check-row .check-name{font-weight:600;white-space:nowrap}.judge-card{background:var(--info-soft);border-color:#c9d8e8}.judge-card .reason{margin:5px 0 0;color:var(--ink)}.evolution-list{display:flex;flex-direction:column;gap:12px;margin-top:10px}.proposal-card{padding:12px 14px}.proposal-card.adopted,.proposal-card.dismissed{opacity:.65}.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:9px 0 4px}.diff-block{white-space:pre-wrap;word-break:break-word;font-size:var(--text-xs);line-height:1.6;border-radius:var(--radius);padding:9px 11px;margin:4px 0 0;max-height:200px;overflow-y:auto}.diff-block.old{background:var(--canvas);border:1px solid var(--line);color:var(--ink-2)}.diff-block.new{background:var(--ok-soft);border:1px solid #bcd9c4;color:var(--ink)}@media (max-width: 720px){.diff-grid{grid-template-columns:1fr}}.sidebar.board{width:var(--sidebar-w, 460px)}.drawing-preview{position:relative;display:block;width:100%;padding:0;cursor:zoom-in;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}.drawing-preview img{display:block;width:100%;max-height:320px;object-fit:contain}.drawing-preview .zoom-hint{position:absolute;right:7px;bottom:7px;font-size:var(--text-xs);background:#15181ebf;color:#fff;padding:2px 8px;border-radius:3px;opacity:0;transition:opacity .15s;display:inline-flex;align-items:center;gap:4px}.drawing-preview:hover .zoom-hint{opacity:1}.board-summary{margin-top:7px}.lightbox{max-width:92vw;max-height:92vh;text-align:center}.lightbox img{max-width:100%;max-height:84vh;border-radius:var(--radius);background:#fff;box-shadow:0 16px 60px #0006}.lightbox .hint{color:#d5d8de;margin-top:10px}.composer-wrap{display:flex;flex-direction:column}.attachment-chip{display:flex;align-items:center;gap:7px;margin:0 20px;padding:6px 12px;font-size:var(--text-sm);background:var(--accent-soft);border:1px dashed color-mix(in srgb,var(--accent) 70%,#999);border-radius:var(--radius) 10px 0 0;border-bottom:none}.chip-remove{margin-left:auto;border:none;background:none;cursor:pointer;color:var(--ink-3);padding:2px}.chip-remove:hover{color:var(--error)}.report-dim{padding:7px 0;border-top:1px dashed var(--line)}.report-dim:first-of-type{border-top:none}.report-dim-label{font-size:var(--text-xs);font-weight:650;color:var(--ink-2);margin-bottom:2px}.report-dim-body{font-size:var(--text-sm);line-height:1.65;white-space:pre-wrap}.effect-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dims-line{display:flex;align-items:baseline;gap:3px;flex-wrap:wrap;margin-top:7px;font-size:var(--text-sm);font-family:var(--mono);padding:5px 9px;border-radius:var(--radius);background:var(--ok-soft)}.dims-line b{font-variant-numeric:tabular-nums}.dims-line.warn{background:var(--accent-soft)}.dims-ok{font-size:var(--text-xs);color:var(--ok);font-weight:650;margin-left:6px;font-family:inherit}.dims-flag{font-size:var(--text-xs);color:#6e5600;font-weight:650;margin-left:6px;font-family:inherit}button.dims-edit{margin-left:6px;font-size:var(--text-xs);font-family:inherit;padding:0;gap:3px;align-self:center;border:none;border-radius:0;background:none;color:var(--ink-3, var(--ink-soft));text-decoration:underline;text-underline-offset:2px}button.dims-edit:hover{color:var(--ink);background:none;border-color:transparent}.dims-editor{margin-top:7px;padding:8px 9px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card, var(--surface))}.dims-editor-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dims-editor-row label{display:flex;align-items:center;gap:4px;font-size:var(--text-sm);color:var(--ink-3, var(--ink-soft))}.dims-editor-row input{width:78px;padding:3px 5px;font-family:var(--mono);font-size:var(--text-sm);border:1px solid var(--line);border-radius:4px;background:var(--card, var(--bg));font-variant-numeric:tabular-nums}.dims-editor .hint{margin-top:6px}.dims-editor-actions{display:flex;gap:6px;margin-top:8px}.dims-editor-actions button{font-size:var(--text-sm);padding:4px 12px}.benchmark-panel{padding:12px 14px;margin-bottom:14px}.bench-row{grid-template-columns:minmax(88px,190px) auto auto 1fr auto}.bench-add{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:9px}.relay-btns{display:flex;gap:7px;flex-wrap:wrap}.board-holder{display:contents}.board-close,.board-fab{display:none}@media (max-width: 900px){.appbar{padding:0 12px;gap:10px}.appbar-nav{gap:2px}.topbar{flex-wrap:wrap;row-gap:4px;height:auto;padding:8px 12px}.stepper{overflow-x:auto;gap:14px;padding:6px 12px;-webkit-overflow-scrolling:touch}.timeline{padding:12px}.msg .body{max-width:86%}.composer{padding:8px 12px 12px}.attachment-chip{margin:0 12px}.picker{padding:22px 16px 44px}.factory-floor{grid-template-columns:repeat(2,1fr)}.admin-nav{width:100%;flex-direction:row;border-right:none;border-bottom:1px solid var(--line);overflow-x:auto;padding:6px}.main{flex-direction:column}.admin-content{padding:12px}.sidebar.board{display:none}.board-holder.mobile-open .sidebar.board{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;width:100%;padding-top:50px;border-left:none;background:var(--canvas)}.board-holder.mobile-open .board-close{display:flex;position:fixed;top:9px;right:12px;z-index:41}.board-fab{display:flex;position:fixed;right:14px;bottom:96px;z-index:30;box-shadow:var(--shadow-lg)}.board-holder.mobile-open~.board-fab{display:none}}@media (min-width: 901px){.board-holder{display:contents}}img.avatar{width:28px;height:28px;border-radius:2px;image-rendering:pixelated;border:1.5px solid var(--line-2);background:#fff;flex:none}.facts-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.facts-chain{margin:7px 0 0;padding:5px 9px;border-radius:var(--radius);background:var(--ok-soft);font-size:var(--text-xs);line-height:1.55;display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}.facts-chain b{font-family:var(--mono);font-variant-numeric:tabular-nums}.facts-overlay{display:block;width:100%;margin-top:9px;border-radius:var(--radius);border:1px solid var(--line);background:#fff}.facts-list{list-style:none;margin:9px 0 0;padding:0;max-height:260px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius)}.facts-list li{display:flex;align-items:baseline;gap:7px;cursor:pointer;padding:4px 8px;font-size:var(--text-xs);border-bottom:1px solid var(--line)}.facts-list li:last-child{border-bottom:none}.facts-list li:hover{background:var(--canvas)}.facts-list li.cited{background:var(--ok-soft)}.facts-list li.warn{background:var(--accent-soft)}.facts-list li.highlighted{box-shadow:inset 3px 0 0 var(--brick-red)}.anno-warn-flag{flex:none;font-size:10px;color:#6e5600}.anno-ops{display:inline-flex;gap:3px;margin-left:auto;flex:none}.anno-op{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:1px solid var(--line);border-radius:3px;background:var(--card);color:var(--ink-3);cursor:pointer}.anno-op:hover{border-color:var(--brick-red);color:var(--brick-red)}.anno-editor{display:flex;gap:4px;flex:1;min-width:0}.anno-editor input{font-family:var(--mono);font-size:11px;padding:1px 4px;border:1px solid var(--brick-red);border-radius:3px}.anno-editor input[type=text]{flex:1;min-width:0}.anno-editor input[type=number]{width:68px;flex:none}.anno-add-row{margin-top:7px}.anno-add-form{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:6px}.anno-add-form select,.anno-add-form input{font-size:11px;padding:3px 6px;border:1px solid var(--line-2);border-radius:3px;font-family:var(--mono);background:var(--card);color:var(--ink)}.anno-add-form input[type=number]{width:90px}.facts-n{font-family:var(--mono);color:var(--ink-3);font-variant-numeric:tabular-nums;min-width:34px;text-align:right;flex:none}.facts-text{font-family:var(--mono);color:var(--ink);font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.facts-kind{flex:none;font-size:10px;color:var(--ink-2);padding:1px 5px;border-radius:3px;background:var(--canvas);border:1px solid var(--line)}.facts-zoom{margin-top:9px;cursor:zoom-out}.facts-zoom-window{width:100%;aspect-ratio:3 / 2;overflow:hidden;position:relative;border:1px solid var(--line-2);border-radius:var(--radius);background:#fff}.facts-zoom-window img{position:absolute;top:0;left:0;max-width:none}.facts-confirmed{margin:0 0 7px;padding:6px 9px;border-radius:var(--radius);background:var(--ok-soft);border-left:3px solid var(--ok);font-size:var(--text-xs);line-height:1.6}.facts-confirmed b{font-family:var(--mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.facts-notdrawing{margin:0;padding:8px 10px;border-radius:var(--radius);background:var(--accent-soft);font-size:var(--text-xs);line-height:1.6;display:flex;align-items:baseline;gap:6px}.facts-title{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:1px;margin:0 0 9px;padding:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--line)}.facts-title>div{background:var(--card);padding:5px 8px}.facts-title dt{font-size:10px;color:var(--ink-3);margin:0 0 1px}.facts-title dd{margin:0;font-size:var(--text-xs);font-weight:650;color:var(--ink);font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.facts-tol{flex:none;font-family:var(--mono);font-size:10px;font-weight:700;color:var(--brick-red);padding:1px 5px;border-radius:3px;background:#fdeceb;border:1px solid #f6d2ce}.viewer-backdrop{padding:0}.viewer{width:100vw;height:100vh;display:flex;flex-direction:column;background:var(--canvas)}.viewer-bar{display:flex;align-items:center;gap:6px;flex:none;padding:8px 12px;background:var(--card);border-bottom:1px solid var(--line)}.viewer-zoom{font-family:var(--mono);font-variant-numeric:tabular-nums;min-width:52px;text-align:right;margin-left:auto}.viewer-stage{flex:1;overflow:hidden;position:relative;cursor:grab;display:flex;align-items:center;justify-content:center;background:#fff;touch-action:none}.viewer-stage:active{cursor:grabbing}.viewer-frame{transform-origin:center center;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.viewer-stage .annotated{max-width:100%;max-height:100%}.viewer-stage .annotated.fit{width:auto;height:auto}.viewer-stage .annotated.fit img{width:100%;height:100%;display:block}.viewer-stage .annotated img{width:auto;height:auto;max-width:100%;max-height:100%}.viewer-tip{flex:none;margin:0;padding:6px 12px;text-align:center;background:var(--card);border-top:1px solid var(--line)}.facts-overlay-btn{display:block;width:100%;padding:0;margin-top:0;position:relative;border:1px solid var(--line);border-radius:var(--radius);background:#fff;cursor:zoom-in;overflow:hidden;text-align:left}.facts-overlay-btn .facts-overlay{margin-top:0;border:none;border-radius:0}.facts-overlay-btn .zoom-hint{position:absolute;right:6px;bottom:6px;display:flex;align-items:center;gap:3px;padding:2px 6px;border-radius:3px;font-size:10px;background:#1a1d23c7;color:#fff;opacity:0;transition:opacity .12s}.facts-overlay-btn:hover .zoom-hint{opacity:1}.facts-preview{margin-top:9px}.anno-hide-toggle{margin-bottom:6px}.facts-preview-stage{position:relative;width:100%;max-height:220px;overflow:hidden;background:var(--canvas)}.facts-preview-stage img{display:block;width:100%;height:100%;object-fit:contain}.anno-bubble{position:absolute;transform:translate(-50%,-50%);min-width:18px;height:18px;padding:0 3px;border-radius:999px;border:1.5px solid var(--brick-red);background:#ffffffeb;color:var(--brick-red);font-family:var(--mono);font-size:10px;font-weight:700;line-height:15px;text-align:center;cursor:pointer}.anno-bubble.highlighted{background:var(--brick-red);color:#fff;z-index:1;box-shadow:0 0 0 3px #d6282840}.facts-reqs{margin:9px 0 0}.facts-reqs h4{display:flex;align-items:center;gap:5px;margin:0 0 5px;font-size:var(--text-xs);font-weight:650;color:var(--ink-2)}.facts-reqs ol{margin:0;padding-left:20px}.facts-reqs li{font-size:var(--text-xs);line-height:1.65;cursor:zoom-in;padding:1px 3px;border-radius:3px}.facts-reqs li:hover{background:var(--canvas)}.report-list{margin:0;padding-left:17px}.report-list li{font-size:var(--text-xs);line-height:1.7;margin-bottom:4px;color:var(--ink);word-break:break-word}.report-list li::marker{color:var(--ink-3)}.report-para{margin:0 0 5px;font-size:var(--text-xs);line-height:1.7}.report-ref,.report-ref-flat{display:inline;font-family:var(--mono);font-size:11px;font-weight:650;color:var(--brick-blue);padding:0 2px;border:none;background:none;border-bottom:1px dotted var(--brick-blue);cursor:zoom-in;line-height:inherit}.report-ref:hover{background:var(--accent-soft)}.report-ref-flat{cursor:default;border-bottom-style:solid;opacity:.75}.annotated{position:relative;display:inline-block;line-height:0}.annotated img{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none}.annotated-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.viewer-check{display:flex;align-items:center;gap:4px;cursor:pointer;font-size:var(--text-xs);white-space:nowrap;-webkit-user-select:none;user-select:none}.viewer-check input{margin:0;cursor:pointer}.viewer-check .hint{font-variant-numeric:tabular-nums}.viewer-swatch{width:9px;height:9px;border-radius:2px;display:inline-block;flex:none}.viewer-sep{width:1px;height:16px;background:var(--line);margin:0 2px}.viewer-bar{flex-wrap:wrap}.viewer-focus{display:flex;align-items:baseline;gap:5px;margin-left:6px;padding:2px 8px;border-radius:var(--radius);background:var(--accent-soft);font-size:var(--text-xs)}.viewer-focus b{font-family:var(--mono)}.viewer-focus em{font-family:var(--mono);font-style:normal;color:var(--brick-red);font-weight:700}.facts-said{flex:none;font-size:10px;padding:1px 5px;border-radius:3px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);cursor:pointer}.facts-said:hover{background:var(--accent-soft);border-color:var(--accent)}.facts-talk{margin-top:8px;padding:8px 9px;border-radius:var(--radius);background:var(--canvas);border:1px solid var(--line)}.facts-talk-head{display:flex;align-items:center;gap:6px;margin-bottom:5px;font-size:var(--text-xs);color:var(--ink-2)}.facts-talk-head b{font-family:var(--mono);color:var(--ink)}.facts-talk-head button{margin-left:auto}.facts-talk-item{margin:0 0 5px;font-size:var(--text-xs);line-height:1.6;display:flex;gap:6px}.facts-talk-item em{flex:none;font-style:normal;font-weight:650;color:var(--ink-2)}.facts-sec{display:flex;align-items:center;gap:5px;margin:12px 0 6px;font-size:var(--text-xs);font-weight:700;color:var(--ink-2);padding-bottom:4px;border-bottom:1px solid var(--line)}.facts-sec:first-child{margin-top:0}.facts-sec .hint{font-weight:400;margin-left:auto}.facts-qlist{list-style:none;margin:0;padding:0}.facts-qlist li{display:flex;align-items:baseline;gap:7px;cursor:zoom-in;padding:3px 6px;border-radius:3px;font-size:var(--text-xs)}.facts-qlist li:hover{background:var(--canvas)}.facts-rough{margin:6px 0 0}.facts-rough b{font-family:var(--mono)}.facts-said-flat{margin-left:auto;font-size:10px;color:var(--ink-3)}.annotated-svg{pointer-events:none}.annotated-svg.live .annotated-hit{pointer-events:auto;cursor:pointer}.annotated-hit:hover{fill:#2e6fe81a}.annotated-mark.highlighted{filter:drop-shadow(0 0 3px rgba(214,40,40,.55))}.main.workbench{display:flex}.wb-left{width:var(--split-x, 58%);flex:none;min-width:0;display:flex;flex-direction:column;border-right:1px solid var(--line)}.wb-drawing{flex:0 0 auto;max-height:48vh;position:relative;border-bottom:1px solid var(--line);background:#fff;overflow:hidden}.wb-analysis{flex:0 1 auto;max-height:45%;overflow-y:auto;min-height:0}.wb-analysis .board-workbench{padding:12px 14px}.wb-divider{width:7px;flex:none;cursor:col-resize;background:transparent;border-right:1px solid var(--line)}.wb-divider:hover,.wb-divider.dragging{background:var(--accent);opacity:.5}.main.workbench .chat-col{flex:1 1 0;min-width:0}.viewer.embedded{width:100%;height:auto;max-height:48vh;background:#fff}.viewer.embedded .viewer-stage{flex:0 1 auto;min-height:0}.viewer.embedded .viewer-frame{height:auto}.viewer.embedded .annotated.fit{width:auto;height:auto;max-width:100%;max-height:40vh}.viewer.embedded .annotated.fit img{width:100%;height:100%}.board-workbench{border-left:none}@media (max-width: 900px){.main.workbench{flex-direction:column}.wb-divider{display:none}.wb-left{width:100%}}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.admin-table th,.admin-table td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}.admin-table thead th{font-size:var(--text-xs);font-weight:650;color:var(--ink-2);background:var(--canvas);white-space:nowrap;position:sticky;top:0;z-index:1}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:var(--canvas)}.admin-table td.nowrap,.admin-table th.nowrap{white-space:nowrap}.admin-table td.wide{min-width:160px;max-width:340px;line-height:1.55}.admin-table code{font-family:var(--mono);font-size:11px;color:var(--ink-2);background:var(--canvas);padding:1px 5px;border-radius:3px}.admin-name{display:inline-flex;align-items:center;gap:6px}.admin-act-col{text-align:right}.admin-act-col button{padding:3px 8px}.ui-btn.admin-new-row{margin:10px 12px 12px;width:calc(100% - 24px);border:1px dashed var(--line-2);border-radius:var(--radius);padding:8px 14px;color:var(--ink-2);background:transparent;box-shadow:none}.ui-btn.admin-new-row:hover{border-color:var(--accent);color:var(--ink);background:var(--accent-soft)}.chat-code{display:inline-flex;align-items:center;gap:4px;cursor:pointer;font-family:var(--mono);font-weight:650;letter-spacing:.04em;border:1px solid var(--line-2);border-radius:5px;background:var(--card);color:var(--ink-2);padding:2px 7px;font-size:var(--text-xs)}.chat-code:hover{border-color:var(--accent);color:var(--ink);background:var(--accent-soft)}.chat-code-xs{padding:1px 5px;font-size:10px}.output-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.print-sheet{display:none}@media print{body *{visibility:hidden!important}.print-sheet,.print-sheet *{visibility:visible!important}.print-sheet{display:block!important;position:absolute;left:0;top:0;width:100%;padding:0 4mm;color:#000;font-size:11pt;line-height:1.5}@page{margin:14mm;size:A4}}.print-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid #000;padding-bottom:6px;margin-bottom:10px}.print-head h1{margin:0;font-size:18pt}.print-meta{display:flex;gap:14px;font-size:10pt;color:#333}.print-summary{margin:0 0 10px;font-size:10.5pt}.print-table{width:100%;border-collapse:collapse;margin-bottom:12px}.print-table th,.print-table td{border:1px solid #000;padding:5px 7px;text-align:left;vertical-align:top}.print-table th{background:#eee;font-size:10pt}.print-table td:first-child,.print-table th:first-child{width:32px;text-align:center}.print-table td:nth-child(3){white-space:nowrap}.print-risk{margin-top:3px;color:#a00;font-size:9.5pt}.print-block{margin-bottom:10px;break-inside:avoid}.print-block h2{font-size:12pt;margin:0 0 4px;border-left:4px solid #000;padding-left:6px}.print-block ol{margin:0;padding-left:20px}.print-block li{margin-bottom:3px;font-size:10pt}.print-cost{width:60%;margin-left:auto;border-collapse:collapse;margin-bottom:12px}.print-cost td{border:1px solid #000;padding:5px 9px}.print-cost td:last-child{text-align:right;font-variant-numeric:tabular-nums}.print-cost .print-price td{font-weight:700;font-size:12pt;background:#f2f2f2}.facts-tol[role=button],.facts-addtol{cursor:pointer}.facts-addtol{flex:none;font-size:10px;padding:1px 6px;border-radius:3px;border:1px dashed var(--line-2);background:transparent;color:var(--ink-3)}.facts-addtol:hover{border-color:var(--brick-red);color:var(--brick-red);background:#fdeceb}.tol-editor{display:inline-flex;align-items:center;gap:3px;font-family:var(--mono)}.tol-editor input{width:58px;padding:1px 4px;font-size:11px;font-family:var(--mono);border:1px solid var(--brick-red);border-radius:3px}.tol-editor button{padding:1px 6px;font-size:10px}.facts-tol-hint,.facts-tol-add{margin:6px 0 0;font-size:var(--text-xs)}.facts-tol-add b{font-family:var(--mono)}.lib-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:4px 0 18px}.lib-search{display:flex;align-items:center;gap:6px;flex:1;min-width:200px;padding:7px 11px;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--card);color:var(--ink-3)}.lib-search input{border:none;outline:none;background:none;flex:1;font-size:var(--text-sm);color:var(--ink)}.lib-typefilter,.lib-lifefilter{display:inline-flex;gap:6px}.lib-pager{display:flex;align-items:center;gap:10px;margin:10px 0;font-size:var(--text-sm)}.lib-pager .count{color:var(--ink-2);font-family:var(--mono)}.lib-empty-result{color:var(--ink-2);padding:20px 0;text-align:center}.lib-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;max-width:460px;margin:40px auto;padding:32px 28px;background:var(--accent-soft);border:2.5px dashed var(--ink);border-radius:var(--radius-lg);box-shadow:var(--hard)}.lib-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:var(--radius);background:var(--accent);border:2.5px solid var(--ink);box-shadow:var(--hard-sm);color:var(--ink)}.lib-empty h2{margin:4px 0 0;font-size:20px}.lib-empty>p{margin:0;color:var(--ink-2);font-size:var(--text-md);line-height:1.5}.lib-empty .lib-empty-fmt{color:var(--ink-3);font-size:var(--text-sm);margin-top:2px}.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:14px}.lib-grid.compact{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px}.lib-card{position:relative;display:flex;flex-direction:column;gap:4px;text-align:left;padding:8px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card);cursor:pointer}.lib-card:hover{border-color:var(--line-2);box-shadow:var(--shadow)}.lib-thumb{width:100%;aspect-ratio:4 / 3;object-fit:contain;background:#f6f7f9;border:1px solid var(--line);border-radius:var(--radius)}.lib-name{font-weight:600;font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-facts{font-size:var(--text-xs);color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono)}.lib-facts.pending{color:var(--ink-3);font-family:inherit}.lib-facts .ui-tag{margin-right:4px;vertical-align:middle}.lib-facts-rest{color:var(--ink-2)}.lib-kind{display:inline-flex;align-self:flex-start;font-size:10px;font-weight:650;font-family:var(--mono);letter-spacing:.04em;padding:1px 6px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink)}.lib-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:6px}.thumb-ph{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink-3);background:#f6f7f9;border:1px solid var(--line);border-radius:var(--radius)}.thumb-ph.lib-thumb{width:100%;aspect-ratio:4 / 3}.thumb-ph b{font-size:9px;font-weight:650;font-family:var(--mono);letter-spacing:.04em;color:var(--accent-ink)}.parts-table td.tc-thumb .thumb-ph{width:40px;height:30px}.prj-customer{font-weight:400;color:var(--ink-2);font-size:var(--text-sm)}.prj-asset-card{display:flex;flex-direction:column;gap:6px;padding:10px}.prj-asset-head{display:flex;align-items:center;gap:8px}.ui-btn.prj-remove{align-self:flex-start;color:var(--ink-2)}.ui-btn.prj-remove:hover{color:var(--error)}.lib-tags{display:flex;flex-wrap:wrap;gap:4px}.lib-tags em{font-style:normal;font-size:10px;padding:1px 6px;border-radius:999px;background:#eef0f3;color:var(--ink-2)}.lib-star{position:absolute;top:6px;right:6px;z-index:2;display:grid;place-items:center;width:24px;height:24px;border-radius:var(--radius);color:var(--ink-3);background:color-mix(in srgb,var(--card) 80%,transparent)}.lib-star:hover,.lib-star.on{color:var(--accent)}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;justify-content:flex-end;background:color-mix(in srgb,#000 32%,transparent)}.drawer-scrim .drawer{width:min(440px,92vw);height:100%;overflow-y:auto;padding:16px 18px 24px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow)}.drawer-scrim .drawer.ui-card{margin:14px;height:calc(100% - 28px);box-shadow:var(--hard)}.picker-modal{margin:auto;width:min(760px,94vw);max-height:82vh;overflow-y:auto;background:var(--card);border-radius:var(--radius-lg);padding:16px 18px 22px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow);animation:slide-in .2s ease}.drawer-name{flex:1;font-size:var(--text-md);font-weight:650;border:none;outline:none;background:none;color:var(--ink);border-bottom:1px dashed transparent}.drawer-name:hover,.drawer-name:focus{border-bottom-color:var(--line-2)}.drawer-viewer{height:240px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.ver-timeline{margin:10px 0}.ver-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.ver-list .ver{display:flex;align-items:center;gap:8px;padding:6px 10px;border:var(--bd);border-radius:6px}.ver-list .ver.current{background:var(--accent-soft)}.ver-badge{font-family:var(--mono);font-size:10px;border:1.5px solid var(--line-2);border-radius:4px;padding:0 6px;margin-left:6px}.ver-badge.released{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}.ver-badge.release-btn{background:var(--accent);border:var(--bd);cursor:pointer;font-weight:700}.frozen-banner{background:var(--ok-soft);color:var(--ok);border:var(--bd);border-radius:6px;padding:6px 10px;font-size:var(--text-sm);margin:8px 0}.ver-docs{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.ver-doc{border:var(--bd);border-radius:6px;padding:4px 10px;background:var(--card);cursor:pointer;font:inherit}.drawer-facts dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:var(--text-sm)}.drawer-facts dt{color:var(--ink-3)}.drawer-facts dd{margin:0;font-weight:550;font-family:var(--mono)}.drawer-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.tag-pill{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);padding:2px 4px 2px 8px;border-radius:999px;background:#eef0f3;color:var(--ink-2)}.tag-pill button{border:none;background:none;color:var(--ink-3);cursor:pointer;display:grid;place-items:center;padding:0}.tag-pill button:hover{color:var(--error)}.drawer-tags input{flex:1;min-width:120px;border:none;outline:none;background:none;font-size:var(--text-sm)}.assign-row{display:flex;align-items:center;gap:8px;font-size:var(--text-sm)}.assign-row label{color:var(--ink-2)}.assign-row select{flex:1}.assembly-badge{font-family:var(--mono);font-size:10px;border:var(--bd);border-radius:4px;padding:0 6px;margin-left:6px;background:var(--lav);color:var(--ink)}.bom-section{margin:10px 0}.bom-section .sec-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.bom-add{font-size:var(--text-xs)}.bom-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.bom-node{display:flex;align-items:center;gap:8px;padding:4px 0;flex-wrap:wrap}.bom-node.obsolete .bom-name{text-decoration:line-through;color:var(--ink-3)}.bom-node.unreleased .bom-name{color:var(--ink-3)}.bom-name{background:none;border:0;cursor:pointer;font:inherit;color:var(--info);padding:0}.bom-qty{font-family:var(--mono);font-weight:700}.bom-x{border:var(--bd);border-radius:5px;background:var(--card);cursor:pointer;font-size:11px}.where-used{margin-top:10px;display:flex;flex-direction:column;gap:6px}.where-used .ver-doc{align-self:flex-start}.drawer-section h4{margin:0 0 8px;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.drawer-apps{display:flex;flex-wrap:wrap;gap:8px}.app-mini{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--card);color:var(--ink);cursor:pointer;font-size:var(--text-sm)}.app-mini:hover{border-color:var(--accent);background:var(--accent-soft)}.app-tile.sm{width:18px;height:18px;font-size:12px}.session-row.sm{padding:7px 8px}.drawer-tabs{display:flex;gap:6px;margin:10px 0}.drawer-tabs button{border:var(--bd);border-radius:6px;padding:4px 12px;background:var(--card);color:var(--ink);cursor:pointer;font:inherit;font-size:var(--text-sm)}.drawer-tabs button.on{background:var(--accent)}.audit-state{color:var(--ink-2);font-size:var(--text-sm);padding:8px 0}.audit-filter{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:8px 0}.audit-filter button,.audit-filter select{font-family:var(--mono);font-size:var(--text-xs);border:var(--bd);border-radius:999px;padding:2px 10px;background:var(--card);color:var(--ink);cursor:pointer}.audit-filter button.on{background:var(--accent);font-weight:700}.audit-sysfold{font-family:var(--mono);font-size:12px;color:var(--ink-3);background:none;border:0;cursor:pointer;padding:8px 0}.audit-list{list-style:none;margin:10px 0;padding:0;display:flex;flex-direction:column}.audit-row{display:flex;gap:9px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line);cursor:pointer}.audit-row:last-child{border-bottom:0}.audit-row.q{background:linear-gradient(90deg,var(--accent-soft) 0,transparent 62%);border-left:5px solid var(--accent);margin:0 -12px;padding:9px 12px}.audit-row.danger{border-left:5px solid var(--red);margin:0 -12px;padding:9px 12px}.audit-row.sys{opacity:.62}.audit-who{width:24px;height:24px;flex:none;border:var(--bd);border-radius:6px;background:var(--accent-soft);font-size:var(--text-xs);font-weight:800;display:flex;align-items:center;justify-content:center}.audit-who.sys{background:var(--line);color:var(--ink-3)}.audit-main{flex:1;min-width:0;font-size:var(--text-sm)}.audit-act{font-weight:700}.audit-actor{color:var(--ink-2)}.audit-vtag{font-family:var(--mono);font-size:10px;border:1.5px solid var(--line-2);color:var(--ink-3);border-radius:4px;padding:0 4px;margin-left:6px}.audit-t{color:var(--ink-3);font-size:var(--text-xs);font-family:var(--mono);white-space:nowrap}.audit-diff{display:block;font-family:var(--mono);font-size:12px;margin-top:4px}.audit-difflabel{color:var(--ink-2)}.audit-diff .old{background:var(--error-soft);color:var(--error);padding:0 5px;border-radius:3px;text-decoration:line-through}.audit-diff .new{background:var(--ok-soft);color:var(--ok);padding:0 5px;border-radius:3px;font-weight:700}.audit-diff .arrow{color:var(--ink-3);margin:0 5px}.audit-diff .tagchip{font-family:var(--mono);font-size:11px;padding:0 5px;border-radius:3px;margin-right:4px}.audit-diff .tagchip.add{background:var(--ok-soft);color:var(--ok)}.audit-diff .tagchip.del{background:var(--error-soft);color:var(--error);text-decoration:line-through}.audit-doc{font-family:var(--mono);font-size:10px;border:var(--bd);border-radius:4px;padding:0 5px;background:var(--card);margin-left:6px}.audit-note{color:var(--ink-2);font-size:12px;margin-left:6px}.drawer-foot{margin-top:auto;padding-top:8px;border-top:1px solid var(--line)}.danger-ghost{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid transparent;border-radius:var(--radius);background:none;color:var(--error);cursor:pointer;font-size:var(--text-sm)}.danger-ghost:hover{background:#fdeceb}.similar-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);cursor:pointer;margin-bottom:6px}.similar-row:hover{border-color:var(--line-2);background:#f6f7f9}.similar-row img{width:44px;height:34px;object-fit:contain;background:#f6f7f9;border:1px solid var(--line);border-radius:3px;flex:none}.similar-name{font-weight:550;font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.similar-why{flex:1;font-size:var(--text-xs);color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.similar-score{font-family:var(--mono);font-weight:650;font-size:var(--text-sm);color:var(--accent-ink);background:var(--accent-soft);padding:1px 7px;border-radius:999px;flex:none}.lib-badge{position:absolute;top:6px;left:6px;z-index:2;display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:650;padding:1px 6px;border-radius:999px}.lib-badge.deliv{background:var(--accent-soft);color:var(--accent-ink)}.lib-badge.analyzing{background:#eef0f3;color:var(--ink-2);left:auto;right:6px}.drawer-analyze{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.step-viewer{display:flex;flex-direction:column;gap:8px;position:relative}.step-host{border:var(--bd);border-radius:var(--radius);box-shadow:var(--hard);overflow:hidden;background:#f4f4f5}.hole-marker-overlay{position:absolute;top:8px;right:8px;display:flex;gap:6px;align-items:center}.hole-count{font-size:var(--text-sm);font-weight:700;color:var(--ink);background:var(--card);border:2px solid var(--ink);border-radius:var(--radius);padding:3px 8px;box-shadow:var(--hard-sm)}.hole-toggle{font-size:var(--text-sm);font-weight:650;cursor:pointer;color:var(--ink);background:var(--card);border:2px solid var(--ink);border-radius:var(--radius);padding:3px 8px;box-shadow:var(--hard-sm)}.hole-toggle:hover{background:var(--accent-soft)}.hole-toggle.on{background:var(--accent);color:var(--ink)}.hole-toggle.on:hover{background:var(--accent)}.hole-lowconf{font-size:var(--text-sm);font-weight:700;color:#7a1010;background:#ffd9d0;border:2px solid #e03131;border-radius:var(--radius);padding:3px 8px;box-shadow:var(--hard-sm);cursor:default}.hole-tooltip{position:absolute;pointer-events:none;z-index:3;font-size:var(--text-sm);font-weight:700;color:var(--ink);background:var(--accent);border:2px solid var(--ink);border-radius:var(--radius);padding:2px 7px;box-shadow:var(--hard-sm);font-family:var(--mono)}.cad-facts{display:flex;flex-direction:column;gap:10px;margin-top:10px}.cad-facts-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cad-feat-list{display:flex;flex-direction:column;gap:6px}.cad-feat-row{display:flex;align-items:center;gap:6px}.cad-feat-row .cad-feat-kind{flex:none;min-width:44px;text-align:center}.cad-feat-row .ui-field:nth-of-type(1){flex:1.4;min-width:0}.cad-feat-row .ui-field:nth-of-type(2){flex:.6;min-width:0}.cad-feat-row .ui-field:nth-of-type(3){flex:1;min-width:0}.cad-material-row{display:flex;align-items:center;gap:8px;font-size:var(--text-sm)}.cad-material-row label{color:var(--ink-2)}.cad-material-row select{flex:none;width:auto}.hint.err{color:var(--error)}.deliv-row{display:flex;align-items:center;gap:9px;width:100%;text-align:left;margin-bottom:6px;padding:8px 10px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);color:var(--ink);cursor:pointer}.deliv-row:hover{background:color-mix(in srgb,var(--accent-soft) 70%,var(--accent))}.deliv-kind{font-weight:650;font-size:var(--text-xs);white-space:nowrap;color:var(--accent-ink)}.deliv-summary{flex:1;font-size:var(--text-xs);color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deliv-dot{display:inline-flex;margin-left:5px;color:var(--accent-ink);vertical-align:middle}.similar-row.dup{border-color:var(--error);background:#fdeceb}.similar-row.dup .similar-score{background:var(--error);color:#fff}.view-toggle{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--radius);overflow:hidden}.view-toggle button{padding:6px 9px;border:none;background:var(--card);color:var(--ink-3);cursor:pointer}.view-toggle button:not(:last-child){border-right:1px solid var(--line)}.view-toggle button.on{background:var(--accent);color:var(--accent-ink)}.lib-badge.rev{left:6px;top:auto;bottom:6px;background:#eef0f3;color:var(--ink-2);font-family:var(--mono)}.lib-badge.pair{left:auto;right:6px;top:auto;bottom:6px;background:var(--accent-soft);color:var(--accent-ink)}.pair-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--text-sm)}.pair-status{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pair-candidates{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:4px}.pair-candidate-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);cursor:pointer}.pair-candidate-row:hover{border-color:var(--line-2);background:#f6f7f9}.pair-candidate-row img,.pair-candidate-row .thumb-ph{width:32px;height:24px;object-fit:contain;background:#f6f7f9;border:1px solid var(--line);border-radius:3px;flex:none}.parts-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-lg)}.ui-card .parts-table-wrap,.ui-panel .parts-table-wrap{border:none;border-radius:0}.parts-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.parts-table th,.parts-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.parts-table thead th{background:#f6f7f9;font-weight:600;color:var(--ink-2);position:sticky;top:0;z-index:1}.parts-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.parts-table th.sortable:hover{color:var(--ink)}.parts-table th.active{color:var(--accent-ink)}.parts-table tbody tr{cursor:pointer}.parts-table td.mono{font-family:var(--mono)}.parts-table td.tc-name{font-weight:550}.parts-table td.tc-num,.parts-table td.tc-star{text-align:center}.parts-table td.tc-date{text-align:right}.parts-table td.tc-status{display:flex;align-items:center;gap:6px;white-space:nowrap}.parts-table .rev-tag{margin-left:6px;font-style:normal;font-family:var(--mono);font-size:10px;color:var(--ink-3);background:#eef0f3;padding:1px 5px;border-radius:999px}.parts-table .deliv-pill{display:inline-block;min-width:18px;font-family:var(--mono);font-weight:650;font-size:11px;color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;padding:1px 6px}.lib-star.inline{position:static;width:auto;height:auto;background:none;display:inline-grid}.dup-banner{display:flex;align-items:center;gap:10px;margin:0 0 16px;padding:10px 14px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);color:var(--ink);font-size:var(--text-sm)}.dup-banner b{font-weight:700}.parts-table td.tc-clip{max-width:140px;overflow:hidden;text-overflow:ellipsis}.picker.lib{max-width:1360px}.parts-table th,.parts-table td{padding:6px 11px}.parts-table thead th{box-shadow:inset 0 -1px 0 var(--line-2);border-bottom:none;font-size:var(--text-xs);letter-spacing:.02em}.parts-table tbody tr:nth-child(2n){background:#fafbfc}.parts-table tbody tr:hover{background:var(--accent-soft)}.parts-table td.tc-thumb{width:46px;padding:3px 8px}.parts-table td.tc-thumb img{width:40px;height:30px;object-fit:contain;display:block;background:#f6f7f9;border:1px solid var(--line);border-radius:3px}.parts-table td.tc-name{max-width:190px;overflow:hidden;text-overflow:ellipsis}.parts-table th:first-child,.parts-table td.tc-star{width:30px;padding-left:12px;padding-right:2px}.drawer-preview{position:relative;display:block;width:100%;height:220px;flex:none;padding:8px;cursor:zoom-in;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#f6f7f9}.drawer-preview img{width:100%;height:100%;object-fit:contain;display:block}.drawer-preview:hover{border-color:var(--line-2)}.drawer-preview-zoom{position:absolute;right:7px;bottom:7px;display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--ink);padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--card) 85%,transparent);border:1px solid var(--line)}.report-dim-body,.report-body,.reason,.ops-table td,.msg .who,.roster-row .reason,.knowledge-content,.drawer-facts dd,.facts-line,.similar-why,.deliv-summary{overflow-wrap:anywhere;word-break:break-word}.msg .body,.chat-col,.wb-analysis,.sidebar,.drawer,.picker-modal{min-width:0}.tenant-switcher{position:relative}.tenant-current{width:34px;height:34px;border-radius:var(--radius);border:1px solid var(--line-2);background:var(--card);color:var(--ink);font-weight:700;font-size:15px;cursor:pointer;display:grid;place-items:center;line-height:1}.tenant-current:hover{border-color:var(--accent)}.tenant-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:200px;background:var(--card);border:1px solid var(--line-2);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:6px;animation:slide-in .15s ease}.tenant-menu-head{font-size:var(--text-xs);color:var(--ink-3);padding:4px 8px 6px;letter-spacing:.06em}.tenant-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:7px 8px;border:none;background:none;color:var(--ink);cursor:pointer;border-radius:var(--radius);font-size:var(--text-sm);text-align:left}.tenant-item:hover{background:#f2f3f6}.tenant-item.on{color:var(--accent-ink);font-weight:600}.tenant-item.add{color:var(--ink-2)}.tenant-menu-sep{height:1px;background:var(--line);margin:6px 4px}.tenant-create{display:flex;gap:6px;padding:4px}.tenant-create input{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--line-2);border-radius:var(--radius);font-size:var(--text-sm)}.tenant-create .primary{padding:6px 10px}.parts-table .cclip{display:inline-block;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.parts-table .cclip.name{max-width:180px;font-weight:550}.auth-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:var(--canvas);padding:24px}.auth-card{width:100%;max-width:380px;padding:28px 26px}.auth-card form{display:flex;flex-direction:column;gap:12px}.auth-brand{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--ink)}.auth-brand .rail-logo{position:static}.auth-title{margin:6px 0 0;font-size:var(--text-lg)}.auth-sub{margin:0 0 4px}.auth-field{display:flex;flex-direction:column;gap:4px;font-size:var(--text-sm);color:var(--ink-2)}.auth-field span{display:flex;align-items:baseline;gap:6px}.auth-field em{font-style:normal}.auth-error{margin:0;color:var(--error);font-size:var(--text-sm)}.auth-submit{margin-top:6px;justify-content:center}.auth-switch{background:none;border:none;color:var(--ink-2);cursor:pointer;font-size:var(--text-sm);display:inline-flex;align-items:center;gap:4px;justify-content:center;padding:4px}.auth-switch:hover{color:var(--ink)}.tenant-user{padding:4px 8px;font-size:var(--text-xs);color:var(--ink-3);overflow:hidden;text-overflow:ellipsis}.page-head{flex:none;display:flex;align-items:center;gap:12px;height:54px;padding:0 24px;border-bottom:1px solid var(--line);background:var(--card)}.page-head-title{display:flex;align-items:baseline;gap:10px;min-width:0}.page-head-title .icn{align-self:center;color:var(--ink-2)}.page-head-title h1{margin:0;font-size:18px;font-weight:700;white-space:nowrap;letter-spacing:.01em}.page-head-sub{color:var(--ink-3);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-head-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex:none}.page-body{flex:1;overflow-y:auto;padding:22px 26px 48px;min-width:0}.page-body>.page-inner{max-width:1320px}.sec-title{margin:22px 0 10px;font-size:var(--text-xs);font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}.sec-title:first-child{margin-top:0}.mng-create{display:flex;align-items:center;gap:8px}.mng-create input{width:160px}.mng-tabs{margin-bottom:14px}.mng-actions{display:flex;gap:6px;justify-content:flex-end}.ghost.sm,.danger-ghost.sm{padding:3px 8px;font-size:var(--text-xs)}.mng-switch{display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-size:var(--text-sm)}.mng-switch input{cursor:pointer}.mng-member-tag{display:inline-flex;align-items:center;gap:5px}.mng-member-tag button{border:none;background:none;color:var(--ink-3);cursor:pointer;display:grid;place-items:center;padding:0}.mng-member-tag button:hover{color:var(--error)}.ws-rename,.ws-code{display:flex;gap:8px;align-items:center}.ws-rename input{flex:1;min-width:0;padding:7px 10px;border:1px solid var(--line-2);border-radius:var(--radius)}.ws-code code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;background:#f2f3f6;padding:6px 8px;border-radius:var(--radius);font-family:var(--mono);font-size:var(--text-xs)}.ws-member{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid var(--line);font-size:var(--text-sm)}.tenant-pw{display:flex;flex-direction:column;gap:6px;padding:6px 8px}.tenant-pw input{padding:6px 8px;border:1px solid var(--line-2);border-radius:var(--radius);font-size:var(--text-sm)}.tenant-pw-row{display:flex;gap:6px;justify-content:flex-end}.tenant-pw-row .primary,.tenant-pw-row .ghost{padding:5px 10px;font-size:var(--text-xs)}.linklike{background:none;border:none;color:var(--info);cursor:pointer;font:inherit;text-decoration:underline;padding:0}.mng-member-row td{background:var(--canvas)}.mng-members{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0}.mng-members select{padding:4px 8px;border:1px solid var(--line-2);border-radius:var(--radius);font-size:var(--text-xs)}.ui-btn{font-family:var(--sans);font-weight:700;font-size:var(--text-sm);border:var(--bd);border-radius:var(--radius);padding:9px 15px;background:var(--card);color:var(--ink);box-shadow:var(--hard-sm);cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:transform .1s,box-shadow .1s}.ui-btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.ui-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:var(--hard-sm)}.ui-btn:disabled:active{transform:none}.ui-btn--pink{background:var(--pink);color:#fff}.ui-btn--yellow{background:var(--yellow);color:var(--ink)}.ui-btn--sm{padding:6px 11px;font-size:var(--text-xs)}.ui-btn.btn-danger{color:var(--ink-2)}.ui-btn.btn-danger:hover{color:var(--error);border-color:var(--error)}.ui-card{background:var(--card);border:var(--bd);border-radius:var(--radius-lg);box-shadow:var(--hard);overflow:hidden}.ui-panel{background:var(--card);border:var(--bd);border-radius:var(--radius-lg);box-shadow:var(--hard)}.ui-panel-h{display:flex;align-items:center;gap:9px;padding:12px 14px;border-bottom:var(--bd);font-weight:800}.ui-panel-body{padding:12px 14px}.ui-chip{border:2px solid var(--ink);border-radius:999px;padding:5px 12px;font-weight:700;font-size:var(--text-xs);background:var(--card);cursor:pointer}.ui-chip.on{background:var(--yellow)}.ui-tag{font-size:var(--text-xs);font-weight:800;font-family:var(--mono);padding:2px 8px;border-radius:999px;border:2px solid var(--ink);white-space:nowrap}.ui-tag--mat{background:var(--yellow-soft)}.ui-tag--env{background:#eaf0ff}.ui-tag--dl{background:var(--mint)}.ui-tag--muted{background:#eee;color:var(--ink-2)}.ui-search{display:flex;align-items:center;gap:8px;background:var(--card);border:var(--bd);border-radius:var(--radius);padding:8px 12px;box-shadow:var(--hard-sm)}.ui-search input{border:0;outline:0;background:transparent;font-size:var(--text-sm);flex:1;font-family:var(--sans)}.ui-field{border:var(--bd);border-radius:var(--radius);padding:8px 11px;font-size:var(--text-sm);font-family:var(--sans);background:var(--card)}@media (prefers-reduced-motion:reduce){.ui-btn{transition:none}.ui-btn:active{transform:none}}.mobile-tabbar{display:none}@media (max-width: 640px){.mobile-tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--yellow);border-top:3px solid var(--ink);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.mtab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:52px;padding:6px 4px;background:transparent;border:2.5px solid transparent;border-radius:12px;color:var(--ink);font-weight:700;font-size:12px;cursor:pointer}.mtab.on{background:#17120b;color:var(--yellow)}.mobile-more-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0006;display:flex;align-items:flex-end}.mobile-more-sheet{width:100%;background:var(--card);border-top:3px solid var(--ink);border-radius:18px 18px 0 0;padding:10px 14px calc(18px + env(safe-area-inset-bottom));max-height:80vh;overflow-y:auto;animation:slide-in .2s ease}.more-grab{width:40px;height:4px;border-radius:999px;background:var(--line-2);margin:2px auto 12px}.more-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:10px 8px;background:transparent;border:0;border-radius:10px;font-size:16px;font-weight:600;color:var(--ink);cursor:pointer;text-align:left}.more-item:active{background:#0000000f}.more-divider{height:2px;background:var(--line);margin:8px 0}}@media (max-width: 640px){.appbar{gap:10px;height:auto;padding:calc(8px + env(safe-area-inset-top)) 12px 8px}.appbar-nav{display:none}.appbar-brand{font-size:16px}.shell-body{padding-bottom:env(safe-area-inset-bottom)}.shell:has(.mobile-tabbar) .shell-body{padding-bottom:calc(66px + env(safe-area-inset-bottom))}}@media (max-width: 640px){.page-head{height:auto;flex-direction:column;align-items:stretch;gap:8px;padding:10px 14px}.page-head-title{flex-wrap:wrap;row-gap:2px}.page-head-title h1{font-size:19px;white-space:normal}.page-head-actions{margin-left:0;flex-wrap:wrap;gap:8px}.page-head-actions>.ui-btn{min-height:44px}}@media (max-width: 640px){.view-toggle{display:none}.lib-grid{grid-template-columns:1fr;gap:10px}}@media (max-width: 640px){.composer{padding:8px 12px calc(12px + env(safe-area-inset-bottom))}.chat-col{min-height:0;margin:0}.modal-backdrop{padding:0;align-items:stretch}.modal-backdrop>*{max-width:100%;width:100%;max-height:100%;border-radius:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.drawer-scrim{padding:0}.drawer-scrim .drawer,.drawer-scrim .drawer.ui-card{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0}}@media (max-width: 640px){.ui-btn{min-height:44px}.ui-btn.icon-only,.appbar-right button{min-width:44px;min-height:44px}}.process-card.ui-card{display:flex;flex-direction:column;gap:15px}.pc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.pc-kicker{display:block;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--info);margin-bottom:3px}.pc-title{margin:0;font-size:var(--text-lg);font-weight:800}.pc-summary{margin:0;font-size:var(--text-sm);color:var(--ink);font-weight:550;line-height:1.6;background:var(--yellow-soft);border:var(--bd);border-radius:var(--radius);box-shadow:var(--hard-sm);padding:12px 14px}.fusion-sources{margin:0;font-size:var(--text-sm);color:var(--info);line-height:1.6;background:var(--info-soft);border:var(--bd);border-radius:var(--radius);padding:8px 12px}.fusion-sources b{font-weight:800}.pc-ops{display:flex;flex-direction:column;gap:10px}.pc-op{display:grid;grid-template-columns:54px 1fr;overflow:hidden;background:var(--card);border:var(--bd);border-radius:var(--radius);box-shadow:var(--hard-sm)}.pc-op-seq{background:var(--ink);color:var(--yellow);display:grid;place-items:center;font-family:var(--mono);font-size:21px;font-weight:800;font-variant-numeric:tabular-nums;padding:8px 0}.pc-op-body{padding:11px 13px;display:flex;flex-direction:column;gap:7px;min-width:0}.pc-op-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.pc-op-name{font-size:var(--text-md);font-weight:800}.pc-badge{font-size:12px;font-weight:700;background:var(--info-soft);color:var(--info);border:2px solid var(--info);border-radius:6px;padding:1px 9px;white-space:nowrap}.pc-badge.tbd{background:transparent;color:var(--orange);border-color:var(--orange);border-style:dashed}.pc-op-notes{margin:0;font-size:var(--text-sm);color:var(--ink-2)}.pc-risk{display:flex;gap:8px;align-items:flex-start;background:var(--error-soft);border-left:4px solid var(--orange);border-radius:0 5px 5px 0;padding:6px 10px}.pc-risk-tag{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--orange);flex:none;margin-top:2px}.pc-risk p{margin:0;font-size:var(--text-xs);color:var(--ink-2)}.pc-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.pc-panel{border:var(--bd);border-radius:var(--radius);box-shadow:var(--hard-sm);padding:13px 15px;background:var(--card)}.pc-panel-h{margin:0 0 11px;font-size:var(--text-md);font-weight:800;display:flex;align-items:baseline;gap:8px}.pc-panel-h span{font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--info)}.pc-list{margin:0;padding:0;list-style:none;counter-reset:pc;display:flex;flex-direction:column;gap:9px}.pc-list li{display:flex;gap:9px;font-size:var(--text-sm);color:var(--ink-2);counter-increment:pc}.pc-list li:before{content:counter(pc);flex:none;width:19px;height:19px;border:2px solid var(--line);border-radius:5px;display:grid;place-items:center;font-size:10.5px;font-weight:800;color:var(--ink);background:var(--yellow);margin-top:1px}.pc-panel.q .pc-list li:before{background:var(--info-soft);color:var(--info);border-color:var(--info)}.asset-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;letter-spacing:.04em;border:2px solid var(--line);border-radius:6px;padding:1px 7px}.asset-badge.is-3d{background:var(--info-soft);color:var(--info);border-color:var(--info)}.asset-badge.is-2d{background:var(--card);color:var(--ink-2)}.status-pill{display:inline-flex;align-items:center;font-size:12px;font-weight:700;border:2px solid var(--line);border-radius:999px;padding:1px 10px;white-space:nowrap}.status-pill.pending{background:#eef0f3;color:var(--ink-2)}.status-pill.draft{background:var(--yellow-soft);color:var(--ink)}.status-pill.ready{background:var(--ok-soft);color:var(--ok)}.life-pill{font-family:var(--mono);font-size:10px;border-radius:999px;padding:1px 8px;border:1.5px solid var(--line-2);margin-left:6px}.life-pill.released{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}.life-pill.released:before{content:"✓ "}.life-pill.obsolete{color:var(--ink-3);text-decoration:line-through}
