:root{--font:"Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, sans-serif;--mono:ui-monospace, "Cascadia Mono", "Segoe UI Mono", Consolas, monospace;--bg:#f6f2ea;--bg-glow:#ffc53d29;--surface:#fffdf8;--surface-2:#f1ebdf;--border:#e3dac8;--text:#221d16;--muted:#736a5c;--accent:#b7700d;--accent-strong:#e9a52a;--on-accent:#231400;--link:#5b4bc4;--ok:#1d8f4e;--warn:#b77406;--bad:#c73c32;--off:#a79d8d;--xp:#8b54e0;--rested:#3f82e0;--radius:12px;--shadow:0 1px 2px #3c280a0f, 0 4px 16px #3c280a0d;--cls-mix:62%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f0d1a;--bg-glow:#ffb02e12;--surface:#1a1729;--surface-2:#242038;--border:#2f2a46;--text:#ece8f6;--muted:#9e97b5;--accent:#ffc53d;--accent-strong:#ffc53d;--on-accent:#231400;--link:#b8b0ff;--ok:#46d483;--warn:#ffb03a;--bad:#ff6b5e;--off:#6d6784;--xp:#9b63f2;--rested:#5aa0ff;--shadow:0 1px 0 #ffffff08 inset, 0 8px 24px #00000040;--cls-mix:100%}}*{box-sizing:border-box}html,body{margin:0}body{font:14px/1.45 var(--font);background:radial-gradient(1200px 520px at 50% -180px, var(--bg-glow), transparent 70%) no-repeat, var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100vh}::selection{background:color-mix(in srgb, var(--accent-strong) 40%, transparent)}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}.muted{color:var(--muted)}.small{font-size:12px}.mono,code{font-family:var(--mono);font-size:12.5px}.ok-text{color:var(--ok)}.bad-text{color:var(--bad)}.warn-text{color:var(--warn)}.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}:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.topbar{background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.2);border-bottom:1px solid var(--border);min-height:52px;padding:8px 20px;padding-top:max(8px, env(safe-area-inset-top));z-index:5;flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex;position:sticky;top:0}.brand{font:700 17px/1 var(--font-display);color:var(--text);letter-spacing:-.01em;align-items:center;gap:8px;display:inline-flex}.brand-logo{border-radius:7px;flex:none;width:26px;height:26px}.brand:hover{text-decoration:none}.topbar nav{flex:1;gap:4px;display:flex}.topbar nav a{color:var(--muted);border-radius:6px;padding:6px 10px}.topbar nav a:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.topbar nav a.active{color:var(--text);background:var(--surface-2);font-weight:500}.link{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.link-dot{background:var(--off);border-radius:50%;width:8px;height:8px}.link-open .link-dot{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 20%, transparent)}.link-stopped .link-dot{background:var(--bad)}.banner{background:color-mix(in srgb, var(--warn) 16%, var(--surface));border-bottom:1px solid color-mix(in srgb, var(--warn) 35%, var(--border));padding:8px 20px;font-size:13px}.banner.bad{background:color-mix(in srgb, var(--bad) 14%, var(--surface));border-color:color-mix(in srgb, var(--bad) 35%, var(--border))}.page{max-width:1680px;margin:0 auto;padding:20px}.crumbs{margin-bottom:12px;font-size:13px}.stack{flex-direction:column;gap:16px;display:flex}.grid{grid-template-columns:repeat(var(--columns,12), minmax(0, 1fr));align-items:start;gap:16px;display:grid}.grid>*{grid-column:span var(--span,var(--columns,12));min-width:0}@media (width<=760px){.grid>*{grid-column:1/-1}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.card-title{letter-spacing:.07em;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:12px;font-weight:600}.section-title{letter-spacing:.07em;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:20px 0 10px;font-size:12px;font-weight:600}.widget-error{border-color:color-mix(in srgb, var(--bad) 45%, var(--border))}.widget-error .card-title{color:var(--bad);margin-bottom:6px}.widget-error p{white-space:pre-wrap;word-break:break-word}.empty{text-align:center;padding:20px 0}.placeholder .empty{padding:60px 0}.notice{border-radius:var(--radius);background:color-mix(in srgb, var(--accent) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));padding:12px 14px}.notice.bad{background:color-mix(in srgb, var(--bad) 10%, var(--surface));border-color:color-mix(in srgb, var(--bad) 35%, var(--border))}.dot{width:10px;height:10px;box-shadow:0 0 0 2px var(--ring,var(--surface));border-radius:50%;flex:none;display:inline-block}.dot-in_game{background:var(--ok)}.dot-away{background:radial-gradient(circle at 78% 24%, var(--ring,var(--surface)) 0 3.2px, var(--warn) 3.7px)}.dot-offline{background:var(--ring,var(--surface));border:2px solid var(--off)}.cls{color:color-mix(in oklab, var(--cls) var(--cls-mix), black);font-weight:600}.char-name{font-weight:600}.chips{vertical-align:1px;gap:4px;margin-left:8px;display:inline-flex}.chip{background:var(--surface-2);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:0 6px;font-size:11px;font-weight:500;line-height:16px;display:inline-block}.chip.ok{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 35%, var(--border))}.chip.warn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, var(--border))}.chip.bad{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 40%, var(--border))}td .chip{margin-left:6px}.presence-label-in_game{color:var(--ok);font-weight:500}.presence-label-away{color:var(--warn);font-weight:500}.presence-label-offline{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.money{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.money .coin{flex:none}.money .u{margin-left:1px;font-size:.72em;font-weight:600}.money .u-g{color:var(--accent)}.money .u-s{color:#a7adba}.money .u-c{color:#c7835a}.delta{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:baseline;gap:3px;font-weight:600;display:inline-flex}.delta>span[aria-hidden]{font-size:.78em}.delta.up{color:var(--ok)}.delta.down{color:var(--bad)}.roster-card{box-shadow:none;background:0 0;border:0;padding:0}.roster-card>.card-head{flex-wrap:wrap;margin-bottom:16px}.roster-card .card-title{font:700 22px/1.2 var(--font-display);text-transform:none;letter-spacing:-.01em;color:var(--text)}.roster-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 14px;display:flex}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:2px;display:inline-flex}.seg-btn{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 12px;font-size:12.5px;font-weight:500}.seg-btn:hover{color:var(--text)}.seg-btn[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000038}.roster-group+.roster-group{margin-top:24px}.group-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;margin:0 0 10px;font-size:12px;font-weight:600;display:flex}.group-title:after{content:"";background:var(--border);flex:1;height:1px}.roster{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}@media (width>=600px){.roster{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.roster{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}}.rcard,.rrow{--edge:color-mix(in oklab, var(--cls,var(--off)) var(--cls-mix), black)}.rcard{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--edge,var(--off));border-radius:var(--radius);min-width:0;box-shadow:var(--shadow);color:var(--text);font-variant-numeric:tabular-nums;flex-direction:column;gap:12px;padding:14px 16px 14px 14px;transition:transform .12s,border-color .12s,background-color .12s;display:flex}.rcard:hover,.rcard:focus-visible{border-color:color-mix(in srgb, var(--text) 18%, var(--border));border-left-color:var(--edge,var(--off));text-decoration:none;transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){.rcard:hover,.rcard:focus-visible{transform:none}}.rcard:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rcard-head{align-items:center;gap:12px;display:flex}.avatar{background:var(--surface-2);border:1px solid color-mix(in srgb, var(--cls,var(--off)) 40%, var(--border));border-radius:50%;flex:none;place-items:center;width:40px;height:40px;display:grid;position:relative}.avatar-letter{font:700 17px/1 var(--font-display);color:color-mix(in oklab, var(--cls,var(--muted)) var(--cls-mix), black)}.avatar .dot{width:12px;height:12px;position:absolute;bottom:-1px;right:-1px}.avatar .dot-away{background:radial-gradient(circle at 78% 24%, var(--ring,var(--surface)) 0 3.8px, var(--warn) 4.3px)}.rcard-id{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.rcard-name{font:600 18px/1.25 var(--font-display);overflow-wrap:anywhere;min-width:0}.rcard-name .realm{margin-left:6px;font-size:12.5px}.rcard-sub{font-size:13px}.rcard-lc{color:var(--text)}.rcard-presence{white-space:nowrap;align-self:flex-start;margin-top:3px;font-size:12.5px}.rcard-where{flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:13.5px;display:flex}.rcard-zone{min-width:0}.rcard-coords{font-size:12.5px}.rcard .chips{flex-wrap:wrap;margin:-4px 0 0}.presence-offline .rcard-name,.presence-offline .avatar-letter,.presence-offline .xp,.presence-offline .tiles{opacity:.7}.xp{--fill:color-mix(in oklab, var(--cls,var(--xp)) var(--cls-mix), black);flex-direction:column;gap:6px;display:flex}.xp-head{align-items:baseline;gap:8px;min-width:0;font-size:13px;display:flex}.xp-level{color:var(--text);white-space:nowrap;font-weight:700}.xp-to{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.xp-pct{color:var(--text);margin-left:auto;font-weight:600}.xpbar{background:color-mix(in srgb, var(--text) 10%, transparent);--fill:color-mix(in oklab, var(--cls,var(--xp)) var(--cls-mix), black);border-radius:999px;height:6px;position:relative;overflow:hidden}.xpbar-fill,.xpbar-rested{border-radius:inherit;transition:width .6s;position:absolute;inset:0 auto 0 0}.xpbar-fill{background:var(--fill)}.xpbar-rested,.swatch{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--fill) 55%, transparent) 0 3px, color-mix(in srgb, var(--fill) 22%, transparent) 3px 6px)}.xp-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:12px;display:flex}.xp-rested{align-items:center;gap:6px;display:inline-flex}.swatch{border-radius:3px;width:14px;height:6px;display:inline-block}.xp-detail{gap:8px}.xp-detail .xp-head{font-size:15px}.xp-detail .xp-level{font:700 17px/1 var(--font-display)}.xp-detail .xpbar{height:10px}.xp-detail .xp-foot{font-size:12.5px}.tiles{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;margin:0;display:grid}.tile{background:var(--surface-2);border-radius:10px;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;display:flex}.tile dd{margin:0}.tile-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.tile-value{font:600 20px/1.25 var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}.tile-unit{color:var(--muted);margin-left:1px;font-size:.72em;font-weight:500}.tile-delta{font-size:12px}.tile-delta:empty{display:none}.tile-hint{color:var(--muted);font-size:11.5px}.tiles-card{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px 28px;padding-top:10px;display:flex}.tiles-card .tile{background:0 0;border-radius:0;padding:0}.tiles-card .tile-value{font-size:16px}.rrows{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.rrow{--ring:var(--surface);border-top:1px solid var(--border);border-left:3px solid var(--edge,var(--off));min-height:44px;color:var(--text);font-variant-numeric:tabular-nums;grid-template-columns:12px minmax(150px,1.3fr) 104px 52px minmax(110px,1fr) minmax(150px,1.4fr) 150px 72px;align-items:center;gap:14px;padding:0 16px 0 13px;font-size:13.5px;display:grid}.rrow:first-child{border-top:0}.rrow-head{background:var(--surface-2);min-height:30px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;border-left-color:#0000;font-size:11px;font-weight:600}a.rrow:hover{background:color-mix(in srgb, var(--text) 4%, var(--surface));text-decoration:none}a.rrow:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:0}.rrow-name,.rrow-zone,.rrow-presence{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.rrow-name .char-name{font-size:14.5px}.rrow-lv{color:var(--muted)}.rrow-xp{align-items:center;gap:8px;display:flex}.rrow-xp .xpbar{flex:1;height:4px}.rrow-xp .small{text-align:right;width:3ch}.rrow-gold,.rrow-rate{text-align:right;justify-self:end}.rrow.presence-offline>:not(.dot){opacity:.72}@media (width<=1099px){.rrow{grid-template-columns:12px minmax(120px,1.3fr) 96px 48px minmax(90px,1fr) 140px 64px;gap:12px}.rrow-zone{display:none}}.detail-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.detail-head>div:first-child{flex-direction:column;gap:2px;display:flex}.detail-name{font:700 24px/1.2 var(--font-display);align-items:center;gap:10px;display:flex}.detail-name .dot{width:12px;height:12px}.detail-side{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.detail-money{font:600 20px/1.2 var(--font-display)}.detail .tiles{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:6px 8px;font-size:12px;font-weight:500}.table td{border-bottom:1px solid var(--border);padding:7px 8px}.table tr:last-child td{border-bottom:0}.table .num{text-align:right}.chart{width:100%;min-height:220px}.chart .vega-embed{width:100%}.toggles{flex-direction:column;display:flex}.toggle{border-top:1px solid var(--border);cursor:pointer;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.toggles .toggle:first-child{border-top:0}.toggle.disabled{opacity:.5;cursor:default}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:var(--border);border-radius:999px;flex:none;width:34px;height:20px;margin-top:1px;transition:background .15s;position:relative}.toggle-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.toggle input:checked+.toggle-track{background:var(--ok)}.toggle input:checked+.toggle-track:after{transform:translate(14px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.toggle-text{flex-direction:column;display:flex}.toggle-label{font-weight:500}.ghost{background:var(--surface-2);border-radius:8px;margin-bottom:8px;padding:4px 12px}.ghost.on{background:color-mix(in srgb, var(--warn) 16%, var(--surface))}.ghost .toggle{border-top:0}.kv{grid-template-columns:max-content 1fr;gap:8px 14px;margin:0;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.form{flex-direction:column;gap:10px;display:flex}.form label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}input[type=url],input[type=text],input:not([type]){font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:7px 9px}input:focus{outline:2px solid color-mix(in srgb, var(--accent) 50%, transparent);outline-offset:0;border-color:var(--accent)}.form-actions{align-items:center;gap:12px;display:flex}.btn{font:inherit;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px;font-weight:500}.btn:hover{border-color:var(--muted)}.btn.primary{background:linear-gradient(180deg, color-mix(in srgb, var(--accent-strong) 80%, white), var(--accent-strong));border-color:color-mix(in srgb, var(--accent-strong) 70%, black);color:var(--on-accent);font-weight:600}.btn.primary:hover{filter:brightness(1.08)}.btn:disabled{opacity:.6;cursor:default}.invites{flex-direction:column;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.invites li{align-items:center;gap:10px;display:flex}.code{background:var(--surface-2);letter-spacing:.05em;border-radius:6px;padding:4px 10px;font-size:16px}@media (width<=560px){.page{padding:12px}.topbar{gap:8px 10px;padding:8px 12px}.detail-head{flex-direction:column}.detail-side{align-items:flex-start}}.realm{margin-left:8px;font-size:.7em;font-weight:400}.account{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.account-name{font-weight:500}.signin{max-width:520px;margin:8vh auto 0}.signin input{letter-spacing:.05em;font-size:18px}.check{align-items:center;gap:8px;margin-top:12px;display:flex}.modal-backdrop{z-index:20;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{width:min(620px,100%);max-height:calc(100vh - 32px);overflow:auto}.add-device{grid-template-columns:232px minmax(0,1fr);align-items:start;gap:20px;margin-top:16px;display:grid}.qr-col{flex-direction:column;gap:10px;display:flex}.qr{background:#fff;border-radius:12px;padding:16px;line-height:0;box-shadow:0 0 0 1px #0000001f,0 6px 20px #00000040}.qr svg{width:100%;height:auto;transition:opacity .2s}.add-device.expired .qr svg{opacity:.12}.countdown{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.countdown .num{color:var(--text);font-weight:600}.fallback{line-height:1.8}.fallback .code{white-space:nowrap;font-size:15px}.copy-row{gap:6px;margin-top:4px;display:flex}.copy-row input{flex:1;min-width:0}@media (width<=520px){.add-device{grid-template-columns:minmax(0,1fr)}.qr-col{width:100%;max-width:260px;margin:0 auto}}.installs{flex-direction:column;gap:8px;display:flex}.install{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.install.selected{border-color:color-mix(in srgb, var(--link) 60%, var(--border));background:color-mix(in srgb, var(--link) 8%, var(--surface))}.install input{accent-color:var(--link);flex:none;margin:0}.install-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.install-name{font-weight:500}.install-path{overflow-wrap:anywhere}.install .chip{flex:none}.download{margin-top:4px}.download a{font-weight:600}.steps{flex-direction:column;gap:16px;max-width:760px;margin:0 auto;display:flex}.card-head-title{align-items:center;gap:10px;min-width:0;display:flex}.step-num{width:26px;height:26px;font:700 13px/1 var(--font);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:50%;flex:none;place-items:center;display:grid}.steps .card-title{font:600 16px/1.3 var(--font-display);text-transform:none;letter-spacing:0;color:var(--text)}.steps .card-head{flex-wrap:wrap}.state-pill{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.state-pill.ok{color:var(--ok);background:color-mix(in srgb, var(--ok) 12%, var(--surface));border-color:color-mix(in srgb, var(--ok) 32%, var(--border))}.state-pill.warn{color:var(--warn);background:color-mix(in srgb, var(--warn) 12%, var(--surface));border-color:color-mix(in srgb, var(--warn) 35%, var(--border))}.state-pill.bad{color:var(--bad);background:color-mix(in srgb, var(--bad) 12%, var(--surface));border-color:color-mix(in srgb, var(--bad) 35%, var(--border))}.disclosure{border-top:1px solid var(--border);padding-top:12px}.disclosure summary{cursor:pointer;color:var(--muted);width:max-content;font-size:13px}.disclosure summary:hover{color:var(--text)}.disclosure[open] summary{margin-bottom:12px}
