@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--bg: #f7f7f8;--surface: #ffffff;--surface-2: #f4f4f5;--surface-3: #ebebed;--border: #e4e4e7;--border-strong: #d4d4d8;--text: #0d0d0d;--text-2: #3f3f46;--muted: #63636b;--muted-2: #71717a;--primary: #0d0d0d;--primary-hover: #2a2a2a;--primary-fg: #ffffff;--accent: #e4572e;--accent-fill: #c9431c;--accent-fill-fg: #ffffff;--accent-text: #b3361a;--accent-tint: #fff1ec;--accent-border: #f6b9a5;--focus: #c9431c;--green-bg: #ecfdf5;--green-border: #a7f3d0;--green-fg: #047857;--blue-bg: #eff6ff;--blue-border: #bfdbfe;--blue-fg: #1e40af;--violet-bg: #f3f0ff;--violet-border: #ddd6fe;--violet-fg: #5b3fc4;--amber-bg: #fffbeb;--amber-border: #fde68a;--amber-fg: #92400e;--rose-bg: #fff1f2;--rose-border: #fecdd3;--rose-fg: #b91c1c;--shadow-sm: 0 1px 2px rgba(13, 13, 13, .06);--shadow-md: 0 8px 24px rgba(13, 13, 13, .12);--radius-lg: 12px;--radius: 10px;--radius-sm: 8px;--radius-xs: 6px;--topbar-h: 60px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--font-sans: "Geist Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace}html.dark{color-scheme:dark;--bg: #0d0d0d;--surface: #1a1a1a;--surface-2: #242424;--surface-3: #2c2c2c;--border: #2c2c2c;--border-strong: #3a3a3a;--text: #ececec;--text-2: #c4c4c8;--muted: #9a9a9a;--muted-2: #8a8a8a;--primary: #ececec;--primary-hover: #d4d4d4;--primary-fg: #0d0d0d;--accent: #ff6a3d;--accent-fill: #ff6a3d;--accent-fill-fg: #1c0a03;--accent-text: #ff8a63;--accent-tint: #2d1710;--accent-border: #5a2a1a;--focus: #ff8a63;--green-bg: #0c2a1f;--green-border: #14503a;--green-fg: #6ee7b7;--blue-bg: #10213f;--blue-border: #1e3a6b;--blue-fg: #93c5fd;--violet-bg: #1f1838;--violet-border: #3b2f6b;--violet-fg: #c4b5fd;--amber-bg: #2a2008;--amber-border: #4d3a14;--amber-fg: #fcd34d;--rose-bg: #2a1014;--rose-border: #4d1d24;--rose-fg: #fb7185;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}img{max-width:100%}h1,h2,h3,h4{margin:0;text-wrap:balance}p{margin:0}::placeholder{color:var(--muted-2)}:where(a,button,select,input,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-xs)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mono,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12px}.accent-text{color:var(--accent-text);font-weight:600}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:24px;min-height:calc(var(--topbar-h) + var(--safe-top));padding:var(--safe-top) 24px 0;background:var(--surface);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px;letter-spacing:-.01em;flex-shrink:0}.brand-mark{width:28px;height:28px;border-radius:7px;background:#1a1d29;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.nav{display:flex;gap:2px}.nav-link{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:var(--radius-xs);color:var(--muted);font-weight:500;white-space:nowrap;transition:background .15s,color .15s}.nav-link:hover,.nav-link.active{color:var(--text);background:var(--surface-2)}.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:999px;background:var(--accent-fill);color:var(--accent-fill-fg);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.topbar-spacer{flex:1}.search-box{display:flex;align-items:center;gap:8px;width:280px;height:36px;padding:0 10px 0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);transition:border-color .15s}.search-box:focus-within{border-color:var(--border-strong)}.search-box input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--text)}.kbd{font-family:var(--font-mono);font-size:11px;line-height:1;padding:3px 5px;border:1px solid var(--border);border-radius:4px;color:var(--muted)}.user-menu{position:relative}.avatar{width:32px;height:32px;border-radius:999px;border:0;background:var(--surface-3);color:var(--text);font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;text-transform:uppercase}.menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:220px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:2px}.menu-head{padding:8px 10px 10px;border-bottom:1px solid var(--border);margin-bottom:4px;display:flex;flex-direction:column;gap:4px}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-xs);background:transparent;text-align:left;color:var(--text)}.menu-item:hover:not(:disabled),.menu-item:focus-visible{background:var(--surface-2)}.menu-item:disabled{color:var(--muted)}.menu-item .menu-meta{margin-left:auto;color:var(--muted);font-size:12px}.menu-sep{height:1px;background:var(--border);margin:4px 0}.content{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:26px 24px calc(64px + var(--safe-bottom))}.bottom-nav{display:none}.page{display:flex;flex-direction:column;gap:20px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-title{display:flex;flex-direction:column;gap:4px;min-width:0}.page-title h1{font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.15}.page-title .sub{color:var(--muted);font-size:13px}.section{display:flex;flex-direction:column;gap:12px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.section-head h2{font-size:17px;font-weight:600;letter-spacing:-.01em}.section-head h3{font-size:15px;font-weight:600}.actions,.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.toolbar .grow{flex:1;min-width:180px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:500;font-size:13px;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.55}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-fg)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.btn-accent{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--accent-fill-fg)}.btn-accent:hover:not(:disabled){background:var(--accent-fill);filter:brightness(1.08)}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.btn-danger{color:var(--rose-fg)}.btn-danger:hover:not(:disabled){background:var(--rose-bg);border-color:var(--rose-border)}.btn-danger-solid{background:var(--rose-fg);border-color:var(--rose-fg);color:#fff}html.dark .btn-danger-solid{color:#1a0507}.btn-sm{height:30px;padding:0 10px;font-size:12px}.btn-icon{width:34px;padding:0}.btn-sm.btn-icon{width:30px}.btn-link{border:0;background:none;padding:0;color:var(--text);font-weight:500;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border-strong)}.link-accent{color:var(--text);font-weight:500;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--accent)}.input,.select{height:36px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:13px;outline:none;transition:border-color .15s;min-width:0}.input:focus,.select:focus{border-color:var(--border-strong)}.select{padding-right:30px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.select.is-active{background-color:var(--accent-tint);border-color:var(--accent-border);color:var(--accent-text);font-weight:600}.select-sm,.input-sm{height:30px;font-size:12px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:12px;font-weight:500;color:var(--text-2)}.field-hint{font-size:12px;color:var(--muted)}.checkbox{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox input{width:16px;height:16px;accent-color:var(--accent-fill);margin:0}.tabs{display:flex;gap:22px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{display:inline-flex;align-items:center;gap:6px;padding:10px 0;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font-weight:500;white-space:nowrap}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text);font-weight:600;border-bottom-color:var(--accent)}.tab-count{color:var(--muted);font-weight:500;font-variant-numeric:tabular-nums}.tab[aria-selected=true] .tab-count{color:var(--accent-text);font-weight:600}.tabs-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);flex-wrap:wrap}.tabs-row .tabs{border-bottom:0}.tabs-row .toolbar{padding-bottom:8px}.segmented{display:inline-flex;padding:2px;background:var(--surface-2);border-radius:var(--radius-sm);gap:2px}.segmented button{border:0;background:transparent;border-radius:var(--radius-xs);padding:5px 10px;font-size:12px;font-weight:500;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.segmented button:hover{color:var(--text)}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}html.dark .segmented button[aria-pressed=true]{background:var(--surface-3)}.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:12px;font-weight:500;white-space:nowrap}.chip:hover{border-color:var(--border-strong)}.chip.active{background:var(--accent-tint);border-color:var(--accent-border);color:var(--accent-text);font-weight:600}.chip-dashed{border-style:dashed;color:var(--muted)}.badge{display:inline-flex;align-items:center;flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.04em;line-height:1;padding:4px 6px;border-radius:4px;text-transform:uppercase}.badge-new{background:var(--accent-fill);color:var(--accent-fill-fg)}.badge-update{background:var(--blue-bg);color:var(--blue-fg)}.badge-transfer{background:var(--violet-bg);color:var(--violet-fg)}.badge-removed{background:var(--rose-bg);color:var(--rose-fg)}.badge-neutral{background:var(--surface-2);color:var(--text-2)}.tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:500;padding:2px 6px;border-radius:4px;background:var(--surface-2);color:var(--text-2);white-space:nowrap}.role-pill{display:inline-flex;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:var(--surface-2);color:var(--text-2)}.role-pill.admin,.role-pill.owner{background:var(--primary);color:var(--primary-fg)}.role-pill.editor{background:var(--blue-bg);color:var(--blue-fg)}.tracked-mark{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--accent-text);white-space:nowrap}.tracked-mark:before{content:"";width:6px;height:6px;border-radius:999px;background:var(--accent)}.status-dot{width:7px;height:7px;border-radius:999px;background:var(--green-fg);flex-shrink:0;display:inline-block}.status-dot.warn{background:var(--amber-fg)}.status-dot.bad{background:var(--rose-fg)}.feed-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:start}.feed-aside{position:sticky;top:calc(var(--topbar-h) + var(--safe-top) + 24px);display:flex;flex-direction:column;gap:16px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:10px}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.panel-head h3{font-size:14px;font-weight:600}.kv{display:flex;justify-content:space-between;gap:12px;font-size:13px}.kv>span:first-child{color:var(--muted)}.kv>span:last-child{font-weight:600;font-variant-numeric:tabular-nums}.day-group{display:flex;flex-direction:column;gap:10px;content-visibility:auto;contain-intrinsic-size:auto 420px}.day-label{position:sticky;top:calc(var(--topbar-h) + var(--safe-top));z-index:2;margin:0;padding:10px 0 6px;background:var(--bg);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;gap:8px;align-items:baseline}.day-label .day-count{font-weight:500;letter-spacing:0;text-transform:none}.feed-groups{display:flex;flex-direction:column;gap:18px}.feed-end{display:flex;justify-content:center;padding:16px 0;min-height:60px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.card-link{display:block;min-width:0;border-radius:var(--radius)}.game-card{display:flex;gap:12px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;height:100%;transition:border-color .15s,box-shadow .15s}.card-link:hover .game-card{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.game-card.dimmed{opacity:.6}.game-art{width:52px;height:52px;border-radius:12px;object-fit:cover;flex-shrink:0;background:var(--surface-2);border:1px solid var(--border)}.game-meta{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.game-title-row{display:flex;align-items:center;gap:6px;min-width:0}.game-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.game-sub,.game-note{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-sub{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.game-note{color:var(--muted-2)}.game-tags{display:flex;gap:5px;margin-top:2px;flex-wrap:wrap}.game-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:clip}.game-table-group{padding:8px 16px 6px;font-size:12px;font-weight:600;color:var(--text-2);background:var(--surface-2);border-bottom:1px solid var(--border);position:sticky;top:calc(var(--topbar-h) + var(--safe-top));z-index:1}.game-row{display:grid;grid-template-columns:36px minmax(0,2.2fr) minmax(0,1.8fr) 56px 90px 64px;gap:14px;align-items:center;padding:8px 16px;border-bottom:1px solid var(--border);transition:background .1s}.game-row:last-child{border-bottom:0}.game-row:hover{background:var(--surface-2)}.game-row.dimmed{opacity:.6}.game-row .game-art{width:36px;height:36px;border-radius:9px}.game-row .cell-muted{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-row .cell-time{font-family:var(--font-mono);font-size:12px;color:var(--muted-2);text-align:right}.list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.list-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .15s,box-shadow .15s}.card-link:hover .list-card{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.list-cover{display:grid;aspect-ratio:2 / 1;background:var(--surface-2);gap:1px}.list-cover.cover-1{grid-template-columns:1fr}.list-cover.cover-2{grid-template-columns:1fr 1fr}.list-cover.cover-3,.list-cover.cover-4{grid-template-columns:repeat(4,1fr)}.list-cover img{width:100%;height:100%;object-fit:cover;display:block}.list-cover-empty{display:flex;align-items:center;justify-content:center;color:var(--muted-2)}.list-card-meta{padding:12px 14px;display:flex;flex-direction:column;gap:2px}.list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.list:empty{display:none}.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:0}.list-row-main{display:flex;align-items:center;gap:12px;min-width:0}.row-art{width:36px;height:36px;border-radius:9px;object-fit:cover;flex-shrink:0;background:var(--surface-2);border:1px solid var(--border)}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);background:var(--surface-2);padding:9px 14px;border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0}.data-table th button{border:0;background:none;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;display:inline-flex;align-items:center;gap:4px}.data-table th[aria-sort] button{color:var(--text)}.data-table td{padding:9px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:var(--surface-2)}.data-table .num{text-align:right}.cell-name{display:flex;flex-direction:column;min-width:0}.cell-name a{font-weight:600}.cell-name a:hover{text-decoration:underline;text-underline-offset:3px}.chart-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.chart-toolbar .divider{width:1px;align-self:stretch;background:var(--border);margin:0 4px}.date-nav{display:inline-flex;align-items:center;gap:2px}.chart-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.chart-row{display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid var(--border)}.chart-row:last-child{border-bottom:0}.chart-row.tracked{background:color-mix(in srgb,var(--accent-tint) 55%,transparent)}.rank{width:32px;flex-shrink:0;text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;color:var(--muted)}.chart-link{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.chart-link:hover .chart-name{text-decoration:underline;text-underline-offset:3px}.chart-art{width:40px;height:40px;border-radius:10px;flex-shrink:0;object-fit:cover;background:var(--surface-2);border:1px solid var(--border)}.chart-meta{display:flex;flex-direction:column;min-width:0;gap:2px}.chart-name{font-weight:600;display:flex;align-items:center;gap:6px;min-width:0}.chart-name>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-sub{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);min-width:0;white-space:nowrap;overflow:hidden}.delta{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;white-space:nowrap;min-width:44px;text-align:right}.delta.up{color:var(--green-fg)}.delta.down{color:var(--rose-fg)}.delta.flat{color:var(--muted)}.delta.new{color:var(--accent-text)}.mini-rows{display:flex;flex-direction:column}.mini-row{display:flex;align-items:center;gap:10px;padding:5px 0;min-width:0}.mini-row .rank{width:22px;font-size:12px}.mini-row .chart-art{width:30px;height:30px;border-radius:8px}.mini-row .chart-meta{flex:1}.mini-row .chart-name{font-size:13px;font-weight:500}.mini-row .chart-sub{font-size:11px}.detail-head{display:flex;gap:24px;align-items:flex-start}.detail-art{width:120px;height:120px;border-radius:26px;object-fit:cover;flex-shrink:0;background:var(--surface-2);border:1px solid var(--border)}.detail-title{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1}.detail-title h1{font-size:28px;font-weight:600;letter-spacing:-.02em;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.info-cell{box-shadow:1px 0 0 var(--border),0 1px 0 var(--border);padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}.info-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}.info-value{font-weight:500;display:flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere}.detail-columns{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.shots{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.shot-btn{flex-shrink:0;border:0;padding:0;background:none;border-radius:16px;scroll-snap-align:start;cursor:zoom-in}.shot{display:block;width:auto;height:auto;max-height:360px;max-width:min(520px,85vw);border-radius:16px;border:1px solid var(--border);background:var(--surface-2)}.notes-text{white-space:pre-line;color:var(--text-2);font-size:13px;line-height:1.6;max-height:180px;overflow:auto}.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.timeline li{display:grid;grid-template-columns:12px minmax(0,1fr);gap:10px;padding-bottom:14px;position:relative}.timeline li:before{content:"";position:absolute;left:5px;top:14px;bottom:0;width:1px;background:var(--border)}.timeline li:last-child:before{display:none}.timeline .dot{width:11px;height:11px;border-radius:999px;border:2px solid var(--border-strong);background:var(--surface);margin-top:4px}.timeline li:first-child .dot{border-color:var(--accent)}.sparkline{display:block;width:100%;height:72px}.sparkline .grid-line{stroke:var(--border);stroke-width:1}.sparkline .line-free{stroke:var(--text)}.sparkline .line-grossing{stroke:var(--accent)}.legend{display:flex;gap:14px;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:10px;height:2px;margin-right:6px;vertical-align:middle}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000e0;display:flex;align-items:center;justify-content:center;padding:calc(24px + var(--safe-top)) 24px calc(24px + var(--safe-bottom))}.lightbox-img{width:100%;height:100%;object-fit:contain;pointer-events:none}.lightbox-btn{position:absolute;width:44px;height:44px;border-radius:999px;border:0;background:#ffffff1f;color:#fff;display:inline-flex;align-items:center;justify-content:center}.lightbox-btn:hover{background:#ffffff38}.lightbox-close{top:calc(16px + var(--safe-top));right:16px}.lightbox-prev{left:16px;top:50%;transform:translateY(-50%)}.lightbox-next{right:16px;top:50%;transform:translateY(-50%)}.lightbox-counter{position:absolute;bottom:calc(16px + var(--safe-bottom));left:50%;transform:translate(-50%);color:#fffc;font-family:var(--font-mono);font-size:13px}dialog.modal{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);padding:0;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 64px);box-shadow:var(--shadow-md)}dialog.modal::backdrop{background:#0006}.modal-body{padding:20px;display:flex;flex-direction:column;gap:14px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-head h2{font-size:17px;font-weight:600}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--border);background:var(--surface-2)}.share-list{display:flex;flex-direction:column;max-height:50vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius)}.share-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--border)}.share-row:last-child{border-bottom:0}.share-email{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.addlist{position:relative;display:inline-flex}.addlist .menu{left:0;right:auto;width:280px}.addlist-new{display:flex;gap:6px;padding:6px 4px 2px}.addlist-new .input{flex:1;height:32px}.game-result{display:flex;flex-direction:column;gap:8px;min-width:0}.game-result>.card-link{flex:1}.game-result>.addlist>.btn,.game-result>.btn{width:100%}.game-result>.addlist{display:flex}.toast-region{position:fixed;z-index:200;right:20px;bottom:calc(20px + var(--safe-bottom));display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:calc(100vw - 40px)}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;min-width:260px;max-width:420px;padding:10px 10px 10px 14px;border-radius:var(--radius);background:var(--primary);color:var(--primary-fg);box-shadow:var(--shadow-md);font-size:13px;animation:toast-in .18s ease-out}.toast.error{background:var(--rose-fg);color:#fff}html.dark .toast.error{color:#1a0507}.toast-msg{flex:1}.toast-action{border:0;background:transparent;color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;padding:4px 6px}.toast-close{border:0;background:transparent;color:inherit;opacity:.7;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.spinner{display:flex;align-items:center;gap:10px;color:var(--muted);padding:12px 0}.spinner-dot{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--text);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface-2) 0%,var(--surface-3) 50%,var(--surface-2) 100%);background-size:200% 100%;animation:shimmer 1.2s ease-in-out infinite;border-radius:var(--radius-xs)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{display:flex;gap:12px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.skeleton-lines{flex:1;display:flex;flex-direction:column;gap:8px;padding-top:4px}.empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:28px;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);color:var(--muted)}.empty-state h3{color:var(--text);font-size:15px;font-weight:600}.empty-state.error{border-style:solid;border-color:var(--rose-border);background:var(--rose-bg);color:var(--rose-fg)}.empty-state.error h3{color:var(--rose-fg)}.inline-error{color:var(--rose-fg);font-size:13px}.btn-back{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:4px 0;color:var(--muted);font-weight:500}.btn-back:hover{color:var(--text)}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:36px 32px;max-width:380px;width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;box-shadow:var(--shadow-sm)}.login-logo{width:80px;height:80px;border-radius:18px}.login-card h1{font-size:24px;font-weight:600;letter-spacing:-.02em}.login-card .btn{width:100%;height:40px;margin-top:8px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;align-items:start}@media(max-width:1100px){.feed-layout{grid-template-columns:minmax(0,1fr)}.feed-aside{position:static;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.detail-columns{grid-template-columns:minmax(0,1fr)}.search-box{width:220px}}@media(max-width:820px){.topbar{gap:12px;padding-left:16px;padding-right:16px}.topbar .nav,.topbar .search-box{display:none}.content{padding:18px 16px calc(84px + var(--safe-bottom))}.feed-aside{display:none}.bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:30;padding:6px 8px calc(6px + var(--safe-bottom));background:var(--surface);border-top:1px solid var(--border)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;min-height:44px;font-size:11px;font-weight:500;color:var(--muted);position:relative}.bottom-nav a.active{color:var(--text)}.bottom-nav a.active:after{content:"";position:absolute;top:-7px;width:24px;height:2px;border-radius:2px;background:var(--accent)}.bottom-nav .count-pill{position:absolute;top:0;left:calc(50% + 6px);height:16px;min-width:16px;font-size:10px;padding:0 4px}.toast-region{right:16px;left:16px;bottom:calc(76px + var(--safe-bottom))}.toast{min-width:0;max-width:none}.game-row{grid-template-columns:36px minmax(0,1fr) 64px}.game-row .col-account,.game-row .col-store,.game-row .col-genre{display:none}}@media(max-width:560px){.page{gap:16px}.page-title h1{font-size:22px}.card-grid{grid-template-columns:1fr;gap:8px}.game-card{padding:10px}.game-art{width:44px;height:44px;border-radius:10px}.list-grid{grid-template-columns:1fr 1fr}.detail-head{flex-direction:column;gap:14px}.detail-art{width:88px;height:88px;border-radius:20px}.detail-title h1{font-size:22px}.info-grid{grid-template-columns:1fr 1fr}.shot{max-height:280px}.tabs-row .toolbar{width:100%}.chart-row{padding:8px 10px;gap:8px}.brand-text{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
