:root{color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--surface-2: #232322;--ink: #ffffff;--ink-2: #c3c2b7;--muted: #898781;--grid: #2c2c2a;--baseline: #383835;--border: rgba(255, 255, 255, .1);--accent: #3987e5;--good: #0ca30c;--warning: #fab219;--critical: #e04848;--role-Por: #c98500;--role-Dif: #199e70;--role-Cen: #3987e5;--role-Trq: #9085e9;--role-Att: #e66767;--radius: 14px}*{box-sizing:border-box;margin:0}html,body{height:100%}body{background:var(--page);color:var(--ink);font:16px/1.55 system-ui,-apple-system,Segoe UI,sans-serif}#root{max-width:1760px;margin:0 auto;padding:20px 24px 48px}.appbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}.wordmark{font-size:28px;font-weight:800;letter-spacing:-.02em}.wordmark .bolt,.wordmark .accent{color:var(--accent)}.subtitle{color:var(--muted);font-size:15px}.appbar .spacer{flex:1}.appbar .actions{display:flex;gap:8px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:10px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 16px}.tile b{display:block;font-size:26px;font-weight:750}.tile span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.tile.accent b{color:var(--accent)}.callwin{position:fixed;width:520px;max-width:96vw;z-index:400;background:var(--surface);border:2px solid var(--accent);border-radius:var(--radius);box-shadow:0 18px 60px #000000b3}.callwin-head{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:grab;border-bottom:1px solid var(--grid)}.callwin-head b{font-size:16px;color:var(--accent)}.callwin-head .spacer{flex:1}.callwin-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:10px}.callscroll{display:flex;flex-direction:column;gap:8px;overflow-y:auto;max-height:calc(88vh - 150px)}.callwin .verdict{font-size:23px;margin:0}.searchwrap{position:relative}.callwin .searchbox{width:100%;font-size:17px;padding:10px 14px}.star{color:var(--warning);margin-right:3px}.searchdrop{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;max-height:320px;overflow:auto;box-shadow:0 10px 30px #0000008c}.quick{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.qname{font-weight:800;font-size:17px}.qnum{text-align:center}.qnum b{display:block;font-size:19px;font-variant-numeric:tabular-nums}.qnum span{font-size:10.5px;color:var(--muted);text-transform:uppercase}.vbadge{padding:5px 14px;border-radius:999px;font-weight:800;font-size:15px;color:#0b0b0b}.vbadge.take{background:var(--good)}.vbadge.push{background:var(--warning)}.vbadge.skip{background:var(--critical)}.callwin .assign{display:flex;gap:8px;align-items:center;margin:0}.callwin .assign input[type=number]{width:84px;font-size:16px}.pwin{position:fixed;width:440px;max-width:94vw;max-height:80vh;overflow-y:auto;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);box-shadow:0 18px 60px #000000a6}.pwin-head{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:grab;border-bottom:1px solid var(--grid);position:sticky;top:0;background:var(--surface);z-index:1;border-radius:var(--radius) var(--radius) 0 0}.pwin-head b{font-size:18px}.pwin-head .spacer{flex:1}.pwin-body{padding:12px 16px 16px}.pwin .verdict{font-size:22px;margin:4px 0 2px}.psec{margin-top:12px;padding-top:10px;border-top:1px solid var(--grid)}.psec h3{font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:8px;font-weight:700}.pricerow{display:flex;align-items:baseline;gap:12px;padding:4px 0}.pricerow .lbl{width:128px;color:var(--ink-2);font-size:14px;flex:none}.pricerow .num{font-size:21px;font-weight:800;min-width:52px;text-align:right;font-variant-numeric:tabular-nums}.pricerow .why{color:var(--muted);font-size:12.5px;flex:1;line-height:1.35}.taken{opacity:.45;text-decoration:line-through}.synergy{color:var(--good)}button.mini{padding:2px 10px;font-size:16px}.tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}.tab{background:var(--surface);color:var(--ink-2);border:1px solid var(--border);border-radius:10px;padding:9px 20px;font-weight:700;font-size:15px}.tab.active{background:var(--accent);color:#08101f;border-color:transparent}.tab:hover:not(.active){border-color:var(--accent)}.grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px;align-items:start}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media(max-width:1280px){.grid{grid-template-columns:1fr 1fr}}@media(max-width:880px){.grid,.grid2{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.panel+.panel{margin-top:16px}.panel h2{font-size:13.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700;margin-bottom:12px}input,select,button{background:var(--surface-2);color:var(--ink);border:1px solid var(--border);border-radius:10px;padding:9px 13px;font:inherit}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}button{cursor:pointer}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);border-color:transparent;color:#08101f;font-weight:700}button.primary:hover{filter:brightness(1.12)}button.ghost{background:transparent;color:var(--ink-2)}.results{margin-top:8px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;border-radius:10px;cursor:pointer;font-size:15.5px}.row:hover,.row.sel{background:var(--surface-2)}.searchdrop .row:hover,.searchdrop .row.sel{background:var(--grid)}.row.gone{opacity:.38}.row .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .who small{color:var(--muted)}.row .val{font-weight:700;font-size:16px;font-variant-numeric:tabular-nums}.row.static{cursor:default}.row.static:hover{background:transparent}.tag{display:inline-block;background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:2px 9px;font-size:13px;color:var(--ink-2);margin:0 5px 4px 0}.tag.role{color:#0b0b0b;border-color:transparent;font-weight:800}.tag.role.l-Por{background:var(--role-Por)}.tag.role.l-Dif{background:var(--role-Dif)}.tag.role.l-Cen{background:var(--role-Cen)}.tag.role.l-Trq{background:var(--role-Trq)}.tag.role.l-Att{background:var(--role-Att)}.tag.hot{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 50%,transparent)}.card .head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.card .head b{font-size:22px}.card .head small{color:var(--muted);font-size:14px}.verdict{display:flex;align-items:center;gap:10px;font-size:26px;font-weight:800;margin:10px 0 4px}.verdict .dot{width:13px;height:13px;border-radius:50%;flex:none}.verdict.take{color:var(--good)}.verdict.take .dot{background:var(--good)}.verdict.push{color:var(--warning)}.verdict.push .dot{background:var(--warning)}.verdict.skip{color:var(--critical)}.verdict.skip .dot{background:var(--critical)}.nums{display:flex;gap:22px;margin:10px 0;flex-wrap:wrap}.nums b{font-size:24px;display:block;font-variant-numeric:tabular-nums}.nums span{font-size:12px;color:var(--muted)}.note{color:var(--ink-2);font-size:14.5px;margin-top:7px}.assign{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;align-items:center}table{width:100%;border-collapse:collapse;font-size:15px}td,th{padding:7px 9px;text-align:left;border-bottom:1px solid var(--grid)}th{color:var(--muted);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em}td.r,th.r{text-align:right;font-variant-numeric:tabular-nums}tr.mine td{color:var(--good);font-weight:700}td.reparti,th.reparti{font-size:12.5px;letter-spacing:.03em;white-space:nowrap}.slotgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 20px}.slotrow{display:flex;justify-content:space-between;border-bottom:1px solid var(--grid);padding:6px 0;font-size:15px}.need{color:var(--warning);font-weight:700}.full{color:var(--good);font-weight:700}.topslot{font-size:15px;margin-bottom:6px}.topslot b{color:#0b0b0b;display:inline-block;min-width:34px;text-align:center;border-radius:6px;padding:0 4px;margin-right:4px;background:var(--baseline)}.topslot b.l-Por{background:var(--role-Por)}.topslot b.l-Dif{background:var(--role-Dif)}.topslot b.l-Cen{background:var(--role-Cen)}.topslot b.l-Trq{background:var(--role-Trq)}.topslot b.l-Att{background:var(--role-Att)}.log{max-height:300px;overflow:auto;font-size:14.5px;color:var(--ink-2)}.log div{padding:3px 0;border-bottom:1px solid var(--grid)}.muted{color:var(--muted)}.empty{color:var(--muted);padding:10px;font-size:15px}.chartbox{margin-top:6px}.chartbox .chart-title{font-size:14px;color:var(--ink-2);margin-bottom:6px}.recharts-tooltip-wrapper{outline:none}.viz-tooltip{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:8px 12px;font-size:14px;color:var(--ink)}.viz-tooltip .k{color:var(--muted)}.gkbox{margin-top:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.gktitle{font-weight:800;color:var(--ink);margin-bottom:4px}.gkbox .taken{opacity:.45;text-decoration:line-through}.gkbox .synergy,.note.synergy{color:var(--good)}.teamsgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}.teamcard{display:flex;flex-direction:column}.teamcard.mineCard{border-color:var(--accent)}.teamhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}.teamhead b{font-size:17px}.teamchips{margin-bottom:6px}.teamroster{max-height:340px;overflow:auto}.planrow{margin-bottom:12px}.planhead{display:flex;justify-content:space-between;margin-bottom:4px}.bartrack{height:10px;background:var(--surface-2);border-radius:5px;overflow:hidden}.barfill{height:100%;background:var(--accent);border-radius:5px}.barfill.over{background:var(--critical)}.myslotblock{border-bottom:1px solid var(--grid);padding:8px 0}.myslothead{display:flex;justify-content:space-between;margin-bottom:2px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}.filters input,.filters select{font-size:14.5px}.chk{display:flex;align-items:center;gap:6px;color:var(--ink-2);font-size:14px}.tablewrap{overflow-x:auto}.tablewrap th{position:sticky;top:0;background:var(--surface)}.notecell{max-width:260px;font-size:13px;color:var(--muted)}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-2)}tr.gonerow{opacity:.5}.clickable{cursor:pointer}span.clickable:hover{text-decoration:underline}.topslot-inline{color:#0b0b0b;border-radius:6px;padding:1px 8px;font-weight:800;background:var(--baseline)}.topslot-inline.l-Por{background:var(--role-Por)}.topslot-inline.l-Dif{background:var(--role-Dif)}.topslot-inline.l-Cen{background:var(--role-Cen)}.topslot-inline.l-Trq{background:var(--role-Trq)}.topslot-inline.l-Att{background:var(--role-Att)}.val.good{color:var(--good)}.val.need{color:var(--warning)}.sugg{border-left:3px solid var(--accent);padding:6px 12px;margin-bottom:10px;background:var(--surface-2);border-radius:0 8px 8px 0}.sugg.warn{border-left-color:var(--warning)}.sugg b{display:block;margin-bottom:2px}.sugg.dim{border-left-color:var(--baseline);opacity:.85}.sugg .muted{font-size:13.5px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000009e;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;width:min(440px,92vw);max-height:86vh;overflow:auto}.modal h2{font-size:18px;margin-bottom:4px;color:var(--ink);text-transform:none;letter-spacing:0}.modal .hint{color:var(--muted);font-size:13.5px;margin-bottom:14px}.modal .field{display:flex;align-items:center;gap:10px;margin-bottom:8px}.modal .field label{width:78px;color:var(--muted);font-size:13px;flex:none}.modal .field input{flex:1}.modal .foot{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
