:root{--bg: #f1f3f6;--panel: #ffffff;--panel-2: #f8fafc;--border: #d7dde5;--border-strong: #b9c3ce;--text: #1c2530;--muted: #64748b;--accent: #2563eb;--accent-soft: #e8f0fe;--danger: #dc2626;--warn: #d97706;--ok: #059669;--paper: #ffffff;--ink: #16202b;--radius: 6px;--font: "Inter", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;--mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);font-size:13px;color:var(--text);background:var(--bg);overflow:hidden;user-select:none;-webkit-user-select:none;overscroll-behavior:none}input,textarea,select,option,[contenteditable=true]{user-select:text;-webkit-user-select:text}img{-webkit-user-drag:none}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:10px;padding:6px 10px;background:var(--panel);border-bottom:1px solid var(--border);flex:none}.brand{font-weight:700;letter-spacing:-.2px;display:flex;align-items:center;gap:7px}.brand svg{color:var(--accent)}.brand small{font-weight:500;color:var(--muted)}.tabs{display:flex;gap:2px;margin-left:6px}.tab{padding:5px 12px;border:1px solid transparent;border-radius:var(--radius);background:transparent;cursor:pointer;color:var(--muted);font-weight:500}.tab:hover{background:var(--panel-2);color:var(--text)}.tab.active{background:var(--accent-soft);color:var(--accent);border-color:#c7dbfd;font-weight:600}.spacer{flex:1}.topbar.app-bar{display:grid;grid-template-columns:1fr auto 1fr}.topbar-left,.topbar-right{display:flex;align-items:center;gap:10px;min-width:0}.topbar-right{justify-content:flex-end}.topbar.app-bar .tabs{margin-left:0;justify-self:center}.brand-link{background:none;border:0;padding:4px 6px;margin:-4px 0;border-radius:var(--radius);font:inherit;font-weight:700;color:inherit;cursor:pointer}.brand-link:hover{background:var(--bg)}.topbar-project{color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px;padding-right:4px}.btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--panel-2);border-color:var(--border-strong)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:#1d4ed8}.btn.danger{color:var(--danger)}.btn.danger.solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger.solid:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.btn.sm{padding:3px 7px;font-size:12px}.btn.icon{padding:4px 6px}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover:not(:disabled){background:var(--panel-2);border-color:var(--border)}.body{flex:1;display:flex;min-height:0}.panel{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.panel.right{border-right:none;border-left:1px solid var(--border)}.panel-head{padding:7px 10px;border-bottom:1px solid var(--border);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);display:flex;align-items:center;gap:6px;flex:none}.panel-body{overflow:auto;flex:1;min-height:0}.panel-foot{border-top:1px solid var(--border);padding:6px;display:flex;gap:4px;flex-wrap:wrap;flex:none}.canvas-wrap{flex:1;position:relative;min-width:0;background:#e7ebf0;overflow:hidden}.canvas-wrap svg.sheet{width:100%;height:100%;display:block;touch-action:none}.diagram-insertion-point .diagram-insertion-disc{transition:fill .1s ease}.diagram-insertion-point:hover .diagram-insertion-disc,.diagram-insertion-point:focus .diagram-insertion-disc,.diagram-insertion-point.active .diagram-insertion-disc{fill:#bfdbfe}.diagram-insertion-point:focus{outline:none}.annotation-inline-edit{text-align:left;min-width:160px;resize:both;font-weight:500;line-height:1.3}.room-inline-edit{position:absolute;z-index:8;transform:translate(-50%,-50%);min-width:120px;max-width:60%;padding:4px 10px;text-align:center;font-weight:600;color:#1e293b;background:#fffffff7;border:2px solid #2563eb;border-radius:8px;box-shadow:0 3px 10px #0f172a33;outline:none}.item-radial-menu.row:before{display:none}.item-radial-menu.dragging{opacity:0}.item-radial-menu.dragging:before{display:none}.item-radial-menu.dragging .item-radial-action{pointer-events:none}.context-menu{position:absolute;z-index:9;min-width:240px;max-width:320px;padding:6px;border-radius:10px;background:#fff;border:1px solid var(--border);box-shadow:0 10px 30px #0f172a2e;font-size:12.5px}.context-menu-title{padding:4px 8px 6px;font-weight:600;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.3px}.context-menu-quick{display:flex;flex-direction:column;gap:4px;padding:0 4px 6px;border-bottom:1px solid var(--border);margin-bottom:4px}.context-menu-row{display:grid;grid-template-columns:1fr minmax(96px,150px);align-items:center;gap:8px;padding:1px 4px}.context-menu-row>span{color:var(--muted)}.context-menu-row .check{grid-column:1 / -1}.context-menu-actions{display:flex;flex-direction:column}.context-menu-action{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:0;border-radius:6px;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.context-menu-action:hover{background:var(--bg)}.context-menu-action.danger{color:#b91c1c}.item-radial-menu{position:absolute;z-index:7;width:0;height:0;pointer-events:none}.item-radial-menu:before{content:"";position:absolute;left:-49px;top:-49px;width:96px;height:96px;border:1px solid rgba(37,99,235,.3);border-radius:50%;background:#ffffff14;box-shadow:0 1px 8px #0f172a14;pointer-events:none}.item-radial-action{--radial-x: 0px;--radial-y: 0px;position:absolute;left:-18px;top:-18px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0;color:#1d4ed8;background:#fffffffa;border:1px solid #93c5fd;border-radius:50%;box-shadow:0 3px 10px #0f172a33;transform:translate(var(--radial-x),var(--radial-y));cursor:pointer;pointer-events:auto;touch-action:none}.item-radial-action:hover{color:#fff;background:#2563eb;border-color:#2563eb}.item-radial-action:focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:2px}table.data tr.sub-circuit td{font-size:12px;padding-top:2px;padding-bottom:2px}table.data tr.sub-circuit td.muted{color:#6b7280}table.data tr.sub-circuit td:first-child{padding-left:18px}.item-radial-action.delete{color:#b91c1c;border-color:#fca5a5}.item-radial-action.delete:hover{color:#fff;background:#dc2626;border-color:#dc2626}.item-radial-action.move{cursor:move}.split-view{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;position:relative}.split-view.with-inspector{grid-template-columns:minmax(0,1fr) 340px minmax(0,1fr)}.split-pane{display:flex;min-width:0;min-height:0;position:relative}.split-pane+.split-pane{border-left:2px solid var(--border)}.split-pane .body>.panel{display:none}.split-inspector{overflow-y:auto;padding:46px 10px 10px;background:var(--panel);border-left:2px solid var(--border);border-right:2px solid var(--border)}.split-mode-toggle{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:6;display:flex;gap:2px;background:#fffffff0;border:1px solid var(--border);border-radius:var(--radius);padding:4px;box-shadow:0 1px 4px #0f172a14}.split-drag-ghost{position:fixed;z-index:20;pointer-events:none;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;opacity:.85}.split-drag-ghost span{font-size:11px;background:#0f172ad9;color:#fff;padding:2px 6px;border-radius:4px;white-space:nowrap}.auth-shell{flex:1;min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.auth-card{width:min(100%,380px);display:flex;flex-direction:column;gap:12px;padding:24px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 30px #0f172a14}.auth-card.wide{width:min(100%,640px)}.auth-card h2{margin:0;font-size:18px}.auth-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-card .brand{margin-bottom:4px}.auth-error{padding:8px 10px;border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:12.5px}.dashboard{flex:1;min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.dashboard-body{flex:1;width:min(100%,1100px);margin:0 auto;padding:24px 20px 48px;display:flex;flex-direction:column;gap:28px}.dashboard-section{display:flex;flex-direction:column;gap:12px}.dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.dashboard-head h2{margin:0;font-size:16px}.dashboard-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.dashboard-search{min-width:min(100%,360px);padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.project-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.project-card{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;padding:14px;background:#fff;border:1px solid var(--border);border-radius:10px;cursor:pointer;font:inherit;color:inherit}.project-card:hover{border-color:#93c5fd;box-shadow:0 4px 14px #2563eb1f}.project-card strong{font-size:14px}.project-card span{color:var(--muted);font-size:12.5px}.project-card small{color:var(--muted);font-size:11px;margin-top:4px}.project-table{width:100%}.project-table td.acts{text-align:right;width:40px;white-space:nowrap}.project-table td.acts .btn+.btn{margin-left:4px}.project-table .link{background:none;border:0;padding:0;font:inherit;color:#1d4ed8;cursor:pointer;text-decoration:underline}.sync-badge{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.sync-badge.saving:before,.sync-badge.pending:before{content:"";width:8px;height:8px;border-radius:50%;background:#f59e0b}.sync-badge.saved:before{content:"";width:8px;height:8px;border-radius:50%;background:#16a34a}.sync-badge.demo:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}.sync-badge.error:before,.sync-badge.offline:before,.sync-badge.conflict:before{content:"";width:8px;height:8px;border-radius:50%;background:#dc2626}.titleblock-preview{display:flex;flex-direction:column;gap:6px}.titleblock-preview-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px}.titleblock-preview-head .hint{flex:1}.titleblock-preview-svg{width:100%;height:auto;display:block;border:1px solid var(--border);border-radius:var(--radius);background:#fff;touch-action:none;-webkit-user-select:none;user-select:none}.settings-pane{min-height:200px}.account-panel>h2{margin:0 0 12px;font-size:18px}.account-panel .settings-pane{padding:0;min-height:0;gap:12px}.schema-palette-panel .panel-body{padding:0;display:flex;min-height:0}.schema-palette-panel .symbol-catalog{flex:1;min-height:0}.floating{position:absolute;z-index:5;display:flex;gap:4px;align-items:center;background:#fffffff0;border:1px solid var(--border);border-radius:var(--radius);padding:4px;box-shadow:0 1px 4px #0f172a14}.floating.tl{top:10px;left:10px}.floating.tr{top:10px;right:10px}.floating.bl{bottom:10px;left:10px}.floating.br{bottom:10px;right:10px;font-variant-numeric:tabular-nums;color:var(--muted)}.calibration-help{position:absolute;z-index:6;top:66px;left:50%;transform:translate(-50%);width:min(520px,calc(100% - 24px));padding:12px 14px;color:#1e3a5f;background:#eff6fff7;border:1px solid #93c5fd;border-radius:var(--radius);box-shadow:0 8px 24px #0f172a29}.calibration-help-title{display:flex;align-items:center;gap:7px;font-weight:700;color:#1d4ed8}.calibration-help ol{margin:8px 0 8px 22px;padding:0;line-height:1.45}.calibration-help-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.plan-view-menu{position:relative}.plan-view-menu>summary{list-style:none;cursor:pointer}.plan-view-menu>summary::-webkit-details-marker{display:none}.plan-view-menu[open]>summary{background:var(--accent-soft);color:var(--accent)}.plan-view-popover{position:absolute;top:calc(100% + 9px);left:0;width:250px;padding:10px;display:grid;gap:8px;background:#fffffffa;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #0f172a29}.canvas-top{position:absolute;top:10px;left:10px;right:10px;z-index:5;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:8px;pointer-events:none}.canvas-top>*{position:static;pointer-events:auto}.canvas-top>:nth-child(1){justify-self:start}.canvas-top>:nth-child(2){justify-self:center}.canvas-top>:nth-child(3){justify-self:end}@media (max-width: 1200px){.canvas-top{grid-template-columns:auto 1fr}.canvas-top>:nth-child(2){grid-column:1 / -1;grid-row:2;justify-self:center}.canvas-top>:nth-child(3){grid-column:2;grid-row:1}.calibration-help{top:108px}}.step-btn{border:0;background:transparent;border-radius:calc(var(--radius) - 2px);padding:7px 16px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:7px}.step-btn:hover:not(:disabled){background:var(--panel-2);color:var(--text)}.step-btn.active{background:var(--accent);color:#fff}.step-btn:disabled{opacity:.45;cursor:not-allowed}.step-btn .nr{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:11px;background:#0f172a17;color:inherit}.step-btn.active .nr{background:#ffffff47}.tree{padding:4px 0;font-size:12.5px}.tree-row{display:flex;align-items:center;gap:5px;padding:3px 8px;cursor:pointer;border-left:3px solid transparent;-webkit-user-select:none;user-select:none;box-sizing:border-box;height:29px}.tree-row:hover{background:var(--panel-2)}.tree-row.sel{background:var(--accent-soft);border-left-color:var(--accent)}.tree-row.drop{background:#dcfce7}.tree-row.consumer-group{color:var(--muted);font-weight:600}.tree-row.consumer-group .lbl{color:var(--text)}.tree-row .twisty{width:12px;color:var(--muted);flex:none;text-align:center}.tree-row .lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-row .meta{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.tree-row .swatch{width:8px;height:8px;border-radius:2px;flex:none}.tree-row .acts{display:none;gap:2px}.tree-row:hover .acts{display:flex}.form{padding:8px 10px;display:flex;flex-direction:column;gap:8px}.field{display:flex;flex-direction:column;gap:3px}.field>label{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.field input,.field select,.field textarea{padding:4px 6px;border:1px solid var(--border);border-radius:4px;background:#fff;width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.organisation-picker{position:relative;min-width:0}.organisation-input-row{display:flex;gap:4px}.organisation-input-row>input{flex:1;min-width:0}.organisation-input-row>.btn{flex:none}.organisation-suggestions{position:absolute;z-index:30;top:calc(100% + 3px);left:0;right:0;max-height:280px;overflow:auto;padding:3px;background:var(--panel);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px #0f172a2e}.organisation-result{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 9px;border:0;border-radius:4px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.organisation-result:hover,.organisation-result:focus{background:var(--panel-2);outline:none}.organisation-result-name{font-size:12.5px;font-weight:600}.organisation-result-details{color:var(--muted);font-size:10.5px}.organisation-list-search{position:sticky;top:-14px;z-index:1;display:flex;align-items:center;gap:10px;padding:0 0 10px;background:var(--panel)}.organisation-list-search input{flex:1;padding:6px 8px;border:1px solid var(--border);border-radius:4px}.organisation-list{display:flex;flex-direction:column;gap:2px}.row{display:flex;gap:6px}.row>*{flex:1;min-width:0}.hint{color:var(--muted);font-size:11px;line-height:1.45}.sep{height:1px;background:var(--border);margin:4px 0}.section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-top:4px}.check{display:flex;align-items:center;gap:6px}.check input{width:auto}.symbol-catalog{display:flex;min-width:0;align-items:flex-start}.symbol-category-tabs{position:sticky;top:0;z-index:3;display:flex;flex:none;flex-direction:column;gap:3px;padding:6px 4px;background:var(--panel);border-right:1px solid var(--border)}.symbol-category-tab{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:4px;color:var(--muted);border:1px solid transparent;border-radius:var(--radius);background:transparent;cursor:pointer}.symbol-category-tab:hover{background:var(--panel-2);border-color:var(--border)}.symbol-category-tab.active{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.symbol-category-tab svg{display:block;max-width:100%;max-height:100%}.symbol-catalog-content{flex:1;min-width:0}.place-catalog{display:flex;flex:1;min-width:0;min-height:0}.rail-label{font-size:8.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);text-align:center;padding:0 0 2px;width:34px}.place-circuit-tabs{position:static;overflow-y:auto;scrollbar-width:thin;border-right:none;padding-right:0}.place-circuit-tabs .symbol-category-tab{position:relative;flex:none;width:38px;border-radius:var(--radius) 0 0 var(--radius)}.place-circuit-tab{font-size:12px;font-weight:700}.place-circuit-tabs .symbol-category-tab.active{background:var(--panel);border-color:var(--tab-color);border-right-color:transparent;box-shadow:inset 3px 0 0 var(--tab-color),2px 0 0 var(--panel)}.place-badge{position:absolute;top:-7px;right:0;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--accent);color:#fff;font-size:9px;font-weight:700;line-height:15px;text-align:center}.place-add-tab{margin-top:4px;color:var(--muted)!important;border-top:1px dashed var(--border)}.place-add-tab:hover{color:#1d4ed8!important}.place-drill{--drill-bg: var(--panel);flex:1;min-width:0;display:flex;flex-direction:column;background:var(--drill-bg);border-left:2px solid var(--drill-color)}.place-crumb{display:flex;align-items:baseline;gap:5px;min-width:0;padding:6px 8px;font-size:12px;border-bottom:1px solid color-mix(in srgb,var(--drill-color) 25%,#fff)}.place-crumb-circuit{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.place-crumb-sep{color:var(--muted)}.place-crumb-category{flex:none;font-weight:600;color:var(--text)}.place-catalog-content{flex:1;min-width:0;min-height:0;overflow:auto}.place-drill .symbol-category-tabs,.place-drill .palette-search{background:var(--drill-bg)}.place-drill .symbol-category-tabs{border-right-color:color-mix(in srgb,var(--drill-color) 25%,#fff)}.place-section{padding-bottom:6px;margin-bottom:4px;border-bottom:1px solid var(--border)}.place-section .tree-row{padding-left:6px}.place-target{padding:0 6px 4px}.palette{padding:6px}.palette-search{padding:6px;position:sticky;top:0;background:var(--panel);border-bottom:1px solid var(--border);z-index:2}.palette-search input{width:100%;padding:5px 8px;border:1px solid var(--border);border-radius:4px}.cat-title{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;padding:8px 6px 4px}.sym-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:4px}.sym-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:5px 2px;min-width:0;border:1px solid transparent;border-radius:var(--radius);background:transparent;cursor:pointer;text-align:center}.sym-btn:hover{background:var(--panel-2);border-color:var(--border)}.sym-btn.sel{background:var(--accent-soft);border-color:var(--accent)}.sym-btn span{font-size:9.5px;line-height:1.15;color:var(--muted);max-width:100%;overflow-wrap:break-word;-webkit-hyphens:manual;hyphens:manual}.sym-btn svg{color:var(--ink)}.sym-item{position:relative;display:flex;min-width:0}.sym-item>.sym-btn{flex:1;min-width:0}.sym-more{position:absolute;top:2px;right:2px;width:16px;height:16px;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer;opacity:0}.sym-item:hover .sym-more,.sym-item.open .sym-more{opacity:1}.sym-more:hover,.sym-item.open .sym-more{background:var(--panel-2);border-color:var(--border);color:var(--ink)}.variant-flyout{position:fixed;z-index:40;min-width:190px;max-width:260px;max-height:calc(100vh - 16px);overflow:auto;padding:4px;border-radius:10px;background:#fff;border:1px solid var(--border);box-shadow:0 10px 30px #0f172a2e;font-size:12px}.variant-title{padding:4px 8px 6px;font-weight:600;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.4px}.variant-item{display:flex;align-items:center;gap:8px;width:100%;padding:3px 8px;border:0;border-radius:6px;background:transparent;cursor:pointer;text-align:left;color:var(--ink)}.variant-item:hover{background:var(--panel-2)}.variant-item svg{color:var(--ink);flex:none}.favorite-save{display:flex;flex-direction:column;gap:6px;padding:0 6px 8px}.favorite-selected{display:flex;align-items:center;gap:8px;font-size:12px}.favorite-save input{width:100%;padding:5px 8px;border:1px solid var(--border);border-radius:4px}.favorite-list{display:flex;flex-direction:column;gap:2px}.favorite-row{display:flex;align-items:center;gap:2px;border:1px solid transparent;border-radius:var(--radius)}.favorite-row:hover{background:var(--panel-2);border-color:var(--border)}.favorite-row.sel{background:var(--accent-soft);border-color:var(--accent)}.favorite-use{flex:1;min-width:0;display:grid;grid-template-columns:30px 1fr;column-gap:8px;align-items:center;padding:4px 6px;border:0;background:transparent;cursor:pointer;text-align:left}.favorite-use>svg{grid-row:1 / span 2;color:var(--ink)}.favorite-name{font-size:12px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite-meta{font-size:10.5px;color:var(--muted)}.favorite-delete{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:4px 6px;font-size:11px;display:flex;align-items:center}.favorite-rename{flex:1;min-width:0;padding:3px 4px}.favorite-rename input{width:100%;padding:4px 6px;border:1px solid var(--accent);border-radius:4px;font-size:12px}.cat-title.sub{padding-top:4px;font-weight:600;text-transform:none;letter-spacing:0}.template-diagram{display:block;overflow:hidden}.sym-btn .template-diagram,.favorite-use .template-diagram{color:var(--ink)}.sym-btn .template-diagram text,.favorite-use .template-diagram text{display:none}.sym-btn .template-diagram,.favorite-use .template-diagram{margin:0 auto}.template-popover{position:fixed;z-index:40;padding:8px;border-radius:10px;background:#fff;border:1px solid var(--border);box-shadow:0 10px 30px #0f172a2e;pointer-events:none;color:var(--ink)}.template-popover-label{padding:6px 2px 0;font-size:12px;font-weight:600;text-align:center}.favorite-use{grid-template-columns:44px 1fr}.favorite-delete:hover{color:#b91c1c}table.data{width:100%;border-collapse:collapse;font-size:12px}table.data th,table.data td{border:1px solid var(--border);padding:4px 7px;text-align:left}table.data th{background:var(--panel-2);font-weight:600;position:sticky;top:0;z-index:1}table.data tr:hover td{background:#f8fafc}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}.issue{display:flex;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);cursor:pointer}.issue:hover{background:var(--panel-2)}.issue .dot{width:8px;height:8px;border-radius:50%;margin-top:4px;flex:none}.issue.error .dot{background:var(--danger)}.issue.warning .dot{background:var(--warn)}.issue.info .dot{background:var(--accent)}.issue .msg{flex:1}.issue .ref{font-size:11px;color:var(--muted)}.issue .fix{font-size:11px;color:var(--ok);margin-top:2px}.issue .issue-go{flex:none;align-self:center;display:flex;align-items:center;gap:2px;font-size:12px;color:var(--accent);opacity:.75}.issue:hover .issue-go{opacity:1;text-decoration:underline}.issue.passive{cursor:default}.issue.passive:hover{background:transparent}.issue-group-head{width:100%;align-items:center;border:none;border-bottom:1px solid var(--border);background:var(--panel);font:inherit;text-align:left;color:inherit}.issue-group-head>svg{flex:none;color:var(--muted);transition:transform .12s}.issue-group-head[aria-expanded=true]>svg{transform:rotate(90deg)}.issue.nested{padding-left:30px;background:#fbfcfd}.issue.nested:hover{background:var(--panel-2)}.badge{display:inline-flex;align-items:center;align-self:flex-start;flex:none;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;line-height:1.45;white-space:nowrap}.badge.error{background:#fee2e2;color:#991b1b}.badge.warning{background:#fef3c7;color:#92400e}.badge.info{background:#dbeafe;color:#1e40af}.badge.ok{background:#d1fae5;color:#065f46}.empty{padding:24px 16px;text-align:center;color:var(--muted);font-size:12px;line-height:1.5}.scroll-x{overflow-x:auto}.page{padding:16px 20px;overflow:auto;width:100%;margin-inline:auto}.page h2{margin:0 0 4px;font-size:16px}.page h3{margin:18px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:12px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.stat{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.stat b{display:block;font-size:20px;font-weight:700}.stat span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.4px}.toasts{position:fixed;left:50%;bottom:18px;transform:translate(-50%);display:flex;flex-direction:column;gap:6px;align-items:center;z-index:200;pointer-events:none}.toast{background:#16202b;color:#fff;padding:8px 14px;border-radius:6px;font-size:12.5px;box-shadow:0 4px 16px #0f172a47;animation:toast-in .16s ease-out}.toast.error{background:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a6b;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--panel);border-radius:10px;box-shadow:0 12px 40px #0f172a40;max-width:90vw;max-height:86vh;display:flex;flex-direction:column}.modal-head{padding:12px 16px;border-bottom:1px solid var(--border);font-weight:700;display:flex;align-items:center}.modal-body{padding:14px 16px;overflow:auto}.modal-foot{padding:10px 16px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.resizer{width:4px;cursor:col-resize;background:transparent;flex:none}.resizer:hover{background:var(--accent-soft)}.print-page{flex:1;min-height:0;display:grid;grid-template-columns:350px minmax(0,1fr)}.print-settings{min-height:0;overflow:auto;padding:16px;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.print-settings h2{margin:0 0 4px;font-size:16px}.print-settings .card{margin:0}.print-options-card{display:flex;flex-direction:column;gap:9px}.print-options-card .section-title{margin:0 0 2px}.print-floor-options{margin:-2px 0 2px 22px;padding:8px 10px;display:flex;flex-direction:column;gap:7px;border-left:2px solid var(--border);background:var(--panel-2);border-radius:0 5px 5px 0}.print-floor-actions{min-height:24px;display:flex;align-items:center;justify-content:space-between;gap:8px}.print-floor-actions>span{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.print-order-options{margin:-2px 0 2px 22px;display:flex;flex-direction:column;gap:6px;font-size:12px}.print-order-options label{display:flex;align-items:center;gap:6px}.print-version-row{display:flex;gap:5px}.print-version-row input{min-width:0;flex:1}.print-version-row .btn{flex:none}.print-actions{position:sticky;bottom:-16px;margin:auto -16px -16px;padding:12px 16px;display:flex;justify-content:flex-end;gap:7px;background:#fffffff5;border-top:1px solid var(--border)}.print-preview{min-width:0;min-height:0;overflow:auto;padding:16px 24px 36px;background:#dce2e9}.print-preview-head{position:sticky;top:-16px;left:-24px;z-index:2;margin:-16px -24px 18px;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f8fafcf5;border-bottom:1px solid var(--border)}.print-preview-head span,.print-preview-label{color:var(--muted);font-size:11px}.print-preview-head-actions{display:flex;align-items:center;gap:16px}.print-preview-zoom{display:flex;align-items:center;gap:3px}.print-preview-zoom .btn{padding-inline:5px}.print-preview-zoom input[type=range]{width:130px;accent-color:var(--accent);cursor:pointer}.print-preview-zoom output{width:38px;color:var(--muted);font-size:11px;text-align:right;font-variant-numeric:tabular-nums}.print-preview-page{width:min(100%,980px);margin:0 auto 24px}.print-preview.manual{display:flex;flex-direction:column;padding:0;overflow:hidden}.manual-paging-settings-head{position:sticky;top:-16px;z-index:2;margin:-16px -16px 0;padding:16px;background:var(--panel);border-bottom:1px solid var(--border)}.manual-paging-settings-head .btn{width:100%;justify-content:center;margin:12px 0 6px}.manual-break-list{display:flex;flex-direction:column;gap:6px}.manual-break-row{display:flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--border);border-radius:7px;background:var(--paper)}.manual-break-row.selected{border-color:var(--accent);background:#eff6ff}.manual-break-focus{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding:7px;border:0;border-radius:4px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.manual-break-focus:hover{background:#dbeafe}.manual-break-focus span{color:var(--muted);font-size:11px;overflow-wrap:anywhere}.manual-break-focus:disabled{opacity:.6;cursor:default}.manual-paging{flex:1}.manual-paging .sheet{width:100%;height:100%;display:block}.manual-break-delete{position:absolute;bottom:48px;z-index:5;width:28px;height:28px;transform:translate(-50%);display:grid;place-items:center;padding:0;border-radius:50%;cursor:pointer;color:#b91c1c;background:#fff;border:1px solid #fca5a5;box-shadow:0 2px 8px #0f172a2e}.manual-break-delete:hover{color:#fff;background:#dc2626;border-color:#dc2626}.print-preview-label{margin-bottom:6px;font-weight:600}.print-preview-paper{width:100%;aspect-ratio:297 / 210;overflow:hidden;background:#fff;border:1px solid #c4ccd5;box-shadow:0 7px 22px #0f172a29}.print-preview-paper svg{display:block;width:100%;height:100%}@media (max-width: 850px){.print-page{grid-template-columns:minmax(290px,42%) minmax(0,1fr)}.print-preview{padding-inline:12px}.print-preview-head{left:-12px}.print-preview-head-actions>span,.print-preview-zoom output{display:none}.print-preview-zoom input[type=range]{width:84px}}@media print{body{overflow:visible;background:#fff}.topbar,.panel,.floating,.canvas-top,.no-print{display:none!important}.app,.body,.canvas-wrap{display:block;height:auto;overflow:visible}.print-only{display:block!important}}.print-only{display:none}.glyph-editor-loading{height:100%;display:grid;place-items:center;color:var(--muted)}.glyph-editor-app{height:100%;display:flex;flex-direction:column;background:var(--bg)}.glyph-editor-toolbar{min-height:54px;display:flex;align-items:center;gap:12px;padding:7px 10px;background:var(--panel);border-bottom:1px solid var(--border);flex:none}.glyph-editor-toolbar>div:not(.spacer){display:flex;flex-direction:column;gap:2px}.glyph-editor-toolbar .field{min-width:min(340px,38vw)}.glyph-editor-toolbar .field label{display:none}.glyph-editor-toolbar select{padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.glyph-editor-subtitle{color:var(--muted);font-size:11px}.glyph-editor-main{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr)}.glyph-code-pane,.glyph-preview-pane{min-width:0;min-height:0;display:flex;flex-direction:column}.glyph-code-pane{border-right:1px solid var(--border);background:#fff}.glyph-pane-head,.glyph-controls-title{min-height:45px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border-bottom:1px solid var(--border);background:var(--panel)}.glyph-pane-head>div:first-child,.glyph-controls-title{min-width:0}.glyph-pane-head strong{display:block;font:600 12px var(--mono);overflow:hidden;text-overflow:ellipsis}.glyph-pane-head span,.glyph-controls-title span{color:var(--muted);font-size:11px}.glyph-pane-actions{display:flex;gap:5px;flex:none}.glyph-code-editor{min-height:0;flex:1;overflow:hidden}.glyph-code-editor>div,.glyph-code-editor .cm-editor{height:100%}.glyph-code-editor .cm-scroller{overflow:auto;font-family:var(--mono);font-size:12px}.glyph-compile-status{min-height:28px;padding:6px 10px;border-top:1px solid var(--border);background:#ecfdf5;color:#047857;font:11px var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glyph-compile-status.error{background:#fef2f2;color:#b91c1c;white-space:normal;max-height:84px;overflow:auto}.glyph-preview-pane{background:var(--panel-2)}.glyph-preview-stage{min-height:260px;flex:1;display:grid;place-items:center;padding:20px;overflow:hidden}.glyph-editor-svg{display:block;width:min(100%,620px);height:min(100%,520px);min-height:220px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0f172a17}.glyph-editor-ink{color:var(--ink);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.glyph-editor-port circle{stroke:#fff;stroke-width:.8}.glyph-editor-port text{fill:currentColor;stroke:none;font:600 3.5px var(--mono)}.glyph-editor-port.input{color:#2563eb;fill:#2563eb}.glyph-editor-port.output{color:#e11d48;fill:#e11d48}.glyph-editor-anchor{fill:#f59e0b;stroke:#fff;stroke-width:.7}.glyph-runtime-error,.glyph-preview-placeholder{max-width:520px;padding:12px 14px;border:1px solid #fecaca;border-radius:var(--radius);background:#fef2f2;color:#991b1b;font:12px/1.5 var(--mono);-webkit-user-select:text;user-select:text}.glyph-tabs{display:flex;gap:2px;padding:6px 8px 0;border-bottom:1px solid var(--border);background:var(--panel);flex:none}.glyph-tab{padding:5px 10px;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0;background:none;color:var(--muted);font:inherit;font-size:12px;cursor:pointer}.glyph-tab.active{color:var(--ink);background:#fff;border-color:var(--border)}.glyph-stage-wrap{position:relative;display:flex;flex-direction:column;gap:6px;width:100%;max-width:640px}.glyph-stage-wrap .glyph-editor-svg{width:100%;height:auto;aspect-ratio:1 / 1;max-height:460px;cursor:crosshair}.glyph-readout{display:flex;flex-wrap:wrap;gap:4px 14px;font:12px/1.4 var(--mono);color:var(--muted);min-height:18px}.glyph-readout b{color:var(--ink)}.glyph-readout .measure{color:#6d28d9}.glyph-legend{display:grid;gap:2px;font-size:11.5px}.glyph-legend>div{display:grid;grid-template-columns:10px 150px 1fr 1fr;align-items:center;gap:8px}.glyph-legend>div.muted{opacity:.45}.glyph-legend i{display:inline-block;width:10px;height:10px;border-radius:2px}.glyph-legend code{font:11px/1.3 var(--mono)}.glyph-legend code.muted{color:var(--muted)}.glyph-overlay-toggles{display:flex;flex-wrap:wrap;gap:2px 14px;margin:6px 0}.glyph-snippet{margin:6px 0;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.glyph-snippet pre{margin:6px 0 0;font:11px/1.45 var(--mono);white-space:pre-wrap;-webkit-user-select:text;user-select:text}.glyph-panel{width:100%;max-width:720px;display:flex;flex-direction:column;gap:8px;align-self:flex-start}.glyph-panel h4{margin:8px 0 0;font-size:12.5px}.glyph-panel h4 small{margin-left:8px;color:var(--muted);font-weight:400}.glyph-scale-row{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}.glyph-scale-cell{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted)}.glyph-scale-cell svg{border:1px solid var(--border);border-radius:4px}.glyph-context-scroll{overflow:auto;max-height:360px;border:1px solid var(--border);border-radius:6px;background:#fff}.glyph-matrix-scroll{overflow:auto;max-height:460px}.glyph-matrix{border-collapse:collapse}.glyph-matrix th{font-size:11px;font-weight:500;color:var(--muted);padding:2px 6px;text-align:center;white-space:nowrap}.glyph-matrix td{padding:2px}.glyph-matrix td svg{border:1px solid var(--border);border-radius:4px;display:block}.glyph-reference-source{max-height:420px;overflow:auto;margin:0;padding:8px 10px;font:11px/1.45 var(--mono);background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius);white-space:pre;-webkit-user-select:text;user-select:text}.glyph-reference-paste{font:11px/1.45 var(--mono)}.glyph-preview-stage{align-items:flex-start;overflow:auto}.glyph-controls{max-height:43%;overflow:auto;flex:none;padding:0 12px 12px;border-top:1px solid var(--border);background:var(--panel)}.glyph-controls-title{margin:0 -12px 10px;position:sticky;top:0;z-index:1}.glyph-controls-title strong{font-size:12px;text-transform:uppercase;letter-spacing:.35px}.glyph-controls-grid,.glyph-property-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.glyph-property-grid .check{align-self:end;min-height:27px}@media (max-width: 820px){.glyph-editor-main{grid-template-columns:1fr;grid-template-rows:minmax(320px,1fr) minmax(360px,1fr);overflow:auto}.glyph-code-pane{min-height:420px;border-right:0;border-bottom:1px solid var(--border)}.glyph-preview-pane{min-height:480px}.glyph-editor-toolbar .field{min-width:180px}}.background-image-actions{display:flex;gap:6px;padding:2px;justify-content:center}.background-image-action{display:flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;padding:0;border-radius:50%;border:1px solid #cbd5e1;background:#fff;color:#334155;box-shadow:0 2px 6px #0f172a24;cursor:pointer}.background-image-action:hover{background:#eff6ff;color:#2563eb}.background-image-action.active{background:#2563eb;border-color:#2563eb;color:#fff}.background-image-action:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.background-image-action:disabled{opacity:.5;cursor:wait}.background-crop-hint{background:#fff;color:#334155;padding:6px 10px;border-radius:6px;font-size:12px;text-align:center;box-shadow:0 2px 6px #0f172a24}.file-drop{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:14px 12px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--panel);color:var(--text);font:inherit;text-align:center;cursor:pointer}.file-drop span{color:var(--muted);font-size:11px;line-height:1.4}.file-drop:hover:not(:disabled),.file-drop.over{border-color:var(--accent);background:#eff6ff}.file-drop:disabled{opacity:.5;cursor:default}.view-select{width:auto;padding:3px 6px;font-size:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text)}.date-input{position:relative;display:flex;align-items:center;gap:4px}.date-input>input[type=text]{flex:1;min-width:0}.date-input>input[aria-invalid]{border-color:var(--danger)}.date-input-picker{position:absolute;right:0;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none}.range-field{display:flex;align-items:center;gap:8px;padding:2px 0 6px;font-size:12px;color:var(--muted)}.range-field input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}.range-field output{width:36px;text-align:right;font-variant-numeric:tabular-nums;color:var(--text)}.rail-all{font-size:10.5px;font-weight:700;letter-spacing:-.2px;color:var(--text)}.canvas-top-center{display:flex;flex-direction:column;align-items:center;gap:6px}.canvas-top-center>.floating{position:static}.place-stop{display:flex;background:#fffffff0;border:1px solid var(--border);border-radius:var(--radius);padding:4px;box-shadow:0 1px 4px #0f172a14}[data-tablet] .btn{min-height:40px;padding:8px 12px;font-size:14px}[data-tablet] .btn.sm{min-height:36px;padding:6px 10px;font-size:13px}[data-tablet] .btn.icon{min-width:40px}[data-tablet] .tab{padding:10px 14px;font-size:14px}[data-tablet] .step-btn{padding:9px 14px;font-size:14px}[data-tablet] .tree-row{min-height:40px}[data-tablet] input,[data-tablet] select,[data-tablet] textarea{font-size:16px;min-height:40px}[data-tablet] input[type=checkbox],[data-tablet] input[type=radio]{min-height:0;width:20px;height:20px}[data-tablet] .symbol-category-tab{width:42px;height:42px}[data-tablet] .place-circuit-tabs .symbol-category-tab{width:46px}[data-tablet] .rail-label{width:42px}[data-tablet] .sym-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px}[data-tablet] .sym-btn{padding:8px 3px}[data-tablet] .sym-btn span{font-size:11px}[data-tablet] .item-radial-action{left:-22px;top:-22px;width:44px;height:44px}[data-tablet] .issue{padding:12px}[data-tablet] .floating.br>span{display:none}.menu-label{padding:8px 8px 2px;font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--muted)}.menu-sep{height:1px;margin:4px 0;background:var(--border)}.installer-fields{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.party-summary{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0 0 4px;font-size:13px}.party-summary dt{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--muted);align-self:center}.party-summary dd{margin:0}.floating.tr .plan-view-menu .plan-view-popover{left:auto;right:0}.diagram-display-options{display:grid;gap:8px}.auth-ok{padding:8px 10px;border-radius:var(--radius);background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;font-size:12.5px}.auth-legal{font-size:11.5px;text-align:center}.auth-card a.brand{color:inherit;text-decoration:none}.brand-link{background:none;border:0;padding:0;font-family:inherit;color:inherit;cursor:pointer}.plan-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border-radius:8px;border:1px solid var(--border);background:var(--panel);font-size:13px}.plan-banner span{flex:1;min-width:200px}.plan-banner.trial{background:var(--accent-soft);border-color:#bfd3fb}.plan-banner.expired,.plan-banner.unverified{background:#fffbeb;border-color:#fde68a}.plan-banner.yearly{background:#ecfdf5;border-color:#a7f3d0}.plan-status{padding:10px 12px;border-radius:8px;background:var(--panel-2);border:1px solid var(--border)}.plan-status.trial{background:var(--accent-soft);border-color:#bfd3fb}.plan-status.expired{background:#fffbeb;border-color:#fde68a}.plan-status.yearly{background:#ecfdf5;border-color:#a7f3d0}.plan-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.plan-choice{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.plan-choice h3{margin:0;font-size:15px}.plan-choice p{margin:0;flex:1}.plan-choice b{font-size:18px}.readonly-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 14px;background:#fffbeb;border-bottom:1px solid #fde68a;color:#92400e;font-size:12.5px}.readonly-banner span{flex:1}.badge.readonly{margin-left:8px;background:#fef3c7;color:#92400e}.badge.licensed{margin-left:8px;background:#d1fae5;color:#065f46}.account-body{flex:1;width:min(100%,980px);margin:0 auto;padding:24px 20px 48px;display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:start}.account-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:16px}.account-nav .btn{justify-content:flex-start}.account-nav .btn.active{background:var(--accent-soft);color:var(--accent)}.account-panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px 24px;min-width:0}.account-panel .auth-card{width:auto;padding:0;border:0;box-shadow:none;background:none}.account-form{display:flex;flex-direction:column;gap:14px}.account-form h2{margin:0;font-size:18px}.account-form form{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--border)}.account-form form .btn{align-self:flex-start}.account-form .billing-form{border-top:0;padding-top:0}.account-callout{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:8px 10px;border-radius:var(--radius);background:#fffbeb;border:1px solid #fde68a}.billing-form .row>*{flex:1}.checkout{display:flex;flex-direction:column;gap:12px}.checkout p{margin:0}.checkout-summary{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.checkout-summary>div{display:flex;justify-content:space-between}.checkout-summary .total{border-top:1px solid var(--border);padding-top:6px;margin-top:2px;font-size:15px}.btn.link{background:none;border:0;color:var(--accent);padding:0 2px;text-decoration:underline}@media (max-width: 720px){.account-body{grid-template-columns:1fr;padding:16px}.account-nav{position:static;flex-direction:row;flex-wrap:wrap}}.demo-banner{background:var(--accent-soft);border-bottom-color:#bfd3fb;color:#1e40af}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;pointer-events:none}.tour-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;pointer-events:auto}.tour-backdrop.clear{background:transparent}.tour-spotlight{position:fixed;border-radius:10px;box-shadow:0 0 0 9999px #0f172a8c,0 0 0 3px var(--accent);transition:top .25s ease,left .25s ease,width .25s ease,height .25s ease;pointer-events:none}.tour-card{position:fixed;pointer-events:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 50px #0f172a4d;padding:16px 16px 12px;display:flex;flex-direction:column;gap:8px;max-width:calc(100vw - 24px);transition:top .25s ease,left .25s ease}.tour-card h3{margin:0;font-size:15px}.tour-card p{margin:0;font-size:13px;line-height:1.5;color:var(--text);-webkit-user-select:text;user-select:text}.tour-count{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.tour-actions{display:flex;align-items:center;gap:6px;margin-top:4px}.tour-actions .spacer{flex:1}@media (prefers-reduced-motion: reduce){.tour-spotlight,.tour-card{transition:none}}.danger-note{display:flex;gap:10px;align-items:flex-start;margin:12px 0 0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);border-radius:8px;background:color-mix(in srgb,var(--danger) 8%,transparent);color:var(--danger);line-height:1.45}.danger-note svg{flex:none;margin-top:2px}.admin-tag{margin-left:8px;padding:1px 6px;border-radius:4px;background:#fef3c7;color:#92400e;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.admin .account-body{width:min(100%,1180px)}.admin .account-panel h2{margin:0 0 14px;font-size:18px}.admin .account-panel h3{margin:22px 0 8px;font-size:14px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.stat{border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--panel-2)}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-size:22px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}.stat-sub{font-size:12px;color:var(--muted);margin-top:2px}.month-chart{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;height:170px;align-items:end;padding:4px 0}.month-bar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}.month-bar .bar{width:100%;max-width:36px;min-height:2px;background:var(--accent);border-radius:4px 4px 0 0}.month-value{font-size:10px;color:var(--muted);white-space:nowrap;margin-bottom:2px}.month-label{font-size:11px;color:var(--muted);margin-top:4px}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.admin table.data{font-size:13px}.admin table.data td,.admin table.data th{padding:6px 8px}table.data tr.clickable{cursor:pointer}.plan-badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.plan-badge.yearly{background:#dcfce7;color:#166534}.plan-badge.trial{background:var(--accent-soft);color:var(--accent)}.plan-badge.expired{background:#f1f5f9;color:var(--muted)}.admin-filters{gap:12px;align-items:flex-end}.admin-filters .field:first-child{flex:1}.admin .muted{color:var(--muted)}.admin .error-text{color:var(--danger);font-weight:600}.admin-user-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-top:8px}.admin-user-head h2{margin-bottom:2px!important;word-break:break-all}.facts{display:grid;grid-template-columns:160px 1fr;gap:4px 12px;margin:14px 0 0;font-size:13px}.facts dt{color:var(--muted)}.facts dd{margin:0}.admin-actions{display:flex;flex-direction:column;gap:10px}.admin-action{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:8px}.admin-action .field{margin:0;min-width:200px}.credit-count{font-size:18px;font-weight:700;padding:2px 0}.admin-log{margin:0;padding-left:18px;font-size:13px;display:flex;flex-direction:column;gap:4px}@media (max-width: 760px){.admin-columns,.facts{grid-template-columns:1fr}.admin table.data{display:block;overflow-x:auto}}
