.admin-nav { display:flex; flex-wrap:wrap; align-items:center; gap:6px; border:1px solid #d4d4d8; padding:10px; border-radius:10px; margin-bottom:28px; background:#fff; }
.dark .admin-nav,.dark .admin-panel,.dark .admin-stat { background:#1c1c1f; border-color:#3f3f46; }
.admin-nav-brand { font-size:11px; letter-spacing:.13em; font-weight:800; padding:10px 16px; color:#a16207; }
.dark .admin-nav-brand { color:#facc15; }
.admin-nav-item { padding:9px 13px; border-radius:6px; font-size:13px; font-weight:600; color:#71717a; }
.dark .admin-nav-item { color:#d4d4d8; }
.admin-nav-item:hover,.admin-nav-item.is-active { background:#fef3c7; color:#854d0e; }
.dark .admin-nav-item:hover,.dark .admin-nav-item.is-active { background:#3e3516; color:#fde047; }
.admin-subnav { display:flex; gap:24px; margin-top:-14px; margin-bottom:24px; font-size:13px; }
.admin-subnav a:hover,.admin-link:hover { text-decoration:underline; }
.admin-page-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; margin-bottom:26px; }
.admin-page-heading h1 { font-size:30px; font-weight:750; letter-spacing:-.03em; margin-bottom:5px; }
.admin-eyebrow { color:#a16207; font-size:10px; font-weight:800; letter-spacing:.16em; margin-bottom:6px; }
.dark .admin-eyebrow { color:#eab308; }
.admin-muted { color:#71717a; font-size:13px; }
.dark .admin-muted { color:#a1a1aa; }
.admin-small { font-size:12px; margin-top:16px; }
.admin-button { display:inline-flex; justify-content:center; align-items:center; padding:10px 15px; border:1px solid #d4d4d8; border-radius:6px; background:#f4f4f5; color:#27272a; font-size:13px; font-weight:650; cursor:pointer; }
.dark .admin-button { background:#3f3f46; border-color:#52525b; color:#fafafa; }
.admin-button:hover { border-color:#ca8a04; }
.admin-link { color:#a16207; font-size:13px; font-weight:600; }
.dark .admin-link { color:#facc15; }
.admin-stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-bottom:24px; }
.admin-stat { display:flex; flex-direction:column; gap:10px; padding:22px; border:1px solid #d4d4d8; border-radius:9px; background:#fff; min-width:0; }
.admin-stat strong { font-size:29px; font-weight:750; letter-spacing:-.02em; overflow-wrap:anywhere; }
.admin-stat small { color:#71717a; font-size:12px; }
.dark .admin-stat small { color:#a1a1aa; }
.admin-panel { border:1px solid #d4d4d8; border-radius:9px; padding:22px; margin-bottom:24px; background:#fff; }
.admin-panel h2 { font-size:16px; font-weight:700; }
.admin-section-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; margin-bottom:18px; }
.admin-health-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.admin-health-grid strong { display:block; font-size:14px; margin-top:5px; font-weight:600; }
.admin-config-row { display:flex; flex-wrap:wrap; gap:10px 24px; font-size:12px; padding-top:18px; margin-top:18px; border-top:1px solid #d4d4d8; }
.dark .admin-config-row { border-color:#3f3f46; }
.admin-dot { display:inline-block; width:7px; height:7px; background:#eab308; border-radius:50%; margin-right:6px; }
.admin-dot.is-success { background:#22c55e; }
.admin-badge { display:inline-block; white-space:nowrap; font-size:11px; padding:4px 8px; background:#e4e4e7; color:#3f3f46; border-radius:5px; font-weight:650; }
.dark .admin-badge { background:#3f3f46; color:#e4e4e7; }
.admin-badge.is-success { background:#dcfce7; color:#166534; }
.dark .admin-badge.is-success { background:#153421; color:#86efac; }
.admin-badge.is-warning { background:#fef3c7; color:#854d0e; }
.dark .admin-badge.is-warning { background:#403410; color:#fde047; }
.admin-attention { display:flex; flex-wrap:wrap; gap:10px 25px; padding:16px 20px; margin-bottom:24px; border:1px solid #ca8a04; background:#fefce8; color:#854d0e; border-radius:8px; font-size:13px; overflow-wrap:anywhere; }
.dark .admin-attention { background:#292311; color:#fde68a; }
.admin-table-wrap { width:100%; overflow-x:auto; }
.admin-table { width:100%; border-collapse:collapse; font-size:13px; text-align:left; }
.admin-table th { font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:#71717a; padding:12px 14px; }
.dark .admin-table th { color:#a1a1aa; }
.admin-table td { padding:16px 14px; border-top:1px solid #e4e4e7; vertical-align:top; }
.dark .admin-table td { border-color:#303036; }
.admin-table small { display:block; font-size:11px; color:#71717a; margin-top:5px; overflow-wrap:anywhere; }
.dark .admin-table small { color:#a1a1aa; }
.admin-empty { text-align:center; padding:25px; color:#71717a; }
.admin-activity a { display:grid; grid-template-columns:165px 1fr auto; gap:16px; padding:14px 0; border-top:1px solid #e4e4e7; align-items:center; }
.dark .admin-activity a { border-color:#303036; }
.admin-activity strong { font-size:13px; font-weight:550; overflow-wrap:anywhere; }
.admin-activity time { color:#71717a; font-size:12px; }
.admin-form-row { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; margin:20px 0; }
.admin-grow { flex:1; min-width:180px; }
.admin-form-row label { display:block; font-size:12px; margin-bottom:6px; }
.admin-form-row input:not([type=submit]):not([type=hidden]),.admin-form-row select { width:100%; min-width:150px; border:1px solid #d4d4d8; border-radius:6px; padding:9px 12px; font-size:13px; background:#fafafa; color:#18181b; }
.dark .admin-form-row input:not([type=submit]):not([type=hidden]),.dark .admin-form-row select { border-color:#52525b; background:#18181b; color:#fafafa; }
.admin-pagination { display:flex; justify-content:center; gap:20px; margin-top:20px; }
.admin-balance { font-size:32px; font-weight:750; }
.admin-details { display:grid; grid-template-columns:180px 1fr; gap:12px; font-size:13px; margin:22px 0; }
.admin-details dt { color:#71717a; }
.dark .admin-details dt { color:#a1a1aa; }
.admin-details dd { overflow-wrap:anywhere; }
.admin-timeline { padding:16px 0 0 16px; }
.admin-timeline li { border-left:2px solid #a16207; padding:0 0 24px 20px; }
.admin-timeline li>div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; font-size:13px; }
.admin-timeline p { font-size:13px; padding-top:8px; overflow-wrap:anywhere; }
@media(max-width:1000px) { .admin-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .admin-health-grid { grid-template-columns:1fr; } }
@media(max-width:600px) { .admin-stat-grid { grid-template-columns:1fr; } .admin-activity a { grid-template-columns:1fr; gap:6px; } .admin-details { grid-template-columns:1fr; gap:6px; } .admin-details dd { margin-bottom:10px; } .admin-panel { padding:15px; } .admin-nav-brand { width:100%; } }

.admin-user-email { max-width:220px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.admin-stat .admin-engagement-value { font-size:18px; line-height:1.5; }

.admin-simulation-main { display:flex; flex-direction:column; min-height:0; }
.admin-simulation-main > .admin-nav, .admin-simulation-main > .admin-subnav { flex-shrink:0; }
.admin-simulation-main > [data-controller="simulation-mode"] { flex:1; min-height:0; height:auto; }
.factory-map{--fm-bg:#101817;--fm-panel:#182220;--fm-line:#34423d;--fm-text:#e3e9e1;--fm-muted:#91a399;--fm-orange:#efac49;position:relative;height:100%;display:flex;flex-direction:column;background:var(--fm-bg);color:var(--fm-text);font-family:inherit}
.factory-map button{cursor:pointer;transition:background .15s,border-color .15s}
.factory-map button:focus-visible,.factory-map select:focus-visible,.factory-map input:focus-visible{outline:2px solid #f9c675;outline-offset:3px}
.factory-map button:disabled{cursor:default;opacity:.35}
.fm-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 22px;background:#18221fee;border-bottom:1px solid var(--fm-line);flex-wrap:wrap}
.fm-brand{display:flex;align-items:center;gap:12px}.fm-brand-mark{font-size:31px;color:var(--fm-orange)}
.fm-brand strong{font-size:16px;font-weight:650;letter-spacing:.02em}.fm-brand small{display:block;font-size:8px;letter-spacing:.18em;color:var(--fm-muted);margin-top:3px}
.fm-preview{font-size:8px;letter-spacing:.12em;padding:4px 6px;border:1px solid #75613c;color:#d7bd84;border-radius:4px;margin-left:2px}
.fm-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.fm-actions button,.fm-controls button,.fm-empty button{border:1px solid #405047;background:#26342d;border-radius:6px;padding:8px 12px;font-size:11px;font-weight:600;color:#dfebdf}
.fm-actions button:hover,.fm-controls button:hover{background:#35483b;border-color:#6f8575}
.factory-map .fm-primary{background:var(--fm-orange);border-color:var(--fm-orange);color:#25281b}
.factory-map .fm-primary:hover{background:#fbc577}
.fm-divider{width:1px;height:20px;background:var(--fm-line);margin:0 5px}
.fm-workspace{display:flex;flex:1;min-height:0}.fm-stage{position:relative;flex:1;min-width:0;overflow:hidden;background:radial-gradient(ellipse at 45% 40%,#1a2923,transparent 70%)}
.fm-canvas{width:100%;height:100%;display:block;touch-action:none;user-select:none;outline:none}
.fm-metrics{position:absolute;left:22px;top:18px;display:flex;gap:22px;z-index:2;pointer-events:none}
.fm-metric small{display:block;font-size:8px;letter-spacing:.13em;color:var(--fm-muted);text-transform:uppercase;margin-bottom:3px}
.fm-metric strong{font-family:ui-monospace,monospace;font-size:14px;color:#dbe7d9;font-weight:500}
.fm-metric strong.is-warning{color:#f3bb6d}
.fm-node{cursor:grab;outline:none}.fm-node.is-selected .fm-node-body,.fm-node:focus .fm-node-body{stroke:#ffc976;stroke-width:2.5}
.fm-node.is-selected{filter:brightness(1.18)}.fm-node.is-dimmed{opacity:.55}
.fm-belt.is-dimmed,.fm-junction.is-dimmed{opacity:.32}
.fm-node-shadow{fill:#060c0b;opacity:.65}.fm-node-body{fill:#25302c;stroke:#526456;stroke-width:1.2}
.fm-node-accent{stroke:#809877;stroke-width:3;fill:none}.fm-node.is-resource .fm-node-accent{stroke:#7bacba}.fm-node.is-resource .fm-node-body{fill:#203035;stroke:#477282}
.fm-node-title{font-size:11px;font-weight:650;fill:#e1e9db;pointer-events:none}
.fm-node-recipe{font-size:10px;fill:#b6c5ab;pointer-events:none}
.fm-node-count{font-size:10px;font-family:ui-monospace,monospace;fill:#e7bb70}
.fm-node-rule{stroke:#4b5a4b;stroke-width:1}.fm-node-subtitle{fill:#a8b7a3;font-size:9px;pointer-events:none}
.fm-item-label{fill:#cfdbcd;font-size:9px;pointer-events:none}.fm-item-rate{fill:#8fac92;font-size:8px;font-family:ui-monospace,monospace;pointer-events:none}
.fm-good{fill:#a0d49d}.fm-warning{fill:#edb357}
.fm-port{cursor:crosshair;outline:none}.fm-port-hit{fill:transparent;pointer-events:all}.fm-port-socket{fill:#1a251e;stroke:#a9bb9b;stroke-width:1.7}.fm-port.output .fm-port-socket{stroke:#e3b669}
.fm-port-arrow{stroke:#e2e5d3;fill:none;stroke-width:1.4;pointer-events:none}
.fm-port:hover .fm-port-socket,.fm-port:focus .fm-port-socket,.fm-port.is-compatible .fm-port-socket{fill:#698550;stroke:#e4ffc4;stroke-width:3}
.fm-belt{outline:none}.fm-belt path{fill:none;stroke-linejoin:round;stroke-linecap:round}
.fm-belt-shadow{stroke:#0c1412;stroke-width:15}.fm-belt-bed{stroke:#796443;stroke-width:9}
.fm-belt-motion{stroke:#b6a67e;stroke-width:3;stroke-dasharray:2 10;opacity:.65}
.fm-belt.is-flowing .fm-belt-bed{stroke:#9d7945}.fm-belt.is-flowing .fm-belt-motion{stroke:#ffe0a3;animation:fm-convey 1.6s linear infinite}
.fm-belt.is-selected .fm-belt-bed,.fm-belt:focus .fm-belt-bed{stroke:#daab52}
.fm-belt-hit{stroke:transparent;stroke-width:23;cursor:pointer}
.fm-belt.is-blocked .fm-belt-bed{stroke:#ba6350;stroke-dasharray:6 7}.fm-belt.is-blocked .fm-belt-motion{display:none}
.fm-junction rect{fill:#d9b069;stroke:#352f21;stroke-width:3}.fm-junction text{font-size:10px;fill:#292e21;font-weight:800;pointer-events:none}
.fm-preview-belt{fill:none;stroke:#dbd89c;stroke-width:4;stroke-dasharray:6 8;pointer-events:none}
.fm-empty{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);max-width:360px;width:80%;text-align:center}.fm-empty[hidden]{display:none}.fm-empty>span{font-size:9px;letter-spacing:.19em;color:#a7ba92}
.fm-empty h2{font-size:28px;line-height:1.18;font-weight:600;margin:16px 0;color:#e2ead9}.fm-empty p{font-size:12px;line-height:1.6;color:var(--fm-muted);margin-bottom:22px}
.fm-goal{position:absolute;left:22px;bottom:20px;width:244px;padding:13px 15px;background:#1c2925eb;border:1px solid #465546;border-radius:9px;box-shadow:0 6px 24px #0002}
.fm-goal-toggle{font-size:11px;display:flex;width:100%;justify-content:space-between;text-align:left;color:#d8e2c8}
.fm-goal label{font-size:10px;color:#9fb39e;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}
.fm-goal select,.fm-goal input{max-width:138px;background:#17201b;border:1px solid #4a5a46;border-radius:4px;color:#e0e8d9;padding:5px;font-size:10px}
.fm-goal input{width:75px}.fm-goal-progress{height:4px;margin:13px 0 7px;background:#364635;border-radius:2px;overflow:hidden}.fm-goal-progress>div{height:100%;background:#a7c47a;transition:width .3s}
.fm-goal p{font-size:10px;color:#b9c9a9;margin:0}
.fm-controls{position:absolute;right:22px;bottom:20px;display:flex;gap:4px;align-items:center;background:#1c2925eb;border:1px solid #465546;padding:5px;border-radius:8px}
.fm-controls button{padding:5px 9px;background:transparent;border-color:transparent}.fm-controls>span:not(.fm-divider){font-size:10px;font-family:ui-monospace,monospace;min-width:35px;text-align:center;color:#b5c6b0}
.fm-connection{position:absolute;top:75px;left:50%;transform:translateX(-50%);background:#dcc487;color:#253021;border-radius:6px;padding:9px 15px;font-size:11px;box-shadow:0 5px 20px #0004;pointer-events:none;z-index:4}
.fm-inspector{display:none;width:300px;flex-shrink:0;border-left:1px solid var(--fm-line);background:#1a2421;overflow:auto;transform:none!important}
.factory-map.has-inspector .fm-inspector{display:flex;flex-direction:column}.fm-inspector>header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--fm-line);font-size:9px;color:#a8b59f;letter-spacing:.12em}
.fm-inspector>header button{font-size:20px;line-height:18px;color:#b3c1ac}.fm-inspector [data-panel-content]{padding:18px 16px;overflow:auto;flex:1}
.fm-inspector input,.fm-inspector select,.fm-inspector textarea{background:#14201b!important;color:#dae4d4!important;border-color:#4b5e4a!important}
.fm-inspector [data-panel-content] .text-slate-500,.fm-inspector [data-panel-content] .text-slate-400{color:#9bac97}
.fm-inspector [data-panel-content] .text-slate-900,.fm-inspector [data-panel-content] .text-slate-700{color:#dde6d8}
.fm-inspector [data-panel-content] button[data-create-submit],.fm-inspector [data-panel-duplicate]{background:#d5ab62!important;color:#202c20!important}
.fm-inspector-note{font-size:12px;color:#a3b59c;line-height:1.7}.fm-inspector h3{font-size:18px;color:#e2e8d8;margin-bottom:16px}
.fm-belt-stat{font-size:26px;color:#e8c27d;font-family:ui-monospace,monospace;margin:10px 0}
.fm-belt-priority{display:block;font-size:12px;margin:20px 0;color:#b8c8ad}.fm-belt-priority input{margin-top:6px;width:100%;padding:8px;border:1px solid;border-radius:4px}
.fm-remove{padding:8px;border:1px solid #925d50;border-radius:5px;color:#e3a590;font-size:11px;width:100%;margin-top:16px}
.fm-footer{display:flex;justify-content:space-between;gap:14px;padding:8px 22px;border-top:1px solid var(--fm-line);background:#18221f;font-size:9px;letter-spacing:.025em;color:#91a38c}
.fm-footer [role=status]{color:#bacfa4}
.fm-error{position:absolute;left:22px;bottom:45px;max-width:480px;background:#4b2924;color:#ffe5d7;border:1px solid #ad7160;border-radius:8px;padding:13px 16px;font-size:12px;z-index:10}
.fm-error button{margin-left:16px;text-decoration:underline}
.factory-map-active #simulation_summary_section,.factory-map-active #summary_toggle{display:none!important}
@keyframes fm-convey{to{stroke-dashoffset:-24}}
@media(prefers-reduced-motion:reduce){.fm-belt.is-flowing .fm-belt-motion{animation:none}}
@media(max-width:1050px){.fm-toolbar{padding:10px 14px;gap:10px}.fm-brand small,.fm-preview{display:none}.fm-actions button{padding:7px 9px}.fm-metrics{gap:12px;left:14px}.fm-inspector{width:265px}.fm-footer>span:last-child{display:none}.fm-goal{width:210px;left:14px}.fm-controls{right:14px}.fm-goal select{max-width:115px}}
@media(max-width:750px){.fm-brand{display:none}.fm-inspector{position:absolute;right:0;top:65px;bottom:30px;z-index:8;width:min(300px,85%)}.fm-goal{bottom:65px}.fm-metrics{gap:12px}.fm-metric small{font-size:7px}.fm-metric strong{font-size:11px}.fm-controls{bottom:12px;left:14px;right:auto}}


/* Supply status remains visible on idle belts; movement alone is not a status. */
.fm-belt.supply-supplied .fm-belt-bed{stroke:#368852}
.fm-belt.supply-supplied .fm-belt-motion{stroke:#b3f2bb}
.fm-belt.supply-partial .fm-belt-bed{stroke:#ad8732}
.fm-belt.supply-partial .fm-belt-motion{stroke:#ffe699}
.fm-belt.supply-starved .fm-belt-bed{stroke:#ae5151}
.fm-belt.supply-starved .fm-belt-motion{stroke:#ffb6af}
.fm-port.input.supply-supplied .fm-port-socket{stroke:#7fdd97}
.fm-port.input.supply-partial .fm-port-socket{stroke:#f0ce65}
.fm-port.input.supply-starved .fm-port-socket{stroke:#ee8f88}
.fm-belt.is-selected .fm-belt-shadow,.fm-belt:focus .fm-belt-shadow{stroke:#efca85}
.fm-belt.is-blocked .fm-belt-bed{stroke:#dd7768;stroke-dasharray:6 7}
.fm-belt-legend{position:absolute;right:22px;top:19px;display:flex;gap:10px;font-size:9px;color:#9eafa4;pointer-events:none}
.fm-belt-legend .full{color:#95dea4}.fm-belt-legend .partial{color:#efd078}.fm-belt-legend .none{color:#f09d95}
.fm-goal{width:278px}
.fm-goal summary{cursor:pointer;font-size:11px;list-style:none;display:flex;justify-content:space-between;color:#d8e2c8}
.fm-goal summary span{font-size:9px;color:#9bae9e}
.fm-goal p.fm-goal-help{font-size:11px;line-height:1.6;color:#b3c2ac;margin-top:12px}
@media(max-width:1100px){.fm-belt-legend{top:62px;left:14px;right:auto}}
.factory-sharing-page { max-width: 1080px; margin: 0 auto 40px; }
.sharing-back, .sharing-text-link, .share-toolbar-link { color: var(--color-brand-500, #b88700); font-size: 13px; text-decoration: none; }
.share-toolbar-link { padding: 6px 12px; border: 1px solid #94a3b844; border-radius: 6px; font-weight: 600; }
.sharing-back:hover, .sharing-text-link:hover { text-decoration: underline; }
.sharing-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 28px 0; }
.sharing-eyebrow { color: #b88700; font: 600 11px monospace; letter-spacing: .12em; }
.sharing-heading h1 { font-size: 30px; font-weight: 750; margin: 6px 0; overflow-wrap: anywhere; }
.sharing-heading p, .sharing-card p { font-size: 14px; opacity: .75; line-height: 1.6; }
.sharing-badge { display: inline-block; border: 1px solid #94a3b844; border-radius: 20px; padding: 6px 10px; font-size: 11px; white-space: nowrap; }
.sharing-card { border: 1px solid #94a3b844; background: var(--color-surface-primary, white); border-radius: 12px; padding: 24px; margin-bottom: 20px; }
.sharing-card h2 { font-size: 17px; font-weight: 650; margin-bottom: 8px; }
.sharing-link-card { border-color: #b8870088; }
.sharing-link-row { display: flex; gap: 8px; margin-top: 16px; }
.sharing-link-row input[type="text"] { min-width: 0; flex: 1; background: var(--color-surface-secondary); border: 1px solid #94a3b844; border-radius: 6px; padding: 10px; font-size: 13px; }
.sharing-button { display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 7px; padding: 10px 16px; font-size: 13px; font-weight: 650; background: #e5b100; color: #171717; cursor: pointer; white-space: nowrap; }
.sharing-button:hover { filter: brightness(1.08); }
.sharing-button.secondary { background: transparent; color: inherit; border-color: #94a3b866; }
.sharing-button.danger { background: transparent; color: #dc4545; border-color: #dc454566; }
.sharing-button:focus-visible, .shared-factory-tabs button:focus-visible { outline: 2px solid #e5b100; outline-offset: 3px; }
.sharing-includes { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 20px 0; font-size: 13px; line-height: 1.7; }
.sharing-includes dt { font-weight: 650; margin-bottom: 4px; }
.sharing-includes dd { opacity: .8; }
.sharing-checkbox { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; padding: 16px 0; border-top: 1px solid #94a3b833; }
.sharing-checkbox input { margin-top: 3px; accent-color: #e5b100; }
.sharing-checkbox small { display: block; opacity: .6; margin-top: 4px; }
.sharing-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.sharing-notice { background: #b8870018; border-left: 3px solid #e5b100; padding: 12px; font-size: 13px; margin-top: 16px; }
.sharing-notice a { text-decoration: underline; }
.sharing-history { margin-top: 16px; }
.sharing-history li { display: flex; gap: 20px; align-items: center; padding: 16px 0; border-top: 1px solid #94a3b833; font-size: 13px; }
.sharing-history li > div { flex: 1; }
.sharing-history li > div span { display: block; opacity: .6; font-size: 11px; margin-top: 4px; }
.sharing-revoke { display: flex; gap: 24px; align-items: center; }
.sharing-revoke > div { flex: 1; }
.clone-attribution { padding: 8px 16px; font-size: 12px; color: var(--color-slate-500, #84909e); border-bottom: 1px solid #94a3b833; }
.shared-factory-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 16px 24px; background: var(--color-surface-primary); border-bottom: 1px solid #94a3b833; }
.shared-factory-title { min-width: 0; }
.shared-factory-heading h1 { font-size: 23px; font-weight: 700; margin: 6px 0 3px; overflow-wrap: anywhere; }
.shared-factory-heading p { font-size: 12px; opacity: .75; }
.shared-factory-actions { text-align: center; flex-shrink: 0; }
.shared-factory-actions small { display: block; font-size: 11px; opacity: .6; margin-top: 5px; }
.shared-factory-toolbar { display: flex; flex-shrink: 0; align-items: center; gap: 12px; padding: 8px 16px; background: var(--color-surface-primary); border-bottom: 1px solid #94a3b833; }
.shared-factory-toolbar > :last-child { margin-left: auto; }
.shared-factory-tabs { display: flex; gap: 3px; }
.shared-factory-tabs button { padding: 6px 12px; border-radius: 5px; font-size: 12px; cursor: pointer; }
.shared-factory-content { flex: 1; min-height: 0; overflow: hidden; position: relative; }
.shared-factory-list { height: 100%; overflow: auto; padding: 24px; }
.shared-description { font-size: 14px; margin-bottom: 24px; white-space: pre-wrap; }
.shared-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px; }
.shared-summary > div { border-left: 2px solid #b88700; padding-left: 14px; }
.shared-summary strong { display: block; font-size: 22px; }
.shared-summary span { font-size: 11px; opacity: .65; }
.shared-resources { display: flex; flex-wrap: wrap; gap: 20px; }
.shared-resources > div { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.shared-resources span { opacity: .7; }
.shared-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 430px), 1fr)); gap: 16px; }
.shared-group { margin-bottom: 0; min-width: 0; }
.shared-group header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.shared-group header h2 { margin: 0; overflow-wrap: anywhere; }
.shared-group-rates { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 18px; }
.shared-group h3 { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; opacity: .65; margin-bottom: 8px; }
.shared-rate { display: flex; flex-direction: column; gap: 4px; font-size: 12px; margin-bottom: 12px; }
.shared-rate progress { width: 100%; height: 5px; accent-color: #65b84d; }
.shared-rate small { font-size: 10px; opacity: .6; }
.shared-notes { border-top: 1px solid #94a3b833; padding-top: 14px; margin-top: 12px; overflow-wrap: anywhere; }
.shared-version-menu { position: relative; font-size: 12px; }
.shared-version-menu summary { cursor: pointer; }
.shared-version-menu nav { position: absolute; z-index: 40; top: 100%; background: var(--color-surface-primary); border: 1px solid #94a3b844; padding: 6px; min-width: 130px; max-height: 260px; overflow: auto; border-radius: 6px; }
.shared-version-menu a { display: block; padding: 8px; }
.shared-version-menu a:hover, .shared-version-menu a[aria-current] { background: #b8870022; }
@media (max-width: 640px) {
  .sharing-heading, .sharing-revoke { flex-direction: column; align-items: flex-start; }
  .sharing-includes { grid-template-columns: 1fr; gap: 12px; }
  .sharing-card { padding: 16px; }
  .sharing-link-row { flex-wrap: wrap; }
  .sharing-link-row input[type="text"] { flex-basis: 100%; }
  .sharing-history li { gap: 10px; flex-wrap: wrap; }
  .shared-factory-heading { padding: 10px 12px; gap: 12px; }
  .shared-factory-heading h1 { font-size: 17px; }
  .shared-factory-actions .sharing-button { padding: 8px; font-size: 11px; white-space: normal; }
  .shared-factory-actions { max-width: 130px; }
  .shared-factory-actions small { display: none; }
  .shared-factory-toolbar { gap: 6px; padding: 6px; flex-wrap: wrap; }
  .shared-factory-tabs button { padding: 6px 8px; }
  .shared-factory-list { padding: 12px; }
  .shared-summary { grid-template-columns: 1fr 1fr; }
}
.sharing-options { margin-top: 20px; border: 0; }
.sharing-options legend { font-size: 13px; font-weight: 650; margin-bottom: 10px; }
.sharing-options label { display: inline-flex; vertical-align: top; width: 48%; gap: 10px; padding: 12px; border: 1px solid #94a3b844; border-radius: 8px; margin-right: 1%; cursor: pointer; font-size: 13px; }
.sharing-options label:has(input:checked) { border-color: #c49a00; background: #e5b1000c; }
.sharing-options input { margin-top: 3px; accent-color: #c49a00; }
.sharing-options small { display: block; font-size: 11px; opacity: .65; line-height: 1.6; margin-top: 3px; }
.sharing-fine-print { font-size: 11px !important; opacity: .65; margin-top: 16px; }
.factory-social { margin-top: 12px; font-size: 12px; }
.factory-social summary { cursor: pointer; color: #b88700; font-weight: 600; }
.factory-social-body { margin-top: 12px; text-align: left; }
.factory-social-body > img { width: 100%; max-width: 600px; border-radius: 8px; border: 1px solid #94a3b844; margin: 12px 0; }
.shared-factory-actions .factory-social[open] .factory-social-body { position: absolute; top: 100%; right: 0; z-index: 60; padding: 20px; border-radius: 10px; border: 1px solid #94a3b866; width: min(540px, calc(100vw - 32px)); max-height: 65dvh; overflow: auto; background: var(--color-surface-primary); box-shadow: 0 12px 40px #0005; }
.factory-gallery { max-width: 1280px; }
.gallery-search { margin-bottom: 28px; max-width: 540px; }
.factory-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 20px; }
.gallery-factory { padding: 0; overflow: hidden; transition: border-color .15s, transform .15s; }
.gallery-factory:hover { border-color: #b88700; transform: translateY(-2px); }
.gallery-factory > img { width: 100%; aspect-ratio: 1200/630; background: #171b20; }
.gallery-factory > div { padding: 20px; }
.gallery-factory h2 { margin: 8px 0 3px; overflow-wrap: anywhere; }
.gallery-factory p { margin-bottom: 18px; }
.gallery-empty { text-align: center; padding: 48px 24px; }
@media (max-width: 640px) { .sharing-options label { width: 100%; margin: 0 0 8px; } }
.shared-factory-actions .factory-social { position: relative; }
.sharing-title-field { margin: 20px 0; }
.sharing-title-field label { display: block; font-size: 13px; font-weight: 650; margin-bottom: 8px; }
.sharing-title-field input { width: 100%; border: 1px solid #94a3b866; border-radius: 6px; background: var(--color-surface-secondary); padding: 10px 12px; color: inherit; }
.sharing-title-field p { font-size: 12px; margin-top: 6px; }

/* Compact owner sharing panel. */
.sharing-manager { max-width: 880px; }
.sharing-manager .sharing-heading { margin: 18px 0; }
.sharing-manager .sharing-heading h1 { font-size: 26px; }
.sharing-manager-card { padding: 24px; }
.sharing-power { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.sharing-power h2 { margin: 0; }
.sharing-power p { margin: 3px 0 0; font-size: 12px; }
.sharing-power-switch { display: inline-flex; align-items: center; gap: 9px; padding: 8px 0 8px 8px; font-size: 13px; font-weight: 650; cursor: pointer; color: inherit; background: none; border: 0; }
.sharing-switch-track { display: block; width: 40px; height: 24px; border-radius: 20px; background: #94a3b855; border: 1px solid #94a3b866; padding: 3px; }
.sharing-switch-track > span { display: block; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px #0004; }
.sharing-power-switch.is-on .sharing-switch-track { background: #e5b100; border-color: #e5b100; }
.sharing-power-switch.is-on .sharing-switch-track > span { transform: translateX(16px); background: #171717; }
.sharing-power-switch:focus-visible { outline: 2px solid #e5b100; outline-offset: 4px; border-radius: 6px; }
.factory-social-inline { margin-top: 18px; }
.factory-social-inline .factory-social-body, .factory-social-inline .sharing-link-row { margin-top: 0; }
.sharing-copy-status:empty { display: none; }
.sharing-image-preview { margin-top: 12px; }
.sharing-image-preview summary { font-size: 12px; color: inherit; opacity: .75; }
.sharing-image-preview img { display: block; width: 100%; max-width: 600px; margin-top: 12px; border-radius: 8px; border: 1px solid #94a3b844; }
.sharing-settings-form { margin-top: 22px; padding-top: 2px; border-top: 1px solid #94a3b833; }
.sharing-manager .sharing-title-field { margin: 18px 0; }
.sharing-controls-grid { display: flex; flex-wrap: wrap; column-gap: 36px; row-gap: 18px; }
.sharing-segment { min-width: 0; border: 0; margin: 0; padding: 0; }
.sharing-segment legend { font-size: 12px; font-weight: 650; margin-bottom: 7px; }
.sharing-segment-buttons { display: inline-flex; padding: 3px; gap: 3px; border: 1px solid #94a3b844; border-radius: 8px; background: var(--color-surface-secondary); }
.sharing-segment label { position: relative; cursor: pointer; }
.sharing-segment input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.sharing-segment label span { display: block; padding: 7px 14px; font-size: 12px; border-radius: 5px; }
.sharing-segment input:checked + span { background: #e5b100; color: #171717; font-weight: 650; }
.sharing-segment input:focus-visible + span { outline: 2px solid #e5b100; outline-offset: 2px; }
.sharing-segment p { margin-top: 5px; font-size: 11px; }
.sharing-settings-form > .sharing-actions { margin-top: 18px; }
.sharing-off-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.sharing-off-actions span { font-size: 12px; opacity: .65; }
.sharing-manager .sharing-button:disabled { opacity: .4; cursor: default; filter: none; }
.sharing-extras { margin-top: 22px; border-top: 1px solid #94a3b833; padding-top: 16px; }
.sharing-extras > summary { cursor: pointer; font-size: 13px; font-weight: 600; }
.sharing-extras-body { padding-top: 8px; }
.sharing-extra-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; font-size: 13px; margin: 16px 0; }
.sharing-extra-row strong { font-weight: 600; }
.sharing-extra-row p, .sharing-extra-row small { display: block; font-size: 12px; margin: 3px 0 0; opacity: .7; }
.sharing-extra-row select { border: 1px solid #94a3b866; border-radius: 6px; padding: 8px 30px 8px 10px; font-size: 12px; background-color: var(--color-surface-secondary); color: inherit; }
.sharing-manager .sharing-checkbox { padding: 12px 0 0; }
@media (max-width: 640px) {
  .sharing-manager-card { padding: 16px; }
  .sharing-manager .sharing-power { align-items: flex-start; }
  .sharing-extra-row { flex-wrap: wrap; }
  .sharing-controls-grid { gap: 16px; }
  .sharing-manager .sharing-actions { gap: 8px; }
  .sharing-manager .sharing-button { padding: 9px 12px; }
}
.simulations-training { margin: 28px 0; border-top: 1px solid #94a3b833; padding-top: 16px; font-size: 13px; color: #526172; }
.dark .simulations-training { color: #a3adba; }
.simulations-training summary { cursor: pointer; width: fit-content; }
.simulations-training summary span { margin-left: 8px; font-size: 12px; opacity: .7; }
.simulations-training ul { margin-top: 12px; max-width: 720px; }
.simulations-training li { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 10px 0; }
.simulations-training li strong { font-weight: 500; }
.simulations-training li div span { display: block; font-size: 11px; opacity: .7; margin-top: 3px; }
.simulations-training a { white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; }
.simulations-training summary:focus-visible, .simulations-training a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.training-link { color: var(--color-slate-500, #64748b); }
.dark .training-link { color: var(--color-slate-400, #94a3b8); }
.training-link:hover { text-decoration: underline; }
.training-lesson-menu { position: absolute; top: calc(100% + 8px); left: 0; width: min(340px, 85vw); max-height: 45vh; overflow-y: auto; z-index: 60; }
.training-lesson-button { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; width: 100%; padding: 12px 16px; text-align: left; font-size: 14px; }
.training-lesson-button:hover { background: var(--color-surface-secondary); }
.training-dock-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.training-audio { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; max-width: 520px; }
.training-audio audio { width: 300px; max-width: 100%; height: 34px; }
.training-audio [role="status"]:empty { display: none; }
.training-details-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 24px; }
.training-briefing-content { max-height: 28vh; overflow-y: auto; }
.training-objective { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.training-objective strong { font-variant-numeric: tabular-nums; }
@media (max-width: 640px) {
  .training-dock-heading { flex-direction: column; align-items: stretch; gap: 8px; }
  .training-audio { gap: 6px; }
  .training-audio audio { flex: 1; width: 200px; min-width: 0; }
  .training-details-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .training-lesson-menu { position: fixed; left: 16px; right: 16px; top: auto; width: auto; margin-top: 8px; }
}.dark .training-audio audio { color-scheme: dark; }
@media (max-width: 640px) {
  .training-workspace #simulation_summary_section { position: absolute; inset: 0 0 0 auto; z-index: 25; }
  .training-workspace #simulation_summary_section aside { width: min(320px, 90vw); box-shadow: -8px 0 24px #0003; }
}

.training-objective-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: 8px; }
.training-objective-card { padding: 10px 12px; border: 1px solid #94a3b844; border-radius: 8px; background: var(--color-surface-secondary); min-width: 0; }
.training-objective-card.is-met { border-color: #22c55e66; }
.training-objective-label { display: flex; align-items: baseline; gap: 6px; font-size: 12px; min-height: 32px; line-height: 1.35; }
.training-objective-value { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 13px; margin: 4px 0 7px; font-variant-numeric: tabular-nums; }
.training-objective-value small { font-size: 10px; opacity: .75; white-space: nowrap; }
.training-objective-value strong { overflow-wrap: anywhere; }
.training-objective-track { height: 5px; background: #94a3b833; border-radius: 4px; overflow: hidden; }
.training-objective-track > div { height: 100%; background: #eab308; transition: width .2s ease; }
.training-objective-card.is-met .training-objective-track > div { background: #22c55e; }
.training-hints > summary { color: #ca8a04; }
.dark .training-hints > summary { color: #facc15; }
.training-hints [aria-label="Optional hints"] { margin-top: 0; border-top: 0; padding-top: 0; }
@media (max-width: 640px) {
  .training-objective-grid { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 210px; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x proximity; }
  .training-objective-card { scroll-snap-align: start; }
}
.training-recipe-selector { border: 1px solid #eab30866; border-radius: 8px; padding: 10px; }
.training-recipe-target { color: #a16207; font-size: 11px; margin: 6px 0; }
.dark .training-recipe-target { color: #facc15; }
.fullscreen-workspace { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.workspace-guide { flex-shrink: 0; }
.workspace-guide-toggle, .workspace-guide-close { display: none; }
.fullscreen-workspace.is-expanded { overflow: hidden; position: fixed; inset: 0; z-index: 100; width: 100%; height: 100%; height: 100dvh; background: var(--color-surface-primary, #fff); }
.fullscreen-workspace.is-expanded .workspace-guide-toggle { display: inline-flex; color: #a16207; }
.dark .fullscreen-workspace.is-expanded .workspace-guide-toggle { color: #facc15; }
.fullscreen-workspace.is-expanded .workspace-guide:not([hidden]) { position: absolute; z-index: 50; top: var(--workspace-toolbar-height, 56px); right: 12px; width: min(850px, calc(100% - 24px)); max-height: calc(100% - var(--workspace-toolbar-height, 56px) - 12px); overflow-y: auto; border: 1px solid #94a3b866; border-radius: 0 0 10px 10px; box-shadow: 0 12px 36px #0006; background: var(--color-surface-primary, #fff); }
.fullscreen-workspace.is-expanded .workspace-guide-close { display: block; position: sticky; top: 0; z-index: 1; width: 100%; padding: 10px 16px; text-align: right; font-size: 12px; background: var(--color-surface-primary, #fff); border-bottom: 1px solid #94a3b833; }
.fullscreen-workspace.is-expanded .training-briefing-content { max-height: none; }
@media (max-width: 640px) {
  .fullscreen-workspace.is-expanded .workspace-guide:not([hidden]) { right: 0; width: 100%; border-radius: 0; }
}

.fullscreen-workspace.is-expanded [data-fullscreen-chrome] { display: none; }

@media (max-width: 768px) {
  .fullscreen-workspace .ai-workspace-panel { top: var(--workspace-toolbar-bottom, 64px); }
}
/* Shared shell, credit overview and draft review. */
.site-nav { flex-shrink: 0; }
.site-nav img { max-width: 245px; object-fit: contain; }
.ai-credit-status { padding: 12px; font-size: 13px; border-bottom: 1px solid #e2e8f0; background: #f8fafc; }
.dark .ai-credit-status { background: #1b2025; border-color: #35383e; }
.ai-workspace-panel { width: 360px; max-width: 100vw; }
.draft-review-dialog { margin: auto; padding: 0; width: min(720px, calc(100vw - 32px)); max-height: 85dvh; border-radius: 12px; border: 1px solid #cbd5e1; color: #0f172a; background: #fff; }
.dark .draft-review-dialog { background: #18181b; color: #f1f5f9; border-color: #3f3f46; }
.draft-review-dialog::backdrop { background: #0009; }
.draft-review-content { max-height: 58dvh; overflow-y: auto; }
.billing-page { max-width: 1000px; margin: 0 auto; padding-bottom: 48px; }
.billing-intro { max-width: 660px; }
.billing-benefits { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.billing-benefits p { font-size: 13px; line-height: 1.65; margin-top: 6px; color: #64748b; }
.dark .billing-benefits p { color: #a1a1aa; }
.simulation-more { position: relative; }
.simulation-more summary { cursor: pointer; list-style: none; padding: 6px 10px; font-size: 12px; }
.simulation-more summary::-webkit-details-marker { display: none; }
.simulation-more-menu { position: absolute; right: 0; top: 100%; min-width: 160px; padding: 8px; border: 1px solid #cbd5e1; border-radius: 8px; background: white; box-shadow: 0 8px 24px #0002; z-index: 40; }
.dark .simulation-more-menu { background: #27272a; border-color: #52525b; }
.simulation-more-menu a { display: block; padding: 8px; font-size: 13px; border-radius: 4px; }
.simulation-more-menu a:hover { background: #8882; }
@media(max-width: 767px) {
  .ai-workspace-panel { position: fixed; z-index: 45; top: 64px; right: 0; bottom: 0; height: auto; box-shadow: -12px 0 36px #0005; }
  .billing-benefits { grid-template-columns: 1fr; gap: 12px; }
  .site-nav img { max-width: 210px; }
}

/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *


 */
