:root{--pokeball-red:#ee1515;--pokeball-blue:#3b4cca;--pikachu:#ffcb05;--pokeball-white:#f0f0f0;--pokeball-red-soft:#c41010;--pokeball-blue-soft:#2b3899;--pikachu-soft:#e6b800;--bg:#0d0d14;--bg-elevated:#15151f;--bg-card:#1a1a26;--bg-card-hover:#20202e;--border:#2a2a40;--border-strong:#3a3a55;--text:#e8e8f0;--text-muted:#a8a8c5;--text-faint:#7878b0;--text-dim:#5a5a85;--player:#4a90e2;--player-bg:#4a90e21a;--player-text:#dcecff;--opponent:#e25a5a;--opponent-bg:#e25a5a1a;--opponent-text:#ffdcdc;--win:#3db870;--win-bg:#3db87024;--loss:#ef6868;--loss-bg:#ef686824;--eval-good:var(--win);--eval-ok:#8c9aff;--eval-mistake:#f59e0b;--eval-blunder:var(--loss);--t-fast:.12s;--t-med:.22s;--t-slow:.4s;--ease:cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:system-ui,-apple-system,sans-serif}.app{max-width:1100px;margin:0 auto;padding:.85rem 1rem 4rem}.app.app-tab-battle{max-width:1750px}.battle-area{grid-template-columns:1fr;grid-template-areas:"center""bottom";align-items:start;gap:1.25rem;display:grid}.battle-area.with-teams{grid-template-columns:250px minmax(0,1fr) 290px;grid-template-areas:"left center right""bottom bottom bottom"}.battle-left{grid-area:left;min-width:0}.battle-center{grid-area:center;min-width:0}.battle-right{grid-area:right;min-width:0}.battle-bottom{grid-area:bottom;min-width:0}.battle-area:not(.with-teams) .battle-center{width:100%;max-width:1200px;margin:0 auto}.live-stage{position:relative}.capture-loading{margin-top:.6rem}.upload-link{color:#a8a8c5;cursor:pointer;background:0 0;border:1px dashed #2e2e50;border-radius:6px;padding:.4rem .95rem;font-family:inherit;font-size:.82rem;font-weight:600;transition:border-color .15s,color .15s}.upload-link:hover{color:#facc15;border-color:#facc15}.team-selector-label{text-transform:uppercase;letter-spacing:.14em;color:var(--text-faint);flex-direction:column;gap:.3rem;margin-top:.85rem;font-size:.65rem;font-weight:800;display:flex}.team-selector{color:#d0d8ff;cursor:pointer;background:#0e1428;border:1px solid #2a3060;border-radius:7px;padding:.45rem .65rem;font-family:inherit;font-size:.92rem;font-weight:600;transition:border-color .15s}.team-selector:focus{border-color:#3b4cca;outline:none}.team-mismatch{color:#fbbf24;cursor:help;background:#1c1408;border:1px solid #5a3a0a;border-radius:5px;margin-bottom:.6rem;padding:.35rem .5rem;font-size:.72rem;line-height:1.35}.player-card-meta{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.ability-tag{color:#8ca0d8;background:#3b4cca26;border:1px solid #3b4cca59;border-radius:3px;margin-left:auto;padding:.05rem .4rem;font-size:.7rem;font-weight:600}.battle-left .team-panel,.battle-right .team-panel{padding:.85rem}.battle-left .pokemon-card,.battle-right .pokemon-card{padding:.4rem .6rem;font-size:.82rem}.battle-left .held-item,.battle-right .held-item{font-size:.72rem}.battle-right .correction-panel{margin-bottom:0;padding:.9rem}.battle-right .correction-header h2{font-size:.95rem}.battle-right .correction-header p{font-size:.78rem}.battle-right .correction-screenshot{max-height:140px}.battle-right .correction-grid{grid-template-columns:1fr;gap:.5rem}.battle-right .analyze-btn{width:100%;padding:.55rem}.battle-actions .reset-btn{margin:0;display:inline-block}.topbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:.85rem;display:flex}.topbar-brand{cursor:default;align-items:center;gap:.7rem;display:flex}.topbar-brand svg{transition:transform var(--t-slow) var(--ease);filter:drop-shadow(0 1px 4px #ee15154d)}.topbar-brand:hover svg{transform:rotate(-15deg)scale(1.08)}.topbar-text{flex-direction:column;line-height:1.05;display:flex}.topbar-text h1{letter-spacing:.01em;background:linear-gradient(95deg, var(--pokeball-red) 0%, var(--pokeball-white) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.55rem;font-weight:900}.topbar-text p{color:var(--text-faint);letter-spacing:.12em;text-transform:uppercase;margin-top:.2rem;font-size:.62rem;font-weight:700}.app-footer{border-top:1px solid var(--border);justify-content:center;gap:1.2rem;margin-top:2.5rem;padding:1.4rem 1rem;display:flex}.app-footer-link{color:var(--text-muted);transition:color var(--t-fast) var(--ease);font-size:.82rem;font-weight:600;text-decoration:none}.app-footer-link:hover{color:var(--pikachu)}.upload-zone{text-align:center;border:2px dashed #2a2a48;border-radius:14px;padding:4rem 2rem;transition:border-color .2s}.upload-zone:not(.loading):hover{border-color:#ffcb05}.upload-hint{color:#7070a0;margin-bottom:1.5rem;font-size:1.05rem}.upload-btn{background:var(--pikachu);color:#0f0f1a;cursor:pointer;transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);border-radius:8px;padding:.65rem 1.7rem;font-size:.95rem;font-weight:700;display:inline-block;box-shadow:0 1px 2px #00000040}.upload-btn:hover{background:#fde047;transform:translateY(-1px);box-shadow:0 4px 12px #ffcb0540}.upload-btn:active{transform:translateY(0)}.error{color:#f87171;margin-top:1.25rem;font-size:.9rem}.spinner-wrap{color:#7070a0;flex-direction:column;align-items:center;gap:1rem;display:flex}.spinner{border:3px solid #2a2a48;border-top-color:#ffcb05;border-radius:50%;width:44px;height:44px;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-state{background:#0e0e1e;border:1px solid #1e1e3e;border-radius:14px;overflow:hidden}.loading-preview{object-fit:contain;object-position:center;background:#000;border-bottom:1px solid #1e1e3e;width:100%;max-height:400px;display:block}.loading-spinner-wrap{padding:1.75rem 2rem}.teams-row{grid-template-columns:1fr 48px 1fr;align-items:start;gap:1rem;margin-bottom:1.75rem;display:grid}.vs{color:#ffcb05;text-align:center;letter-spacing:.1em;text-shadow:0 0 12px #ffcb0566;padding-top:2.2rem;font-size:1rem;font-weight:900}.team-panel{border-radius:12px;padding:1rem}.team-panel.player{background:#0e1428;border:1px solid #1e2e6a;border-top:3px solid #3b4cca}.team-panel.opponent{background:#1a0c0c;border:1px solid #5a1a1a;border-top:3px solid #c00}.team-header{border-bottom:1px solid #1e1e3e;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.6rem;display:flex}.team-label{text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;font-weight:800}.team-panel.player .team-label{color:#68d}.team-panel.opponent .team-label{color:#c44}.trainer{font-size:.95rem;font-weight:600}.trainer-select-wrap{align-items:center;gap:.25rem;display:inline-flex;position:relative}.trainer-select{appearance:none;color:var(--text);cursor:pointer;text-overflow:ellipsis;max-width:180px;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);background:0 0;border:1px solid #0000;border-radius:6px;padding:.2rem 1.4rem .2rem .5rem;font-family:inherit;font-size:.95rem;font-weight:600}.trainer-select:hover,.trainer-select:focus{border-color:var(--border-strong);background:#ffffff0a;outline:none}.trainer-select-chevron{color:var(--text-muted);pointer-events:none;font-size:.7rem;position:absolute;top:50%;right:.4rem;transform:translateY(-50%)}.trainer-select option{background:var(--bg-card);color:var(--text)}.pokemon-list{flex-direction:column;gap:.35rem;display:flex}.pokemon-card{background:var(--bg-card);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);border:1px solid #0000;border-radius:8px;flex-direction:column;gap:.3rem;padding:.5rem .75rem;font-size:.88rem;display:flex;position:relative}.pokemon-card:hover{background:var(--bg-card-hover)}.pokemon-card-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.pokemon-card-sprite-inline{object-fit:contain;width:36px;height:36px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;filter:drop-shadow(0 1px 2px #0006);flex-shrink:0;margin-right:-.1rem}.player-card.role-lead{border:1px solid #3db87099;border-left:5px solid var(--win);background:#3db87038}.player-card.role-lead:hover{background:#3db8704d}.player-card.role-back{border:1px solid #4a90e299;border-left:5px solid var(--player);background:#4a90e238}.player-card.role-back:hover{background:#4a90e24d}.pokemon-card.role-bench{opacity:.42;filter:saturate(.3);border-style:dashed;border-color:var(--border)}.role-tag{letter-spacing:.1em;border-radius:4px;flex-shrink:0;padding:.12rem .4rem;font-size:.6rem;font-weight:900;line-height:1}.role-tag-lead{color:#0d0d14;background:var(--win)}.role-tag-back{color:#fff;background:var(--player)}.role-tag-bench{color:var(--text-faint);background:#0000004d}.pokemon-name{flex:1;align-items:center;gap:.4rem;min-width:0;font-weight:600;display:flex}.pokemon-name-stack{flex-direction:column;min-width:0;line-height:1.1;display:flex}.pokemon-species-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pokemon-species-sub{color:var(--text-faint);letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;margin-top:.1rem;font-size:.68rem;font-weight:500;overflow:hidden}.gender{color:#6060a0;font-size:.75rem}.held-item{color:#8080b0;text-align:right;font-size:.78rem}.analysis-panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.summary{color:var(--text);border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:1.25rem;font-size:.95rem;line-height:1.65}.rec-list{flex-direction:column;gap:.5rem;display:flex}.rec-item{border-left:3px solid #0000;border-radius:0 4px 4px 0;padding:.45rem .75rem}.rec-item.rec-warning{background:#f871710f;border-left-color:#f87171}.rec-item.rec-suggestion{background:#fcd34d0f;border-left-color:#fcd34d}.rec-item.rec-info{background:#93c5fd0f;border-left-color:#93c5fd}.rec-text{color:#d0d0ec;font-size:.93rem;line-height:1.55}.reset-btn{color:#7070a0;cursor:pointer;background:0 0;border:1px solid #2e2e50;border-radius:7px;margin:0 auto;padding:.5rem 1.5rem;font-size:.9rem;transition:border-color .15s,color .15s;display:block}.reset-btn:hover{color:#facc15;border-color:#facc15}.tab-nav{align-items:center;gap:.15rem;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;padding:.45rem 1rem;font-size:.9rem;font-weight:600;position:relative}.tab-btn:hover{color:var(--text);background:#ffffff08}.tab-btn.active{color:var(--pikachu);border-bottom-color:var(--pikachu);background:#ffcb050a}.tab-dot{background:var(--pikachu);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:.4rem;display:inline-block;box-shadow:0 0 6px #ffcb0599}.correction-panel{background:#12122a;border:1px solid #252560;border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.correction-header{margin-bottom:1.25rem}.correction-header h2{color:#e8e8f0;margin-bottom:.2rem;font-size:1.1rem;font-weight:700}.correction-header p{color:#6060a0;font-size:.85rem}.correction-screenshot-wrap{text-align:center;background:#0a0a18;border:1px solid #252560;border-radius:8px;margin-bottom:1.25rem;overflow:hidden}.correction-screenshot{object-fit:contain;object-position:center;width:100%;max-height:340px;display:block}.correction-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-bottom:1.25rem;display:grid}.correction-card{background:#1c1c38;border-radius:8px;flex-direction:column;gap:.5rem;padding:.65rem .75rem;display:flex}.correction-card-top{align-items:center;gap:.5rem;display:flex}.correction-slot{color:#7878b0;flex-shrink:0;font-size:.7rem;font-weight:700}.correction-select{color:#e8e8f0;cursor:pointer;background:#0f0f1a;border:1px solid #2e2e50;border-radius:5px;width:100%;padding:.35rem .5rem;font-size:.82rem;transition:border-color .15s}.correction-select:focus{border-color:#facc15;outline:none}.correction-select.override{color:#f59e0b;border-color:#f59e0b}.correction-footer{justify-content:flex-end;display:flex}.analyze-btn{color:#0f0f1a;cursor:pointer;background:#facc15;border:none;border-radius:7px;padding:.6rem 1.75rem;font-size:.95rem;font-weight:700;transition:background .15s}.analyze-btn:hover{background:#fde047}.my-team-page{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;padding:1.5rem}.my-team-capture{margin-bottom:1rem}.my-team-update-row{flex-wrap:wrap;align-items:flex-start;gap:.75rem;margin-bottom:1.25rem;display:flex}.my-team-upload-btn{background:var(--pokeball-blue);color:#fff;border:1px solid var(--pokeball-blue);cursor:pointer;transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);border-radius:8px;flex-shrink:0;align-items:center;gap:.55rem;padding:.65rem 1.15rem;font-family:inherit;font-size:.92rem;font-weight:700;display:inline-flex;box-shadow:0 1px 2px #0000004d}.my-team-upload-btn:hover:not(:disabled){background:#4d5fda;border-color:#4d5fda;transform:translateY(-1px);box-shadow:0 4px 12px #3b4cca4d}.my-team-upload-btn:disabled{opacity:.6;cursor:not-allowed}.my-team-upload-icon{font-size:1.05rem}.my-team-upload-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.75s linear infinite spin}.my-team-capture-collapsible{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex:1;min-width:220px;overflow:hidden}.capture-collapsible-summary{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--t-fast) var(--ease);align-items:center;gap:.6rem;padding:.7rem 1rem;list-style:none;display:flex}.capture-collapsible-summary::-webkit-details-marker{display:none}.capture-collapsible-summary:hover{background:var(--bg-card-hover)}.capture-collapsible-icon{font-size:1rem}.capture-collapsible-label{color:var(--text);font-size:.92rem;font-weight:600}.capture-collapsible-hint{color:var(--text-faint);margin-left:.1rem;font-size:.78rem}.capture-collapsible-chevron{color:var(--text-faint);transition:transform var(--t-med) var(--ease);margin-left:auto}.my-team-capture-collapsible[open] .capture-collapsible-chevron{transform:rotate(180deg)}.my-team-capture-collapsible[open] .my-team-capture{margin-bottom:0;padding:0 1rem 1rem}.capture-scanning{color:var(--pikachu);padding:0 .5rem;font-size:.82rem;font-weight:600}.my-team-header{flex-direction:column;gap:.5rem;margin-bottom:1.5rem;display:flex}.my-team-header-row{flex-wrap:wrap;align-items:center;gap:.85rem;display:flex}.my-team-header-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto;display:flex}.my-team-header h2{color:var(--text);margin-bottom:.2rem;font-size:1.1rem;font-weight:700}.my-team-header p{color:var(--text-muted);max-width:640px;font-size:.86rem}.my-team-header p strong{color:var(--pikachu);font-weight:700}.my-team-actions{gap:.5rem;margin-left:auto;display:flex}.upload-btn.disabled{opacity:.5;cursor:not-allowed}.my-team-section{margin-bottom:1.5rem}.my-team-section-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.85rem;display:flex}.my-team-section-title{color:var(--text);margin:0;font-size:.95rem;font-weight:700}.my-team-section-meta{color:var(--text-faint);font-size:.78rem}.pkmn-grid{grid-template-columns:1fr;gap:.85rem;display:grid}@media (width>=720px){.pkmn-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1100px){.pkmn-grid{grid-template-columns:repeat(3,1fr)}}@media (width>=1920px){.pkmn-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=2400px){.pkmn-grid{grid-template-columns:repeat(3,1fr)}}.pkmn-card{background:var(--bg-card);border:1px solid var(--border);transition:border-color var(--t-fast) var(--ease);border-radius:10px;flex-direction:column;gap:.55rem;padding:.75rem;display:flex}.pkmn-card:focus-within{border-color:var(--pokeball-blue)}.pkmn-card-empty{opacity:.7}.pkmn-card-empty:focus-within{opacity:1}.pkmn-card-head{align-items:center;gap:.55rem;display:flex}.pkmn-card-sprite{object-fit:contain;width:52px;height:52px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;filter:drop-shadow(0 1px 2px #0006);transition:opacity var(--t-med) var(--ease);flex-shrink:0}.pkmn-card-sprite-empty{color:var(--border-strong);justify-content:center;align-items:center;padding:4px;display:flex}.pkmn-card-names{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.pkmn-card-species{background:var(--bg);border:1px solid var(--border);color:var(--text);transition:border-color var(--t-fast) var(--ease);border-radius:6px;min-width:0;padding:.5rem .65rem;font-family:inherit;font-size:.95rem;font-weight:700}.pkmn-card-species:focus{border-color:var(--pokeball-blue);outline:none}.pkmn-card-species::placeholder{color:var(--text-dim);font-weight:400}.pkmn-card-nickname{background:var(--bg);border:1px dashed var(--border);color:var(--text-muted);transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);border-radius:5px;min-width:0;padding:.32rem .55rem;font-family:inherit;font-size:.78rem;font-style:italic}.pkmn-card-nickname:focus{border-color:var(--pokeball-blue);color:var(--text);border-style:solid;outline:none}.pkmn-card-nickname:not(:placeholder-shown){color:var(--text);border-style:solid}.pkmn-card-nickname::placeholder{color:var(--text-dim);font-style:italic}.pkmn-card-meta{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.pkmn-card-field{background:var(--bg);border:1px solid var(--border);color:var(--text);min-width:0;transition:border-color var(--t-fast) var(--ease);border-radius:5px;padding:.4rem .55rem;font-family:inherit;font-size:.82rem}.pkmn-card-field:focus{border-color:var(--pokeball-blue);outline:none}.pkmn-card-field::placeholder{color:var(--text-dim)}.pkmn-card-moves{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.pkmn-stats{background:var(--bg);border:1px solid var(--border);border-radius:6px;margin-top:.5rem;padding:.45rem .6rem}.pkmn-stats-nature{text-transform:uppercase;letter-spacing:.06em;color:var(--pikachu);margin-bottom:.35rem;font-size:.72rem;font-weight:700;display:inline-block}.pkmn-stats-grid{grid-template-columns:repeat(3,1fr);gap:.25rem .6rem;display:grid}.pkmn-stat-cell{align-items:baseline;gap:.3rem;font-size:.78rem;display:flex}.pkmn-stat-label{color:var(--text-faint);min-width:24px;font-weight:600}.pkmn-stat-value{color:var(--text);font-weight:600}.pkmn-stat-evs{color:var(--text-faint);font-size:.72rem}.pkmn-stat-evs:before{content:"+"}.my-team-upload-btn-stats{color:var(--player-text);background:#4a90e21a;border-color:#4a90e24d}.my-team-upload-btn-stats:hover:not(:disabled){background:#4a90e22e;border-color:#4a90e273}.pkmn-card-move{background:var(--bg);border:1px solid var(--border);color:var(--text);min-width:0;transition:border-color var(--t-fast) var(--ease);border-radius:5px;padding:.38rem .55rem;font-family:inherit;font-size:.82rem}.pkmn-card-move:focus{border-color:var(--pokeball-blue);outline:none}.pkmn-card-move::placeholder{color:var(--text-dim)}.my-team-stack{flex-direction:column;gap:1rem;min-width:0;display:flex}.update-menu{flex-shrink:0;position:relative}.update-menu-btn{background:var(--pokeball-blue);border:1px solid var(--pokeball-blue);color:#fff;cursor:pointer;border-radius:8px;align-items:center;gap:.4rem;padding:.55rem .9rem;font-family:inherit;font-size:.88rem;font-weight:600;display:inline-flex}.update-menu-btn:disabled{opacity:.6;cursor:progress}.update-menu-chevron{font-size:.7rem}.update-menu-list{background:var(--bg-elevated);border:1px solid var(--border-strong);z-index:50;border-radius:9px;flex-direction:column;min-width:230px;padding:.3rem;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 10px 30px #0006}.update-menu-list button{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.6rem .7rem;font-family:inherit;font-size:.88rem}.update-menu-list button:hover{background:var(--bg-card-hover)}.update-menu-divider{background:var(--border);height:1px;margin:.3rem .4rem}.my-team-capture-panel{border:1px solid var(--border);border-radius:12px;margin-top:1rem;overflow:hidden}.my-team-capture-panel-head{background:var(--bg-card);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);justify-content:space-between;align-items:center;padding:.6rem .9rem;font-size:.82rem;font-weight:700;display:flex}.my-team-capture-close{border:1px solid var(--border-strong);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:.3rem .6rem;font-family:inherit;font-size:.78rem}.my-team-capture-close:hover{color:var(--text)}.my-team-team-actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;display:flex}.my-team-tabs{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;overflow:hidden}.my-team-tab-strip{border-bottom:1px solid var(--border);display:flex}.my-team-tab{color:var(--text-muted);cursor:pointer;transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.8rem .6rem;font-family:inherit;font-size:.85rem;font-weight:700}.my-team-tab:hover{color:var(--text);background:#ffffff08}.my-team-tab.active{color:var(--pikachu);border-bottom-color:var(--pikachu)}.my-team-tab-panel{flex-direction:column;gap:.85rem;padding:1.1rem;display:flex}.my-team-drawer{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;overflow:hidden}.my-team-drawer-summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.6rem;padding:.85rem 1.1rem;list-style:none;display:flex}.my-team-drawer-summary::-webkit-details-marker{display:none}.my-team-drawer-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text);font-size:.82rem;font-weight:800}.my-team-drawer-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--pikachu);background:#ffcb051f;border-radius:4px;padding:.1rem .4rem;font-size:.68rem;font-weight:700}.my-team-drawer-chevron{color:var(--text-faint);transition:transform var(--t-fast) var(--ease);margin-left:auto}.my-team-drawer[open] .my-team-drawer-chevron{transform:rotate(180deg)}.my-team-drawer-body{flex-direction:column;gap:.85rem;padding:0 1.1rem 1.1rem;display:flex}.my-team-workspace{flex-direction:column;gap:1.5rem;display:flex}.my-team-main{flex-direction:column;gap:1.5rem;min-width:0;display:flex}.my-team-sidebar{align-self:start;min-width:0;position:sticky;top:1rem}@media (width<=1099px){.my-team-sidebar{position:static}}.my-team-knowledge-grid{grid-template-columns:1fr;gap:1.25rem;display:grid}@media (width>=1200px){.my-team-knowledge-grid{grid-template-columns:1fr 1fr}}.team-form{flex-direction:column;gap:.5rem;margin-bottom:1.25rem;display:flex}.team-form-row{grid-template-columns:28px 1fr 1fr 1fr auto;align-items:center;gap:.4rem;display:grid}.team-form-slot{color:var(--text-faint);text-align:center;font-size:.7rem;font-weight:700}.team-input{background:var(--bg);border:1px solid var(--border);color:var(--text);width:100%;transition:border-color var(--t-fast) var(--ease);border-radius:5px;padding:.35rem .55rem;font-size:.82rem}.team-input:focus{border-color:var(--pokeball-blue);outline:none}.team-input::placeholder{color:var(--text-dim)}.species-input{font-weight:600}.move-inputs{grid-template-columns:1fr 1fr;gap:.3rem;display:grid}.move-input{font-size:.78rem}.strategy-section{margin-bottom:1.25rem}.strategy-label-row{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.strategy-label{text-transform:uppercase;letter-spacing:.1em;color:#6060a0;font-size:.75rem;font-weight:700}.generate-strategy-btn{color:#9090d0;cursor:pointer;background:0 0;border:1px solid #3a3a6a;border-radius:6px;padding:.3rem .75rem;font-size:.78rem;transition:border-color .15s,color .15s}.generate-strategy-btn:hover:not(:disabled){color:#b0b0f8;border-color:#7c7cf0}.generate-strategy-btn:disabled{opacity:.45;cursor:default}.generate-error{margin-bottom:.5rem;font-size:.82rem}.strategy-textarea{background:var(--bg);border:1px solid var(--border);width:100%;min-height:240px;color:var(--text);resize:vertical;transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);border-radius:8px;padding:.9rem 1rem;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:.92rem;line-height:1.65}.strategy-textarea:focus{border-color:var(--pokeball-blue);outline:none;box-shadow:0 0 0 3px #3b4cca26}.strategy-textarea::placeholder{color:var(--text-dim);font-style:italic;line-height:1.7}.strategy-meta{color:var(--text-faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-top:.5rem;font-size:.76rem;display:flex}.strategy-meta-count{font-variant-numeric:tabular-nums;font-weight:700}.strategy-meta-hint{color:var(--text-dim);text-align:right}.coach-tone-section{border-top:1px dashed var(--border);flex-direction:column;gap:.7rem;margin-top:1.25rem;padding-top:1.25rem;display:flex}.coach-tone-header{flex-wrap:wrap;align-items:baseline;gap:.7rem;display:flex}.coach-tone-title{text-transform:uppercase;letter-spacing:.12em;color:var(--pikachu);font-size:.78rem;font-weight:800}.coach-tone-subtitle{color:var(--text-faint);font-size:.78rem}.coach-tone-options{grid-template-columns:repeat(3,1fr);gap:.6rem;display:grid}@media (width<=640px){.coach-tone-options{grid-template-columns:1fr}}.coach-tone-btn{background:var(--bg-card);border:1.5px solid var(--border);cursor:pointer;text-align:left;color:var(--text-muted);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border-radius:9px;flex-direction:column;gap:.25rem;padding:.75rem .85rem;font-family:inherit;display:flex}.coach-tone-btn:hover:not(.active){background:var(--bg-card-hover);border-color:var(--border-strong);color:var(--text);transform:translateY(-1px)}.coach-tone-btn.active{border-color:var(--pikachu);color:var(--text);background:#ffcb050f;box-shadow:0 0 0 1px #ffcb0540}.coach-tone-icon{font-size:1.15rem;line-height:1}.coach-tone-label{font-size:.9rem;font-weight:700}.coach-tone-btn.active .coach-tone-label{color:var(--pikachu)}.coach-tone-desc{color:var(--text-faint);font-size:.76rem;line-height:1.35}.my-team-section-actions{flex-wrap:wrap;gap:.4rem;display:flex}.suggest-btn{background:var(--pokeball-blue);color:#fff;border:1px solid var(--pokeball-blue);cursor:pointer;transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);border-radius:7px;align-items:center;gap:.4rem;padding:.5rem 1rem;font-family:inherit;font-size:.85rem;font-weight:700;display:inline-flex;box-shadow:0 1px 2px #0003}.suggest-btn:hover:not(:disabled){background:#4d5fda;border-color:#4d5fda;transform:translateY(-1px)}.suggest-btn:disabled{opacity:.55;cursor:not-allowed}.suggest-btn-alt{color:var(--text-muted);border-color:var(--border-strong);box-shadow:none;background:0 0}.suggest-btn-alt:hover:not(:disabled){color:var(--text);border-color:var(--text-faint);background:#ffffff08;transform:none}.collection-page{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;padding:1.5rem}.collection-page-header{margin-bottom:1.25rem}.collection-page-title-row{flex-wrap:wrap;align-items:baseline;gap:.7rem;margin-bottom:.3rem;display:flex}.collection-page-title{color:var(--text);margin:0;font-size:1.25rem;font-weight:700}.collection-page-count{color:var(--pikachu);background:#ffcb051f;border:1px solid #ffcb054d;border-radius:999px;padding:.2rem .6rem;font-size:.82rem;font-weight:700}.collection-page-subtitle{color:var(--text-muted);max-width:720px;font-size:.88rem;line-height:1.55}.collection-page-controls{flex-direction:column;gap:.65rem;margin-bottom:1.25rem;display:flex}.collection-page-add-row{gap:.5rem;display:flex}.collection-page-meta-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.collection-page-search-wrap{flex:240px;min-width:180px;position:relative}.collection-page-search-icon{color:var(--text-faint);pointer-events:none;font-size:1rem;position:absolute;top:50%;left:.7rem;transform:translateY(-50%)}.collection-page-search{background:var(--bg-card);border:1px solid var(--border);width:100%;color:var(--text);transition:border-color var(--t-fast) var(--ease);border-radius:7px;padding:.45rem .6rem .45rem 2rem;font-family:inherit;font-size:.85rem}.collection-page-search:focus{border-color:var(--pokeball-blue);outline:none}.collection-page-search::-webkit-search-cancel-button{display:none}.collection-page-search-clear{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:1.1rem;line-height:1;position:absolute;top:50%;right:.4rem;transform:translateY(-50%)}.collection-page-search-clear:hover{color:var(--pokeball-red)}.collection-page-clear-all{margin-left:auto;padding:.4rem .85rem;font-size:.78rem}.collection-page-clear-filter{border:1px solid var(--border-strong);color:var(--text-muted);cursor:pointer;transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border-radius:7px;margin-top:.6rem;padding:.45rem 1rem;font-family:inherit;font-size:.85rem}.collection-page-clear-filter:hover{border-color:var(--pikachu);color:var(--pikachu)}.collection-page-empty{background:var(--bg-card);border:1px dashed var(--border);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1.5rem;display:flex}.collection-page-empty-icon{opacity:.6;margin-bottom:.3rem;font-size:2rem}.collection-page-empty-title{color:var(--text);margin:0;font-size:1rem;font-weight:700}.collection-page-empty-sub{color:var(--text-muted);max-width:480px;margin:0;font-size:.86rem;line-height:1.5}.dex-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem;display:grid}.dex-tile{background:var(--bg-card);border:1.5px solid var(--border);cursor:pointer;color:var(--text);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);border-radius:9px;flex-direction:column;align-items:center;gap:.2rem;padding:.5rem .35rem .45rem;font-family:inherit;display:flex;position:relative}.dex-tile:hover{background:var(--bg-card-hover);transform:translateY(-1px)}.dex-tile-sprite{object-fit:contain;width:56px;height:56px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;filter:drop-shadow(0 1px 2px #0006);transition:filter var(--t-fast) var(--ease);background:0 0}.dex-tile-name{text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;color:var(--text-muted);font-size:.72rem;font-weight:600;overflow:hidden}.dex-tile-missing .dex-tile-sprite{filter:grayscale()brightness(.65);opacity:.55}.dex-tile-missing .dex-tile-name{color:var(--text-faint)}.dex-tile-missing:hover .dex-tile-sprite{filter:grayscale(.4)brightness(.85);opacity:.85}.dex-tile-owned{background:#3db87012;border-color:#3db8708c}.dex-tile-owned .dex-tile-name{color:var(--text)}.dex-tile-owned:hover{border-color:var(--win);background:#3db8701f}.dex-tile-check{background:var(--win);color:#052414;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:.72rem;font-weight:800;display:flex;position:absolute;top:4px;right:5px;box-shadow:0 1px #0003}.collection-filter{background:var(--bg-card);border:1px solid var(--border);border-radius:7px;display:flex;overflow:hidden}.collection-filter-btn{color:var(--text-muted);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:none;align-items:center;gap:.35rem;padding:.5rem .85rem;font-family:inherit;font-size:.82rem;font-weight:600;display:inline-flex}.collection-filter-btn:hover{color:var(--text)}.collection-filter-btn.active{color:var(--pikachu);background:#ffffff0f}.collection-filter-count{color:var(--text-faint);background:var(--bg);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:999px;padding:.05rem .4rem;font-size:.7rem;font-weight:700}.collection-filter-btn.active .collection-filter-count{color:var(--pikachu);border-color:#ffcb0566}.collection-bulk-toggle{border:1px dashed var(--border-strong);color:var(--text-muted);cursor:pointer;transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border-radius:7px;padding:.5rem .85rem;font-family:inherit;font-size:.82rem;font-weight:600}.collection-bulk-toggle:hover{border-color:var(--pikachu);color:var(--pikachu)}.collection-bulk-row{gap:.5rem;margin-top:.6rem;display:flex}.collection-bulk-input{background:var(--bg);border:1px solid var(--border);color:var(--text);resize:vertical;min-height:60px;transition:border-color var(--t-fast) var(--ease);border-radius:7px;flex:1;padding:.55rem .75rem;font-family:inherit;font-size:.85rem;line-height:1.5}.collection-bulk-input:focus{border-color:var(--pokeball-blue);outline:none}.collection-bulk-btn{background:var(--pokeball-blue);color:#fff;border:1px solid var(--pokeball-blue);cursor:pointer;transition:background var(--t-fast) var(--ease);border-radius:7px;align-self:stretch;padding:0 1.1rem;font-family:inherit;font-size:.85rem;font-weight:700}.collection-bulk-btn:hover:not(:disabled){background:#4d5fda}.collection-bulk-btn:disabled{opacity:.45;cursor:not-allowed}.collection-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem;display:grid}.collection-card{background:var(--bg-card);border:1px solid var(--border);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border-radius:9px;flex-direction:column;align-items:center;gap:.3rem;padding:.6rem .5rem;display:flex;position:relative}.collection-card:hover{background:var(--bg-card-hover);border-color:var(--border-strong);transform:translateY(-1px)}.collection-card-sprite{object-fit:contain;width:56px;height:56px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;filter:drop-shadow(0 1px 2px #0006)}.collection-card-name{color:var(--text);text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.8rem;font-weight:600;overflow:hidden}.collection-card-remove{width:20px;height:20px;color:var(--text-faint);cursor:pointer;opacity:0;transition:opacity var(--t-fast) var(--ease), color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:#0000004d;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:.95rem;line-height:1;display:flex;position:absolute;top:.3rem;right:.3rem}.collection-card:hover .collection-card-remove,.collection-card-remove:focus{opacity:1}.collection-card-remove:hover{color:var(--loss);background:#ef686840}.collection-summary{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--pokeball-blue);border-radius:0 9px 9px 0;flex-wrap:wrap;align-items:center;gap:.85rem;margin-bottom:1.5rem;padding:.65rem .85rem;display:flex}.collection-summary-empty{border-left-color:var(--pikachu);flex-direction:column;align-items:stretch;padding:1rem 1.1rem}@media (width>=720px){.collection-summary-empty{flex-direction:row;align-items:center}}.collection-summary-empty-body{flex-direction:column;flex:1;gap:.25rem;display:flex}.collection-summary-empty-title{color:var(--text);font-size:.92rem;font-weight:700}.collection-summary-empty-text{color:var(--text-muted);margin:0;font-size:.82rem;line-height:1.5}.collection-summary-info{flex-direction:column;flex-shrink:0;gap:.1rem;display:flex}.collection-summary-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);font-size:.7rem;font-weight:800}.collection-summary-count{color:var(--pikachu);font-size:.92rem;font-weight:700}.collection-summary-sprites{flex:1;align-items:center;gap:0;min-width:0;display:flex;overflow:hidden}.collection-summary-sprite{object-fit:contain;width:30px;height:30px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;filter:drop-shadow(0 1px 1px #0006);flex-shrink:0;margin-right:-6px}.collection-summary-more{color:var(--text-faint);margin-left:.65rem;font-size:.78rem;font-weight:600}.collection-summary-cta{border:1px solid var(--border-strong);color:var(--text-muted);cursor:pointer;transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;border-radius:7px;flex-shrink:0;padding:.45rem .9rem;font-family:inherit;font-size:.82rem;font-weight:600}.collection-summary-cta:hover{border-color:var(--pokeball-blue);color:#8caefa;background:#3b4cca14}.collection-summary-empty .collection-summary-cta:hover{border-color:var(--pikachu);color:var(--pikachu);background:#ffcb050f}.collection-section{margin-bottom:1.5rem}.collection-add-row{gap:.5rem;margin-bottom:.85rem;display:flex}.collection-add-input{background:var(--bg);border:1px solid var(--border);color:var(--text);transition:border-color var(--t-fast) var(--ease);border-radius:7px;flex:1;padding:.5rem .75rem;font-family:inherit;font-size:.88rem}.collection-add-input:focus{border-color:var(--pokeball-blue);outline:none}.collection-add-input::placeholder{color:var(--text-dim)}.collection-add-btn{background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text);cursor:pointer;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);border-radius:7px;padding:.5rem 1rem;font-family:inherit;font-size:.85rem;font-weight:600}.collection-add-btn:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--pikachu);color:var(--pikachu)}.collection-add-btn:disabled{opacity:.4;cursor:not-allowed}.collection-empty{color:var(--text-muted);background:var(--bg-card);border:1px dashed var(--border);border-radius:8px;padding:.85rem 1rem;font-size:.86rem;font-style:italic;line-height:1.5}.collection-chips{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.collection-chip{background:var(--bg-card);border:1px solid var(--border);color:var(--text);transition:background var(--t-fast) var(--ease);border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .5rem .2rem .3rem;font-size:.82rem;display:inline-flex}.collection-chip:hover{background:var(--bg-card-hover)}.collection-chip-sprite{object-fit:contain;width:26px;height:26px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;flex-shrink:0}.collection-chip-name{font-weight:600}.collection-chip-remove{color:var(--text-faint);cursor:pointer;transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;border:none;border-radius:3px;padding:0 .15rem;font-size:1rem;line-height:1}.collection-chip-remove:hover{color:var(--loss);background:#ef686826}.collection-count{color:var(--text-faint);margin-left:.35rem;font-size:.75rem}.suggestion-panel{border:1px solid #3b4cca4d;border-left:3px solid var(--pokeball-blue);background:#3b4cca14;border-radius:0 10px 10px 0;flex-direction:column;gap:.85rem;margin:.85rem 0 1.1rem;padding:1rem 1.15rem;display:flex}.suggestion-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.suggestion-panel-title{letter-spacing:.08em;text-transform:uppercase;color:#8caefa;font-size:.88rem;font-weight:800}.suggestion-panel-actions{gap:.4rem;display:flex}.suggestion-apply-btn{background:var(--pokeball-blue);color:#fff;border:1px solid var(--pokeball-blue);cursor:pointer;transition:background var(--t-fast) var(--ease);border-radius:7px;padding:.45rem .9rem;font-family:inherit;font-size:.82rem;font-weight:700}.suggestion-apply-btn:hover{background:#4d5fda}.suggestion-discard-btn{color:var(--text-muted);border:1px solid var(--border-strong);cursor:pointer;transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);background:0 0;border-radius:7px;padding:.45rem .85rem;font-family:inherit;font-size:.82rem;font-weight:600}.suggestion-discard-btn:hover{border-color:var(--loss);color:var(--loss)}.swaps-panel{background:#7c6cf012;border:1px solid #7c6cf04d;border-left:3px solid #7c6cf0;border-radius:0 10px 10px 0;flex-direction:column;gap:.6rem;margin:.85rem 0 1.1rem;padding:1rem 1.15rem;display:flex}.swaps-list{flex-direction:column;gap:.7rem;display:flex}.swap-slot{border:1px solid var(--border);background:#0000002e;border-radius:9px;padding:.7rem .8rem}.swap-slot-head{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.swap-slot-sprite{width:40px;height:40px;image-rendering:pixelated;flex-shrink:0}.swap-slot-headtext{flex-direction:column;line-height:1.2;display:flex}.swap-slot-current{color:var(--text);font-weight:800}.swap-slot-role{color:var(--text-muted);font-size:.78rem}.swap-alt{border-top:1px solid var(--border);margin-top:.55rem;padding-top:.55rem}.swap-alt:first-of-type{border-top:none;margin-top:0;padding-top:0}.swap-alt-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.swap-alt-kind{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.12rem .45rem;font-size:.68rem;font-weight:800}.swap-alt-kind.pokemon{color:#b9b0ff;background:#7c6cf038}.swap-alt-kind.moveset{color:#7fd6a4;background:#5fc88f2e}.swap-alt-title{color:var(--text);font-weight:700}.swap-alt-recruit{color:#f0b86a;margin-left:.35rem;font-size:.7rem}.swap-alt-apply{color:#fff;cursor:pointer;background:#4a3f8a;border:none;border-radius:6px;margin-left:auto;padding:.28rem .7rem;font-family:inherit;font-size:.78rem;font-weight:700}.swap-alt-apply:hover{background:#5a4ea8}.swap-alt-set{color:var(--text-muted);flex-wrap:wrap;gap:.5rem;margin-top:.3rem;font-size:.8rem;display:flex}.swap-alt-moves{color:#c9c9e8;margin-top:.25rem;font-size:.82rem}.swap-alt-reason,.swap-alt-tradeoff{color:var(--text);margin:.3rem 0 0;font-size:.84rem;line-height:1.5}.swap-alt-tradeoff{color:var(--text-muted)}.swap-alt-reason strong{color:#8caefa}.swap-alt-tradeoff strong{color:#f0a86a}.swap-none{color:var(--text-muted);margin:0;font-size:.84rem;font-style:italic}.suggestion-summary{color:var(--text);margin:0;font-size:.92rem;line-height:1.55}.suggestion-meta-analysis{background:#7dd3fc0f;border:1px solid #7dd3fc40;border-radius:8px;flex-direction:column;gap:.25rem;padding:.7rem .85rem;display:flex}.suggestion-meta-analysis-title{text-transform:uppercase;letter-spacing:.08em;color:#7dd3fc;font-size:.72rem;font-weight:800}.suggestion-meta-analysis p{color:var(--text);margin:0;font-size:.9rem;line-height:1.55}.suggestion-loading{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;align-items:center;gap:.85rem;padding:.9rem 1.05rem;display:flex}.suggestion-loading-text{flex-direction:column;gap:.15rem;font-size:.88rem;line-height:1.5;display:flex}.suggestion-loading-text strong{color:var(--text)}.suggestion-loading-text span{color:var(--text-muted,#8a8aa0)}.suggestion-team-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.suggestion-team-item{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:.65rem;padding:.55rem .7rem;display:flex}.suggestion-team-sprite{object-fit:contain;width:42px;height:42px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;filter:drop-shadow(0 1px 2px #0006);flex-shrink:0}.suggestion-team-body{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.suggestion-team-head{flex-wrap:wrap;align-items:baseline;gap:.55rem;display:flex}.suggestion-team-species{color:var(--text);font-size:.92rem;font-weight:700}.suggestion-aspirational-chip{color:var(--pikachu);white-space:nowrap;background:#ffcb051f;border:1px solid #ffcb0559;border-radius:4px;padding:.08rem .45rem;font-size:.7rem;font-weight:700}.suggestion-aspirational-note{color:var(--pikachu);border-left:3px solid var(--pikachu);background:#ffcb050f;border-radius:0 6px 6px 0;padding:.5rem .75rem;font-size:.82rem;line-height:1.5}.suggestion-team-ability{color:#8caefa;background:#3b4cca26;border:1px solid #3b4cca4d;border-radius:4px;padding:.05rem .4rem;font-size:.74rem;font-weight:600}.suggestion-team-item{color:var(--text-muted);font-size:.78rem;font-style:italic}.suggestion-team-moves{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.78rem}.suggestion-team-reasoning{color:var(--text);margin:.2rem 0 0;font-size:.82rem;line-height:1.45}.suggestion-warnings{border-left:3px solid var(--pikachu);background:#ffcb050f;border-radius:0 6px 6px 0;padding:.55rem .85rem}.suggestion-warnings-title{color:var(--pikachu);letter-spacing:.05em;font-size:.78rem;font-weight:700}.suggestion-warnings ul{color:var(--text-muted);margin:.3rem 0 0;padding-left:1.25rem;font-size:.84rem;line-height:1.5}.my-team-actions{gap:.75rem;display:flex}.save-btn{background:var(--pikachu);color:#0f0f1a;cursor:pointer;transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border:none;border-radius:7px;padding:.5rem 1.4rem;font-family:inherit;font-size:.9rem;font-weight:700}.save-btn:hover{background:#fde047;transform:translateY(-1px)}.save-btn.saved{background:var(--win);color:#fff}.save-btn.saved:hover{background:#4cc987}.clear-btn{border:1px solid var(--border-strong);color:var(--text-muted);cursor:pointer;transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border-radius:7px;padding:.5rem 1.1rem;font-family:inherit;font-size:.9rem}.clear-btn:hover{border-color:var(--loss);color:var(--loss)}.mode-toggle{background:#0e0e1e;border:1px solid #1e1e3e;border-radius:10px;gap:.5rem;width:fit-content;margin-bottom:1.25rem;padding:.35rem;display:flex}.mode-btn{color:#60608a;cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:.45rem;padding:.45rem 1.1rem;font-family:inherit;font-size:.88rem;font-weight:600;transition:background .15s,color .15s;display:flex}.mode-btn:hover{color:#c0c0e0}.mode-btn.active{color:#facc15;background:#1a1a38}.mode-icon{font-style:normal}.error-banner{margin-bottom:1rem}.live-capture{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.live-capture-bar{background:var(--bg-card);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.device-select{color:#e8e8f0;cursor:pointer;background:#0f0f1a;border:1px solid #2e2e50;border-radius:6px;flex:1;padding:.4rem .65rem;font-family:inherit;font-size:.85rem;transition:border-color .15s}.device-select:focus{border-color:#5050a0;outline:none}.device-select:disabled{opacity:.5;cursor:default}.capture-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#c00;border:none;border-radius:7px;flex-shrink:0;align-items:center;gap:.5rem;padding:.45rem 1.25rem;font-family:inherit;font-size:.95rem;font-weight:700;transition:background .15s;display:flex}.capture-btn:hover:not(:disabled){background:#e60000}.capture-btn:disabled{color:#7a4040;cursor:not-allowed;background:#3a1a1a}.capture-btn-icon{font-size:1.1rem;line-height:1}.capture-shortcut{letter-spacing:.03em;background:#ffffff26;border-radius:3px;padding:.05rem .35rem;font-family:inherit;font-size:.72rem;font-weight:600}.capture-btn:disabled .capture-shortcut{background:#ffffff0d}.new-battle-btn{color:#6060a0;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #2e2e50;border-radius:7px;flex-shrink:0;padding:.45rem 1rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:border-color .15s,color .15s}.new-battle-btn:hover{color:#facc15;border-color:#facc15}@keyframes rec-pulse{0%,to{box-shadow:0 0 #ef444480}50%{box-shadow:0 0 0 6px #ef444400}}.stop-recording-btn{color:#fca5a5;cursor:pointer;white-space:nowrap;background:#7f1d1d;border:1px solid #ef4444;border-radius:7px;flex-shrink:0;padding:.45rem 1.1rem;font-family:inherit;font-size:.85rem;font-weight:700;transition:background .15s,border-color .15s;animation:1.6s ease-in-out infinite rec-pulse}.stop-recording-btn:hover{background:#991b1b;border-color:#f87171}.upload-icon-btn{color:#6060a0;cursor:pointer;background:0 0;border:1px solid #2e2e50;border-radius:6px;padding:.45rem .6rem;font-size:1rem;line-height:1;transition:border-color .15s,color .15s}.upload-icon-btn:hover{color:#facc15;border-color:#facc15}.live-error{color:#f87171;background:#1a0c0c;border-bottom:1px solid #3a1a1a;justify-content:space-between;align-items:center;gap:.75rem;margin:0;padding:.65rem 1rem;font-size:.85rem;display:flex}.live-error-retry{color:#f87171;cursor:pointer;white-space:nowrap;transition:background var(--t-fast) var(--ease);background:#f8717126;border:1px solid #3a1a1a;border-radius:6px;padding:.3rem .7rem;font-family:inherit;font-size:.8rem}.live-error-retry:hover{background:#f8717140}.video-wrap{background:#000;justify-content:center;align-items:center;min-height:200px;display:flex;position:relative}.video-wrap.video-ready{animation:2.5s ease-in-out infinite liveGlow;box-shadow:inset 0 0 0 2px #c006}@keyframes liveGlow{0%,to{box-shadow:inset 0 0 0 2px #cc000040}50%{box-shadow:inset 0 0 0 2px #c009}}.capture-video{object-fit:contain;width:100%;max-height:80vh;display:block}.video-overlay{color:#7070a0;background:#0d0d14d9;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;font-size:.9rem;display:flex;position:absolute;inset:0}.capture-hint{color:#9090b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#0d0d14bf;border-radius:5px;padding:.3rem .65rem;font-size:.78rem;position:absolute;bottom:.75rem;right:.85rem}.capture-hint kbd{background:#ffffff1f;border-radius:3px;padding:.05rem .3rem;font-family:inherit;font-size:.75rem;font-weight:700}.tab-badge{color:#fff;vertical-align:middle;letter-spacing:0;background:#3b4cca;border-radius:9px;justify-content:center;align-items:center;min-width:17px;height:17px;margin-left:.4rem;padding:0 4px;font-size:.65rem;font-weight:800;display:inline-flex}.battle-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.65rem;margin-top:1rem;display:flex}.reanalyze-btn{color:#fff;cursor:pointer;background:#3b4cca;border:none;border-radius:7px;padding:.5rem 1.3rem;font-size:.9rem;font-weight:700;transition:background .15s}.reanalyze-btn:hover{background:#4d60e0}.edit-opp-btn{color:#9090c0;cursor:pointer;background:0 0;border:1px solid #3a3a60;border-radius:7px;padding:.5rem 1.1rem;font-size:.9rem;transition:border-color .15s,color .15s}.edit-opp-btn:hover{color:#ffcb05;border-color:#ffcb05}.history-empty{text-align:center;color:#7878b0;padding:5rem 2rem}.history-empty-icon{opacity:.5;margin-bottom:1rem}.history-empty-text{color:#5a5a90;margin-bottom:.35rem;font-size:1rem;font-weight:600}.history-empty-sub{color:#40406a;font-size:.85rem}.history-panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;overflow:hidden}.history-panel-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:1rem 1.25rem;display:flex}.history-filters{border-bottom:1px solid var(--border);background:#00000026;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.75rem 1.25rem;display:flex}.history-search-wrap{flex:240px;min-width:200px;position:relative}.history-search-icon{color:var(--text-faint);pointer-events:none;font-size:1rem;position:absolute;top:50%;left:.7rem;transform:translateY(-50%)}.history-search{background:var(--bg-card);border:1px solid var(--border);width:100%;color:var(--text);transition:border-color var(--t-fast) var(--ease);border-radius:7px;padding:.5rem .6rem .5rem 2rem;font-family:inherit;font-size:.85rem}.history-search:focus{border-color:var(--pokeball-blue);outline:none}.history-search::-webkit-search-cancel-button{display:none}.history-search-clear{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:1.1rem;line-height:1;position:absolute;top:50%;right:.4rem;transform:translateY(-50%)}.history-search-clear:hover{color:var(--pokeball-red)}.history-outcome-filter{background:var(--bg-card);border:1px solid var(--border);border-radius:7px;gap:0;display:flex;overflow:hidden}.history-outcome-filter-btn{color:var(--text-muted);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:none;padding:.5rem .95rem;font-family:inherit;font-size:.82rem;font-weight:600}.history-outcome-filter-btn:hover{color:var(--text)}.history-outcome-filter-btn.active{color:var(--text);background:#ffffff0f}.history-outcome-filter-btn.win.active{background:var(--win-bg);color:var(--win)}.history-outcome-filter-btn.loss.active{background:var(--loss-bg);color:var(--loss)}.history-team-filter{background:var(--bg-card);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:7px;padding:.5rem .7rem;font-family:inherit;font-size:.82rem}.history-team-filter:focus{border-color:var(--pokeball-blue);outline:none}.history-no-results{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:.85rem;padding:2.5rem 1.5rem;font-size:.9rem;display:flex}.history-clear-filters{border:1px solid var(--border-strong);color:var(--text-muted);cursor:pointer;transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border-radius:6px;padding:.4rem .95rem;font-family:inherit;font-size:.82rem;font-weight:600}.history-clear-filters:hover{border-color:var(--pikachu);color:var(--pikachu)}.history-list{flex-direction:column;display:flex}.history-item{border-bottom:1px solid var(--border);transition:background var(--t-fast) var(--ease), border-left-color var(--t-fast) var(--ease);cursor:pointer;border-left:5px solid #0000;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;display:flex}.history-item:last-child{border-bottom:none}.history-item:hover{background:#ffffff08}.history-item:focus-visible{background:#ffffff0a;outline:none}.history-item.active{border-left-color:var(--pokeball-blue);background:#3b4cca1a;box-shadow:inset 0 0 0 1px #3b4cca40}.history-item-win{border-left-color:var(--win);background:#3db8700b}.history-item-loss{border-left-color:var(--loss);background:#ef68680b}.history-item-win:hover{background:#3db87014}.history-item-loss:hover{background:#ef686814}.history-sprites{border:1px solid var(--border);background:#ffffff05;border-radius:7px;flex-shrink:0;grid-template-rows:repeat(2,38px);grid-template-columns:repeat(3,38px);align-content:center;gap:2px;width:118px;height:78px;padding:3px;display:grid}.history-sprite{object-fit:contain;width:38px;height:38px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;filter:drop-shadow(0 1px 1px #0000004d)}.history-thumb{object-fit:cover;object-position:center;border:1px solid var(--border);border-radius:5px;flex-shrink:0;width:90px;height:56px}.history-thumb-placeholder{background:var(--bg-card);justify-content:center;align-items:center;display:flex}.history-item-body{flex:1;min-width:0}.history-item-top{flex-wrap:wrap;align-items:baseline;gap:.6rem;margin-bottom:.3rem;display:flex}.history-label{color:#d0d0ec;font-size:.9rem;font-weight:700}.history-date{color:#7878b0;flex-shrink:0;font-size:.75rem}.battle-danger-zone{border-top:1px solid var(--border);justify-content:center;margin-top:1rem;padding-top:1rem;display:flex}.delete-battle-btn{color:#f87171;cursor:pointer;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);background:0 0;border:1px solid #f8717159;border-radius:8px;padding:.5rem 1rem;font-family:inherit;font-size:.85rem}.delete-battle-btn:hover{background:#f871711f;border-color:#f8717199}.modal-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:14px;width:100%;max-width:400px;padding:1.5rem;box-shadow:0 12px 40px #00000080}.modal-title{color:var(--text);margin:0 0 .6rem;font-size:1.15rem}.modal-body{color:var(--text-muted);margin:0 0 1.4rem;font-size:.9rem;line-height:1.5}.modal-actions{justify-content:flex-end;gap:.6rem;display:flex}.modal-btn-cancel{background:var(--bg-elevated);border:1px solid var(--border-strong);color:var(--text);cursor:pointer;border-radius:8px;padding:.55rem 1.1rem;font-family:inherit;font-size:.88rem}.modal-btn-cancel:hover{background:var(--bg-card-hover)}.modal-btn-danger{background:var(--pokeball-red);border:1px solid var(--pokeball-red);color:#fff;cursor:pointer;border-radius:8px;padding:.55rem 1.1rem;font-family:inherit;font-size:.88rem;font-weight:600}.modal-btn-danger:hover{background:var(--pokeball-red-soft)}.history-summary{color:#8080a8;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:.5rem;font-size:.83rem;line-height:1.45;display:-webkit-box;overflow:hidden}.history-team-chips{flex-wrap:wrap;gap:.25rem;margin-bottom:.6rem;display:flex}.history-chip{color:var(--text-faint);background:var(--bg-card);border:1px solid var(--border);border-radius:4px;padding:.1rem .4rem;font-size:.7rem;font-weight:600}.history-item-actions{gap:.5rem;display:flex}.history-view-btn{color:#7070a8;cursor:pointer;background:0 0;border:1px solid #2e2e50;border-radius:5px;padding:.3rem .85rem;font-size:.8rem;font-weight:600;transition:border-color .15s,color .15s}.history-view-btn:hover{color:#ffcb05;border-color:#ffcb05}.history-view-btn.viewing{color:#6888cc;border-color:#3b4cca}.history-view-btn.viewing:hover{color:#8aacff;border-color:#5a70e8}.game-plan{border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:1.25rem}.game-plan:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:.5rem}.game-plan-label{text-transform:uppercase;letter-spacing:.14em;color:var(--pikachu);margin-bottom:.75rem;font-size:.7rem;font-weight:800;display:block}.game-plan-turns{flex-direction:column;gap:.6rem;display:flex}.game-plan-turn{align-items:flex-start;gap:.75rem;display:flex}.turn-num{color:var(--pikachu);letter-spacing:.04em;text-align:center;background:#ffcb051f;border:1px solid #ffcb054d;border-radius:5px;flex-shrink:0;min-width:32px;margin-top:2px;padding:.2rem .5rem;font-size:.72rem;font-weight:800}.turn-num.phase-num{color:#8caefa;background:#3b4cca14;border-color:#3b4cca4d;min-width:24px}.turn-text{color:var(--text);font-size:.91rem;line-height:1.55}.team-selector-strip{border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:1rem;overflow:hidden}.team-cards-scroll{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;gap:.65rem;padding-bottom:.4rem;display:flex;overflow-x:auto}.team-cards-scroll::-webkit-scrollbar{height:6px}.team-cards-scroll::-webkit-scrollbar-track{background:0 0}.team-cards-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.team-card-btn{background:var(--bg-card);border:1.5px solid var(--border);cursor:pointer;text-align:left;min-width:180px;max-width:240px;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border-radius:10px;flex-direction:column;flex-shrink:0;align-items:stretch;gap:.35rem;padding:.55rem .7rem .6rem;font-family:inherit;display:flex}.team-card-btn:hover{background:var(--bg-card-hover);border-color:var(--border-strong);transform:translateY(-1px)}.team-card-btn.active{border-color:var(--pikachu);background:#ffcb050d;box-shadow:0 0 0 1px #ffcb054d,0 4px 12px #0000004d}.team-card-btn-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:700;overflow:hidden}.team-card-btn.active .team-card-btn-name{color:var(--pikachu)}.team-card-btn-sprites{align-items:center;gap:1px;height:32px;display:flex}.team-card-btn-sprite{object-fit:contain;width:32px;height:32px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;filter:drop-shadow(0 1px 1px #0006);flex-shrink:0}.team-card-btn-empty{color:var(--text-dim);letter-spacing:.06em;font-size:.72rem;font-style:italic}.team-card-add{border:1.5px dashed var(--border-strong);cursor:pointer;min-width:110px;color:var(--text-muted);transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:.25rem;padding:.55rem .7rem;font-family:inherit;display:flex}.team-card-add:hover{border-color:var(--pikachu);color:var(--pikachu);background:#ffcb050a}.team-card-add-icon{font-size:1.2rem;font-weight:300;line-height:1}.team-card-add-label{font-size:.78rem;font-weight:600}.delete-team-btn{border:1px solid var(--border-strong);color:var(--text-muted);cursor:pointer;transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border-radius:7px;padding:.5rem 1rem;font-family:inherit;font-size:.85rem;font-weight:600}.delete-team-btn:hover:not(:disabled){border-color:var(--loss);color:var(--loss);background:#ef686814}.delete-team-btn:disabled{opacity:.4;cursor:not-allowed}.team-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:1.25rem;padding-bottom:.9rem;display:flex}.team-tab{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:background var(--t-fast) var(--ease);border-radius:20px;align-items:center;gap:.3rem;padding:.28rem .65rem;font-family:inherit;font-size:.82rem;font-weight:600;display:inline-flex}.team-tab:hover{background:var(--bg-card-hover);color:var(--text)}.team-tab.active{background:var(--bg-card-hover);border-color:var(--pokeball-blue);color:var(--pikachu)}.team-tab-delete{color:var(--text-faint);width:16px;height:16px;transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;line-height:1;display:inline-flex}.team-tab-delete:hover{color:var(--loss);background:#ef686826}.team-tab-add{border:1px dashed var(--border);color:var(--text-faint);cursor:pointer;width:27px;height:27px;transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.05rem;line-height:1;display:inline-flex}.team-tab-add:hover{border-color:var(--pikachu);color:var(--pikachu)}.team-name-input{color:#e8e8f0;background:0 0;border:none;border-bottom:1px solid #2e2e50;outline:none;width:220px;margin-bottom:.35rem;padding:.1rem .15rem;font-family:inherit;font-size:1.05rem;font-weight:700;transition:border-color .15s}.team-name-input:focus{border-bottom-color:#5050b0}.diag-panel{flex-direction:column;gap:1.25rem;display:flex}.diag-upload{margin-bottom:0}.diag-error{margin-top:.5rem}.diag-results{flex-direction:column;gap:1.25rem;display:flex}.diag-section{background:#12122a;border:1px solid #252560;border-radius:12px;padding:1.25rem 1.5rem}.diag-device-bar{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.85rem;padding:.75rem 1rem;display:flex}.diag-device-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);font-size:.78rem}.diag-device-row{gap:.4rem;display:flex}.diag-device-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;border-radius:6px;padding:.35rem .75rem;font-family:inherit;font-size:.85rem}.diag-device-btn:hover{color:var(--text);border-color:var(--border-strong)}.diag-device-btn.active{background:var(--pokeball-blue);border-color:var(--pokeball-blue);color:#fff}.diag-device-untuned{color:var(--text-faint);font-size:.75rem;font-style:italic}.diag-device-btn.active .diag-device-untuned{color:#ffffffbf}.diag-load-preset{border:1px solid var(--border-strong);color:var(--text-muted);cursor:pointer;transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;border-radius:6px;margin-left:auto;padding:.35rem .75rem;font-family:inherit;font-size:.82rem}.diag-load-preset:hover:not(:disabled){color:var(--text);background:var(--bg-card-hover)}.diag-load-preset:disabled{opacity:.4;cursor:not-allowed}.diag-pick-row{flex-wrap:wrap;align-items:baseline;gap:.4rem;margin-top:.35rem;display:flex}.diag-pick-label{text-transform:uppercase;letter-spacing:.06em;color:var(--pikachu);font-size:.75rem;font-weight:700}.diag-pick-species{color:var(--text);font-size:.95rem;font-weight:600}.diag-cand-chip{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-muted);border-radius:4px;margin:0 .25rem .25rem 0;padding:.15rem .45rem;font-size:.8rem;display:inline-block}.diag-cand-chip-picked{border-color:var(--pikachu);color:var(--pikachu);background:#ffcb051f;font-weight:600}.diag-geo-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:1.5rem;display:grid}.diag-geo-preview{min-width:0}.diag-geo-controls{max-height:calc(100vh - 2rem);position:sticky;top:1rem;overflow-y:auto}@media (width<=1100px){.diag-geo-layout{grid-template-columns:1fr}.diag-geo-controls{max-height:none;position:static}}.diag-section-title{text-transform:uppercase;letter-spacing:.14em;color:#ffcb05;margin-bottom:1rem;font-size:.72rem;font-weight:800}.diag-subsection-title{text-transform:uppercase;letter-spacing:.1em;color:#5050a0;margin-bottom:.5rem;font-size:.72rem;font-weight:700}.diag-image-row{flex-wrap:wrap;align-items:flex-start;gap:1.25rem;display:flex}.diag-thumb{object-fit:contain;background:#000;border:1px solid #252548;border-radius:6px;flex-shrink:0;max-width:320px;max-height:180px}.diag-image-meta{flex-direction:column;gap:.5rem;display:flex}.diag-meta-row{flex-wrap:wrap;align-items:baseline;gap:.75rem;display:flex}.diag-meta-key{color:#7878b0;min-width:90px;font-size:.75rem;font-weight:700}.diag-meta-val{color:#c0c0e0;font-size:.85rem}.diag-ok{color:#4ade80}.diag-warn{color:#fbbf24}.diag-cards{flex-direction:column;gap:.75rem;display:flex}.diag-card{background:#0e0e1e;border:1px solid #1e1e42;border-radius:8px;overflow:hidden}.diag-card-header{background:#14142e;border-bottom:1px solid #1e1e42;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.5rem .85rem;display:flex}.diag-card-num{color:#6060a0;min-width:48px;font-size:.75rem;font-weight:800}.diag-card-pos{color:#404070;font-family:monospace;font-size:.7rem}.diag-card-types{gap:.3rem;margin-left:auto;display:flex}.diag-no-type{color:#404060;font-size:.72rem}.diag-type-chip{color:#fff;text-transform:uppercase;text-shadow:0 1px 2px #00000080;border-radius:3px;padding:.15rem .5rem;font-size:.68rem;font-weight:700}.diag-card-body{flex-wrap:wrap;align-items:flex-start;gap:1rem;padding:.75rem .85rem;display:flex}.diag-crop-wrap{flex-direction:column;align-items:center;gap:.3rem;display:flex}.diag-crop{image-rendering:pixelated;border:1px solid #1e1e42;border-radius:3px}.diag-crop-label{color:#404060;font-size:.65rem}.diag-halves{flex-direction:column;flex:1;gap:.4rem;min-width:0;display:flex}.diag-half{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.diag-half-empty{opacity:.4}.diag-half-empty-label{color:#404060;font-style:italic}.diag-half-side{text-transform:uppercase;color:#404070;min-width:28px;font-size:.65rem;font-weight:700}.diag-swatch{border:1px solid #ffffff1a;border-radius:3px;flex-shrink:0;width:18px;height:18px;display:inline-block}.diag-rgb{color:#8080b0;font-family:monospace;font-size:.78rem}.diag-nearest{color:#9090c0;font-size:.8rem}.diag-nearest strong{color:#e0e0f8}.diag-runnerup{color:#505070}.diag-rule{color:#6060a0;background:#1a1a34;border-radius:3px;padding:.1rem .4rem;font-family:monospace;font-size:.75rem}.diag-classified{color:#fff;text-transform:uppercase;text-shadow:0 1px 2px #00000080;border-radius:3px;margin-left:auto;padding:.15rem .5rem;font-size:.72rem;font-weight:700}.diag-candidates{border-top:1px solid #1a1a34;padding:.4rem .85rem .6rem;font-size:.78rem}.diag-cand-label{color:#7878b0;font-weight:700}.diag-cand-list{color:#a8a8c5}.diag-collapsible{margin-bottom:.5rem}.diag-collapse-btn{color:#6060a0;cursor:pointer;background:0 0;border:1px solid #1e1e42;border-radius:5px;align-items:center;gap:.4rem;padding:.35rem .75rem;font-family:inherit;font-size:.8rem;font-weight:600;transition:color .15s,border-color .15s;display:flex}.diag-collapse-btn:hover{color:#c0c0e0;border-color:#3a3a60}.diag-collapse-arrow{font-size:.7rem}.diag-collapse-body{margin-top:.5rem}.diag-pre{color:#8080b0;white-space:pre-wrap;word-break:break-word;background:#080812;border:1px solid #1a1a34;border-radius:6px;max-height:320px;padding:.85rem 1rem;font-family:monospace;font-size:.75rem;line-height:1.5;overflow:auto}.diag-pre-response{color:#a0a0d0;border-color:#2a2a50}.diag-parse-error{color:#fbbf24;background:#1c140a;border:1px solid #5a3a0a;border-radius:6px;padding:.65rem 1rem;font-size:.88rem}.diag-type-normal,.diag-classified-normal{background:#9c9c8c}.diag-type-fire,.diag-classified-fire{background:#ee8130}.diag-type-water,.diag-classified-water{background:#6390f0}.diag-type-electric,.diag-classified-electric{background:#c8a800}.diag-type-grass,.diag-classified-grass{background:#5a9a3c}.diag-type-ice,.diag-classified-ice{background:#4aadac}.diag-type-fighting,.diag-classified-fighting{background:#c22e28}.diag-type-poison,.diag-classified-poison{background:#a33ea1}.diag-type-ground,.diag-classified-ground{background:#b89030}.diag-type-flying,.diag-classified-flying{background:#67b}.diag-type-psychic,.diag-classified-psychic{background:#f95587}.diag-type-bug,.diag-classified-bug{background:#7a9010}.diag-type-rock,.diag-classified-rock{background:#8a7820}.diag-type-ghost,.diag-classified-ghost{background:#64a}.diag-type-dragon,.diag-classified-dragon{background:#6f35fc}.diag-type-dark,.diag-classified-dark{background:#705746}.diag-type-steel,.diag-classified-steel{background:#88a}.diag-type-fairy,.diag-classified-fairy{background:#cc5590}.diag-overlay-wrap{background:#000;border-radius:8px;width:100%;margin-bottom:1rem;line-height:0;position:relative;overflow:hidden}.diag-overlay-img{width:100%;height:auto;display:block}.diag-overlay-svg{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.diag-overlay-placeholder{color:#30305a;text-align:center;background:#0a0a1a;border:2px dashed #252560;border-radius:8px;justify-content:center;align-items:center;width:100%;height:120px;margin-bottom:1rem;padding:1rem;font-size:.8rem;display:flex}.diag-overlay-legend{color:#404060;flex-wrap:wrap;align-items:center;gap:.3rem;margin:.35rem 0 .85rem;font-size:.72rem;display:flex}.diag-legend-solid{color:#aaf}.diag-legend-dashed{color:#ffffff80;letter-spacing:1px}.diag-legend-warn{color:#fbbf24}.geo-editor{flex-direction:column;gap:1rem;display:flex}.geo-info-banner{border:1px solid #3b4cca4d;border-left:3px solid var(--pokeball-blue);background:#3b4cca14;border-radius:0 8px 8px 0;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;font-size:.85rem;display:flex}.geo-info-banner-warn{border-color:#ffcb054d;border-left-color:var(--pikachu);background:#ffcb050f}.geo-info-icon{color:var(--pokeball-blue);flex-shrink:0;font-size:1.05rem;line-height:1.4}.geo-info-banner-warn .geo-info-icon{color:var(--pikachu)}.geo-info-body{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.geo-info-title{color:var(--text);margin:0;font-size:.9rem;font-weight:700}.geo-info-text{color:var(--text-muted);margin:0;font-size:.82rem;line-height:1.5}.geo-info-reset{white-space:nowrap;flex-shrink:0;align-self:center;padding:.4rem .85rem;font-size:.78rem}.geo-fields{flex-direction:column;gap:.65rem;display:flex}.geo-field{flex-direction:column;gap:.3rem;display:flex}.geo-field-header{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.geo-field-label{color:#a0a0d0;min-width:130px;font-size:.78rem;font-weight:700}.geo-field-desc{color:#404060;font-size:.7rem}.geo-field-controls{align-items:center;gap:.3rem;display:flex}.geo-nudge{color:#8080c0;cursor:pointer;-webkit-user-select:none;user-select:none;background:#1a1a38;border:1px solid #2a2a58;border-radius:5px;padding:.25rem .5rem;font-family:inherit;font-size:.78rem;font-weight:600;line-height:1;transition:background .12s,color .12s}.geo-nudge:hover{color:#c0c0f0;background:#252550;border-color:#4040a0}.geo-nudge:active{background:#303068}.geo-nudge-big{color:#6868b0;min-width:38px}.geo-value-input{text-align:center;color:#e0e0f8;appearance:textfield;background:#0e0e22;border:1px solid #2a2a58;border-radius:5px;width:72px;padding:.25rem .4rem;font-family:monospace;font-size:.9rem;font-weight:700}.geo-value-input::-webkit-inner-spin-button{appearance:none}.geo-value-input::-webkit-outer-spin-button{appearance:none}.geo-value-input:focus{background:#12122a;border-color:#5050b0;outline:none}.geo-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.geo-save{padding:.45rem 1.1rem}.geo-hint{color:#303050;margin:0;font-size:.72rem;line-height:1.5}.geo-suggestion{background:#1a1a10;border:1px solid #4a4a20;border-radius:7px;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.6rem .9rem;display:flex}.geo-suggestion-text{color:#c0c080;flex:1;min-width:0;font-size:.78rem}.geo-suggestion-text strong{color:#e8e860}.geo-suggestion-apply{flex-shrink:0;padding:.3rem .85rem;font-size:.78rem}.diag-title-hint{color:#404060;text-transform:none;letter-spacing:0;margin-left:.6rem;font-size:.65rem;font-weight:400}.type-badges{flex-wrap:wrap;gap:.25rem;display:flex}.type-badge{color:#fff;text-shadow:0 1px 2px #00000080;letter-spacing:.02em;text-transform:uppercase;border-radius:3px;padding:.1rem .45rem;font-size:.62rem;font-weight:700}.opp-species-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;-webkit-text-decoration:underline dotted #404070;text-decoration:underline dotted #404070;transition:color .15s,text-decoration-color .15s}.opp-species-btn:hover,.opp-species-btn.opp-species-edited{color:#facc15;text-decoration-color:#facc15}.opp-edited-mark{opacity:.75;margin-left:.3rem;font-size:.65rem}.opp-species-select{color:#facc15;cursor:pointer;background:#0e0e1e;border:1px solid #facc15;border-radius:5px;max-width:160px;padding:.2rem .4rem;font-family:inherit;font-size:.82rem;font-weight:600}.opp-species-select:focus{outline:none}.reanalyze-edits-btn{color:#0f0f1a;cursor:pointer;background:#facc15;border:none;border-radius:8px;width:100%;margin-top:.65rem;padding:.55rem 1rem;font-family:inherit;font-size:.88rem;font-weight:700;transition:background .15s;display:block}.reanalyze-edits-btn:hover{background:#fde047}.reanalyze-team-btn{color:#0f0f1a;cursor:pointer;background:#facc15;border:none;border-radius:8px;width:100%;margin-top:.65rem;padding:.55rem 1rem;font-family:inherit;font-size:.88rem;font-weight:700;transition:background .15s;display:block}.reanalyze-team-btn:hover:not(:disabled){background:#fde047}.reanalyze-team-btn:disabled{color:#2a280f;cursor:not-allowed;background:#6b6730}.live-capture-top{border-bottom:1px solid var(--border);background:#ffffff05;align-items:center;padding:.55rem .85rem;display:flex}.capture-team-pill{align-items:center;gap:.5rem;font-size:.85rem;display:inline-flex}.capture-team-pill-label{color:var(--text-muted,#8a8aa0);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.capture-team-pill-name{color:var(--text);font-weight:600}.record-btn{color:#6060a0;cursor:pointer;background:0 0;border:1px solid #2e2e50;border-radius:6px;padding:.45rem .85rem;font-size:.82rem;font-weight:600;transition:border-color .15s,color .15s}.record-btn:hover:not(:disabled){color:#f87171;border-color:#f87171}.record-btn:disabled{opacity:.4;cursor:default}.record-btn-active{color:#f87171;border-color:#f87171;animation:1.4s ease-in-out infinite record-pulse}@keyframes record-pulse{0%,to{opacity:1}50%{opacity:.55}}.recording-indicator{color:#f87171;font-size:.82rem;font-weight:600}.battle-video-panel{flex-direction:column;gap:.75rem;display:flex}.battle-video-bar{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.battle-video-bar-spacer{flex:1;min-width:0}.battle-video-stage{background:#000;border:1px solid #1e1e3a;border-radius:10px;justify-content:center;align-items:center;min-height:360px;display:flex;position:relative;overflow:hidden}.battle-video{width:100%;display:block}.battle-video-empty{text-align:center;flex-direction:column;align-items:center;gap:.65rem;padding:2.5rem 1.5rem;display:flex}.battle-video-empty-title{color:#d0d0ec;font-size:.95rem;font-weight:600}.battle-video-empty-hint{color:#7a7ab0;max-width:28rem;font-size:.83rem;line-height:1.5}.recording-download{color:#7c7cf0;white-space:nowrap;font-size:.8rem;text-decoration:none}.recording-download:hover{color:#a0a0f8;text-decoration:underline}.video-upload-status{white-space:nowrap;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;display:inline-flex}.video-upload-status.uploading{color:#b9b9d8}.video-upload-status.saved{color:#5fc88f}.video-upload-status.failed{color:#f08a8a}.video-upload-spinner{border:2px solid #3a3a5e;border-top-color:#9b9bf0;border-radius:50%;width:.7rem;height:.7rem;animation:.7s linear infinite video-upload-spin}@keyframes video-upload-spin{to{transform:rotate(360deg)}}.video-upload-retry{color:#fff;cursor:pointer;background:#b23b3b;border:none;border-radius:4px;margin-left:.45rem;padding:.15rem .5rem;font-size:.74rem;font-weight:600}.video-upload-retry:hover{background:#c84a4a}.post-battle-tabs{background:#0e0e1e;border:1px solid #1e1e3a;border-radius:10px;margin-top:1.5rem;overflow:hidden}.analysis-loading{color:var(--text-muted);border:1px solid var(--border);border-left:3px solid var(--pikachu);animation:pulse-faint 1.8s var(--ease) infinite;background:#ffcb050a;border-radius:0 8px 8px 0;align-items:center;gap:.75rem;padding:1rem 1.25rem;font-size:.9rem;display:flex}@keyframes pulse-faint{0%,to{background:#ffcb050a}50%{background:#ffcb051a}}.pb-tab-nav{background:#0a0a18;border-bottom:1px solid #1e1e3a;display:flex}.pb-tab-btn{color:#7070a8;letter-spacing:.02em;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1rem;font-family:inherit;font-size:.88rem;font-weight:600;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.pb-tab-btn:hover{color:#b0b0e0;background:#ffffff05}.pb-tab-btn.active{color:#facc15;background:#facc150a;border-bottom-color:#facc15}.pb-tab-label{line-height:1}.pb-tab-tick{color:#4ade80;background:#4ade802e;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:.66rem;font-weight:800;line-height:1;display:inline-flex}.pb-tab-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.pb-tab-dot-amber{background:#facc15}.pb-tab-dot-green{background:#4ade80}.pb-tab-spinner{border:2px solid #2e2e50;border-top-color:#facc15;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin}.pb-tab-content{padding:1.25rem 1.5rem}.pb-section{flex-direction:column;gap:1rem;display:flex}.pb-empty{color:#7a7ab0;text-align:center;padding:1.25rem .25rem;font-size:.88rem;line-height:1.55}.pb-tab-content>.analysis-panel{background:0 0;border:none;border-radius:0;margin:0;padding:0}.battle-right .matchup-chart{border:1px solid var(--border);background:var(--bg-elevated);border-radius:14px;margin-top:.75rem;margin-bottom:0;padding:.85rem}.battle-right .matchup-chart-header{margin-bottom:.5rem}.battle-right .matchup-chart-subtitle{display:none}.battle-right .matchup-chart-table{border-spacing:2px}.battle-right .matchup-corner,.battle-right .matchup-row-head{background:var(--bg-elevated);min-width:96px}.battle-right .matchup-row-sprite{width:24px;height:24px}.battle-right .matchup-row-name{font-size:.76rem}.battle-right .matchup-col-sprite{width:28px;height:28px}.battle-right .matchup-cell{width:26px;height:26px;font-size:.78rem}.postgame-section{flex-direction:column;gap:.4rem;display:flex}.postgame-label{text-transform:uppercase;letter-spacing:.1em;color:#7878b0;font-size:.68rem;font-weight:700}.coaching-tab{flex-direction:column;gap:1.25rem;display:flex}.coaching-step{align-items:flex-start;gap:.85rem;display:flex}.coaching-step-num{width:26px;height:26px;color:var(--pikachu);background:#ffcb051a;border:1px solid #ffcb054d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:.1rem;font-size:.82rem;font-weight:800;display:inline-flex}.coaching-step-body{flex-direction:column;flex:1;gap:.5rem;min-width:0;display:flex}.coaching-step-label{color:var(--text);font-size:.94rem;font-weight:600}.coaching-step-optional{color:var(--text-faint);font-size:.78rem;font-weight:400}.coaching-step-hint{color:var(--text-muted);margin:0;font-size:.8rem;font-style:italic}.coaching-regen-btn{color:var(--pikachu);cursor:pointer;transition:background var(--t-fast) var(--ease);background:#ffcb0514;border:1px solid #ffcb054d;border-radius:6px;align-self:flex-start;padding:.35rem .75rem;font-size:.78rem;font-weight:600}.coaching-regen-btn:hover:not(:disabled){background:#ffcb0524}.coaching-loading{color:var(--text-muted);align-items:center;gap:.6rem;padding:.5rem 0;font-size:.88rem;display:flex}.outcome-btns{gap:.5rem;display:flex}.outcome-btn{border:1.5px solid var(--border);cursor:pointer;color:#6060a0;background:0 0;border-radius:8px;align-items:center;gap:.45rem;padding:.55rem 1.4rem;font-size:.92rem;font-weight:700;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.outcome-btn.outcome-win.active{color:#4ade80;background:#4ade801f;border-color:#4ade80}.outcome-btn.outcome-loss.active{color:#f87171;background:#f871711f;border-color:#f87171}.outcome-btn.outcome-win:hover:not(.active){color:#4ade80;border-color:#4ade80}.outcome-btn.outcome-loss:hover:not(.active){color:#f87171;border-color:#f87171}.outcome-btn-icon{filter:grayscale(.4);transition:filter var(--t-fast) var(--ease);font-size:.95rem}.outcome-btn.active .outcome-btn-icon,.outcome-btn:hover:not(:disabled) .outcome-btn-icon{filter:none}.outcome-btn:disabled{opacity:.5;cursor:default}.postgame-reflection{background:var(--bg-elevated);border:1px solid var(--border);width:100%;color:var(--text);resize:vertical;transition:border-color var(--t-fast) var(--ease);border-radius:7px;padding:.7rem .85rem;font-family:inherit;font-size:.88rem;line-height:1.5}.postgame-reflection:focus{border-color:var(--pokeball-blue);outline:none}.postgame-coaching-btn{background:var(--pikachu);color:#0d0d14;cursor:pointer;transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border:none;border-radius:7px;align-self:flex-start;padding:.6rem 1.25rem;font-size:.92rem;font-weight:700;box-shadow:0 1px #0003}.postgame-coaching-btn:hover:not(:disabled){background:#fde047;transform:translateY(-1px)}.postgame-coaching-btn:disabled{opacity:.45;cursor:default}.postgame-error{color:var(--loss);background:var(--loss-bg);border-left:3px solid var(--loss);border-radius:0 6px 6px 0;padding:.5rem .7rem;font-size:.85rem}.postgame-coaching{border:1px solid #4a90e22e;border-left:3px solid var(--pokeball-blue);background:#4a90e20f;border-radius:0 8px 8px 0;flex-direction:column;gap:.55rem;padding:.9rem 1rem;display:flex}.postgame-coaching-header{justify-content:space-between;align-items:center;display:flex}.postgame-coaching-title{text-transform:uppercase;letter-spacing:.1em;color:#8caefa;font-size:.72rem;font-weight:800}.postgame-coaching-regen{color:#8caefa;cursor:pointer;width:26px;height:26px;transition:background var(--t-fast) var(--ease);background:0 0;border:1px solid #8caefa4d;border-radius:6px;font-size:.85rem}.postgame-coaching-regen:hover{background:#8caefa26}.postgame-coaching-text{color:#c8c8ec;font-size:.93rem;line-height:1.6}.video-progress{color:#9090c0;align-items:center;gap:.6rem;font-size:.85rem;display:flex}.spinner.small{border-width:2px;width:14px;height:14px}.video-key-moment{color:#d0d0ec;background:#facc150f;border-left:3px solid #facc15;border-radius:0 4px 4px 0;padding:.45rem .7rem;font-size:.86rem;line-height:1.5}.video-key-label,.video-takeaway-label,.turn-best-label{text-transform:uppercase;letter-spacing:.08em;color:#facc15;margin-right:.35rem;font-size:.72rem;font-weight:800}.turn-best-label{color:#60a5fa}.video-takeaway-label{color:#4ade80}.turn-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.turn-item{background:#11112a;border:1px solid #1e1e3e;border-left-width:3px;border-radius:5px;flex-direction:column;gap:.35rem;padding:.65rem .8rem;display:flex}.turn-item.turn-eval-good{border-left-color:#4ade80}.turn-item.turn-eval-ok{border-left-color:#6060a0}.turn-item.turn-eval-mistake{border-left-color:#facc15}.turn-item.turn-eval-blunder{border-left-color:#f87171}.turn-item-clickable{cursor:pointer;transition:background-color .12s,box-shadow .12s}.turn-item-clickable:hover{background:#15153a}.turn-item-clickable:focus-visible{outline-offset:2px;outline:2px solid #ffcb05}.turn-item-active{box-shadow:-3px 0 0 0 var(--pikachu), 0 0 0 1px #ffcb0566 inset;background:#1d1d40;border-radius:0 8px 8px 0}.turn-item-active .turn-pill{background:var(--pikachu);color:#1a1a30;font-weight:800;box-shadow:0 0 8px #ffcb0566}.turn-head{flex-wrap:wrap;align-items:center;gap:.55rem;font-size:.85rem;display:flex}.turn-pill{color:#b0b0e0;letter-spacing:.05em;background:#1e1e3e;border-radius:4px;padding:.12rem .5rem;font-size:.72rem;font-weight:700}.turn-active{color:#d4d4f0;flex:1;min-width:0;font-weight:600}.turn-eval-tag{text-transform:uppercase;letter-spacing:.08em;border-radius:3px;padding:.12rem .45rem;font-size:.66rem;font-weight:800}.turn-eval-tag.turn-eval-good{color:#4ade80;background:#4ade8024}.turn-eval-tag.turn-eval-ok{color:#9090c8;background:#6060a02e}.turn-eval-tag.turn-eval-mistake{color:#facc15;background:#facc1524}.turn-eval-tag.turn-eval-blunder{color:#f87171;background:#f8717124}.turn-time{color:#6060a0;font-variant-numeric:tabular-nums;font-size:.72rem}.turn-events{flex-direction:column;gap:.3rem;margin:.35rem 0 0;padding:0;list-style:none;display:flex}.turn-event{word-break:break-word;border-radius:10px;max-width:78%;padding:.32rem .6rem;font-size:.84rem;line-height:1.4}.turn-event-side-player{color:#dcecff;background:#4a90e21a;border-left:2px solid #4a90e2;align-self:flex-start}.turn-event-side-opponent{color:#ffdcdc;text-align:right;background:#e25a5a1a;border-right:2px solid #e25a5a;align-self:flex-end}.turn-event-side-neutral{color:#b0b0c8;text-align:center;background:#9696b412;align-self:center;max-width:70%;font-size:.78rem;font-style:italic}.turn-event-unclear{color:#8888a8;opacity:.85}.turn-event-faint{font-weight:600}.turn-event-faint.turn-event-side-player,.turn-event-faint.turn-event-side-opponent{color:#ffd8d8}.turn-best{color:#cfdcf5;background:#60a5fa14;border-left:3px solid #60a5fa;border-radius:0 6px 6px 0;margin-top:.55rem;padding:.4rem .65rem;font-size:.85rem;line-height:1.5}.turn-best:before{content:"💡 "}.video-takeaway{color:#d0e8d8;background:#4ade800f;border-left:3px solid #4ade80;border-radius:0 4px 4px 0;margin-top:.25rem;padding:.5rem .75rem;font-size:.9rem;line-height:1.55}.team-lessons{border-top:1px solid #1e1e3a;flex-direction:column;gap:.6rem;padding:.85rem 1rem 1rem;display:flex}.team-lessons-header{align-items:baseline;gap:.5rem;display:flex}.team-lessons-title{text-transform:uppercase;letter-spacing:.1em;color:#6060a0;font-size:.7rem;font-weight:700}.team-lessons-team{color:#5050a0;font-size:.75rem}.lessons-list{flex-direction:column;gap:.3rem;list-style:none;display:flex}.lesson-item{background:#facc150d;border-left:2px solid #facc15;border-radius:0 4px 4px 0;align-items:flex-start;gap:.5rem;padding:.35rem .6rem;display:flex}.lesson-text{color:#d0d0ec;flex:1;font-size:.83rem;line-height:1.5}.lesson-delete{color:#50508080;cursor:pointer;opacity:.5;background:0 0;border:none;flex-shrink:0;padding:0 .1rem;font-size:1rem;line-height:1}.lesson-delete:hover{opacity:1;color:#f87171}.lesson-add-row{align-items:flex-start;gap:.5rem;display:flex}.lesson-input{color:#d0d0ec;resize:vertical;background:#0f0f22;border:1px solid #252548;border-radius:6px;flex:1;min-height:2.6rem;padding:.45rem .6rem;font-family:inherit;font-size:.83rem}.lesson-input:focus{border-color:#facc15;outline:none}.lesson-save-btn{color:#0d0d14;cursor:pointer;white-space:nowrap;background:#facc15;border:none;border-radius:6px;align-self:flex-end;padding:.45rem .85rem;font-size:.8rem;font-weight:700}.lesson-save-btn:disabled{opacity:.35;cursor:default}.lesson-save-btn:not(:disabled):hover{background:#fde047}.lesson-prefills{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.lesson-prefill-label{color:#5050a0;text-transform:uppercase;letter-spacing:.08em;font-size:.7rem}.lesson-prefill-btn{color:#8080c0;cursor:pointer;background:0 0;border:1px solid #2a2a50;border-radius:4px;padding:.2rem .5rem;font-size:.75rem}.lesson-prefill-btn:hover{color:#facc15;border-color:#facc15}.diag-video-tester{flex-direction:column;gap:.85rem;display:flex}.diag-video-controls{grid-template-columns:1.5fr 1.5fr auto;align-items:end;gap:.85rem;display:grid}.diag-video-field{flex-direction:column;gap:.35rem;display:flex}.diag-video-field-label{text-transform:uppercase;letter-spacing:.1em;color:#6060a0;font-size:.7rem;font-weight:700}.diag-video-row{align-items:stretch;gap:.4rem;display:flex}.diag-video-select,.diag-video-file{color:#d0d0ec;background:#12122a;border:1px solid #252548;border-radius:6px;flex:1;min-width:0;padding:.5rem .65rem;font-family:inherit;font-size:.86rem}.diag-video-select:focus,.diag-video-file:focus{border-color:#4a4a90;outline:none}.diag-video-refresh{color:#6060a0;cursor:pointer;background:0 0;border:1px solid #2e2e50;border-radius:6px;padding:0 .6rem;font-size:1rem;transition:border-color .15s,color .15s}.diag-video-refresh:hover{color:#facc15;border-color:#facc15}.diag-video-run{white-space:nowrap;min-width:14rem}.diag-video-context{color:#9090c0;font-size:.82rem;line-height:1.5}.diag-video-result{border-top:1px solid #1a1a34;flex-direction:column;gap:.7rem;margin-top:.5rem;padding-top:.75rem;display:flex}.diag-filmstrip{gap:.5rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.diag-frame{flex-direction:column;flex-shrink:0;align-items:center;gap:.25rem;display:flex}.diag-frame-img{object-fit:cover;background:#0d0d1a;border:1px solid #252548;border-radius:4px;width:160px;height:90px}.diag-frame-ts{color:#6060a0;font-variant-numeric:tabular-nums;font-size:.68rem}.geo-group-label{text-transform:uppercase;letter-spacing:.14em;color:#7878b0;border-bottom:1px solid #1e1e3e;margin-top:.35rem;margin-bottom:.2rem;padding:.4rem 0;font-size:.65rem;font-weight:800}.geo-group-label-sprite{color:#4a7a6a;border-bottom-color:#1a2e28}.diag-crop-sprite{object-fit:contain;max-width:260px;max-height:150px}.team-facts-section{border:1px solid var(--border);background:var(--bg-card);border-radius:10px;flex-direction:column;gap:.7rem;padding:1rem 1.1rem;display:flex}.team-facts-header{flex-direction:column;gap:.3rem;display:flex}.team-facts-title{color:var(--text);font-size:.85rem;font-weight:700}.team-facts-hint{color:var(--text-muted);font-size:.76rem;line-height:1.45}.team-facts-empty-hint{color:var(--text-faint);border-top:1px dashed var(--border);margin-top:.25rem;padding-top:.3rem;font-size:.78rem;font-style:italic;line-height:1.5}.team-facts-empty-hint em{color:var(--text-muted);font-style:italic}.facts-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.fact-item{background:#0d1630;border:1px solid #1e2a4a;border-left:3px solid #3060a0;border-radius:5px;align-items:flex-start;gap:.5rem;padding:.45rem .6rem;display:flex}.fact-text{color:#b0c4e8;flex:1;font-size:.8rem;line-height:1.4}.fact-delete{color:#4a5a80;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:1rem;line-height:1;transition:color .15s}.fact-delete:hover{color:#c05050}.fact-add-row{align-items:flex-start;gap:.5rem;display:flex}.fact-input{color:#c8d8f0;resize:vertical;background:#080e1c;border:1px solid #1e2a4a;border-radius:5px;flex:1;padding:.4rem .6rem;font-family:inherit;font-size:.78rem;line-height:1.4}.fact-input:focus{border-color:#3060a0;outline:none;box-shadow:0 0 0 2px #3060a033}.fact-input::placeholder{color:#2a3a5a}.fact-save-btn{color:#7aabef;cursor:pointer;background:#1e3060;border:1px solid #3060a0;border-radius:5px;flex-shrink:0;padding:.4rem .9rem;font-size:.78rem;font-weight:600;transition:background .15s,color .15s}.fact-save-btn:hover:not(:disabled){color:#a8c8f8;background:#2a4080}.fact-save-btn:disabled{opacity:.35;cursor:not-allowed}.history-header-left{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.history-winrate{color:var(--text-faint);background:var(--bg-card);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.15rem;padding:.25rem .65rem;font-size:.82rem;font-weight:700;display:inline-flex}.history-winrate-w{color:var(--win)}.history-winrate-l{color:var(--loss)}.history-winrate-pct{color:var(--pikachu);margin-left:.15rem}.history-winrate-note{color:var(--text-dim);font-weight:500}.history-count{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.78rem;font-weight:700}.history-header-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto;display:flex}.history-meta-btn{background:var(--pokeball-blue);color:#fff;border:1px solid var(--pokeball-blue);cursor:pointer;white-space:nowrap;transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border-radius:7px;align-items:center;gap:.4rem;padding:.45rem .95rem;font-family:inherit;font-size:.82rem;font-weight:700;display:inline-flex;box-shadow:0 1px 2px #00000040}.history-meta-btn:hover:not(:disabled){background:#4d5fda;border-color:#4d5fda;transform:translateY(-1px)}.history-meta-btn:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-card);color:var(--text-muted);border-color:var(--border-strong);box-shadow:none}.history-outcome{letter-spacing:.02em;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;min-width:1.85rem;height:1.85rem;padding:0 .45rem;font-size:.85rem;font-weight:800;display:inline-flex}.history-outcome-win{background:var(--win);color:#052414;border:1px solid #2da062;box-shadow:0 1px #0003,0 0 8px #3db87040}.history-outcome-loss{background:var(--loss);color:#2a0808;border:1px solid #c84e4e;box-shadow:0 1px #0003,0 0 8px #ef686840}.history-opponent-record{color:var(--text-faint);background:var(--bg-card);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:.15rem;padding:.18rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.history-opponent-record-w{color:var(--win);font-weight:700}.history-opponent-record-l{color:var(--loss);font-weight:700}.history-replay{color:var(--text-faint);background:var(--bg-card);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.18rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.history-replay.analyzed{color:#b9b0ff;background:#7c6cf01f;border-color:#4a3f8a}:focus-visible{outline:2px solid var(--pikachu);outline-offset:2px;border-radius:4px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}@media (prefers-reduced-motion:no-preference){.history-item,.pkmn-card,.pokemon-card{animation:card-in .28s var(--ease) both}@keyframes card-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.type-badge{letter-spacing:.06em;text-shadow:0 1px 1px #0009;box-shadow:inset 0 -1px #00000040,inset 0 1px #ffffff1f}@media (width>=1600px){.app{max-width:1320px}.app.app-tab-battle{max-width:1920px}.battle-area.with-teams{grid-template-columns:290px minmax(0,1fr) 340px}.battle-area:not(.with-teams) .battle-center{max-width:1320px}}@media (width>=2400px){.app{max-width:1560px}.app.app-tab-battle{max-width:2240px}.battle-area.with-teams{grid-template-columns:320px minmax(0,1fr) 380px}.battle-area:not(.with-teams) .battle-center{max-width:1480px}.history-summary{-webkit-line-clamp:4}.history-thumb{width:130px;height:80px}.history-sprites{grid-template-rows:repeat(2,52px);grid-template-columns:repeat(3,52px);width:160px;height:110px}.history-sprite{width:52px;height:52px}}.battle-area{transition:grid-template-columns var(--t-med) var(--ease)}.battle-left,.battle-right{animation:sidebar-in var(--t-med) var(--ease) both}@keyframes sidebar-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.matchup-chart{border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding-bottom:1.25rem}.matchup-chart-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem;margin-bottom:.7rem;display:flex}.matchup-chart-title{text-transform:uppercase;letter-spacing:.12em;color:var(--pikachu);margin:0;font-size:.78rem;font-weight:800}.matchup-chart-titlerow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;width:100%;display:flex}.matchup-mode-toggle{border:1px solid var(--border);border-radius:7px;display:inline-flex;overflow:hidden}.matchup-mode-btn{color:var(--text-muted);cursor:pointer;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:none;padding:.35rem .6rem;font-family:inherit;font-size:.72rem;font-weight:700}.matchup-mode-btn+.matchup-mode-btn{border-left:1px solid var(--border)}.matchup-mode-btn.active{background:var(--pokeball-blue);color:#fff}.matchup-chart-subtitle{color:var(--text-faint);font-size:.76rem}.matchup-chart-scroll{overflow-x:auto}.matchup-chart-table{border-collapse:separate;border-spacing:3px;margin:0}.matchup-corner{z-index:1;background:var(--bg);vertical-align:bottom;border:none;min-width:130px;padding-bottom:.4rem;position:sticky;left:0}.matchup-corner-you,.matchup-corner-opp{letter-spacing:.08em;font-size:.6rem;font-weight:900;line-height:1.4;display:block}.matchup-corner-you{color:var(--win)}.matchup-corner-opp{color:var(--opponent)}.matchup-col-head{text-align:center;vertical-align:bottom;background:0 0;border:none;padding:0 .15rem .35rem;font-weight:400}.matchup-col-sprite{object-fit:contain;width:38px;height:38px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;filter:drop-shadow(0 1px 2px #0006);margin:0 auto;display:block}.matchup-col-types{justify-content:center;gap:2px;margin-top:.2rem;display:flex}.matchup-type-dot{border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 1px #0000004d}.matchup-type-unknown{color:var(--text-dim);font-size:.65rem;font-weight:700}.matchup-type-normal{background:#a8a77a}.matchup-type-fire{background:#ee8130}.matchup-type-water{background:#6390f0}.matchup-type-electric{background:#f7d02c}.matchup-type-grass{background:#7ac74c}.matchup-type-ice{background:#96d9d6}.matchup-type-fighting{background:#c22e28}.matchup-type-poison{background:#a33ea1}.matchup-type-ground{background:#e2bf65}.matchup-type-flying{background:#a98ff3}.matchup-type-psychic{background:#f95587}.matchup-type-bug{background:#a6b91a}.matchup-type-rock{background:#b6a136}.matchup-type-ghost{background:#735797}.matchup-type-dragon{background:#6f35fc}.matchup-type-dark{background:#705746}.matchup-type-steel{background:#b7b7ce}.matchup-type-fairy{background:#d685ad}.matchup-row-head{background:var(--bg);z-index:1;text-align:left;color:var(--text);align-items:center;gap:.45rem;min-width:130px;padding:0 .5rem 0 0;font-size:.82rem;font-weight:500;display:flex;position:sticky;left:0}.matchup-row-sprite{object-fit:contain;width:32px;height:32px;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;filter:drop-shadow(0 1px 1px #0006);flex-shrink:0}.matchup-row-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.matchup-cell{text-align:center;vertical-align:middle;width:40px;height:40px;transition:transform var(--t-fast) var(--ease);cursor:default;border-radius:6px;font-size:.85rem;font-weight:700}.matchup-cell:hover{z-index:2;position:relative;transform:scale(1.08)}.matchup-cell-immune{color:#e0e0ec;opacity:.7;background:#4a4a55}.matchup-cell-quarter{color:#fff;background:#c83a3a}.matchup-cell-half{color:#ffd8d8;background:#c85a5a8c}.matchup-cell-neutral{color:var(--text-faint);background:#ffffff0f}.matchup-cell-double{color:#d0ffe0;background:#4ade8073}.matchup-cell-quad{color:#052414;background:#3db870;box-shadow:0 0 8px #3db87073}.matchup-chart-legend{align-items:center;gap:.4rem;margin-top:.75rem;font-size:.72rem;display:flex}.matchup-legend-item{border-radius:4px;justify-content:center;align-items:center;min-width:32px;height:22px;padding:0 .35rem;font-size:.7rem;font-weight:700;display:inline-flex}.matchup-legend-note{color:var(--text-dim);margin-left:auto;font-style:italic}.team-chat{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:.85rem;margin-top:1.5rem;padding:1.25rem;display:flex}.team-chat-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.team-chat-title{color:var(--text);margin:0 0 .15rem;font-size:1.05rem;font-weight:700}.team-chat-sub{color:var(--text-muted);max-width:720px;margin:0;font-size:.84rem;line-height:1.5}.team-chat-clear{border:1px solid var(--border-strong);color:var(--text-muted);cursor:pointer;transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);white-space:nowrap;background:0 0;border-radius:7px;padding:.35rem .8rem;font-size:.78rem}.team-chat-clear:hover{color:var(--pokeball-red);border-color:#cc000080}.team-chat-messages{flex-direction:column;gap:.65rem;min-height:120px;max-height:480px;padding:.25rem .1rem;display:flex;overflow-y:auto}.team-chat-empty{color:var(--text-dim);padding:1rem .5rem;font-size:.86rem;line-height:1.55}.team-chat-empty em{color:var(--text-muted);font-style:italic}.team-chat-msg{border:1px solid var(--border);background:var(--bg-card);border-radius:10px;flex-direction:column;gap:.25rem;max-width:88%;padding:.65rem .85rem;display:flex}.team-chat-msg-user{background:#5e71da1a;border-color:#5e71da59;align-self:flex-end}.team-chat-msg-assistant{background:var(--bg-card);align-self:flex-start}.team-chat-msg-role{text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);font-size:.7rem;font-weight:700}.team-chat-msg-user .team-chat-msg-role{color:var(--pokeball-blue)}.team-chat-msg-assistant .team-chat-msg-role{color:var(--pikachu)}.team-chat-msg-body{color:var(--text);white-space:pre-wrap;word-wrap:break-word;font-size:.92rem;line-height:1.55}.team-chat-msg-thinking{align-items:center;gap:.3rem;padding:.25rem 0;display:inline-flex}.team-chat-dot{background:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite team-chat-bounce}.team-chat-dot:nth-child(2){animation-delay:.15s}.team-chat-dot:nth-child(3){animation-delay:.3s}@keyframes team-chat-bounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.team-chat-error{color:#ff8e8e;background:#cc00001a;border:1px solid #cc000059;border-radius:7px;margin:0;padding:.55rem .75rem;font-size:.84rem}.team-chat-input-row{align-items:stretch;gap:.55rem;display:flex}.team-chat-input{background:var(--bg-card);border:1px solid var(--border);color:var(--text);resize:vertical;border-radius:8px;flex:1;min-height:56px;padding:.6rem .75rem;font-family:inherit;font-size:.92rem;line-height:1.4}.team-chat-input:focus{border-color:var(--pokeball-blue);outline:none}.team-chat-input:disabled{opacity:.6;cursor:not-allowed}.team-chat-send{background:var(--pokeball-blue);color:#fff;cursor:pointer;transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border:none;border-radius:8px;align-self:stretch;min-width:70px;padding:0 1.2rem;font-size:.88rem;font-weight:700}.team-chat-send:hover:not(:disabled){background:#4d5fda}.team-chat-send:disabled{cursor:not-allowed;background:#5e71da59}.signin-shell{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.signin-card{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:14px;width:100%;max-width:420px;padding:2.5rem 2rem 2rem}.signin-logo{margin:0 auto 1rem;display:block}.signin-card h1{color:var(--text);margin:0;font-size:1.5rem;font-weight:700}.signin-tagline{color:var(--text-muted);margin:.3rem 0 1.8rem;font-size:.9rem}.signin-form{text-align:left;flex-direction:column;display:flex}.signin-label{color:var(--text-muted);margin-bottom:.4rem;font-size:.85rem}.signin-input{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);transition:border-color var(--t-fast) var(--ease);border-radius:8px;padding:.7rem .9rem;font-family:inherit;font-size:1rem}.signin-input:focus{border-color:var(--pokeball-blue);outline:none}.signin-input:disabled{opacity:.6;cursor:not-allowed}.signin-submit{background:var(--pokeball-red);color:#fff;cursor:pointer;transition:background var(--t-fast) var(--ease);border:none;border-radius:8px;margin-top:1rem;padding:.75rem 1rem;font-family:inherit;font-size:.95rem;font-weight:600}.signin-submit:hover:not(:disabled){background:var(--pokeball-red-soft)}.signin-submit:disabled{cursor:not-allowed;background:#ee151566}.signin-error{color:var(--opponent);margin:.8rem 0 0;font-size:.85rem}.signin-helper{color:var(--text-faint);text-align:center;margin:1rem 0 0;font-size:.8rem}.signin-dev{margin-top:1.2rem}.signin-dev-divider{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.6rem;margin:.5rem 0 .9rem;font-size:.75rem;display:flex}.signin-dev-divider:before,.signin-dev-divider:after{content:"";border-top:1px solid var(--border);flex:1}.signin-dev-btn{background:var(--bg-elevated);border:1px dashed var(--border-strong);width:100%;color:var(--text-muted);cursor:pointer;transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);border-radius:8px;padding:.65rem .8rem;font-family:inherit;font-size:.85rem}.signin-dev-btn:hover:not(:disabled){color:var(--text);border-color:var(--pikachu);background:#ffcb050d}.signin-dev-btn:disabled{opacity:.5;cursor:not-allowed}.signin-sent{text-align:center}.signin-sent-headline{color:var(--text);margin:0 0 .6rem;font-size:1.1rem;font-weight:600}.signin-sent-body{color:var(--text-muted);margin:0 0 1.5rem;font-size:.9rem;line-height:1.5}.signin-sent-body strong{color:var(--text)}.signin-link-btn{color:var(--player);cursor:pointer;transition:background var(--t-fast) var(--ease);background:0 0;border:none;border-radius:6px;padding:.4rem .6rem;font-family:inherit;font-size:.85rem}.signin-link-btn:hover{background:#4a90e21a;text-decoration:underline}.auth-badge{margin-left:.5rem;position:relative}.auth-badge-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;max-width:220px;transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;border-radius:8px;align-items:center;gap:.4rem;padding:.4rem .7rem;font-family:inherit;font-size:.85rem;display:inline-flex}.auth-badge-btn:hover{color:var(--text);border-color:var(--border-strong);background:var(--bg-card-hover)}.auth-badge-email{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.auth-badge-caret{color:var(--text-dim);font-size:.7rem}.auth-badge-menu{background:var(--bg-elevated);border:1px solid var(--border-strong);z-index:100;border-radius:8px;min-width:200px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000059}.auth-badge-menu-header{border-bottom:1px solid var(--border);flex-direction:column;gap:.15rem;padding:.7rem .9rem;display:flex}.auth-badge-menu-email{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.auth-badge-menu-plan{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.auth-badge-menu-item{text-align:left;width:100%;color:var(--text);cursor:pointer;transition:background var(--t-fast) var(--ease);background:0 0;border:none;padding:.65rem .9rem;font-family:inherit;font-size:.88rem}.auth-badge-menu-item:hover{background:var(--bg-card-hover)}.auth-badge-menu-item.active{color:var(--pikachu)}.auth-badge-menu-section{border-bottom:1px solid var(--border);flex-direction:column;gap:.45rem;padding:.7rem .9rem;display:flex}.auth-badge-menu-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:.72rem}.auth-badge-device-row{gap:.35rem;display:flex}.auth-badge-device-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;border-radius:6px;flex:1;padding:.4rem .5rem;font-family:inherit;font-size:.82rem}.auth-badge-device-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.auth-badge-device-btn.active{background:var(--pokeball-blue);border-color:var(--pokeball-blue);color:#fff}.auth-badge-device-btn:disabled{opacity:.5;cursor:not-allowed}@media (width<=768px){.app,.app.app-tab-battle{max-width:100%;padding:.6rem .7rem 3rem}.battle-area.with-teams{grid-template-columns:1fr;grid-template-areas:"left""center""right""bottom"}.topbar{gap:.5rem .75rem;margin-bottom:1rem}.topbar-text p{display:none}.tab-nav{flex-wrap:wrap;gap:.2rem;width:100%}.tab-btn{min-height:40px;padding:.55rem .7rem;font-size:.82rem}.auth-badge{margin-left:0}.auth-badge-email{max-width:120px}input,select,textarea,.pkmn-card-species,.pkmn-card-nickname,.pkmn-card-field,.pkmn-card-move,.signin-input,.trainer-select,.history-search{font-size:16px}.pkmn-card-species,.pkmn-card-nickname,.pkmn-card-field,.pkmn-card-move{padding:.6rem .7rem}.my-team-update-row{flex-direction:column;align-items:stretch}.my-team-upload-btn,.my-team-capture-collapsible{width:100%}.dex-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.history-panel-header,.history-filters{padding-left:.9rem;padding-right:.9rem}}.mobile-capture-notice{text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1.25rem;display:flex}.mobile-capture-icon{font-size:2.5rem}.mobile-capture-notice h2{color:var(--text);margin:0;font-size:1.2rem}.mobile-capture-notice p{color:var(--text-muted);max-width:32ch;margin:0;font-size:.9rem;line-height:1.5}.mobile-capture-actions{flex-direction:column;gap:.5rem;width:100%;margin-top:.5rem;display:flex}.mobile-capture-actions button{background:var(--bg-elevated);border:1px solid var(--border-strong);color:var(--text);cursor:pointer;transition:background var(--t-fast) var(--ease);border-radius:9px;padding:.8rem 1rem;font-family:inherit;font-size:.95rem}.mobile-capture-actions button:active{background:var(--bg-card-hover)}@media (width<=480px){.pkmn-card-meta,.pkmn-card-moves{grid-template-columns:1fr}.pkmn-stats-grid{grid-template-columns:repeat(2,1fr)}.topbar-text h1{font-size:1.2rem}}.runs-panel{max-width:1400px;margin:0 auto;padding:1.25rem}.runs-layout{grid-template-columns:320px 1fr;align-items:start;gap:1.25rem;display:grid}.runs-list-pane{flex-direction:column;gap:.5rem;max-height:calc(100vh - 2rem);display:flex;position:sticky;top:1rem;overflow-y:auto}.runs-filters{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.runs-flagged-toggle{color:var(--text-muted);cursor:pointer;align-items:center;gap:.35rem;font-size:.82rem;display:flex}.runs-empty{color:var(--text-muted);padding:.75rem 0;font-size:.88rem}.runs-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.runs-list-item{text-align:left;background:var(--bg-card);border:1px solid var(--border);cursor:pointer;width:100%;color:var(--text);border-radius:8px;padding:.55rem .7rem;font-family:inherit;transition:background .12s,border-color .12s}.runs-list-item:hover{background:var(--bg-card-hover)}.runs-list-item.active{border-color:var(--pikachu);background:#ffcb050f}.runs-item-top{align-items:center;gap:.35rem;display:flex}.runs-item-feature{font-size:.88rem;font-weight:600}.runs-item-error{color:var(--pokeball-red)}.runs-item-meta{color:var(--text-muted);align-items:center;gap:.5rem;margin-top:.2rem;font-size:.74rem;display:flex}.runs-item-cost{margin-left:auto}.runs-detail-pane{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;min-width:0;padding:1.1rem 1.25rem}.run-detail-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.run-detail-corr{color:var(--text-muted);font-family:monospace;font-size:.72rem}.run-error-badge{color:var(--pokeball-red);font-size:.85rem}.run-flag-badge{font-size:.85rem}.run-usage-bar{color:var(--text-muted);flex-wrap:wrap;gap:.4rem .85rem;margin:.5rem 0 .85rem;font-size:.78rem;display:flex}.run-flag-control{border-bottom:1px solid var(--border);flex-direction:column;gap:.45rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.run-flag-checkbox{cursor:pointer;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.run-flag-note{resize:vertical;background:var(--bg-elevated);border:1px solid var(--border);width:100%;min-height:2.5rem;color:var(--text);border-radius:6px;padding:.45rem .6rem;font-family:inherit;font-size:.82rem}.run-io{grid-template-columns:1fr 1fr;align-items:start;gap:1rem;display:grid}.run-io-col{min-width:0}.run-messages{flex-direction:column;gap:.5rem;display:flex}.run-message-role{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.2rem;font-size:.7rem;display:inline-block}.run-msg-blocks{flex-direction:column;gap:.4rem;display:flex}.run-imageref-chip{background:var(--bg-elevated);border:1px dashed var(--border-strong);color:var(--text-muted);border-radius:6px;width:fit-content;padding:.3rem .6rem;font-size:.78rem;display:inline-block}.run-replay-buttons{flex-wrap:wrap;gap:.6rem;display:flex}.run-replay-spinner{color:var(--text-muted);align-items:center;gap:.5rem;margin-top:.6rem;font-size:.85rem;display:flex}.run-replay-result{margin-top:.85rem}.run-replay-meta{color:var(--text-muted);gap:.85rem;margin-bottom:.4rem;font-size:.8rem;display:flex}.run-replay-note{color:var(--text);margin:0 0 .5rem;font-size:.85rem}.run-diff{grid-template-columns:1fr 1fr;align-items:start;gap:.75rem;display:grid}.run-diff-col{min-width:0}.run-diff-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 .3rem;font-size:.75rem}@media (width<=900px){.runs-layout{grid-template-columns:1fr}.runs-list-pane{max-height:none;position:static}.run-io,.run-diff{grid-template-columns:1fr}}.version-badge{z-index:9999;color:var(--text-muted,#8a8aa0);border:1px solid var(--border,#ffffff14);opacity:.45;background:#0006;border-radius:6px;padding:3px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;line-height:1;text-decoration:none;transition:opacity .15s;position:fixed;bottom:6px;right:8px}.version-badge:hover{opacity:1}.history-insights{border-bottom:1px solid var(--border);background:var(--bg-card)}.history-insights-toggle{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.6rem;padding:.7rem 1.25rem;font-family:inherit;display:flex}.history-insights-toggle:hover{background:var(--bg-card-hover)}.history-insights-title{text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;font-weight:800}.history-insights-hint{color:var(--text-muted);font-size:.76rem;font-weight:500}.history-insights-chevron{color:var(--text-faint);margin-left:auto;font-size:.8rem}.history-insights-body{flex-direction:column;gap:1rem;padding:.25rem 1.25rem 1rem;display:flex}.history-insights-empty{color:var(--text-muted);margin:0;font-size:.82rem}.history-insights-section{flex-direction:column;gap:.35rem;display:flex}.history-insights-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.7rem;font-weight:700}.history-insights-row{align-items:center;gap:.6rem;font-size:.82rem;display:flex}.history-insights-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);flex:0 auto;overflow:hidden}.history-insights-record{font-variant-numeric:tabular-nums;color:var(--text-muted);flex-shrink:0;font-weight:700}.history-insights-bar{background:var(--loss-bg);border-radius:3px;flex:4rem;min-width:2.5rem;height:6px;overflow:hidden}.history-insights-bar-fill{background:var(--win);border-radius:3px;height:100%;display:block}.history-insights-pct{text-align:right;font-variant-numeric:tabular-nums;min-width:2.6em;color:var(--pikachu);flex-shrink:0;font-weight:700}.history-insights-chips{flex-wrap:wrap;gap:.4rem;display:flex}.history-insights-chip{background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .55rem .2rem .3rem;font-size:.76rem;display:inline-flex}.history-insights-chip-sprite{object-fit:contain;width:24px;height:24px;image-rendering:pixelated}.history-insights-chip-name{color:var(--text);font-weight:600}.history-insights-chip-record{color:var(--text-muted);font-variant-numeric:tabular-nums}@media (width<=600px){.history-insights-toggle,.history-insights-body{padding-left:.9rem;padding-right:.9rem}}.debrief-strip{background:var(--bg-elevated);border:1px solid var(--border);border-left:3px solid var(--pikachu);border-radius:0 8px 8px 0;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.6rem;padding:.55rem .8rem;display:flex}.debrief-strip.complete{border-left-color:#3dd68c}.debrief-strip-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-right:.35rem;font-size:.78rem;font-weight:700}.debrief-strip.complete .debrief-strip-title{color:#3dd68c}.debrief-step{color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .6rem;font-size:.8rem;display:inline-flex}.debrief-step:hover{border-color:var(--pikachu);color:inherit}.debrief-step.done{color:#3dd68c;border-color:#3dd68c66}.debrief-step-mark{background:#ffffff12;border-radius:50%;justify-content:center;align-items:center;width:1.05rem;height:1.05rem;font-size:.7rem;font-weight:700;display:inline-flex}.debrief-step.done .debrief-step-mark{background:#3dd68c2e}.debrief-step-optional{opacity:.7;font-size:.7rem}.coach-context-line{color:var(--text-muted);cursor:help;margin:0 0 .7rem;font-size:.78rem}.coach-chat-messages{max-height:340px;margin-top:.5rem}.coach-replay-tag{color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:1px 7px;font-size:.7rem;font-weight:600}.coach-replay-tag.on{color:#3dd68c;border-color:#3dd68c66}.coach-chat-hint{color:var(--text-muted);margin:.2rem 0 .5rem;font-size:.8rem}.coach-msg-lesson{color:var(--pikachu);cursor:pointer;opacity:.85;background:0 0;border:none;margin-top:.4rem;padding:0;font-size:.72rem}.coach-msg-lesson:hover{opacity:1;text-decoration:underline}.suggestion-critique{border-top:1px solid var(--border);margin-top:1rem;padding-top:.9rem}.suggestion-critique-header{align-items:center;gap:.6rem;margin-bottom:.5rem;display:flex}.suggestion-critique-title{font-size:.95rem;font-weight:700}.critique-grade{background:#ffffff0f;border-radius:6px;padding:1px 9px;font-size:.95rem;font-weight:800}.critique-grade-a{color:#3dd68c}.critique-grade-b{color:#b6e36a}.critique-grade-c{color:var(--pikachu,#f2c94c)}.critique-grade-d{color:#ff6b6b}.suggestion-critique-loading{color:var(--text-muted);font-size:.85rem;font-style:italic}.critique-strengths{color:#3dd68c;margin:0 0 .7rem;padding:0;font-size:.85rem;list-style:none}.critique-strengths li{margin:.15rem 0}.critique-issues{margin:0 0 .8rem;padding:0;list-style:none}.critique-issue{background:var(--bg-card,#0003);border:1px solid var(--border);border-left-width:3px;border-radius:0 8px 8px 0;margin-bottom:.5rem;padding:.55rem .7rem}.critique-issue-head{align-items:center;gap:.5rem;margin-bottom:.2rem;display:flex}.critique-sev{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:1px 6px;font-size:.65rem;font-weight:700}.critique-sev-minor{color:var(--text-muted);background:#ffffff0f}.critique-sev-notable{color:var(--pikachu,#f2c94c);background:#f2c94c24}.critique-sev-major{color:#ff6b6b;background:#ff6b6b24}.critique-issue-title{font-size:.88rem;font-weight:600}.critique-why{color:var(--text-muted);margin:.1rem 0;font-size:.83rem}.critique-fix{margin:.2rem 0 0;font-size:.83rem}.critique-fix strong{color:var(--pikachu,#f2c94c)}.critique-refine-btn{border:1px solid var(--pikachu,#f2c94c);color:var(--pikachu,#f2c94c);cursor:pointer;background:0 0;border-radius:8px;padding:.4rem .8rem;font-size:.85rem}.critique-refine-btn:hover:not(:disabled){background:#f2c94c1f}.critique-refine-btn:disabled{opacity:.5;cursor:default}.suggestion-team-evs{color:var(--text-muted);margin-top:.15rem;font-size:.78rem}.suggestion-team-nature{color:var(--pikachu,#f2c94c);margin-right:.4rem;font-weight:600}.creativity-toggle{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.creativity-opt{color:var(--text-muted);border:none;border-right:1px solid var(--border);cursor:pointer;background:0 0;padding:.35rem .7rem;font-size:.76rem}.creativity-opt:last-child{border-right:none}.creativity-opt:hover:not(:disabled):not(.active){color:inherit;background:#ffffff0d}.creativity-opt.active{background:var(--pikachu,#f2c94c);color:#1a1a1a;font-weight:700}.creativity-opt:disabled{opacity:.5;cursor:default}.critique-refine-input{border:1px solid var(--border);background:var(--bg-card);width:100%;color:inherit;resize:vertical;box-sizing:border-box;border-radius:6px;margin:.4rem 0;padding:.4rem .5rem;font-size:.82rem}.auto-status{color:var(--pikachu,#f2c94c);align-self:center;font-size:.8rem;font-style:italic}
