:root{--bg:#17191d;--surface:#1f2227;--raised:#262a30;--border:#2e333a;--text:#e6e8eb;--text-2:#9aa0a8;--accent:#d9a441;--on-accent:#17191d;--hp:#d4533f;--mana:#4b82dc;--ok:#5bb07a;--warn:#e3a33b;--error:#e0604f;--map-bg:#101215;--radius:6px;--s1:4px;--s2:8px;--s3:16px;--s4:24px;--s5:32px;--s6:48px;--fs-sm:13px;--fs-md:15px;--fs-lg:17px;--fs-xl:22px;--fs-2xl:30px;--font:"Barlow", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-num:"Barlow Semi Condensed", "Barlow", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font);font-size:var(--fs-md);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.5}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);min-width:320px;margin:0}h1,h2,h3{margin:0;font-weight:600;line-height:1.25}h1{font-size:var(--fs-xl)}p{margin:0}a{color:var(--text);-webkit-text-decoration-color:var(--text-2);text-decoration-color:var(--text-2);text-underline-offset:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--text-2)}.error{color:var(--error)}.small-print{font-size:var(--fs-sm)}button,.button{justify-content:center;align-items:center;gap:var(--s2);min-height:36px;padding:0 var(--s3);border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font:inherit;cursor:pointer;white-space:nowrap;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}button:hover:not(:disabled),.button:hover{background:#e3b356;border-color:#e3b356}button.secondary,.button.secondary{border-color:var(--border);color:var(--text);background:0 0;font-weight:500}button.secondary:hover:not(:disabled),.button.secondary:hover{background:var(--raised);border-color:#3a4048}button.ghost{color:var(--text-2);background:0 0;border-color:#0000;font-weight:500}button.ghost:hover:not(:disabled){background:var(--raised);color:var(--text);border-color:#0000}button.danger,button.ghost.danger,button.secondary.danger{border-color:var(--border);color:var(--error);background:0 0;font-weight:500}button.ghost.danger{border-color:#0000}button.danger:hover:not(:disabled){background:#e0604f1a;border-color:#e0604f80}button.small,.button.small{padding:0 var(--s2);font-size:var(--fs-sm)}button:disabled{opacity:.45;cursor:default}button.link{min-height:0;padding:0 var(--s1);color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--text-2);text-decoration-color:var(--text-2);background:0 0;border:none;font-weight:500}button.link:hover:not(:disabled){background:0 0}label{gap:var(--s1);font-size:var(--fs-sm);color:var(--text-2);flex-direction:column;display:flex}label:has(>input[type=checkbox]){align-items:center;gap:var(--s2);min-height:36px;font-size:var(--fs-md);color:var(--text);cursor:pointer;flex-direction:row}input,select{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);min-height:36px;color:var(--text);font:inherit;font-size:var(--fs-md);padding:0 10px}input:hover,select:hover{border-color:#3a4048}input:focus-visible,select:focus-visible{outline-offset:0;border-color:var(--accent)}input::placeholder{color:#6c727a}input[type=checkbox]{accent-color:#c9cdd2;width:18px;height:18px;min-height:0;margin:0;padding:0}.switch input[type=checkbox]{appearance:none;border:1px solid var(--border);background:var(--raised);cursor:pointer;border-radius:10px;width:36px;height:20px;transition:background-color .15s;position:relative}.switch input[type=checkbox]:before{content:"";background:var(--text-2);border-radius:50%;width:14px;height:14px;transition:transform .15s,background-color .15s;position:absolute;top:2px;left:2px}.switch input[type=checkbox]:checked{background:var(--ok);border-color:var(--ok)}.switch input[type=checkbox]:checked:before{background:var(--on-accent);transform:translate(16px)}.row{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.row.tight{gap:var(--s1);color:var(--text-2)}.row.end{justify-content:flex-end}.grow{flex:1;min-width:0}.spacer{flex:1}.badge{padding:0 var(--s2);font-size:var(--fs-sm);background:var(--raised);color:var(--text-2);border-radius:10px;align-items:center;font-weight:500;line-height:20px;display:inline-flex}.badge.ok{color:var(--ok);background:#5bb07a26}.chips{gap:var(--s1) var(--s2);margin-top:var(--s2);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--s1);padding:2px var(--s2);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--fs-sm);color:var(--text);display:inline-flex}.chip.selected{background:var(--raised);border-color:#474e57;font-weight:600}.chip-remove{min-width:24px;min-height:24px;color:var(--text-2);background:0 0;border:none;padding:0;font-weight:400}.chip-remove:hover:not(:disabled){background:var(--raised);color:var(--text)}.dot{background:var(--text-2);border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.off{background:#5d636b}table{border-collapse:collapse;width:100%}th,td{padding:var(--s2);border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{font-size:var(--fs-sm);color:var(--text-2);font-weight:500}.num,td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}table.plain td:first-child,table.plain th:first-child{padding-left:0}table.plain td:last-child,table.plain th:last-child{padding-right:0}.table-wrap{overflow-x:auto}dl{margin:0}.stats{gap:var(--s2) var(--s4);flex-wrap:wrap;display:flex}.stats dt{font-size:var(--fs-sm);color:var(--text-2)}.stats dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.details{gap:var(--s2);margin-top:var(--s3);display:grid}.details div{gap:var(--s3);grid-template-columns:160px 1fr;display:grid}.details dt{color:var(--text-2)}.details dd{margin:0}.shell{grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{height:100vh;padding:var(--s4) var(--s3);border-right:1px solid var(--border);background:var(--surface);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-top{gap:var(--s4);flex-direction:column;display:flex}.brand-link{border-radius:var(--radius);color:var(--text);align-self:flex-start;text-decoration:none}.brand{align-items:center;gap:var(--s2);font-size:var(--fs-lg);color:var(--text);font-weight:600;display:inline-flex}.brand-mark{color:var(--text)}.bot-state{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);align-items:center;gap:10px;padding:10px 12px;display:flex}.bot-state-text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.bot-state-label{font-weight:600}.bot-state-detail{font-size:var(--fs-sm);color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-button{display:none}.sidebar-nav{justify-content:space-between;gap:var(--s4);margin-top:var(--s4);flex-direction:column;flex:1;display:flex}.nav-links,.nav-foot{flex-direction:column;gap:2px;display:flex}.nav-links a,.nav-item{border-radius:var(--radius);min-height:36px;color:var(--text-2);font:inherit;background:0 0;border:none;justify-content:flex-start;align-items:center;padding:0 12px;font-weight:500;text-decoration:none;display:flex}.nav-links a:hover,.nav-item:hover:not(:disabled){background:var(--raised);color:var(--text)}.nav-links a.active{background:var(--raised);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.account{margin-top:var(--s2);padding:var(--s3) 12px 0;border-top:1px solid var(--border);font-size:var(--fs-sm);flex-direction:column;align-items:flex-start;gap:2px;display:flex}.account-email{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.account-license{color:var(--text-2)}.account button{margin:var(--s2) 0 0 calc(-1 * var(--s2))}.main{min-width:0;padding:var(--s5) var(--s6)}.page{max-width:880px}.page-wide{max-width:1320px}.page-head{justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s4);display:flex}.page-loading{padding:var(--s5);color:var(--text-2)}.empty-state{padding:var(--s4) 0}.page>.error{margin-bottom:var(--s3)}.section{margin-top:var(--s5)}.section-title{font-size:var(--fs-lg);margin-bottom:12px}.first-steps{margin-bottom:var(--s4);padding:var(--s4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.first-steps-head{justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s2);display:flex}.first-steps-head .section-title{margin:0}.first-steps .small-print{margin-top:var(--s3)}.checklist-progress{font-size:var(--fs-sm);color:var(--text-2);align-items:center;gap:12px;display:flex}.progress{background:var(--raised);border-radius:2px;flex:1;max-width:240px;height:4px;overflow:hidden}.progress div{background:var(--ok);height:100%;transition:width .3s}.checklist-steps{margin:var(--s3) 0 0;gap:2px;padding:0;list-style:none;display:grid}.checklist-steps li{grid-template-columns:24px minmax(0,1fr);gap:12px;padding:6px 0;display:grid}.checklist-mark{border:1px solid var(--border);width:24px;height:24px;font-size:var(--fs-sm);color:var(--text-2);border-radius:50%;justify-content:center;align-items:center;font-weight:600;display:flex}.checklist-title{min-height:24px;line-height:24px}.checklist-why{max-width:70ch;margin:2px 0 var(--s2);color:var(--text-2)}.checklist-steps li.done .checklist-mark{color:var(--ok);background:#5bb07a2e;border-color:#0000}.checklist-steps li.done .checklist-title{color:var(--text-2)}.checklist-steps li.current .checklist-mark{border-color:var(--text-2);color:var(--text)}.checklist-steps li.current .checklist-title{font-weight:600}.character{gap:var(--s4);padding:var(--s4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:minmax(0,1fr) auto;display:grid}.character-map{align-self:start}.character.empty{grid-template-columns:1fr}.character.empty p{margin-top:var(--s1)}.character-main{gap:var(--s3);flex-direction:column;min-width:0;display:flex}.character-head{align-items:center;gap:var(--s3);display:flex}.character-id{min-width:0}.character-name{font-size:var(--fs-xl);overflow-wrap:anywhere}.status-line{gap:var(--s1) var(--s3);color:var(--text-2);flex-wrap:wrap;margin-top:2px;display:flex}.seg.ok{color:var(--ok);font-weight:600}.seg.warn{color:var(--warn);font-weight:600}.avatar{border-radius:var(--radius);background:var(--raised);flex-shrink:0;width:72px;height:72px;position:relative;overflow:hidden}.avatar img{width:200%;image-rendering:pixelated;position:absolute;top:-100%;left:-50%}.avatar.off{filter:grayscale();opacity:.5}.bars{gap:var(--s2);display:grid}.bar-row{grid-template-columns:48px minmax(0,1fr) 64px;align-items:center;gap:12px;display:grid}.bar-label{color:var(--text-2)}.bar-track{background:var(--raised);border-radius:4px;height:14px;overflow:hidden}.bar-fill{border-radius:4px;height:100%;transition:width .3s}.bar-fill.hp{background:var(--hp)}.bar-fill.mana{background:var(--mana)}.bar-fill.off{background:#4a4f56}.bar-value{font-family:var(--font-num);font-size:var(--fs-xl);text-align:right;font-variant-numeric:tabular-nums;font-weight:600;line-height:1}.character-foot{justify-content:space-between;align-items:flex-end;gap:var(--s3);flex-wrap:wrap;margin-top:auto;display:flex}.character-meta{flex-direction:column;gap:2px;display:flex}.coords{gap:var(--s3);font-variant-numeric:tabular-nums;display:inline-flex}.coords i{color:var(--text-2);margin-right:2px;font-style:normal}.character-meta .muted{font-size:var(--fs-sm)}.toggle-wrap{align-items:flex-end;gap:var(--s1);flex-direction:column;display:flex}.toggle-wrap .error{max-width:280px;font-size:var(--fs-sm);text-align:right}.condition-chips{margin:0;padding:0;list-style:none}.module-buttons{gap:var(--s2);flex-wrap:wrap;display:flex}.module-btn{background:var(--surface);border:1px solid var(--border);min-width:112px;color:var(--text-2);flex-direction:column;align-items:flex-start;gap:2px;display:inline-flex}.module-btn.on{background:var(--raised);color:var(--text);border-color:#474e57}.module-btn:hover:not(:disabled){background:var(--raised);border-color:#3a4048}.module-btn.on:hover:not(:disabled){border-color:#5a626c}.module-state{font-size:var(--fs-sm);color:var(--text-2);font-weight:400}.module-toggles .small-print,.module-toggles .error{margin:var(--s2) 0 0}.toggle-bot{min-width:160px;min-height:48px;padding:0 var(--s5);font-size:var(--fs-lg)}.toggle-bot.running{background:var(--raised);color:var(--text);border-color:#3a4048}.toggle-bot.running:hover:not(:disabled){background:#2e333a;border-color:#474e57}.alerts{gap:var(--s2);margin:0;padding:0;list-style:none;display:grid}.alert{align-items:baseline;gap:2px var(--s2);padding:10px var(--s3);border:1px solid var(--border);border-left:3px solid var(--warn);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;display:flex}.alert.error{border-left-color:var(--error);color:var(--text)}.alert-text{font-weight:600}.alert-todo{color:var(--text-2)}.alert-link{margin-left:auto;font-weight:500}.create-form input{min-width:0}.info-grid{gap:0 var(--s5);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.info-line{color:var(--text-2)}.map-preview{border:1px solid var(--border);border-radius:var(--radius);background:var(--map-bg);max-width:100%;position:relative;overflow:hidden}.map-preview.off .map-image{filter:grayscale();opacity:.5}.map-image{image-rendering:pixelated;background-repeat:no-repeat;position:absolute;inset:0}.map-status{font-size:var(--fs-sm);color:var(--text-2);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.map-pointer{border:2px solid var(--hp);pointer-events:none;background:#fff;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #00000080}.map-pointer:after{content:"";border:2px solid #d4533fcc;border-radius:50%;width:22px;height:22px;animation:1.6s ease-out infinite map-ping;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-preview.off .map-pointer:after{display:none}@keyframes map-ping{0%{opacity:1;width:8px;height:8px}to{opacity:0;width:34px;height:34px}}.map-zoom{gap:var(--s1);display:flex;position:absolute;bottom:6px;right:6px}.map-zoom button{border-color:var(--border);width:36px;color:var(--text);font-size:var(--fs-lg);background:#17191dd9;padding:0;line-height:1}.map-zoom button:hover:not(:disabled){background:var(--raised);border-color:#3a4048}.map-waypoint{border:2px solid var(--accent);pointer-events:none;background:#d9a44159;border-radius:2px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0009}.guide-dialog{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(560px,100vw - 32px);max-height:85vh;color:var(--text);padding:0;box-shadow:0 12px 32px #00000073}.guide-dialog::backdrop{background:#0009}.guide-dialog-inner{gap:var(--s3);padding:var(--s4);flex-direction:column;display:flex}.guide-dialog-head{justify-content:space-between;align-items:center;display:flex}.guide-dialog-head h2{font-size:var(--fs-lg)}.guide-dialog-foot{align-items:center;gap:var(--s2) var(--s3);padding-top:var(--s3);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.guide-dialog-foot .muted{font-size:var(--fs-sm)}.tour{z-index:1000;position:fixed;inset:0}.tour-blocker{position:fixed;inset:0}.tour-spot{border-radius:var(--radius);pointer-events:none;outline:2px solid #e6e8eb99;transition:top .2s,left .2s,width .2s,height .2s;position:fixed;box-shadow:0 0 0 200vmax #0000009e}.tour-pop{width:min(320px,100vw - 16px);padding:var(--s3);border:1px solid var(--border);border-radius:var(--radius);background:var(--raised);position:fixed;box-shadow:0 8px 24px #00000073}.tour-count{font-size:var(--fs-sm);color:var(--text-2)}.tour-pop h2{font-size:var(--fs-lg);margin-top:2px}.tour-pop p{margin-top:var(--s1);color:var(--text-2)}.tour-actions{align-items:center;gap:var(--s2);margin-top:var(--s3);display:flex}.tour-actions .ghost{margin-left:calc(-1 * var(--s2));padding:0 var(--s2)}.profiles{align-items:start;gap:var(--s5);grid-template-columns:240px minmax(0,1fr);display:grid}.profile-list{gap:var(--s3);flex-direction:column;display:flex}.create-form{gap:var(--s2);flex-direction:column;display:flex}.profile-list ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.profile-list li{align-items:center;gap:var(--s2);padding-right:var(--s2);border-radius:var(--radius);display:flex}.profile-list li:hover{background:var(--surface)}.profile-list li.selected{background:var(--raised);box-shadow:inset 2px 0 0 var(--accent)}.profile-pick{min-width:0;color:var(--text);text-overflow:ellipsis;background:0 0;border:none;flex:1;justify-content:flex-start;font-weight:500;overflow:hidden}.profile-pick-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile-pick:hover:not(:disabled){background:0 0;border:none}.profiles.wide{gap:var(--s4);grid-template-columns:minmax(0,1fr)}.profiles.wide .profile-list{flex-flow:wrap;align-items:center}.profiles.wide .create-form{flex-flow:wrap}.profiles.wide .create-form input{flex:180px;min-width:0}.editor-fieldset{border:none;min-width:0;margin:0;padding:0}.editor-fieldset:disabled{opacity:.6}.save-error{order:-1;width:100%}.profiles.wide .profile-list ul{flex-flow:wrap}.profile-main{min-width:0}.profile-head{justify-content:space-between;align-items:center;gap:var(--s2);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.profile-title{font-size:var(--fs-xl);overflow-wrap:anywhere;align-items:center;gap:12px;display:flex}.vocation-bar{align-items:flex-end;gap:12px var(--s3);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.vocation-bar .heal-hint{align-self:center;margin:0}.vocation-confirm,.inline-confirm{width:100%;padding:12px var(--s3);border:1px solid var(--border);border-left:3px solid var(--warn);border-radius:var(--radius);background:var(--surface)}.vocation-confirm p,.inline-confirm p{margin:0;font-weight:600}.vocation-confirm ul{margin:var(--s2) 0 12px;color:var(--text-2);padding-left:20px}.inline-confirm{margin-top:var(--s4)}.inline-confirm p{margin-bottom:12px}.party-intro{max-width:70ch;margin-bottom:var(--s3)}.party-grid{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.party-card{min-width:0;padding:var(--s3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:12px;display:flex}.party-card-head{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.party-card-head .chip{margin:0}.chip.tag{border-color:var(--accent);color:var(--accent)}.party-email{overflow-wrap:anywhere;min-width:0;font-weight:600}.party-card .status-line{margin:0}.party-character{font-size:var(--fs-lg);overflow-wrap:anywhere}.party-card .row.end{margin-top:auto}.party-list{gap:var(--s2);max-width:720px;margin:0;padding:0;list-style:none;display:grid}.party-list li{align-items:center;gap:var(--s2);padding:10px var(--s3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;display:flex}.party-invite{align-items:flex-end;max-width:560px}.party-sub{margin:var(--s4) 0 var(--s2);font-size:var(--fs-md)}.profile-editor{gap:var(--s4);grid-template-columns:152px minmax(0,1fr);display:grid}.editor-tabs{flex-direction:column;gap:2px;display:flex}.editor-tab{color:var(--text-2);background:0 0;border:none;justify-content:flex-start;font-weight:500}.editor-tab:hover:not(:disabled){background:var(--surface);color:var(--text);border:none}.editor-tab[aria-selected=true]{background:var(--raised);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.editor-tab[aria-selected=true]:hover:not(:disabled){background:var(--raised)}.profile-editor.wide{gap:var(--s3);grid-template-columns:minmax(0,1fr)}.profile-editor.wide .editor-tabs{border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto}.profile-editor.wide .editor-tab{border-radius:var(--radius) var(--radius) 0 0}.profile-editor.wide .editor-tab[aria-selected=true]{box-shadow:inset 0 -2px 0 var(--accent)}.editor-panel{min-width:0}.save-bar{z-index:5;justify-content:space-between;align-items:center;gap:12px var(--s3);margin-top:var(--s4);padding:12px var(--s3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;display:flex;position:sticky;bottom:0}.save-state{flex:1;min-width:0}.save-problems summary{color:var(--error);cursor:pointer;font-weight:500}.save-problems ul{margin:var(--s2) 0 0;color:var(--text-2);padding-left:20px}.save-dirty{color:var(--warn);font-weight:500}.save-ok{color:var(--ok);font-weight:500}.heal-section{padding:var(--s3) 0;border-bottom:1px solid var(--border)}.heal-section:first-child{padding-top:0}.heal-section h3{margin-bottom:var(--s2);font-size:var(--fs-md)}.heal-fields{align-items:flex-end;gap:12px var(--s3);flex-wrap:wrap;display:flex}.heal-fields.sub-row{margin-top:12px}.heal-fields>.heal-fields.sub-row{width:100%;margin-top:0}.friend-row label.grow{max-width:320px}.heal-fields input[type=number]{width:88px}.heal-hint{max-width:70ch;font-size:var(--fs-sm);color:var(--text-2);margin:0 0 12px}.heal-fields .heal-hint{margin:0}.heal-hint.heal-warn{color:var(--warn)}.heal-sub{width:100%;color:var(--text);font-weight:600}.heal-sub.inline{align-self:center;width:auto}.profile-editor>.editor-panel>button.secondary{margin-top:var(--s3)}.route-full{width:100%}.route-problems{margin:var(--s3) 0;padding:12px var(--s3) 12px 36px;border-radius:var(--radius);font-size:var(--fs-sm);color:var(--text);background:#e0604f14;border:1px solid #e0604f66}.route-warnings{background:#e6b43c1a;border-color:#e6b43c80}.route-wide{width:100%;margin-top:var(--s3)}.route-grid{gap:var(--s4);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1180px){.route-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}.route-col{flex-direction:column;gap:12px;min-width:0;display:flex}.route-col>.heal-hint{margin:0}.route-map-wrap{gap:var(--s2);flex-direction:column;display:flex}.route-map-bar,.route-map-foot{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.route-map-bar button{min-width:36px}.cavebot-old-steps{max-height:420px;margin:0;padding:0;list-style:none;overflow-y:auto}.cavebot-old-steps li{align-items:center;gap:var(--s2);padding:2px var(--s2);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:4px;display:flex}.cavebot-old-steps li:hover{background:#ffffff0a}.cavebot-old-steps li.picked{outline:1px solid #d9a441}.cavebot-old-steps .num{text-align:right;opacity:.7;min-width:2.5em}.cavebot-old-text{flex:1}.cavebot-old-mode.hunt{background:#d4533f}.cavebot-old-mode.travel{background:#4b82dc}.hunt-files,.hunt-files-panel{align-items:center;gap:var(--s2);flex-wrap:wrap;display:inline-flex}.hunt-files-panel input[type=text]{width:14em}.hunt-files [role=status]{font-size:var(--fs-sm)}.route-map-hover{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:pre;margin-left:auto}.route-map{border:1px solid var(--border);border-radius:var(--radius);background:var(--map-bg);cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;height:560px;position:relative;overflow:hidden}.route-map:active{cursor:grabbing}.route-svg{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.route-svg text{font-family:var(--font)}.route-live{pointer-events:none}.route-legend{font-size:var(--fs-sm);align-items:center;gap:6px;display:inline-flex}.route-legend i{border-radius:2px;width:18px;height:4px;display:inline-block}.route-legend i.legend-diamond{border:1.5px solid var(--text);background:0 0;border-radius:1px;width:9px;height:9px;margin:0 2px;transform:rotate(45deg)}.route-legend i.legend-box{background:#a77bd833;border:1.5px dashed;border-radius:1px;width:12px;height:12px}.route-map-foot .muted{font-size:var(--fs-sm)}.route-offsets{gap:2px;display:inline-flex}.route-offsets button{min-width:36px;padding:0 10px}.route-pos{align-items:flex-end;gap:var(--s2);flex-wrap:wrap;display:inline-flex}.route-pos>span{font-size:var(--fs-sm);color:var(--text-2);align-self:center}.route-pos input[type=number]{width:96px}.route-me .muted{font-size:var(--fs-sm)}.route-form{padding:var(--s3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.route-form:first-child{padding-top:var(--s3)}.route-form.editing{background:var(--raised);border-color:#5d636b}.route-bulk{align-items:center;gap:var(--s2);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.route-list{border:1px solid var(--border);border-radius:var(--radius);max-height:560px;overflow:auto}.route-list th{z-index:1;background:var(--surface);position:sticky;top:0}.route-list td,.route-list th{padding:4px var(--s2);white-space:nowrap}.route-list tr:last-child td{border-bottom:none}.route-list tr.editing td{background:var(--raised)}.route-list tr.current td:first-child{box-shadow:inset 3px 0 0 var(--ok)}.route-coord{font-variant-numeric:tabular-nums}.route-mode{padding:1px var(--s2);font-size:var(--fs-sm);color:#fff;border-radius:10px}.route-actions{gap:var(--s1);display:flex}.route-actions button{font-size:var(--fs-sm);padding:0 10px}.route-empty{padding:var(--s3)}.auth-page{min-height:100vh;padding:var(--s4) var(--s3);justify-content:center;align-items:center;display:flex}.auth-card{width:min(400px,100%);padding:var(--s5);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}form.stack{gap:var(--s3);flex-direction:column;display:flex}.auth-card h1{margin-bottom:var(--s1)}.auth-card button{margin-top:var(--s2)}.auth-switch{font-size:var(--fs-sm);text-align:center}.status-big{margin-bottom:var(--s2);font-size:var(--fs-xl);align-items:center;gap:12px;font-weight:600;display:flex}.page-head+.section,.page-head+.error+.section{margin-top:0}@media (width<=960px){.main{padding:var(--s4)}.character{grid-template-columns:minmax(0,1fr)}.profiles{gap:var(--s4);grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.shell{display:block}.sidebar{z-index:50;height:auto;padding:var(--s2) var(--s3);border-right:none;border-bottom:1px solid var(--border);overflow:visible}.sidebar-top{flex-direction:row;align-items:center;gap:12px}.brand-link{align-self:center}.bot-state{background:0 0;border:none;flex:1;min-width:0;padding:6px 10px}.bot-state-detail{display:none}.sidebar .menu-button{border-color:var(--border);color:var(--text);display:inline-flex}.sidebar-nav{margin-top:var(--s2);padding-bottom:var(--s2);display:none}.sidebar-nav.open{display:flex}.main{padding:var(--s4) var(--s3)}.profile-editor{gap:var(--s3);grid-template-columns:minmax(0,1fr)}.editor-tabs{border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto}.editor-tab[aria-selected=true]{box-shadow:inset 0 -2px 0 var(--accent)}.route-map{height:420px}.details div{grid-template-columns:1fr;gap:0}}@media (width<=480px){.brand-name{display:none}.first-steps,.character{padding:var(--s3)}.avatar{width:56px;height:56px}.bar-row{gap:var(--s2);grid-template-columns:40px minmax(0,1fr) 52px}.character-foot{flex-direction:column;align-items:stretch}.toggle-wrap{align-items:stretch}.toggle-bot,.save-bar .row{width:100%}.save-bar .row button{flex:1}.auth-card{padding:var(--s4)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.party-running{margin-bottom:var(--s4)}.route-auto{margin-top:12px}.route-auto-error{color:var(--error)}.route-segments{margin-top:12px}.segment-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.segment-list li{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.party-mode{align-items:center;gap:6px;margin-bottom:10px;display:flex}
