:root{--bg:#eef3f2;--surface:rgba(255,255,255,.82);--surface-solid:#fff;--surface-2:#f4f8f7;--ink:#17313a;--muted:#5f7479;--faint:#8fa0a3;--line:rgba(29,76,82,.12);--line-strong:rgba(29,76,82,.2);--brand:#32a89a;--brand-strong:#187f75;--brand-soft:rgba(50,168,154,.12);--brand-soft-2:rgba(50,168,154,.2);--danger:#c45f68}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Noto Sans SC,Microsoft YaHei,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;width:248px;padding:24px 16px 18px;background:rgba(246,250,249,.88);border-right:1px solid var(--line);display:flex;flex-direction:column;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-lockup{display:flex;align-items:center;gap:11px;padding:0 10px;margin-bottom:30px}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;color:#fff;background:var(--brand)}.brand-lockup strong{display:block;font-size:17px}.brand-lockup small{display:block;color:var(--faint);font-size:11px}.nav-group{display:grid;grid-gap:5px;gap:5px}.nav-item{display:flex;align-items:center;gap:11px;min-height:42px;padding:0 12px;border-radius:8px;color:var(--muted);font-size:13px}.nav-item:hover,.nav-item[data-active=true]{color:var(--brand-strong);background:var(--brand-soft)}.nav-item[data-active=true]{font-weight:700}.sidebar-footer{margin-top:auto;padding:14px 12px;color:var(--faint);font-size:11px;border-top:1px solid var(--line);display:grid;grid-gap:8px;gap:8px}.sign-out-button{min-height:40px;padding:0 10px;color:var(--muted);background:transparent;border:1px solid var(--line-strong);border-radius:8px;font:inherit;font-weight:700;text-align:left}.sign-out-button:hover{color:var(--danger);border-color:rgba(196,95,104,.45)}.main-shell{width:calc(100% - 248px);margin-left:248px;min-width:0}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;min-height:76px;padding:calc(16px + env(safe-area-inset-top, 0px)) 40px 12px;background:rgba(238,243,242,.76);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.topbar-title{font-size:13px;font-weight:700}.topbar-separator{margin:0 7px;color:var(--faint)}.status-dot{color:var(--brand-strong);font-size:11px;font-weight:700}.page-wrap{width:min(100%,1380px);margin:0 auto;padding:34px 40px calc(76px + env(safe-area-inset-bottom, 0px))}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.eyebrow{margin:0 0 8px;color:var(--brand-strong);font-size:11px;font-weight:800;letter-spacing:1.6px}.page-heading h1{margin:0;font-size:clamp(28px,3vw,42px);line-height:1.18;letter-spacing:-.045em}.muted{color:var(--muted)}.notice{display:flex;gap:8px;flex-direction:column;padding:16px 18px;margin-bottom:24px;border:1px solid #b8e4d8;border-radius:12px;background:var(--brand-soft)}.notice span{color:#426b63;font-size:13px}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.stat-card,.state-card{padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(15,52,57,.04)}.stat-card{display:grid;grid-gap:9px;gap:9px}.stat-card small,.stat-card span{color:var(--muted);font-size:13px}.stat-card strong{font-size:30px}.state-card{margin-top:24px;display:grid;grid-gap:8px;gap:8px;color:var(--muted)}.state-card strong{color:var(--ink)}.empty-state{min-height:150px;align-content:center}.error-state{border-color:#e7b9b9}.spinner{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}.mobile-nav{display:none}.feedback-toast{position:fixed;z-index:40;top:92px;right:32px;display:flex;align-items:center;gap:12px;max-width:min(420px,calc(100vw - 40px));padding:12px 14px;color:#176451;background:#effaf6;border:1px solid #b8e4d8;border-radius:10px;box-shadow:0 12px 28px rgba(15,52,57,.14);font-size:13px;font-weight:700}.feedback-toast-error{color:#922f39;background:#fff5f5;border-color:#e7b9b9}.toast-close{width:28px;height:28px;padding:0;color:inherit;background:transparent;border-radius:6px;font-size:20px;line-height:1}.dialog-backdrop{position:fixed;z-index:30;inset:0;display:grid;place-items:center;padding:24px;background:rgba(15,52,57,.42)}.danger-dialog{width:min(100%,500px);padding:24px;background:var(--surface-solid);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(15,52,57,.25)}.danger-dialog h2{margin:0;font-size:19px}.danger-dialog p{margin:10px 0 20px;color:var(--muted);font-size:13px;line-height:1.6}.danger-dialog form{display:flex;flex-wrap:wrap;gap:8px}@keyframes spin{to{transform:rotate(1turn)}}button,input,select{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.55}.button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 15px;border-radius:8px;font-size:13px;font-weight:700}.button-primary{color:#fff;background:var(--brand)}.button-secondary{color:var(--ink);background:rgba(255,255,255,.55);border:1px solid var(--line-strong)}.button-quiet{color:var(--muted);background:transparent}.button-danger{color:#fff;background:var(--danger)}.danger-zone{margin-top:24px;border-color:rgba(196,95,104,.35)}.danger-confirm p{color:var(--danger);font-size:12px}.danger-confirm form{display:flex;flex-wrap:wrap;gap:8px}.notification-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.notification-row:last-child{border-bottom:0}.notification-row strong{font-size:13px}.notification-row p{margin:3px 0;color:var(--muted);font-size:12px}.notification-row time{color:var(--faint);font-size:11px}.notification-row.read{opacity:.65}.status{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;color:var(--muted);background:var(--surface-2);font-size:11px;font-weight:700}.status-success{color:#2a9a76;background:rgba(42,154,118,.1)}.status-brand{color:var(--brand-strong);background:var(--brand-soft)}.game-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:4px;margin-bottom:16px;background:var(--surface-2);border-radius:8px}.game-tabs a{padding:8px 12px;color:var(--muted);border-radius:6px;font-size:12px;font-weight:700}.game-tabs a.active{color:var(--ink);background:#fff;box-shadow:0 1px 2px rgba(15,52,57,.06)}.game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.game-card{display:flex;flex-direction:column;gap:20px;min-height:190px}.game-card-bottom,.game-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.game-identity{display:flex;gap:12px}.game-logo{width:44px;height:44px;display:grid;place-items:center;flex:none;color:var(--brand-strong);background:var(--brand-soft);border-radius:13px;font-size:13px;font-weight:800}.game-logo.large{width:56px;height:56px;margin-bottom:16px}.game-name{margin:0;font-size:16px}.game-version{margin:3px 0 0;color:var(--muted);font-size:12px}.game-card-bottom{align-items:center;margin-top:auto}.game-card-footnote{color:var(--muted);font-size:12px}.hero-panel{display:grid;grid-template-columns:1fr 1.2fr;grid-gap:20px;gap:20px;margin-bottom:16px}.hero-panel h2{margin:14px 0 0;font-size:25px}.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;align-self:center}.kpi-row div{padding:14px;background:var(--surface-2);border-radius:10px}.kpi-row span{display:block;color:var(--muted);font-size:11px}.kpi-row strong{display:block;margin-top:6px;font-size:25px}.content-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:16px;gap:16px}.quick-links{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.quick-links a{display:flex;justify-content:space-between;padding:13px;color:var(--brand-strong);background:var(--brand-soft);border-radius:8px;font-size:13px;font-weight:700}.form-layout{max-width:620px}.form-card{padding-top:18px;border-top:1px solid var(--line)}.form-card,.form-stack{display:grid;grid-gap:14px;gap:14px}.form-stack label,.inline-form label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.form-stack input,.form-stack select,.inline-form input,.inline-input{width:100%;min-height:40px;padding:0 11px;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:8px}.form-error,.form-hint,.form-success{margin:0;font-size:12px}.table-like{display:grid}.table-head,.table-row{display:grid;grid-template-columns:1.3fr .8fr 1fr .6fr;align-items:center;grid-gap:12px;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.table-head{color:var(--faint);font-size:11px;font-weight:700}.table-row:last-child{border-bottom:0}.cell-main{color:var(--ink);font-weight:700}.character-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px}.character-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;grid-gap:10px;gap:10px;padding:16px}.character-card h2{margin:0;font-size:14px}.character-card p{margin:2px 0 0;font-size:11px}.character-avatar{width:42px;height:42px;display:grid;place-items:center;color:var(--brand-strong);background:var(--brand-soft);border-radius:12px;font-weight:800}.activity-list,.list-card{display:grid;grid-gap:12px;gap:12px}.activity-card{display:flex;justify-content:space-between;gap:20px}.activity-card h2{margin:10px 0 3px;font-size:16px}.activity-card p{margin:0}.activity-card time,.list-row time{color:var(--muted);font-size:12px;white-space:nowrap}.inline-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:16px}.inline-form label{min-width:230px}.list-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:12px;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.list-row:last-child{border-bottom:0}.version-card h2{margin:14px 0 4px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(100%,420px);padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:16px}.auth-card h1{margin:0;font-size:28px}.auth-card>.muted{margin:8px 0 24px}.auth-switch{color:var(--muted);font-size:12px;text-align:center}.auth-switch a{color:var(--brand-strong);font-weight:700}@media (max-width:767px){.sidebar{display:none}.main-shell{width:100%;margin-left:0}.topbar{min-height:60px;padding:calc(0px + env(safe-area-inset-top, 0px)) 20px 0}.page-wrap{padding:30px 20px calc(100px + env(safe-area-inset-bottom, 0px))}.page-heading{display:block}.page-heading .button{margin-top:18px}.card-grid,.character-grid,.content-grid,.game-grid,.hero-panel{grid-template-columns:1fr;gap:12px}.kpi-row{grid-template-columns:repeat(3,1fr)}.quick-links{grid-template-columns:1fr}.activity-card{display:block}.activity-card time{display:block;margin-top:14px}.table-head{display:none}.table-row{grid-template-columns:1fr auto;gap:6px}.table-row>label,.table-row>span:nth-child(2){grid-column:1}.table-row>span:last-child{grid-column:2;grid-row:1/span 3}.inline-form{align-items:stretch;display:grid}.feedback-toast{top:calc(72px + env(safe-area-inset-top, 0px));right:20px;left:20px;max-width:none;margin:0}.dialog-backdrop{align-items:end;padding:0}.danger-dialog{width:100%;padding:24px 20px calc(24px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0}.mobile-nav{position:fixed;z-index:10;bottom:0;left:0;right:0;height:calc(68px + env(safe-area-inset-bottom, 0px));padding:8px 12px calc(8px + env(safe-area-inset-bottom, 0px));background:var(--surface-solid);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr)}.mobile-nav a{display:grid;justify-items:center;grid-gap:4px;gap:4px;color:var(--muted);font-size:11px}.mobile-nav a[data-active=true]{color:var(--brand-strong);font-weight:700}}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(50,168,154,.38);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.extension-fields-section{grid-column:1/-1;margin-top:8px;padding-top:12px;border-top:1px solid var(--line)}.extension-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px 16px;gap:12px 16px}.extension-fields .field{display:grid;grid-gap:6px;gap:6px}.extension-fields .field label,.extension-fields .field span{color:var(--muted);font-size:12px;font-weight:700}.extension-fields .field input,.extension-fields .field select{width:100%;min-height:40px;padding:0 11px;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:8px}.extension-fields .field input:focus,.extension-fields .field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.extension-fields .checkbox-label{display:flex;min-height:40px;align-items:center;gap:7px;color:var(--ink);font-size:13px}.extension-fields .checkbox-label input{width:18px;height:18px}.field-error{color:var(--danger);font-size:11px}fieldset.extension-fields{border:none;padding:0;margin:0}.extension-fields-legend{color:var(--brand-strong);font-size:12px;font-weight:700;margin-bottom:8px;letter-spacing:.04em}@media (max-width:767px){.extension-fields{grid-template-columns:1fr}}html.theme-transitioning,html.theme-transitioning *,html.theme-transitioning :after,html.theme-transitioning :before{transition:background-color .28s cubic-bezier(.2,0,0,1),color .28s cubic-bezier(.2,0,0,1),border-color .28s cubic-bezier(.2,0,0,1),box-shadow .28s cubic-bezier(.2,0,0,1)!important}[data-theme=dark]{--bg:#0f1117;--surface:rgba(26,29,39,.88);--surface-solid:#1a1d27;--surface-2:#22252f;--ink:#e8ecf4;--muted:#b0b8cc;--faint:#7c8396;--line:rgba(255,255,255,.08);--line-strong:rgba(255,255,255,.12);--brand:#10b981;--brand-strong:#34d399;--brand-soft:rgba(16,185,129,.12);--brand-soft-2:rgba(16,185,129,.2);--danger:#f87171}[data-theme=dark] .sidebar{background:rgba(26,29,39,.92);border-right-color:rgba(255,255,255,.06)}[data-theme=dark] .topbar{background:rgba(15,17,23,.82);border-bottom-color:rgba(255,255,255,.06)}[data-theme=dark] .card,[data-theme=dark] .stat-card,[data-theme=dark] .state-card{background:rgba(26,29,39,.88);border-color:rgba(255,255,255,.06)}[data-theme=dark] .button-secondary{color:var(--ink);background:rgba(255,255,255,.04)}[data-theme=dark] .character-form input:not([type=checkbox]),[data-theme=dark] .character-form select,[data-theme=dark] .extension-fields .field input,[data-theme=dark] .extension-fields .field select{background:rgba(255,255,255,.04);border-color:var(--line-strong);color:var(--ink)}[data-theme=dark] .quick-stat{background:rgba(255,255,255,.04)}[data-theme=dark] .game-tabs a.active{background:var(--surface-2);color:var(--ink)}[data-theme=dark] .mobile-nav{background:rgba(26,29,39,.92);border-top-color:rgba(255,255,255,.06)}[data-theme=dark] .sign-out-button{border-color:var(--line-strong);color:var(--muted)}[data-theme=dark] .sign-out-button:hover{color:var(--danger);border-color:rgba(248,113,113,.45)}[data-theme=dark] .theme-option{background:rgba(255,255,255,.04);border-color:var(--line)}[data-theme=dark] .theme-option.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-strong)}[data-theme=dark] .pull-form-grid .field input,[data-theme=dark] .pull-form-grid .field select,[data-theme=dark] .settings-quiet-hours .field input{background:rgba(255,255,255,.04);border-color:var(--line-strong);color:var(--ink)}[data-theme=dark] .game-logo{background:var(--brand-soft);color:var(--brand-strong)}.pity-section{margin-bottom:16px}.pity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:12px;gap:12px}.pity-card{padding:16px;background:var(--surface-2);border-radius:10px}.pity-card.pity-near{border:1px solid var(--state-warning);background:rgba(196,134,66,.06)}.pity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.pity-type{font-size:13px;font-weight:700;color:var(--ink)}.pity-count{font-size:14px;font-weight:700;color:var(--brand-strong);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pity-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.pity-footer strong{color:var(--ink)}[data-theme=dark] .pity-card{background:rgba(255,255,255,.04)}[data-theme=dark] .pity-card.pity-near{border-color:var(--state-warning);background:rgba(251,191,36,.06)}.pull-table .table-head,.pull-table .table-row{grid-template-columns:90px minmax(120px,1fr) 70px 60px minmax(140px,1.5fr) 50px}.pull-record-form{display:grid;grid-gap:12px;gap:12px}.pull-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px 16px;gap:12px 16px}.pull-form-grid .field{display:grid;grid-gap:6px;gap:6px}.pull-form-grid .field span{color:var(--muted);font-size:12px;font-weight:700}.pull-form-grid .field input,.pull-form-grid .field select{width:100%;min-height:40px;padding:0 11px;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:8px}.pull-form-grid .field input:focus,.pull-form-grid .field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.pull-form-grid .checkbox-label{display:flex;min-height:40px;align-items:center;gap:7px;color:var(--ink);font-size:13px}.pull-form-grid .checkbox-label input{width:18px;height:18px}@media (max-width:767px){.pull-form-grid{grid-template-columns:1fr}.pull-table .table-head{display:none}.pull-table .table-row{grid-template-columns:1fr auto}}.settings-grid{display:grid;grid-gap:16px;gap:16px;max-width:680px}.settings-info-grid{display:grid;grid-gap:12px;gap:12px}.settings-info-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.settings-info-item:last-child{border-bottom:0}.settings-info-label{color:var(--muted);font-size:13px}.settings-info-value{color:var(--ink);font-size:13px;font-weight:700}.theme-options{display:flex;gap:8px;margin-bottom:8px}.theme-option{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.theme-option:hover{color:var(--ink);border-color:var(--line-strong)}.theme-option.active{color:var(--brand-strong);background:var(--brand-soft);border-color:var(--brand)}.settings-quiet-hours{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-bottom:8px}.settings-quiet-hours .field{display:grid;grid-gap:6px;gap:6px}.settings-quiet-hours .field span{color:var(--muted);font-size:12px;font-weight:700}.settings-quiet-hours .field input{width:100%;min-height:40px;padding:0 11px;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:8px}.settings-email-field{display:grid;grid-gap:6px;gap:6px}.settings-email-field span{color:var(--muted);font-size:12px;font-weight:700}.settings-email-field input{width:100%;min-height:40px;padding:0 11px;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:8px}.settings-email-field input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}[data-theme=dark] .settings-email-field input{background:rgba(255,255,255,.04);border-color:var(--line-strong);color:var(--ink)}.settings-inline-fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-bottom:12px}.settings-inline-fields .field{display:grid;grid-gap:6px;gap:6px}.settings-inline-fields .field>span,.settings-inline-fields legend{color:var(--muted);font-size:12px;font-weight:700}.settings-inline-fields input[type=number]{width:100%;min-height:40px;padding:0 11px;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:8px}.settings-inline-fields fieldset{border:0;padding:0;margin:0}.settings-inline-fields .checkbox-label{display:flex;align-items:center;gap:7px;min-height:32px;color:var(--ink);font-size:12px}[data-theme=dark] .settings-inline-fields input[type=number]{background:rgba(255,255,255,.04);border-color:var(--line-strong);color:var(--ink)}@media (max-width:767px){.settings-inline-fields{grid-template-columns:1fr}}.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}.resource-input-wrap{display:flex;align-items:center;gap:8px}.resource-unit{color:var(--muted);white-space:nowrap}.resource-save-cell{display:grid;justify-items:start;grid-gap:5px;gap:5px}.resource-history{margin-top:16px}.history-list{display:grid}.history-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.history-row:last-child{border-bottom:0}.history-row>div{display:grid;grid-gap:3px;gap:3px}.history-row>div:last-child{justify-items:end}.history-row time{color:var(--faint);font-size:11px}.amount-positive{color:#2a9a76;font-weight:700}.amount-negative{color:var(--danger);font-weight:700}.resource-row-wrapper{border-bottom:1px solid var(--line)}.resource-row-wrapper .table-row,.resource-row-wrapper:last-child{border-bottom:0}.resource-target-row{padding:4px 0 8px;font-size:12px}.resource-target-row,.target-form{display:flex;align-items:center;gap:8px}.target-label{color:var(--muted);font-weight:700;font-size:11px}.target-input{max-width:100px;min-height:32px!important;padding:0 8px!important;font-size:12px!important}.target-progress{display:flex;align-items:center;gap:8px;flex:1 1}.target-progress .progress-line{flex:1 1;height:5px}.target-gap{color:var(--muted);font-size:11px;white-space:nowrap}.import-section{display:grid;grid-gap:16px;gap:16px}.import-actions{display:flex;gap:8px;margin-top:8px}.import-preview{margin-top:16px;padding:16px;background:var(--surface-2);border-radius:10px}.import-preview h3{margin:0 0 12px;font-size:14px;font-weight:700;color:var(--ink)}.preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:8px;gap:8px;margin-bottom:16px}.preview-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--surface);border-radius:6px;border:1px solid var(--line)}.preview-label{color:var(--muted);font-size:12px;text-transform:capitalize}.preview-count{color:var(--ink);font-size:14px;font-weight:700}.import-confirm{padding-top:12px;border-top:1px solid var(--line)}.import-confirm p{margin:0 0 12px;color:var(--muted);font-size:13px}.confirm-actions{display:flex;gap:8px}.import-result{margin-top:16px}@media (max-width:767px){.preview-grid{grid-template-columns:repeat(2,1fr)}}.character-form{display:grid;grid-template-columns:minmax(220px,1.5fr) auto minmax(100px,.5fr) auto minmax(130px,.7fr) auto;align-items:flex-end;grid-gap:12px;gap:12px;margin-bottom:16px}.character-form label,.reward-actions label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.character-form input:not([type=checkbox]),.character-form select,.reward-actions select{width:100%;min-height:40px;padding:0 11px;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:8px}.checkbox-label{display:flex!important;min-height:40px;align-items:center;gap:7px!important;color:var(--ink)!important}.checkbox-label input{width:18px;height:18px}.character-form .form-error,.character-form .form-success,.character-form>.muted{grid-column:1/-1}.game-mode-switch{display:flex;gap:4px;padding:4px;margin-bottom:16px;background:var(--surface-2);border-radius:8px}.game-mode-tab{padding:8px 16px;color:var(--muted);border-radius:6px;font-size:13px;font-weight:700;text-align:center;transition:background-color .14s ease,color .14s ease}.game-mode-tab:hover{color:var(--ink)}.game-mode-tab.active{color:var(--ink);background:var(--surface-solid);box-shadow:0 1px 2px rgba(15,52,57,.06)}[data-theme=dark] .game-mode-tab.active{background:var(--surface-2);color:var(--ink)}.reward-list{margin-top:16px}.reward-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:18px;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}.reward-row:last-child{border-bottom:0}.reward-copy h3{margin:10px 0 4px;font-size:14px}.reward-copy p{margin:4px 0 0}.reward-statuses{display:flex;flex-wrap:wrap;gap:6px}.reward-quantity{color:var(--ink);font-size:12px;font-weight:700}.reward-actions{display:grid;justify-items:end;grid-gap:7px;gap:7px}.reward-actions form{display:flex;align-items:flex-end;gap:8px}.reward-actions select{min-width:120px}@media (max-width:1000px){.character-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.character-form>.button{align-self:flex-end}}@media (max-width:767px){.character-form{grid-template-columns:1fr}.character-card{grid-template-columns:42px minmax(0,1fr)}.character-card>.status{grid-column:2;justify-self:start}.reward-row{grid-template-columns:1fr}.reward-actions{justify-items:stretch}.reward-actions form{align-items:stretch;display:grid}.history-row{align-items:flex-start}}.calendar-grid,.calendar-section{margin-bottom:16px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:4px;gap:4px}.calendar-day-name{padding:6px 0;color:var(--faint);font-size:11px;font-weight:700;text-align:center}.calendar-day{min-height:80px;padding:6px;background:var(--surface-2);border-radius:6px}.calendar-day-empty{background:transparent}.calendar-day-today{background:var(--brand-soft);border:1px solid rgba(50,168,154,.25)}.calendar-date{display:block;font-size:12px;font-weight:700;margin-bottom:4px}.calendar-day-today .calendar-date{color:var(--brand-strong)}.calendar-events{display:grid;grid-gap:2px;gap:2px}.calendar-event{padding:2px 4px;border-radius:3px;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--brand-strong);background:rgba(50,168,154,.12)}.calendar-event-reminder{color:var(--state-warning);background:rgba(196,134,66,.12)}.calendar-event-game{font-weight:700;margin-right:4px}.calendar-event-more{font-size:10px;color:var(--muted)}.calendar-event-list{display:grid;grid-gap:0;gap:0}.calendar-event-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.calendar-event-row:last-child{border-bottom:0}.calendar-event-type{min-width:36px;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:700;text-align:center;color:var(--brand-strong);background:var(--brand-soft)}.calendar-event-type.reminder{color:var(--state-warning);background:rgba(196,134,66,.12)}.calendar-event-detail{flex:1 1;display:grid;grid-gap:2px;gap:2px}.calendar-event-detail strong{font-size:13px}.calendar-event-time{color:var(--faint);font-size:11px;white-space:nowrap}@media (max-width:767px){.calendar-day{min-height:60px;padding:4px}.calendar-event{font-size:9px}}.content-section{margin-top:16px;margin-bottom:12px}.content-create{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.content-form{gap:12px}.content-edit-form .form-row-2,.content-form .form-row-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.content-list{display:grid;grid-gap:0;gap:0;margin-bottom:8px}.content-row{display:grid;grid-gap:12px;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.content-row:last-child{border-bottom:0}.content-edit-form{display:grid;grid-gap:10px;gap:10px;padding:12px;background:var(--surface-2);border-radius:10px}.content-edit-form .check-actions{display:flex;flex-wrap:wrap;gap:8px}@media (max-width:767px){.content-edit-form .form-row-2,.content-form .form-row-2{grid-template-columns:1fr}}.task-template-form{margin-top:16px;gap:12px}.task-template-edit .form-row-2,.task-template-form .form-row-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.task-template-list{margin-top:16px}.task-template-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}.task-template-row:last-child{border-bottom:0}.task-template-row .check-actions{display:flex;flex-wrap:wrap;gap:4px;align-items:center;justify-content:flex-end}.task-template-edit{grid-column:1/-1;display:grid;grid-gap:10px;gap:10px;padding:12px;margin-top:4px;background:var(--surface-2);border-radius:10px}.task-type-badge{margin-left:6px;vertical-align:middle}.check-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.check-actions form{display:inline-flex}.check-box{padding:0;cursor:pointer}.check-box[data-checked=false]{color:var(--muted);font-size:12px}.success-message{padding:8px 0 12px;color:var(--brand-strong);font-size:13px;font-weight:700}@media (max-width:767px){.task-template-row{grid-template-columns:1fr}.task-template-row .check-actions{justify-content:flex-start}.task-template-edit .form-row-2,.task-template-form .form-row-2{grid-template-columns:1fr}}.material-editor{margin-top:4px}.material-editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.material-editor-title{color:var(--brand-strong);font-size:12px;font-weight:700;letter-spacing:.04em}.material-list{display:grid;grid-gap:6px;gap:6px}.material-row{display:flex;align-items:center;gap:6px}.material-name-input{flex:1 1}.material-name-input,.material-qty-input{min-height:32px;padding:0 8px;font-size:12px;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:6px}.material-qty-input{width:70px;text-align:right}.material-name-input:focus,.material-qty-input:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft);outline:none}.material-gap-section{margin-top:16px}.material-gap-table .table-head,.material-gap-table .table-row{grid-template-columns:minmax(120px,1.5fr) 80px 80px 80px}.material-satisfied{opacity:.5}.material-gap-value{color:var(--danger);font-weight:700}.material-gap-ok{color:var(--state-success);font-weight:700}[data-theme=dark] .material-name-input,[data-theme=dark] .material-qty-input{background:rgba(255,255,255,.04);border-color:var(--line-strong);color:var(--ink)}.character-form .material-row .material-name-input{width:0;min-width:0;flex:1 1}.character-form .material-row .material-qty-input{width:80px;flex:0 0 80px}.target-form{flex-wrap:wrap}.target-form .button,.target-label{white-space:nowrap}.calendar-event-detail{min-width:0}@media (max-width:767px){.resource-target-row{flex-wrap:wrap}.target-progress{flex-basis:100%}.material-row .button,.target-form .button{min-height:40px!important}.calendar-event-row{display:grid;grid-template-columns:auto minmax(0,1fr)}.calendar-event-time{grid-column:2;white-space:normal;overflow-wrap:anywhere}.calendar-section .card-header{flex-wrap:wrap}.material-gap-table .table-row{grid-template-columns:minmax(0,1fr) auto}.material-gap-table [data-label]:before{content:attr(data-label) " ";color:var(--muted)}}.games-page-actions{display:flex;flex-wrap:wrap;gap:8px}.push-settings{min-width:0}.push-settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.push-settings-heading>div{min-width:0}.push-settings-heading .muted{margin:6px 0 12px;overflow-wrap:anywhere}.push-status{flex:0 0 auto}.push-status-enabled{color:var(--state-success);background:rgba(45,143,105,.12)}.push-status-denied,.push-status-error{color:var(--danger);background:rgba(201,73,73,.1)}.push-settings-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.push-settings-actions .button{min-height:44px}@media (max-width:767px){.push-settings-heading{align-items:stretch;flex-direction:column;gap:8px}.push-status{align-self:flex-start}.push-settings-actions{display:grid}.push-settings-actions .button{width:100%}}.form-error,.form-hint,.form-success{display:block;padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.5;word-break:break-word;overflow-wrap:anywhere}.form-error{color:var(--danger);background:rgba(196,95,104,.08);border-left:3px solid var(--danger)}.form-success{color:#2a9a76;background:rgba(42,154,118,.08);border-left:3px solid #2a9a76}.form-hint{color:var(--faint);font-size:12px;padding:0;background:none;border:none}.nav-item:focus-visible{outline:3px solid rgba(50,168,154,.38);outline-offset:-2px}.nav-group{overflow-x:hidden;overflow-y:auto;flex:1 1;min-height:0}@media (max-width:767px){.table-row{min-height:56px}}.ocr-dialog{width:min(90vw,600px);max-height:90vh;padding:24px;background:var(--surface-solid);border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 32px rgba(15,52,57,.12);display:grid;grid-gap:16px;gap:16px;overflow-y:auto}.ocr-dialog h2{margin:0;font-size:20px;line-height:1.3}.ocr-dialog p{margin:0;color:var(--muted);font-size:14px}.ocr-upload-area{display:grid;grid-gap:12px;gap:12px;padding:24px;background:var(--surface-2);border:2px dashed var(--line-strong);border-radius:12px;text-align:center}.ocr-file-input{display:none}.ocr-progress{display:grid;grid-gap:8px;gap:8px;align-items:center}.progress-bar{height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--brand);border-radius:4px;transition:width .2s ease}.ocr-result-container{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px}.ocr-preview{aspect-ratio:4/3;overflow:hidden;border-radius:8px;background:var(--surface-2)}.ocr-image{width:100%;height:100%;object-fit:contain}.ocr-text{display:grid;grid-gap:12px;gap:12px}.ocr-text h3{margin:0;font-size:14px;font-weight:700}.ocr-text-content{padding:12px;background:var(--surface-2);border-radius:8px;font-size:13px;line-height:1.5;max-height:120px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.ocr-numbers{display:flex;flex-wrap:wrap;gap:8px}.ocr-number-tag{padding:4px 10px;background:var(--brand-soft);color:var(--brand-strong);border-radius:6px;font-size:13px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ocr-selection{display:grid;grid-gap:16px;gap:16px}.ocr-selection-group{display:grid;grid-gap:8px;gap:8px}.ocr-select{width:100%;min-height:40px;padding:0 11px;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:8px;font:inherit}.ocr-number-input-group{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;align-items:center}.ocr-number-input{width:100%;min-height:40px;padding:0 11px;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:8px;font:inherit}.ocr-unit{color:var(--muted);font-size:13px}.ocr-number-suggestions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.ocr-number-suggestion{padding:4px 10px;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;font-size:13px;font-weight:700;cursor:pointer;transition:all .14s ease}.ocr-number-suggestion.selected,.ocr-number-suggestion:hover{background:var(--brand-soft);border-color:var(--brand)}.ocr-number-suggestion.selected{color:var(--brand-strong)}.ocr-current-value{display:flex;gap:8px;align-items:center;padding:12px;background:var(--surface-2);border-radius:8px;font-size:14px}.ocr-confirm{display:grid;grid-gap:16px;gap:16px}.ocr-confirm-details{display:grid;grid-gap:8px;gap:8px}.ocr-confirm-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.ocr-confirm-row:last-child{border-bottom:0}.ocr-confirm-row span:first-child{color:var(--muted);font-size:13px}.ocr-confirm-row span:last-child{font-size:14px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ocr-success{color:#2a9a76;font-weight:700}[data-theme=dark] .ocr-success{color:#34d399}[data-theme=dark] .ocr-number-input,[data-theme=dark] .ocr-select{background:rgba(255,255,255,.04);border-color:var(--line-strong);color:var(--ink)}.ocr-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.pwa-install-banner{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:10px;max-width:480px;width:calc(100% - 32px);padding:12px 16px;background:var(--surface-solid);border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 20px rgba(15,52,57,.12);font-size:13px;color:var(--ink);animation:pwa-slide-up .3s ease}@keyframes pwa-slide-up{0%{opacity:0;transform:translateX(-50%) translateY(12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.pwa-install-banner span{flex:1 1;min-width:0}.pwa-install-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.pwa-install-actions .button{min-height:36px;padding:0 12px;font-size:12px}.pwa-dismiss{min-height:32px!important;padding:0 6px!important;color:var(--faint)}.pwa-dismiss:hover{color:var(--danger)}@media (max-width:767px){.pwa-install-banner{bottom:calc(80px + env(safe-area-inset-bottom, 0px));font-size:12px}}@media (display-mode:standalone){.page-wrap{padding-bottom:calc(100px + env(safe-area-inset-bottom, 0px))}}@media (max-width:767px){.ocr-dialog{width:100%;max-height:100vh;border-radius:16px 16px 0 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom))}.ocr-result-container{grid-template-columns:1fr}.ocr-preview{aspect-ratio:16/9}}.game-card-slot{position:relative;display:flex;flex-direction:column;gap:8px;min-width:0}.game-card-slot .game-card{flex:1 1}.game-sort-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.game-sort-button,.game-sort-controls form{display:inline-flex}.game-sort-button{width:36px;height:36px;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:8px;background:rgba(255,255,255,.55);color:var(--ink);font-size:14px;font-weight:700}.game-sort-button:hover:not(:disabled){border-color:var(--brand);color:var(--brand-strong)}.game-sort-error{flex-basis:100%;margin:0}.version-countdown-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.version-countdown-title{display:block;margin-top:8px;font-size:18px}.version-countdown-meta{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:13px;font-weight:700}.version-summary-top{display:grid;grid-template-columns:1.4fr .9fr;grid-gap:20px;gap:20px}.version-summary-top h2{margin:10px 0 8px;font-size:28px}.version-countdown-box{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);display:grid;grid-gap:8px;gap:8px;align-content:start}.version-countdown-box strong{font-size:18px;line-height:1.35}.version-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:18px}.version-metrics div{padding:12px;border-radius:10px;background:var(--surface-2)}.version-metrics span{display:block;color:var(--muted);font-size:11px}.version-metrics strong{display:block;margin-top:4px;font-size:20px}.version-activity-row{align-items:flex-start}.version-activity-row p{margin:2px 0 0;font-size:12px}.template-meta-panel{display:grid;grid-gap:4px;gap:4px;padding:12px;border:1px dashed var(--line-strong);border-radius:10px;background:var(--surface-2)}@media (max-width:767px){.version-countdown-strip{display:grid}.version-countdown-meta{justify-content:flex-start}.version-summary-top{grid-template-columns:1fr}.version-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}[data-theme=dark] .game-sort-button{background:rgba(255,255,255,.04)}