:root{--bg: #e7e8ed;--surface: #ffffff;--surface-2: #f4f5f8;--surface-3: #e8eaef;--surface-hover: #e0e2e9;--border: #d5d8df;--border-strong: #c4c7d0;--text: #1c1d23;--text-2: #2c2e36;--text-muted: #45474f;--accent-text: #0c5c9e;--danger-text: #c62828;--fs-heading: 1.0625rem;--fs-body: .9375rem;--fs-label: .875rem;--fs-caption: .75rem;--icon-size-toolbar: 18px;--btn-primary-bg: #23342b;--btn-primary-border: #3a5a45;--btn-primary-text: #cfe;--btn-primary-hover-bg: #2c4234;--btn-copy-bg: #3a3323;--btn-copy-border: #6a5a2f;--btn-copy-text: #f0e0b0;--btn-copy-hover-bg: #4a4030;--btn-active-bg: #24343f;--btn-active-border: #4a7fa5;--btn-active-text: #cfe8ff;--tab-active-bg: #2a4a3a;--tab-active-border: #3a6a4a;--tab-active-text: #cfe;--btn-danger-bg: #3a1f1f;--btn-danger-border: #542;--btn-danger-text: #fbb;--btn-danger-hover-bg: #522a2a;--accent-amber-border: #5a4a2a;--accent-amber-text: #fed;--row-selected-bg: #2a2a15;--row-drop-target-line: #4a8a5a;--chrome-panel-bg: rgba(244, 247, 245, .95);--radius-control: 4px;--radius-panel: 6px;--panel-bevel: none;--btn-face-bg: var(--surface-2);--btn-face-border: var(--border-strong);--btn-face-hover-bg: var(--surface-hover);--btn-face-shadow: none}html[data-theme=protools] #app{--btn-face-bg: linear-gradient(to bottom, #fafafb 0%, #e8e8ec 46%, #dadade 54%, #cfcfd4 100%);--btn-face-border: #a5a7ad;--btn-face-hover-bg: linear-gradient(to bottom, #ffffff 0%, #eeeef1 46%, #e2e2e6 54%, #d8d8dc 100%);--btn-face-shadow: inset 0 1px 0 0 rgba(255, 255, 255, .85), inset 0 -1px 0 0 rgba(0, 0, 0, .12), 0 1px 1px 0 rgba(0, 0, 0, .08);--btn-active-bg: linear-gradient(to bottom, #cdeaf9 0%, #8fcdec 50%, #62b3e0 100%);--btn-active-border: #2f84b3;--btn-active-text: #0b3a52;--tab-active-bg: linear-gradient(to bottom, #cdeaf9 0%, #8fcdec 50%, #62b3e0 100%);--tab-active-border: #2f84b3;--tab-active-text: #0b3a52;--btn-primary-bg: linear-gradient(to bottom, #e3f6e7 0%, #b9e6c2 50%, #93d5a1 100%);--btn-primary-border: #4d9a5f;--btn-primary-text: #17401f;--btn-primary-hover-bg: linear-gradient(to bottom, #edfaf0 0%, #c8ecd0 50%, #a3ddb0 100%);--btn-copy-bg: linear-gradient(to bottom, #fbf1d6 0%, #f0dca0 50%, #e6c877 100%);--btn-copy-border: #b3902f;--btn-copy-text: #4a3810;--btn-copy-hover-bg: linear-gradient(to bottom, #fdf7e6 0%, #f5e5b8 50%, #ecd58f 100%);--btn-danger-bg: linear-gradient(to bottom, #fbe0e0 0%, #f2b8b8 50%, #e89898 100%);--btn-danger-border: #b3554a;--btn-danger-text: #4a1410;--btn-danger-hover-bg: linear-gradient(to bottom, #fdecec 0%, #f6cbcb 50%, #efb0b0 100%);--accent-amber-border: #b3902f;--accent-amber-text: #7a5a10;--row-selected-bg: #d7edf8;--row-drop-target-line: #3f9fd6;--radius-control: 3px;--radius-panel: 4px;--panel-bevel: inset 0 1px 0 0 rgba(255, 255, 255, .75), inset 0 -1px 0 0 rgba(0, 0, 0, .08)}.op-group,#tabbar,#tab-panel,#object-params-panel,.flyout{box-shadow:var(--panel-bevel)}html{font-size:16px}.hint{font-size:var(--fs-caption);color:var(--text-muted)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;width:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,sans-serif}#app{position:relative;height:100%;width:100%}#app-root{height:100%;width:100%}#renderCanvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;z-index:0}.hidden{display:none!important}.mono{font-family:ui-monospace,monospace;word-break:break-all}#topbar{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:6px 10px;background:#f5f6f9eb;border-bottom:1px solid var(--border);max-width:100vw}#topbar-brand{font-size:var(--fs-label);font-weight:600;white-space:nowrap}#rider-id-display{display:block;font-size:var(--fs-caption);font-weight:400;color:var(--text-muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon{flex:0 0 auto;vertical-align:middle;display:inline-block}#topbar-ops .icon,#tabbar .icon{width:var(--icon-size-toolbar);height:var(--icon-size-toolbar)}#topbar-ops{display:flex;flex-wrap:wrap;align-items:center;gap:4px;flex:1 1 auto;min-width:0}#topbar-ops-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0}#topbar-ops-buttons.collapsed{display:none}.op-group{display:flex;align-items:center;gap:4px;flex-wrap:wrap}#btn-menu-toggle{background:transparent;border-color:var(--surface-hover)}.op-btn{display:flex;align-items:center;gap:4px;font-size:var(--fs-label);padding:5px 9px;cursor:pointer;background:var(--btn-face-bg);color:var(--text);border:1px solid var(--btn-face-border);border-radius:var(--radius-control);box-shadow:var(--btn-face-shadow);white-space:nowrap}.op-btn:hover{background:var(--btn-face-hover-bg)}.op-btn:disabled{opacity:.45;cursor:default}.op-btn-primary{background:var(--btn-primary-bg);border-color:var(--btn-primary-border);color:var(--btn-primary-text);font-weight:600}.op-btn-primary:hover{background:var(--btn-primary-hover-bg)}.op-btn-primary.save-as-copy{background:var(--btn-copy-bg);border-color:var(--btn-copy-border);color:var(--btn-copy-text)}.op-btn-primary.save-as-copy:hover{background:var(--btn-copy-hover-bg)}.op-sep{width:1px;align-self:stretch;margin:2px;background:var(--surface-hover)}.toggle-btn{display:flex;align-items:center;gap:4px;font-size:var(--fs-label);padding:4px 8px;border:1px solid var(--btn-face-border);border-radius:var(--radius-control);background:var(--btn-face-bg);box-shadow:var(--btn-face-shadow);cursor:pointer;white-space:nowrap}.op-split{position:relative;display:flex;align-items:stretch;gap:2px}.op-caret{display:flex;align-items:center;justify-content:center;padding:0 4px;cursor:pointer;background:var(--btn-face-bg);color:var(--text);border:1px solid var(--btn-face-border);border-radius:var(--radius-control);box-shadow:var(--btn-face-shadow)}.op-caret:hover{background:var(--btn-face-hover-bg)}.op-caret.active{background:var(--btn-active-bg);border-color:var(--btn-active-border);color:var(--btn-active-text)}.flyout{position:absolute;top:calc(100% + 4px);left:0;z-index:30;display:flex;flex-direction:column;gap:4px;min-width:max-content;padding:8px 10px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-panel);box-shadow:0 6px 20px #00000040;font-size:var(--fs-caption);color:var(--text)}.flyout label{display:flex;align-items:center;gap:5px;white-space:nowrap;cursor:pointer}.toggle-btn input{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}.op-btn.selectable:has(input:checked),.op-btn.active{background:var(--btn-active-bg);border-color:var(--btn-active-border);color:var(--btn-active-text)}.op-btn.selectable:has(input:disabled){opacity:.45;cursor:default}.mobile-title{display:none}#tabbar{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;gap:4px;padding:6px;background:var(--chrome-panel-bg);border:1px solid var(--border);border-top:none;border-radius:0 0 0 var(--radius-panel)}.tab-btn{display:flex;align-items:center;gap:6px;font-size:var(--fs-label);padding:7px 9px;cursor:pointer;background:var(--btn-face-bg);color:var(--text);border:1px solid var(--btn-face-border);border-radius:var(--radius-control);box-shadow:var(--btn-face-shadow);white-space:nowrap;text-align:left}.tab-btn:hover{background:var(--btn-face-hover-bg)}.tab-btn.active{background:var(--tab-active-bg);border-color:var(--tab-active-border);color:var(--tab-active-text)}#auth-bar{display:flex;align-items:center;gap:6px;margin-left:auto}#auth-status{font-size:var(--fs-caption);font-weight:400;color:var(--text-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#status{flex:0 1 auto;min-width:0;max-width:45%;text-align:right;font-size:var(--fs-caption);color:var(--accent-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#status:empty{display:none}#status.error{color:var(--danger-text)}:root{--topbar-h: 42px}#rightbar{position:fixed;top:var(--topbar-h);right:0;z-index:21;width:max-content;max-width:min(94vw,900px);max-height:calc(100vh - var(--topbar-h) - 48px);display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:none}#rightbar>*{pointer-events:auto;max-width:100%}#tab-panel{width:max-content;max-width:min(94vw,900px);max-height:62vh;overflow:auto;padding:10px;background:var(--chrome-panel-bg);border:1px solid var(--border);border-radius:var(--radius-panel) 0 0 var(--radius-panel)}#rider-tab-panel{width:min(420px,92vw)}#input-tab-panel{width:min(620px,92vw)}#output-tab-panel{width:min(540px,92vw)}#gear-tab-panel{width:min(560px,92vw)}.gear-power-summary{margin-top:8px;padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--surface-2);color:var(--text-2);font-size:var(--fs-label);line-height:1.5}.gear-count-power{font-size:var(--fs-caption);color:var(--text-muted);white-space:nowrap}.tab-section h2{font-size:var(--fs-heading);margin:0 0 8px}.tab-section label{font-size:var(--fs-label);color:var(--text-muted);margin-bottom:8px;max-width:480px}.tab-section label:not(.checkbox-row){display:block}.tab-section input[type=text],.tab-section input[type=number],.tab-section input[type=tel],.tab-section input[type=email],.tab-section textarea{display:block;width:100%;box-sizing:border-box;font-size:var(--fs-label);padding:4px;margin-top:3px;background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:3px;font-family:inherit;resize:vertical}.dim-row{display:flex;gap:12px;max-width:480px}.dim-row label{flex:1 1 0}.checkbox-row{display:flex;align-items:center;gap:6px}.checkbox-row input[type=checkbox]{width:auto;margin:0;flex:0 0 auto}#rider-contact{margin:4px 0 10px;padding:6px 8px 8px;border:1px solid var(--border);border-radius:4px}#rider-contact legend{font-size:var(--fs-caption);color:var(--text-muted)}.band-logo-row{display:flex;align-items:center;gap:8px;margin:4px 0}#rider-band-logo-preview{width:40px;height:40px;object-fit:contain;border:1px solid var(--border);border-radius:4px;background:var(--surface-3)}.file-label{font-size:var(--fs-label)}.file-label input[type=file]{font-size:var(--fs-label);font-family:inherit;color:var(--text-muted)}input[type=file]::file-selector-button{font-family:inherit;font-size:var(--fs-label);padding:4px 9px;margin-right:8px;cursor:pointer;background:var(--btn-face-bg);color:var(--text);border:1px solid var(--btn-face-border);border-radius:4px;box-shadow:var(--btn-face-shadow)}input[type=file]::file-selector-button:hover{background:var(--btn-face-hover-bg)}#rider-band-logo-clear{margin:0;font-size:var(--fs-caption);padding:2px 6px;cursor:pointer;background:var(--btn-face-bg);color:var(--text);border:1px solid var(--btn-face-border);border-radius:3px;box-shadow:var(--btn-face-shadow)}.wysiwyg-field-label{display:block;font-size:var(--fs-label);color:var(--text-muted);margin-bottom:3px}.wysiwyg{border:1px solid var(--border);border-radius:4px;overflow:hidden}.wysiwyg-toolbar{display:flex;flex-wrap:wrap;gap:2px;padding:4px;background:var(--surface-2);border-bottom:1px solid var(--border)}.wysiwyg .wysiwyg-btn{display:inline-block;margin:0;font-size:var(--fs-label);font-weight:600;min-width:26px;padding:2px 6px;cursor:pointer;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:3px}.wysiwyg .wysiwyg-btn:hover{background:var(--surface-hover)}.wysiwyg-surface{min-height:96px;max-height:240px;overflow-y:auto;padding:8px 10px;font-size:var(--fs-label);line-height:1.5;background:var(--surface);color:var(--text)}.wysiwyg-surface:focus{outline:none}.wysiwyg-surface ul,.wysiwyg-surface ol{margin:4px 0;padding-left:20px}.tab-section button{display:flex;align-items:center;gap:4px;margin:2px 0 8px;padding:4px 8px;font-size:var(--fs-label);cursor:pointer;background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--btn-primary-border);border-radius:3px}table.edit-list{width:100%;border-collapse:collapse;font-size:var(--fs-caption);margin-bottom:4px;display:block;overflow-x:auto}table.edit-list th,table.edit-list td{border-bottom:1px solid var(--surface-2);padding:2px 3px;text-align:left;vertical-align:middle}.tab-section table.edit-list input,.tab-section table.edit-list select{display:block;width:100%;min-width:3.5em;height:19px;box-sizing:border-box;font-size:var(--fs-caption);font-family:inherit;line-height:1;padding:0 4px;margin:0;background:var(--surface-2);color:var(--text);border:1px solid var(--surface-hover);border-radius:2px}table.edit-list select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' fill='none' stroke='%23888' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;background-size:10px 10px}table.edit-list input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}table.edit-list input[type=number]::-webkit-outer-spin-button,table.edit-list input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}table.edit-list .channel-input{width:3.2em}table.edit-list .gear-weight-input,table.edit-list .gear-count-input{width:4em}table.edit-list .owner-uuid-cell{font-size:var(--fs-caption);color:var(--text-muted)}table.edit-list .btn-delete-line{display:flex;align-items:center;justify-content:center;height:19px;box-sizing:border-box;margin:0;cursor:pointer;background:var(--btn-danger-bg);color:var(--btn-danger-text);border:1px solid var(--btn-danger-border);border-radius:2px;padding:2px 5px;font-size:var(--fs-label)}table.edit-list .btn-delete-line:hover{background:var(--btn-danger-hover-bg)}table.edit-list .btn-edit-line{display:flex;align-items:center;justify-content:center;height:19px;box-sizing:border-box;margin:0;cursor:pointer;background:var(--btn-face-bg);color:var(--text-2);border:1px solid var(--btn-face-border);border-radius:2px;padding:2px 5px;font-size:var(--fs-label)}table.edit-list .btn-edit-line:hover{background:var(--btn-face-hover-bg)}#object-actions{margin-top:10px;padding:6px 8px;border:1px solid var(--border);border-radius:4px}#object-actions legend{font-size:var(--fs-caption);color:var(--text-muted)}#object-params-panel{position:relative;width:min(340px,92vw);max-height:62vh;overflow-y:auto;background:var(--chrome-panel-bg);border:1px solid var(--border-strong);border-radius:var(--radius-panel) 0 0 var(--radius-panel);padding:10px 10px 12px;font-size:var(--fs-label)}#object-params-panel h3{font-size:var(--fs-label);margin:0 0 8px}#object-params-panel label{display:block;font-size:var(--fs-caption);color:var(--text-muted);margin-top:6px}#object-params-panel label.checkbox-row{font-size:var(--fs-label);color:var(--text-2)}#object-params-panel input[type=text],#object-params-panel input[type=number],#object-params-panel textarea,#object-params-panel select{display:block;width:100%;box-sizing:border-box;font-size:var(--fs-label);padding:3px;margin-top:2px;background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:3px;font-family:inherit}#object-params-panel input[readonly]{color:var(--text-muted);background:var(--surface)}#object-params-panel .dim-row{max-width:none}#object-params-panel .panel-close-btn{position:absolute;top:6px;right:6px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--btn-face-bg);color:var(--text);border:1px solid var(--btn-face-border);border-radius:3px;box-shadow:var(--btn-face-shadow)}#object-params-panel .add_buttons{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}#object-params-panel .add_buttons button{display:flex;align-items:center;justify-content:center;gap:4px;flex:1 1 auto;padding:4px 6px;font-size:var(--fs-caption);cursor:pointer;background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--btn-primary-border);border-radius:3px;white-space:nowrap}#object-params-panel .add_buttons button.btn-delete-object{background:var(--btn-danger-bg);color:var(--btn-danger-text);border:1px solid var(--btn-danger-border)}#object-params-panel .add_buttons button.btn-delete-object:hover{background:var(--btn-danger-hover-bg)}#object-params-panel .add_buttons button.btn-save-preset{border-color:var(--accent-amber-border);color:var(--accent-amber-text)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0009;display:flex;align-items:center;justify-content:center}.modal-backdrop.hidden{display:none}.modal{position:relative;width:min(420px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto;padding:14px 16px 16px;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 12px 40px #0009;color:var(--text-2);font-size:var(--fs-label)}.modal h3{margin:0 0 4px;font-size:var(--fs-heading)}.modal label{margin-top:10px;font-size:var(--fs-label);color:var(--text-muted)}.modal label:not(.upload-object-checkbox):not(.checkbox-row){display:block}.modal input[type=text],.modal select{width:100%;box-sizing:border-box;margin-top:3px;padding:4px 6px;font-size:var(--fs-label);background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:3px}.modal input[type=file]{font-size:var(--fs-caption);color:var(--text-muted);max-width:100%}.modal fieldset{margin-top:12px;border:1px solid var(--border);border-radius:4px;padding:8px}.modal legend{font-size:var(--fs-caption);color:var(--text-muted);padding:0 4px}.modal .add_buttons{display:flex;gap:6px;margin-top:14px}.modal .add_buttons button{display:flex;align-items:center;justify-content:center;gap:4px;flex:1 1 auto;padding:6px 8px;font-size:var(--fs-label);cursor:pointer;background:var(--btn-face-bg);color:var(--text-2);border:1px solid var(--btn-face-border);box-shadow:var(--btn-face-shadow);border-radius:3px}.modal .add_buttons button.op-btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-border)}.modal .add_buttons button:disabled{opacity:.5;cursor:progress}.modal .panel-close-btn{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--text-muted);cursor:pointer}.modal .error{margin:10px 0 0;font-size:var(--fs-label);color:var(--danger-text)}.modal .error.hidden{display:none}.save-preset-icon-row{display:flex;gap:10px;align-items:flex-start}.save-preset-icon-preview{flex:0 0 96px;width:96px;height:96px;border-radius:3px;overflow:hidden;background:var(--surface-3);display:flex;align-items:center;justify-content:center;color:#555}.save-preset-icon-preview img{width:100%;height:100%;object-fit:contain}.save-preset-icon-actions{flex:1 1 auto;min-width:0}.save-preset-icon-actions .hint{margin:0 0 6px;font-size:var(--fs-caption);color:var(--text-muted)}#save-preset-image-clear{display:flex;align-items:center;gap:4px;margin-top:6px;padding:3px 6px;font-size:var(--fs-caption);cursor:pointer;background:var(--btn-face-bg);color:var(--text-muted);border:1px solid var(--btn-face-border);box-shadow:var(--btn-face-shadow);border-radius:3px}#save-preset-image-clear.hidden{display:none}#save-preset-subject{margin:0;font-size:var(--fs-caption);color:var(--text-muted)}table.edit-list tbody tr{cursor:pointer}.ch-cell,.count-cell{font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:right;white-space:nowrap;padding-right:6px!important}.ch-cell .phantom{cursor:pointer;margin-left:3px;font-size:.62em;font-weight:700;letter-spacing:-.02em;color:#6a6a6a;-webkit-user-select:none;user-select:none;transition:color .1s ease}.ch-cell .phantom:hover{color:var(--text-muted)}.ch-cell .phantom.active{color:#e5484d}.ch-cell .phantom.active:hover{color:#f2686c}.row-drag-cell{width:1.6em}.row-drag-handle{display:inline-flex;align-items:center;justify-content:center;cursor:grab;color:var(--text-muted);padding:1px;border-radius:3px}.row-drag-handle:hover{color:var(--text-2);background:var(--surface-2)}.row-drag-handle:active{cursor:grabbing}tr.row-dragging{opacity:.4}tr.row-drop-target{box-shadow:inset 0 2px 0 0 var(--row-drop-target-line)}tr.selected-row{background:var(--row-selected-bg)}tr.row-picked{background:color-mix(in srgb,var(--accent-text) 14%,var(--surface));box-shadow:inset 2px 0 0 0 var(--accent-text)}tr.row-picked:hover{background:color-mix(in srgb,var(--accent-text) 20%,var(--surface))}.selection-count-badge{display:inline-flex;align-items:center;font-size:var(--fs-caption);padding:2px 8px;margin:0 8px 0 0;border-radius:10px;background:color-mix(in srgb,var(--accent-text) 16%,var(--surface));color:var(--accent-text);border:1px solid var(--border-strong)}#bottom-overlay-stack{position:fixed;bottom:0;left:0;right:0;z-index:20;max-width:100vw;max-height:60vh;display:flex;flex-direction:column;pointer-events:none}#bottom-overlay-stack>*{pointer-events:auto}#bottombar{display:flex;align-items:center;gap:12px;max-width:100vw;background:#f5f6f9eb;border-top:1px solid var(--border);padding:6px 10px}#preset-category-tabs{flex:1 1 auto;min-width:0;display:flex;flex-wrap:nowrap;gap:4px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}.preset-loading{font-size:var(--fs-label);color:var(--text-muted);padding:4px 2px}#preset-panel{background:#fafafcf5;border-top:1px solid var(--border);padding:8px 10px;overflow-y:auto;font-size:var(--fs-label)}.preset-category-btn{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-caption);padding:4px 8px;cursor:pointer;background:var(--btn-face-bg);color:var(--text-muted);border:1px solid var(--btn-face-border);border-radius:4px;box-shadow:var(--btn-face-shadow);white-space:nowrap}.preset-category-btn:hover{background:var(--btn-face-hover-bg)}.preset-category-btn.active{background:var(--tab-active-bg);border-color:var(--tab-active-border);color:var(--tab-active-text)}#preset-tag-chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.preset-tag-chip{--chip-ink: #1c1d23;display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-caption);padding:3px 7px;cursor:pointer;border-radius:10px;border:1px solid rgba(0,0,0,.12);white-space:nowrap;color:var(--chip-ink);font-weight:600}.preset-tag-chip[data-tag-class="0"]{background:#9a9aa2;color:var(--chip-ink)}.preset-tag-chip[data-tag-class="1"],.preset-tag-chip[data-tag-class="10"]{background:#e0a8e8}.preset-tag-chip[data-tag-class="2"],.preset-tag-chip[data-tag-class="11"]{background:#a8c8e8}.preset-tag-chip[data-tag-class="3"],.preset-tag-chip[data-tag-class="12"]{background:#a8e8c0}.preset-tag-chip[data-tag-class="4"]{background:#e8d0a8}.preset-tag-chip[data-tag-class="5"]{background:#e8a8a8}.preset-tag-chip[data-tag-class="6"]{background:#c8e8a8}.preset-tag-chip[data-tag-class="7"]{background:#a8e8e0}.preset-tag-chip[data-tag-class="8"]{background:#d8a8e8}.preset-tag-chip[data-tag-class="9"]{background:#e8c8a8}.preset-tag-chip.active{background:#d33!important;color:#fff;border-color:#a11}#preset-results{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;padding-bottom:6px}.preset-card{flex:0 0 auto;width:92px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:4px}.preset-card .preset-name{font-size:var(--fs-label);font-weight:600;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#preset-empty-state{color:var(--text-muted);font-size:var(--fs-label);padding:8px}.preset-card-image{width:100%;aspect-ratio:1 / 1;margin-bottom:4px;border-radius:3px;overflow:hidden;background:var(--surface-3);display:flex;align-items:center;justify-content:center}.preset-card-image img{width:100%;height:100%;object-fit:contain}.preset-card-image-fallback{background:repeating-linear-gradient(45deg,var(--surface),var(--surface) 6px,var(--surface-2) 6px,var(--surface-2) 12px)}.preset-card-image-fallback img{display:none}.preset-card{cursor:grab}.preset-card:active{cursor:grabbing}.preset-own-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px}.btn-delete-preset,.btn-confirm-delete-preset,.btn-cancel-delete-preset{display:flex;align-items:center;gap:3px;font-size:var(--fs-caption);padding:3px 6px;cursor:pointer;border-radius:3px;width:auto}.btn-delete-preset{background:transparent;color:var(--danger-text);border:1px solid var(--danger-text)}.btn-delete-preset:hover{background:var(--btn-danger-bg);color:var(--btn-danger-text)}.btn-confirm-delete-preset{background:var(--btn-danger-bg);color:var(--btn-danger-text);border:1px solid var(--btn-danger-border);box-shadow:var(--btn-face-shadow);font-weight:600}.btn-confirm-delete-preset:hover{background:var(--btn-danger-hover-bg)}.btn-cancel-delete-preset{background:var(--btn-face-bg);color:var(--text-2);border:1px solid var(--btn-face-border);box-shadow:var(--btn-face-shadow)}.btn-cancel-delete-preset:hover{background:var(--btn-face-hover-bg)}#login-page{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--bg)}#login-card{position:relative;width:min(360px,100%);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px 20px 20px;display:flex;flex-direction:column;gap:10px}#login-brand{font-size:18px;margin:0}#login-hint{font-size:var(--fs-label);color:var(--text-muted);margin:0 0 4px}#login-error{font-size:var(--fs-label);color:var(--danger-text);background:#f888881a;border:1px solid #542;border-radius:3px;padding:4px 8px}#login-card label{display:block;font-size:var(--fs-label);color:var(--text-muted)}#login-card input{display:block;width:100%;box-sizing:border-box;font-size:var(--fs-label);padding:7px 8px;margin-top:3px;background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:3px;font-family:inherit}#login-actions{display:flex;gap:8px;margin-top:6px}#login-actions button{display:flex;align-items:center;justify-content:center;gap:6px;flex:1 1 0;font-size:var(--fs-label);padding:8px;cursor:pointer;border-radius:4px;white-space:nowrap}#btn-login-submit{background:#23342b;color:#cfe;border:1px solid #3a5a45;font-weight:600}#btn-login-submit:hover{background:#2c4234}#btn-register-submit{background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong)}#btn-register-submit:hover{background:var(--surface-hover)}#app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--surface-2);background:var(--surface)}#verify-email-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;font-size:var(--fs-label);background:var(--surface-3);color:var(--text-2);border-bottom:1px solid var(--border)}#verify-email-banner-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}#verify-email-banner-actions button{font-size:var(--fs-label);padding:4px 10px;cursor:pointer;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:4px}#verify-email-banner-actions button:hover{background:var(--surface-hover)}#verify-email-banner-dismiss{display:flex;align-items:center;padding:4px!important}#topbar #verify-email-banner{flex:1 0 100%;order:10;margin-top:4px;padding:6px 10px;border-radius:4px;border-bottom:none}#app-header-user{display:flex;align-items:center;gap:10px;font-size:var(--fs-body)}#app-header-user button{display:flex;align-items:center;gap:5px;font-size:var(--fs-label);padding:5px 10px;cursor:pointer;background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:4px}#app-header-user button:hover{background:var(--surface-hover)}.brand-logo-link{display:inline-flex;align-items:center;text-decoration:none;color:inherit;cursor:pointer}.brand-logo{display:inline-flex;align-items:center;gap:7px}.brand-logo-mark{flex:0 0 auto;color:var(--accent-text)}.brand-logo-text{font-size:1.15em;font-weight:700;letter-spacing:-.01em;white-space:nowrap}.brand-logo-text .bl-sound{font-weight:400;color:var(--text-muted)}.brand-logo-text .bl-check{font-weight:700;color:var(--text)}.brand-logo-text .bl-box{font-weight:800;color:var(--accent-text)}.page-title{margin:0 0 14px;font-size:calc(var(--fs-heading) * 1.375);color:var(--text)}#page-layout{display:flex}#side-nav{flex:0 0 200px;display:flex;flex-direction:column;justify-content:space-between;gap:12px;padding:16px 10px;border-right:1px solid var(--surface-2);background:var(--surface)}#side-nav-items{display:flex;flex-direction:column;gap:2px}#side-nav-theme{display:flex;flex-direction:column;gap:4px;padding:10px 12px 0;border-top:1px solid var(--surface-2)}#side-nav-theme-select{width:100%;padding:5px 6px;font-size:var(--fs-label);background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-control)}#side-nav-locale{display:flex;flex-direction:column;gap:4px;padding:10px 12px 0}#side-nav-locale-select{width:100%;padding:5px 6px;font-size:var(--fs-label);background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-control)}.side-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;font-size:var(--fs-label);text-align:left;cursor:pointer;color:var(--text-2);background:transparent;border:none;border-radius:6px;white-space:nowrap}.side-nav-item:hover:not(:disabled){background:var(--surface-hover)}.side-nav-item.active{background:#e3f0fb;color:#0c5c9e;font-weight:600}.side-nav-item:disabled{color:var(--text-muted);opacity:.55;cursor:default}#page-body{flex:1 1 auto;min-width:0;padding:20px}#riders-page #page-body{max-width:900px;margin:0 auto}@media (max-width: 700px){#page-layout{flex-direction:column}#side-nav{flex:0 0 auto;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--surface-2);padding:8px 10px}#side-nav-items{flex-direction:row}#side-nav-theme{flex:0 0 auto;flex-direction:row;align-items:center;padding:0 0 0 10px;border-top:none;border-left:1px solid var(--surface-2)}#side-nav-theme-select{width:auto}#side-nav-locale{flex:0 0 auto;flex-direction:row;align-items:center;padding:0 0 0 10px;border-left:1px solid var(--surface-2)}#side-nav-locale-select{width:auto}.side-nav-item{flex:0 0 auto;width:auto;padding:8px 10px}.side-nav-item span{display:none}}#riders-page{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;background:var(--bg)}#btn-new-rider{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-label);font-weight:600;padding:9px 16px;margin-bottom:14px;cursor:pointer;background:#2c6b3f;color:#fff;border:1px solid #3a8a52;border-radius:5px}#btn-new-rider:hover{background:#35804c}#riders-status{font-size:var(--fs-label);color:var(--text-muted);margin-bottom:8px}#riders-table{width:100%;border-collapse:collapse;font-size:var(--fs-label)}#riders-table th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text-muted);font-weight:600}#riders-table td{padding:8px 10px;border-bottom:1px solid var(--surface-2)}.btn-edit-rider{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-label);padding:5px 12px;cursor:pointer;background:#24405f;color:#dceeff;border:1px solid #3a6690;border-radius:4px}.btn-edit-rider:hover{background:#2c4d72}.btn-publish-rider{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-label);padding:5px 12px;cursor:pointer;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border-strong);border-radius:4px}.btn-publish-rider:hover{background:var(--surface-hover)}.btn-publish-rider:disabled{opacity:.6;cursor:default}.rider-status-badge{display:inline-block;font-size:var(--fs-caption);font-weight:600;letter-spacing:.02em;text-transform:uppercase;padding:3px 8px;border-radius:999px}.rider-status-badge.draft{background:var(--surface-3);color:var(--text-muted);border:1px solid var(--border-strong)}.rider-status-badge.published{background:#e3f4e6;color:#1f6b2c;border:1px solid #9cd2a8}.riders-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.rider-action-split{position:relative;display:inline-flex;align-items:stretch}.rider-action-split .btn-edit-rider{border-top-right-radius:0;border-bottom-right-radius:0}.btn-rider-more{display:inline-flex;align-items:center;justify-content:center;min-width:24px;padding:5px 7px;font-size:var(--fs-caption);line-height:1;cursor:pointer;color:#dceeff;background:#24405f;border:1px solid #3a6690;border-left:none;border-radius:0 4px 4px 0}.btn-rider-more:hover,.btn-rider-more[aria-expanded=true]{background:#2c4d72}.rider-action-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:30;display:flex;flex-direction:column;min-width:190px;padding:4px;background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;box-shadow:0 8px 24px #0000002e}.rider-action-menu-item,.rider-action-menu .btn-publish-rider,.rider-action-menu .btn-copy-link-rider,.rider-action-menu .btn-delete-rider{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;font-size:var(--fs-label);text-align:left;white-space:nowrap;cursor:pointer;color:var(--text);background:transparent;border:none;border-radius:4px}.rider-action-menu-item:hover,.rider-action-menu .btn-publish-rider:hover,.rider-action-menu .btn-copy-link-rider:hover{background:var(--surface-hover);color:var(--text)}.rider-action-menu-item:disabled{opacity:.5;cursor:default;background:transparent}.rider-action-menu hr{height:0;margin:4px 2px;border:none;border-top:1px solid var(--border)}.rider-action-menu-item.danger,.rider-action-menu .btn-delete-rider{color:var(--danger-text)}.rider-action-menu-item.danger:hover,.rider-action-menu .btn-delete-rider:hover{background:#fdeaea;color:var(--danger-text)}.btn-delete-rider,.btn-confirm-delete-rider,.btn-cancel-delete-rider{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-label);padding:5px 12px;cursor:pointer;border-radius:4px}.btn-delete-rider{background:transparent;color:#d98b8b;border:1px solid #5e3535}.btn-delete-rider:hover{background:#4a2222;color:#ffd9d9}.btn-confirm-delete-rider{background:#7a2020;color:#ffe3e3;border:1px solid #a33;font-weight:600}.btn-confirm-delete-rider:hover{background:#932828}.btn-cancel-delete-rider{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border-strong)}.btn-cancel-delete-rider:hover{background:var(--surface-hover)}.confirm-prompt{font-size:var(--fs-label);color:#e0a0a0;white-space:nowrap}.btn-close{position:absolute;top:8px;right:8px;width:24px;height:24px;line-height:1;font-size:16px;cursor:pointer;background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:4px}.btn-close:hover{background:var(--surface-hover)}.auth-page{height:100%;overflow-y:auto;overflow-x:hidden;display:flex;align-items:flex-start;justify-content:center;padding:24px;background:var(--bg)}.auth-page>.auth-card{margin:auto}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:28px}.auth-title{margin:0 0 8px;font-size:19px;color:var(--text)}.auth-lead{margin:0 0 18px;font-size:var(--fs-label);color:var(--text-muted)}.auth-card label{display:block;margin-bottom:14px;font-size:var(--fs-label);color:var(--text-2)}.auth-card input{display:block;width:100%;margin-top:5px;padding:9px 10px;font-size:var(--fs-body);color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:6px}.auth-alt{margin:16px 0 0;font-size:var(--fs-label);text-align:center}.auth-alt a,#login-forgot a{color:var(--accent-text)}#login-forgot{margin:14px 0 0;font-size:var(--fs-label);text-align:center}.auth-message{margin:14px 0 0;padding:9px 11px;font-size:var(--fs-label);border-radius:6px;word-break:break-word}.auth-message-info{background:var(--surface-3);color:var(--text-2)}.auth-message-success{background:#e3f4e6;color:#1f6b2c}.auth-message-error{background:#fdeaea;color:var(--danger-text)}#profile-page{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;background:var(--bg)}.profile-page{padding:0 0 44px;color:var(--text)}.profile-page>*{max-width:780px;margin-left:auto;margin-right:auto}.profile-status{margin:0 auto 18px;padding:9px 12px;font-size:var(--fs-label);border-radius:6px}.profile-inline-status{margin:8px 0 0;padding:7px 10px;font-size:var(--fs-label);border-radius:6px}.profile-inline-status-info{background:var(--surface-3);color:var(--text-2)}.profile-inline-status-success{background:#e3f4e6;color:#1f6b2c}.profile-inline-status-error{background:#fdeaea;color:var(--danger-text)}.profile-status-info{background:var(--surface-3);color:var(--text-2)}.profile-status-success{background:#e3f4e6;color:#1f6b2c}.profile-status-error{background:#fdeaea;color:var(--danger-text)}.profile-section{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px 22px;margin-bottom:18px}.profile-section h2{margin:0 0 14px;font-size:var(--fs-heading)}.profile-section h3{margin:24px 0 6px;font-size:var(--fs-body);color:var(--text-2)}.profile-hint{margin:0 0 12px;font-size:var(--fs-caption);color:var(--text-muted)}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px;margin-bottom:14px}.profile-grid label{display:block;font-size:var(--fs-label);color:var(--text-muted)}.profile-grid input,.profile-grid select{display:block;width:100%;margin-top:4px;padding:8px 9px;font-size:var(--fs-label);color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:6px}.profile-facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:0 0 14px;font-size:var(--fs-body)}.profile-facts dt{font-size:var(--fs-label);color:var(--text-muted)}.profile-facts dd{margin:0;color:var(--text)}.profile-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:14px 0;border-top:1px solid var(--border)}.profile-row strong{font-size:var(--fs-label)}.profile-row .checkbox-row{font-size:var(--fs-label);color:var(--text-muted);white-space:nowrap}.profile-row .profile-hint{margin:4px 0 0}.profile-row-danger{border-top-color:#f0c9c9}.btn-primary{padding:8px 16px;font-size:var(--fs-label);font-weight:600;color:#fff;background:#0c5c9e;border:1px solid #0a4d85;border-radius:6px;cursor:pointer}.btn-secondary{padding:8px 14px;font-size:var(--fs-label);color:var(--text-2);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:6px;cursor:pointer;text-decoration:none}.btn-danger{padding:8px 14px;font-size:var(--fs-label);font-weight:600;color:#fff;background:#c62828;border:1px solid #a11;border-radius:6px;cursor:pointer}.landing{height:100%;overflow-y:auto;overflow-x:hidden;background:var(--bg);color:var(--text)}.landing-nav{position:sticky;top:0;z-index:10;background:var(--surface);border-bottom:1px solid var(--border)}.landing-nav-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;white-space:nowrap}.landing-brand{display:inline-flex;align-items:center;font-size:1.3rem;font-weight:700;color:var(--text);white-space:nowrap}.landing-nav-links{display:flex;align-items:center;gap:24px;list-style:none;margin:0;padding:0}.landing-nav-links a{font-size:var(--fs-body);color:var(--text-2);text-decoration:none}.landing-nav-links a:hover{color:var(--accent-text)}@media (max-width: 800px){.landing-nav-links{display:none}}.landing-nav-cta{display:flex;align-items:center;gap:10px;flex:0 0 auto}.landing-hero{padding:64px 20px 72px}.landing-hero-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}@media (max-width: 900px){.landing-hero-inner{grid-template-columns:1fr}}.landing-hero-text h1{margin:0 0 16px;font-size:44px;line-height:1.1;color:var(--text)}.landing-hero-sub{margin:0 0 28px;font-size:18px;line-height:1.5;color:var(--text-muted)}.landing-hero-actions{display:flex;flex-wrap:wrap;gap:12px}.landing-hero-media img{display:block;width:100%;max-width:100%;border-radius:10px;border:1px solid var(--border);box-shadow:0 12px 32px #0000001f}.landing-section-inner{max-width:1100px;margin:0 auto;padding:0 20px}.landing-section-alt{background:var(--surface)}.landing-section h2{margin:0 0 16px;font-size:30px;text-align:center;color:var(--text)}.landing-lead{max-width:640px;margin:0 auto 40px;font-size:16px;line-height:1.6;text-align:center;color:var(--text-muted)}.landing-split{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}@media (max-width: 900px){.landing-split{grid-template-columns:1fr}}@media (min-width: 901px){.landing-split-reverse>*:first-child{order:2}.landing-split-reverse>*:last-child{order:1}}.landing-split h3{margin:0 0 10px;font-size:20px;color:var(--text)}.landing-split p{margin:0 0 10px;line-height:1.6;color:var(--text-muted)}.landing-split img{display:block;width:100%;max-width:100%;border-radius:10px;border:1px solid var(--border);box-shadow:0 8px 24px #00000014}.landing-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.landing-feature{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:22px}.landing-feature h3{margin:0 0 8px;font-size:16px;color:var(--text)}.landing-feature p{margin:0;font-size:var(--fs-body);line-height:1.5;color:var(--text-muted)}.landing-demo-box{max-width:520px;margin:32px auto 0;padding:28px;text-align:center;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:10px}.landing-demo-creds{margin:14px 0;font-family:ui-monospace,monospace;font-size:16px;line-height:1.8;letter-spacing:.03em;color:var(--accent-text)}.landing-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}@media (max-width: 900px){.landing-contact-grid{grid-template-columns:1fr}}.landing-contact-item{padding:14px 0;border-bottom:1px solid var(--border)}.landing-contact-item:last-child{border-bottom:none}.landing-contact-item-label{display:block;margin-bottom:6px;font-size:var(--fs-label);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.landing-contact-item-value{display:block;font-size:16px;line-height:1.5;color:var(--text);text-decoration:none}a.landing-contact-item-value:hover{color:var(--accent-text);text-decoration:underline}.landing-contact-social{padding-top:18px}.landing-contact-social-links{display:flex;gap:10px}.landing-contact-social-links a,.landing-footer-social a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;color:var(--text-muted);text-decoration:none;border:1px solid var(--border-strong);transition:color .15s ease,border-color .15s ease,background .15s ease}.landing-contact-social-links a:hover,.landing-footer-social a:hover{color:var(--accent-text);border-color:var(--accent-text);background:var(--surface-2)}#landing-contact-form{display:flex;flex-direction:column;gap:0}#landing-contact-form label{display:block;margin:0 0 7px;font-size:var(--fs-label);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}#landing-contact-form label+input,#landing-contact-form label+textarea{margin-bottom:20px}#landing-contact-form input,#landing-contact-form textarea{display:block;width:100%;box-sizing:border-box;padding:11px 12px;font-size:var(--fs-body);font-family:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:6px}#landing-contact-form textarea{min-height:120px;resize:vertical}#landing-contact-status{margin-top:12px;font-size:var(--fs-label)}.landing-recaptcha-note{margin:12px 0 0;font-size:var(--fs-label);line-height:1.5;color:var(--text-muted)}.landing-recaptcha-note a{color:var(--text-muted);text-decoration:underline}.grecaptcha-badge{visibility:hidden}#landing-contact-status:empty{display:none}#landing-contact-status.is-error{padding:8px 10px;color:var(--danger-text);background:#fdeaea;border-radius:6px}#landing-contact-status.is-success{padding:8px 10px;color:#1f6b2c;background:#e3f4e6;border-radius:6px}.landing-footer{padding:32px 20px 40px;text-align:center;font-size:var(--fs-label);color:var(--text-muted);border-top:1px solid var(--border)}.landing-footer-social{display:flex;justify-content:center;gap:12px;margin-top:10px;margin-bottom:18px}@font-face{font-family:Montserrat;font-style:normal;font-weight:200;font-display:swap;src:url(/landing/fonts/montserrat-200.woff2) format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/landing/fonts/montserrat-400.woff2) format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/landing/fonts/montserrat-500.woff2) format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/landing/fonts/montserrat-700.woff2) format("woff2")}.landing{font-family:Montserrat,system-ui,-apple-system,sans-serif;color:#1a1a1a}.landing-hero-text h1,.landing-section h2{font-weight:200;letter-spacing:-.01em;line-height:1.15}.landing-hero-text h1{font-size:clamp(2.1rem,6vw,3.5rem);margin:0 0 18px}.landing-section h2{font-size:clamp(1.6rem,4vw,2.5rem);margin:0 0 18px}.landing-hero-sub,.landing-lead{font-weight:400;font-size:clamp(1rem,2vw,1.25rem);line-height:1.6;color:#4a4a4a}.landing-feature h3{font-weight:500}.landing-section{background:#fff}.landing-section-alt{background:#efefef}.landing .btn-primary,.landing .btn-secondary{font-family:inherit;font-weight:500;font-size:1rem;padding:12px 26px;border-radius:4px;border:1px solid transparent;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:background-color .15s ease}.landing .btn-primary{background-color:#1569ae;color:#fff}.landing .btn-primary:hover{background-color:#154d80}.landing .btn-secondary{background-color:#fff;color:#154d80;border-color:#d5d8df}.landing .btn-secondary:hover{background-color:#154d80;color:#fff;border-color:#154d80}.landing-nav{background:#fffffff5;border-bottom:1px solid #e4e4e4}.landing-brand{font-weight:700;color:#1a1a1a;text-decoration:none}.landing-nav-links a{color:#4a4a4a;text-decoration:none;font-size:.9rem}.landing-nav-links a:hover{color:#1569ae}.landing-video{position:relative;width:100%;max-width:800px;margin:0 auto;aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;background:#000}.landing-video iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.public-viewer{height:100%;overflow-y:auto;overflow-x:hidden;padding:0 0 40px;color:var(--text)}.pv-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:5}.pv-header-brand{display:flex;flex-direction:column;font-weight:600;font-size:var(--fs-body);line-height:1.2}.pv-header-sub{font-size:var(--fs-caption);font-weight:400;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.pv-logo{width:36px;height:36px;object-fit:contain;border-radius:4px;border:1px solid var(--border)}.pv-title-block{padding:14px 16px 4px;max-width:720px;margin:0 auto}.pv-title-block h1{margin:0 0 4px;font-size:20px}.pv-band{margin:0 0 2px;font-weight:600;color:var(--text-2)}.pv-contact{margin:0;font-size:var(--fs-label);color:var(--text-muted)}.pv-view-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;max-width:720px;margin:10px auto 0;padding:8px 16px}.pv-check{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-label);color:var(--text-2);cursor:pointer}.pv-print-btn{margin-left:auto;font-size:var(--fs-label);font-weight:600;padding:6px 14px;cursor:pointer;background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:4px}.pv-print-btn:hover{background:var(--surface-hover)}.pv-info-contact{display:flex;align-items:center;gap:12px;margin-bottom:10px}.pv-comment{margin:0 0 12px;font-size:var(--fs-label);color:var(--text-2)}.pv-status{max-width:720px;margin:8px auto;padding:9px 16px;font-size:var(--fs-label)}.pv-status.error{color:var(--danger-text)}.pv-stage-wrap{position:relative;width:100%;height:46vh;min-height:280px;max-height:520px;background:#dcdde3;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}#pv-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}.pv-stage-hint{position:absolute;left:8px;bottom:6px;margin:0;padding:3px 8px;font-size:var(--fs-caption);color:var(--text-muted);background:#ffffffbf;border-radius:4px;pointer-events:none}.pv-selected{position:relative;max-width:720px;margin:10px auto 0;padding:12px 36px 12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.pv-selected h3{margin:0 0 4px;font-size:var(--fs-body)}.pv-selected-comment{margin:0 0 6px;font-size:var(--fs-label);font-style:italic;color:var(--text-muted)}.pv-selected-meta{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0;font-size:var(--fs-label)}.pv-selected-meta dt{color:var(--text-muted)}.pv-selected-meta dd{margin:0}.pv-selected-close{position:absolute;top:8px;right:8px;width:24px;height:24px;line-height:1;font-size:16px;cursor:pointer;background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:4px}.pv-tabs{display:flex;flex-wrap:wrap;gap:6px;max-width:720px;margin:12px auto 0;padding:0 16px}.pv-tab-btn{font-size:var(--fs-label);padding:7px 12px;cursor:pointer;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border-strong);border-radius:999px}.pv-tab-btn.active{background:#0c5c9e;color:#fff;border-color:#0c5c9e}.pv-panel{max-width:720px;margin:10px auto 0;padding:0 16px}.pv-rider-text{font-size:var(--fs-label);line-height:1.5}.pv-rider-text .empty{color:var(--text-muted);font-style:italic}.pv-table{width:100%;border-collapse:collapse;font-size:var(--fs-label);display:block;overflow-x:auto}.pv-table thead,.pv-table tbody{display:table;width:100%;table-layout:fixed}.pv-table th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);color:var(--text-muted);font-weight:600;white-space:nowrap}.pv-table td{padding:6px 8px;border-bottom:1px solid var(--surface-2);cursor:pointer}.pv-table tr.selected-row td{background:#fff2cc}.pv-phantom{color:#c02626;font-size:var(--fs-caption);margin-left:2px}.pv-gear-power-summary{margin:8px 0 0;padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--surface-2);color:var(--text-2);font-size:var(--fs-label);line-height:1.5}.pv-footer{max-width:720px;margin:24px auto 0;padding:0 16px;font-size:var(--fs-label);color:var(--text-muted);text-align:center}.pv-footer a{color:var(--accent-text)}#renderCanvas.attach-armed{cursor:crosshair}.landing-hero{position:relative;background-image:linear-gradient(#0c1018bd,#0c1018bd),url(/landing/top_video.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}.landing-hero .landing-hero-text h1{color:#fff}.landing-hero .landing-hero-sub{color:#ffffffd9}.landing-hero .btn-secondary{color:#fff;border-color:#ffffffb3;background:transparent}.landing-hero .btn-secondary:hover{background:#ffffff1f}.landing-hero .landing-hero-media img{box-shadow:0 18px 48px #00000073}.modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px}.modal-actions .op-btn{font-size:var(--fs-label);padding:7px 14px}.op-btn-danger{background:var(--btn-danger-bg);border-color:var(--btn-danger-border);color:var(--btn-danger-text);box-shadow:var(--btn-face-shadow);font-weight:600}.op-btn-danger:hover{background:var(--btn-danger-hover-bg)}#io-delete-summary{margin:4px 0 0;color:var(--text-2)}#io-delete-remember-row{margin-top:14px}tr.unconnected-row{opacity:.6;font-style:italic}tr.unconnected-row td{cursor:default}tr.unconnected-row input,tr.unconnected-row select{color:var(--text-muted);cursor:not-allowed}.upload-object-checkbox{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:var(--fs-label)}.upload-object-checkbox input{width:auto}.admin-badge{display:inline-block;padding:1px 7px;margin-left:4px;font-size:var(--fs-caption);font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;color:#fff;background:#7a2e9e;border-radius:999px}section .wave{overflow:hidden;position:relative;z-index:4;left:0;width:100vw;line-height:0;direction:ltr;padding-bottom:72px}section .wave-bottom{transform:rotate(180deg);margin-bottom:-1px}section .wave svg{height:50px;display:block;width:-webkit-calc(100% + 1.3px);width:calc(100% + 1.3px);position:relative;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translate(-50%)}section .wave .wave-fill{fill:#fff}@media (max-width: 700px){.tab-btn .tab-label,#rider-id-display,#auth-status{display:none}#bottombar{flex-direction:column;align-items:stretch;gap:4px}#status{max-width:100%;text-align:left}}#ai-prompt{width:100%;resize:vertical;min-height:3.5rem;font:inherit}#ai-preview h4{margin:.75rem 0 .25rem}.ai-diff-list{margin:0;padding-left:1.2rem}.ai-diff-list li{margin:.25rem 0}.ai-mic-btn.recording{color:#e11d48;animation:ai-mic-pulse 1s ease-in-out infinite}@keyframes ai-mic-pulse{0%,to{opacity:1}50%{opacity:.45}}#ai-skipped{margin-top:.75rem}#ai-skipped-heading{margin:0 0 .25rem}.ai-skipped-list{opacity:.8}
