:root{--bg: #0d1117;--panel: #161b22;--panel-2: #1c232d;--border: #2a3340;--text: #e6edf3;--muted: #8b98a8;--accent: #2bd97c;--accent-dim: #14452c;--warn: #f5a524;--danger: #ff5d5d;--radius: 12px;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h2,h3{margin:0}small{color:var(--muted)}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.4;cursor:default}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.brand{font-weight:700;font-size:18px}.brand span{color:var(--accent)}nav{display:flex;gap:6px}nav a{color:var(--muted);text-decoration:none;padding:6px 12px;border-radius:8px}nav a.router-link-exact-active{color:var(--text);background:var(--panel-2)}.page{max-width:980px;margin:0 auto;padding:20px 16px 60px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;flex-direction:column}.stat strong{font-size:26px;line-height:1.2}.stat em{font-size:14px;font-style:normal;color:var(--muted);font-weight:400}.stat.urgent strong{color:var(--danger)}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.spacer{flex:1}.seg{display:inline-flex;background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}.seg button{background:none;border:0;padding:7px 12px;color:var(--muted)}.seg button.on{background:var(--accent-dim);color:var(--accent);font-weight:600}.check{color:var(--muted);display:inline-flex;gap:6px;align-items:center}button.primary{background:var(--accent);color:#04210f;border:0;padding:8px 14px;border-radius:10px;font-weight:600}button.link{background:none;border:0;color:var(--muted);padding:4px 8px}button.link:hover{color:var(--text)}button.link.danger:hover{color:var(--danger)}.hint{color:var(--muted);margin:10px 0 14px;font-size:13px}.alert{background:#3a1517;border:1px solid var(--danger);color:#ffb4b4;padding:10px 14px;border-radius:10px;margin-bottom:12px}.notice{background:var(--accent-dim);border:1px solid var(--accent);color:#b6f5d0;padding:8px 14px;border-radius:10px;margin-top:10px}.empty{text-align:center;color:var(--muted);padding:60px 0}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.card.done{opacity:.7}.card.expired{opacity:.55}.card-head{display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer}.rank{width:30px;height:30px;border-radius:50%;background:var(--accent-dim);color:var(--accent);display:grid;place-items:center;font-weight:700;flex:none}.card-title{flex:1;min-width:0}.card-title h3{font-size:16px}.meta{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--muted);font-size:13px;margin-top:2px}.time.soon{color:var(--warn)}.time.urgent{color:var(--danger);font-weight:600}.reason{color:var(--accent)}.value{text-align:right;white-space:nowrap}.value strong{font-size:18px}.value strong.packs{margin-left:10px;color:#8ab4ff}.badge.ok{color:var(--accent);font-weight:600}.chev{color:var(--muted)}.group-bar,.bar{height:4px;background:var(--panel-2)}.group-bar div,.bar div{height:100%;background:var(--accent);transition:width .2s}.card-body{padding:4px 16px 12px;border-top:1px solid var(--border)}.tasks{list-style:none;margin:0;padding:0}.task{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.task input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex:none}.task.done .task-desc{text-decoration:line-through;color:var(--muted)}.task-main{flex:1;min-width:0}.task-desc{margin-bottom:4px}.task-obj{color:var(--muted);font-size:12.5px;margin-bottom:4px}.badge.unlock{color:var(--warn);font-size:12.5px;margin-left:8px}.task-list{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:0 16px;list-style:none;margin:0}.task-list .task:last-child{border-bottom:0}.task-list .rank{margin-right:2px}.task-time{color:var(--muted);font-size:12.5px;white-space:nowrap}.task-time.urgent{color:var(--danger);font-weight:600}.task-time.soon{color:var(--warn)}.task-progress{display:grid;grid-template-columns:auto 64px auto auto;gap:6px;align-items:center;width:220px;flex:none}.task-progress .bar{grid-column:1 / -1;border-radius:2px}.task-progress button{width:26px;height:26px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px}.task-progress input{width:64px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:3px 6px;text-align:right}.of{color:var(--muted);font-size:13px}.chips{display:inline-flex;flex-wrap:wrap;gap:6px}.chips.dim{opacity:.5}.chip{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:1px 9px;font-size:12.5px}.chip.pack,.chip.pick{border-color:#31507f;color:#aecbff}.chip.coins{border-color:#6b5a1c;color:#ffe08a}.chip.sp{border-color:#5a3b7a;color:#d9b8ff}.chip.evolution,.chip.player{border-color:#1d6b4a;color:#a6f0cb}.group-reward{margin-top:12px;padding:10px 12px;background:var(--panel-2);border:1px dashed var(--border);border-radius:10px;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.group-reward.earned{border-color:var(--accent)}.group-reward .label{color:var(--muted);font-size:13px}.card-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.expired-block{margin-top:24px}h2{margin-bottom:4px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}fieldset{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin:0}legend{color:var(--muted);padding:0 6px;font-size:13px}fieldset label{display:flex;justify-content:space-between;align-items:center;padding:5px 0;gap:12px}fieldset input{width:120px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 8px;text-align:right}.settings-actions{margin-top:16px;display:flex;gap:10px}.settings-actions button:not(.primary){background:var(--panel);border:1px solid var(--border);padding:8px 14px;border-radius:10px}@media (max-width: 640px){.task{flex-wrap:wrap}.task-progress{width:100%}.value small{display:none}}.tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:5px}.tag{font-size:11.5px;padding:0 7px;border-radius:6px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted)}.tag.action{color:var(--accent);border-color:var(--accent-dim);font-weight:600}.tag.diff{color:var(--warn);border-color:#5c4413}.tag.event{color:#aecbff;border-color:#31507f}.tag.qual{font-style:italic}.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.filters select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 8px;font:inherit}.filters label{color:var(--muted);font-size:13px;display:inline-flex;gap:6px;align-items:center}.section-head{display:flex;justify-content:space-between;align-items:baseline;margin:18px 2px 6px}.section-head h3{font-size:15px}.section-head small strong{color:var(--text)}.budget{display:inline-flex;align-items:center;gap:8px;color:var(--muted)}.step{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.step.over{opacity:.55}.step-head{display:flex;align-items:center;gap:14px;padding:14px 16px}.step-title{flex:1;min-width:0}.step-title h3{font-size:16px}.step-title .meta{margin-top:2px}.step-gain{text-align:right;white-space:nowrap}.step-gain strong{font-size:18px}.step-body{padding:0 16px 10px;border-top:1px solid var(--border)}.step-body h4{margin:10px 0 0;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.also{margin:6px 0 2px;color:var(--muted);font-size:13px}.also li{margin-left:18px}.divider{text-align:center;color:var(--muted);font-size:13px;margin:18px 0 10px;border-top:1px dashed var(--border);padding-top:10px}.unlocks{color:var(--warn);font-size:13px}.badge.shared{color:var(--muted);font-size:12.5px;margin-left:8px}.add-row{grid-column:1 / -1;display:flex;gap:6px;align-items:center;margin:2px 0}.add-row .plus{color:var(--accent);font-weight:700;font-size:16px}.add-row input{flex:1;min-width:0;background:var(--bg);color:var(--text);border:1px solid var(--accent-dim);border-radius:6px;padding:4px 8px}.add-row button{width:auto!important;height:auto!important;padding:4px 12px;background:var(--accent)!important;color:#04210f;border:0!important;font-weight:600}.hours{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:14px}.hours input{width:64px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 8px;text-align:right}.warn-banner{display:block;margin-top:14px;padding:10px 14px;border:1px solid #5c4413;background:#2a2210;color:var(--warn);border-radius:10px;text-decoration:none}.late-note{margin-top:10px;color:var(--warn);font-size:13px}.dl{background:var(--panel);border:1px solid var(--border);border-left-width:4px;border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.dl.on-track,.dl.complete{border-left-color:var(--accent)}.dl.tight{border-left-color:var(--warn)}.dl.at-risk{border-left-color:#ff9d4d}.dl.unreachable{border-left-color:var(--danger)}.dl.manual{border-left-color:var(--muted)}.dl-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dl-head h3{font-size:16px;flex:1;min-width:180px}.status{font-size:12px;font-weight:700;padding:2px 10px;border-radius:999px;border:1px solid var(--border)}.status.on-track,.status.complete{color:var(--accent);border-color:var(--accent-dim)}.status.tight{color:var(--warn);border-color:#5c4413}.status.at-risk{color:#ff9d4d;border-color:#6b3b13}.status.unreachable{color:var(--danger);border-color:#6b1f1f}.dl-time{font-variant-numeric:tabular-nums;color:var(--muted)}.dl-time.urgent{color:var(--danger);font-weight:600}.dl-meter{position:relative;height:10px;background:var(--panel-2);border-radius:6px;margin:12px 0 6px;overflow:hidden}.dl-meter .need{position:absolute;inset:0 auto 0 0;background:var(--accent);border-radius:6px}.dl-meter .need.tight{background:var(--warn)}.dl-meter .need.over{background:var(--danger)}.dl-meta{display:flex;flex-wrap:wrap;gap:4px 18px;color:var(--muted);font-size:13px}.dl-meta strong{color:var(--text)}.dl.squeezed{border-left-color:#ff9d4d}.status.squeezed{color:#ff9d4d;border-color:#6b3b13}.toast{position:fixed;right:16px;bottom:16px;width:min(420px,calc(100vw - 32px));background:var(--panel-2);border:1px solid var(--accent-dim);border-radius:var(--radius);padding:12px 14px;box-shadow:0 8px 30px #00000080;z-index:50}.toast-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.toast ul{margin:6px 0 8px 18px;padding:0;color:var(--muted);font-size:13px}.toast .x{background:none;border:0;color:var(--muted);font-size:18px;line-height:1}.toast .undo{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:4px 12px}.toast-enter-active,.toast-leave-active{transition:opacity .2s,transform .2s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(10px)}.topbar .log-btn{margin-left:auto;margin-right:14px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;z-index:60;padding:16px}.modal{width:min(460px,100%);max-height:100%;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px 18px;box-shadow:0 20px 60px #0009}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.modal-head .x{background:none;border:0;color:var(--muted);font-size:22px;line-height:1}.field{display:flex;flex-direction:column;gap:4px;margin:10px 0;flex:1;min-width:0}.field>span{color:var(--muted);font-size:13px}.field select,.field input{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit;width:100%}.row2{display:flex;gap:12px;flex-wrap:wrap}.seg.result{display:flex}.seg.result button{flex:1;padding:9px 0}.stepper{display:flex;gap:6px}.stepper input{text-align:center}.stepper button{width:38px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;font-size:18px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;align-items:center}.table-wrap{overflow-x:auto}.stats-table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.stats-table th,.stats-table td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--border);font-size:14px}.stats-table th{color:var(--muted);font-weight:600;font-size:12.5px}.stats-table tr.empty td{color:var(--muted)}.stats-table td.used{color:var(--accent)}.stats-table small{color:var(--muted)}.match-list{list-style:none;padding:0;margin:8px 0 0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.match-list li{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--border);font-size:14px}.match-list li:last-child{border-bottom:0}.match-list .res{font-weight:700;min-width:42px}.match-list .res.win{color:var(--accent)}.match-list .res.loss{color:var(--danger)}.match-list .where{flex:1;min-width:160px}.match-list .num{color:var(--muted);font-size:13px}.match-list .when{color:var(--muted);font-size:12.5px}fieldset label.learn{align-items:flex-start}fieldset label.learn input{width:auto}@media (max-width: 640px){.topbar{flex-wrap:wrap;gap:8px}.topbar .log-btn{margin:0}}.badge.auto{color:#aecbff;font-size:12.5px;margin-left:8px}.auth-wrap{display:grid;place-items:start center;padding:6vh 0 40px}.auth-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:24px 24px 20px;box-shadow:0 20px 60px #0006}.auth-card.wide{width:min(520px,100%)}.auth-card h1{font-size:18px;margin-bottom:14px}.auth-card h1 span{color:var(--accent)}.auth-card h2{font-size:20px;margin-bottom:10px}button.big{width:100%;padding:11px 14px;font-size:15px;margin-top:6px}button.big.primary{border-radius:10px}.or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;margin:14px 0 6px}.or:before,.or:after{content:"";flex:1;height:1px;background:var(--border)}.steps{display:flex;gap:8px;margin-bottom:14px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}.steps span{padding:2px 10px;border:1px solid var(--border);border-radius:999px}.steps span.on{color:var(--accent);border-color:var(--accent-dim)}.qr{display:block;margin:8px auto;background:#fff;padding:8px;border-radius:8px}.secret{display:block;text-align:center;letter-spacing:1px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px;margin:6px 0 10px;word-break:break-all;font-size:13px}.field small.bad,small.bad{color:var(--danger)}.codes{list-style:none;margin:10px 0;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;background:var(--bg);border:1px dashed var(--border);border-radius:10px;font-family:ui-monospace,Consolas,monospace;font-size:15px;letter-spacing:1px}.code-actions{display:flex;gap:8px}.code-actions button{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:6px 12px}nav .signout{color:var(--muted)}.sec-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.sec-top button{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:7px 12px}.muted-ok{color:var(--accent);font-size:13px}.callout{background:var(--accent-dim);border:1px solid var(--accent);border-radius:10px;padding:10px 14px;margin:10px 0;color:#cdf7de}.callout.warn{background:#2a2210;border-color:#5c4413;color:#ffd989}.sec{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin:14px 0}.sec h3{font-size:16px;margin-bottom:4px}.sec button:not(.link):not(.primary):not(.x){background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:7px 12px}.rows{list-style:none;margin:8px 0;padding:0}.rows li{display:flex;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.rows li:last-child{border-bottom:0}.rows.tight li{padding:5px 0;font-size:13.5px}.rows .grow{flex:1;min-width:0}.muted{color:var(--muted);font-size:12.5px}.tag.ok{color:var(--accent);border-color:var(--accent-dim)}.dot{width:9px;height:9px;border-radius:50%;flex:none}.dot.ok{background:var(--accent)}.dot.bad{background:var(--danger)}.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}.inline input{flex:1;min-width:160px}.stack{display:grid;gap:8px;max-width:360px;margin:8px 0}.btn-row{display:flex;gap:10px;align-items:center}.sec input,.auth-card input{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit}
