:root{--bg:#f4f6fa;--card:#fff;--ink:#1b2333;--ink-2:#4a5468;--muted:#6b7588;--muted-2:#8a93a5;--faint:#b0b8c6;--line:#eef2f8;--head-bg:#f7f9fc;--side:#111a2b;--side-2:#1c2740;--side-3:#2a3652;--side-muted:#8090aa;--side-text:#b4bfd0;--side-accent:#5aa8ff;--blue:#1e7bff;--blue-ink:#1e6fe8;--blue-bg:#e8f1ff;--cyan:#18b4e8;--cyan-ink:#0b8fa8;--cyan-bg:#e6f8fb;--green:#2e9e5b;--green-bg:#e7f7ee;--orange:#ff8a1f;--orange-ink:#d9640a;--orange-bg:#fff3e3;--purple-ink:#6a4fd8;--purple-bg:#eeeafe;--red:#d93b3b;--red-bg:#fdecec;--yellow-bg:#fff4c2;--shadow:0 3px 14px #141f380d;--shadow-btn:0 4px 14px #141f3838;--radius:16px;color:var(--ink);background:var(--bg);font-family:Noto Sans TC,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);font-size:14px;line-height:1.5}a{color:var(--blue-ink);text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}.num{font-variation-settings:"opsz" 14;font-family:DM Sans,sans-serif;font-weight:700}.shell{min-height:100vh;display:flex}.side{background:var(--side);color:#fff;flex-direction:column;flex:none;gap:6px;width:248px;height:100vh;padding:28px 20px 24px;display:flex;position:sticky;top:0;overflow-y:auto}.logo{align-items:center;gap:10px;margin-bottom:24px;display:flex}.logo b{color:#fff;font-family:DM Sans,sans-serif;font-size:21px;font-weight:700}.logo b span{color:var(--side-accent)}.team-switch{background:var(--side-2);text-align:left;cursor:pointer;border:0;border-radius:10px;justify-content:space-between;align-items:center;width:100%;margin-bottom:12px;padding:10px 12px;display:flex}.team-switch small{color:var(--side-muted);font-size:11px;display:block}.team-switch strong{color:#fff;font-size:14px;font-weight:500}.team-switch .arrow{color:var(--side-muted)}.team-menu{background:var(--side-2);border-radius:10px;margin:-6px 0 12px;padding:6px}.team-menu button{text-align:left;width:100%;color:var(--side-text);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 10px;display:block}.team-menu button:hover,.team-menu button.on{background:var(--side-3);color:#fff}.nav-item{color:var(--side-text);border-radius:10px;align-items:center;gap:12px;padding:11px 12px;font-size:15px;font-weight:500;display:flex}.nav-item i{color:var(--side-muted);text-align:center;width:14px;font-size:13px;font-style:normal}.nav-item.active{color:#fff;background:#1e7bff2e;font-weight:700}.nav-item.active i{color:var(--side-accent)}.side .spacer{flex:1;min-height:16px}.points-card{background:var(--side-2);border-radius:12px;flex-direction:column;gap:10px;padding:16px;display:flex}.points-card .row{color:var(--side-muted);justify-content:space-between;font-size:12px;display:flex}.points-card .big{align-items:baseline;gap:4px;display:flex}.points-card .big .num{font-size:30px}.points-card .big small{color:var(--side-muted);font-size:13px}.bar{background:var(--side-3);border-radius:3px;height:6px;overflow:hidden}.bar>div{background:linear-gradient(90deg,#ffb82e,#ff6a13);border-radius:3px;height:100%}.me{align-items:center;gap:10px;padding-top:12px;display:flex}.avatar{background:var(--side-3);border-radius:999px;flex:none;place-items:center;width:29px;height:28px;font-size:13px;font-weight:700;display:grid}.me strong{font-size:14px;font-weight:500;display:block}.me small{color:var(--side-muted);font-size:11px}.me button{color:var(--side-muted);cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:12px}.main{flex-direction:column;flex:1;gap:24px;min-width:0;padding:32px 40px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.page-head h1{margin:0;font-size:26px;font-weight:700}.page-head p{color:var(--muted);margin:4px 0 0}.page-head .actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.table-wrap{overflow-x:auto}.card-pad{padding:18px 22px}.card h2{margin:0;font-size:16px;font-weight:700}.card-head{justify-content:space-between;align-items:center;padding:18px 24px 14px;display:flex}.btn{cursor:pointer;background:var(--line);color:var(--ink);white-space:nowrap;border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:700;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:linear-gradient(90deg, var(--blue), var(--cyan));color:#fff;box-shadow:var(--shadow-btn);padding:12px 24px;font-size:15px}.btn-danger{background:var(--red-bg);color:var(--red)}.btn-ghost{color:var(--blue-ink);background:0 0;padding:6px 8px;font-weight:500}.btn-sm{padding:6px 12px;font-size:13px}.pill{background:var(--blue-bg);color:var(--blue-ink);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:500;display:inline-block}.pill.green{background:var(--green-bg);color:var(--green)}.pill.orange{background:var(--orange-bg);color:var(--orange-ink)}.pill.purple{background:var(--purple-bg);color:var(--purple-ink)}.pill.cyan{background:var(--cyan-bg);color:var(--cyan-ink)}.pill.red{background:var(--red-bg);color:var(--red)}.pill.gray{background:var(--line);color:var(--muted)}.status-chip{background:var(--green-bg);color:var(--green);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:500}.status-chip.off{background:var(--line);color:var(--muted)}.muted{color:var(--muted)}.small{color:var(--muted-2);font-size:12px}.err{color:var(--red);font-size:13px}.kpis{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.kpi{flex-direction:column;gap:8px;padding:20px 22px;display:flex}.kpi .label{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.kpi .value{align-items:baseline;gap:4px;display:flex}.kpi .value .num{font-size:32px}.kpi .value small{color:var(--muted);font-size:14px}.cols{align-items:flex-start;gap:20px;display:flex}.cols>.grow{flex:1;min-width:0}.cols>.aside{flex-direction:column;flex:none;gap:20px;width:320px;display:flex}.table{border-collapse:collapse;width:100%}.table th{background:var(--head-bg);border-top:1px solid var(--line);color:var(--muted-2);text-align:left;padding:10px 8px;font-size:12px;font-weight:500}.table td{border-top:1px solid var(--line);color:var(--ink-2);vertical-align:middle;padding:14px 8px;font-size:13px}.table th:first-child,.table td:first-child{padding-left:24px}.table th:last-child,.table td:last-child{padding-right:24px}.table td .title{color:var(--ink);font-size:14px;font-weight:500}.table tr.link{cursor:pointer}.table tr.link:hover td{background:#fafbfd}.empty{text-align:center;color:var(--muted-2);padding:32px 24px}.list-row{justify-content:space-between;align-items:center;gap:10px;padding:6px 0;display:flex}.icon-chip{background:var(--blue-bg);color:var(--blue-ink);border-radius:8px;padding:5px 7px;font-size:12px}.icon-chip.orange{background:var(--orange-bg);color:var(--orange-ink)}.track{background:var(--line);border-radius:4px;height:8px;overflow:hidden}.track>div{background:var(--blue);border-radius:4px;height:100%}.form{flex-direction:column;gap:18px;display:flex}.field{flex-direction:column;gap:8px;display:flex}.field>span{color:var(--muted);font-size:13px;font-weight:500}.input,textarea.input,select.input{background:#fff;border:1px solid #dde3ee;border-radius:10px;outline:none;width:100%;padding:12px 16px}.input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1e7bff1f}textarea.input{resize:vertical;min-height:80px}.grid2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{cursor:pointer;background:#fff;border:1px solid #dde3ee;border-radius:999px;padding:7px 15px;font-size:14px}.chip.on{border-color:var(--blue);background:var(--blue-bg);color:var(--blue-ink);font-weight:500}.parts{flex-direction:column;gap:8px;display:flex}.part-row{grid-template-columns:90px 1fr 1fr 1.5fr 32px;gap:8px;display:grid}.part-row .input{padding:9px 12px}.x{color:var(--muted-2);cursor:pointer;background:0 0;border:0;font-size:18px}.auth{background:var(--side);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.auth .card{width:100%;max-width:400px;padding:32px}.auth .logo b{color:var(--ink)}.auth .logo b span{color:var(--blue)}.auth h1{margin:0 0 20px;font-size:20px}.check{color:var(--ink-2);align-items:flex-start;gap:8px;font-size:13px;display:flex}.check input{margin-top:3px}.live{grid-template-columns:minmax(0,1fr) 420px;align-items:start;gap:20px;display:grid}.live-bar{flex-wrap:wrap;align-items:center;gap:12px;padding:14px 20px;display:flex}.live-bar .timer{font-size:22px}.live-bar .grow{flex:1}.dot{background:var(--faint);border-radius:50%;width:10px;height:10px;display:inline-block}.dot.on{background:var(--red);animation:1.4s infinite pulse}@keyframes pulse{50%{opacity:.35}}.meter{background:var(--line);vertical-align:middle;border-radius:3px;width:60px;height:6px;display:inline-block;overflow:hidden}.meter>div{background:var(--green);height:100%;transition:width .1s}.notice{background:var(--orange-bg);color:var(--orange-ink);border-radius:10px;align-items:center;gap:12px;padding:10px 16px;font-weight:500;display:flex}.notice.info{background:var(--blue-bg);color:var(--blue-ink)}.notice .btn{margin-left:auto}.transcript{flex-direction:column;gap:10px;height:calc(100vh - 330px);min-height:280px;padding:16px 20px;display:flex;overflow-y:auto}.line{gap:10px;display:flex}.line b{background:var(--orange-bg);color:var(--orange-ink);border-radius:6px;flex:none;height:fit-content;padding:2px 8px;font-size:12px}.line.me b{background:var(--line);color:var(--muted)}.line.partial{opacity:.55}.manual{border-top:1px solid var(--line);gap:8px;padding:12px 16px;display:flex}.manual select{width:auto}.hints{flex-direction:column;gap:14px;max-height:calc(100vh - 200px);display:flex;overflow-y:auto}.hint{flex-direction:column;gap:10px;padding:16px 18px;display:flex}.hint .q{font-size:15px;font-weight:700}.hint .q small{color:var(--muted-2);margin-left:6px;font-weight:400}.bubble{background:var(--blue);color:#fff;border-radius:12px 12px 12px 4px;padding:10px 14px;font-size:15px;line-height:1.6}.bubble mark{color:#fff;background:#ffffff47;border-radius:3px;padding:0 2px}.more{flex-direction:column;gap:6px;display:flex}.more div{color:var(--ink-2);background:#f1f4f9;border-radius:10px;padding:8px 12px;font-size:14px}.more mark,.rec mark{background:var(--yellow-bg);color:inherit;border-radius:3px;padding:0 2px}.more .slide{background:var(--yellow-bg);color:#8a6100;width:fit-content;font-weight:500}.cheat{white-space:pre-wrap;background:#fff8e6;border:1px dashed #f0c46b;border-radius:10px;padding:10px 14px;font-size:13px}.cheat b{color:#8a6100;margin-bottom:4px;display:block}.collapsed{cursor:pointer;color:var(--ink-2);padding:10px 18px}.typing:after{content:"▍";animation:1s infinite pulse}.countdown{font-size:18px}.rec{flex-direction:column;gap:12px;display:flex}.rec .hint-actions{align-items:center;gap:8px;display:flex}.fb{cursor:pointer;background:#fff;border:1px solid #dde3ee;border-radius:8px;padding:4px 10px;font-size:13px}.fb.good.on{background:var(--green-bg);border-color:var(--green);color:var(--green)}.fb.bad.on{background:var(--red-bg);border-color:var(--red);color:var(--red)}.tabs{border-bottom:1px solid var(--line);gap:4px;padding:0 20px;display:flex}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 14px;font-weight:500}.tabs button.on{color:var(--blue-ink);border-color:var(--blue)}.hamburger,.mobile-bar{display:none}@media (width<=1100px){.kpis{grid-template-columns:repeat(2,1fr)}.cols{flex-direction:column}.cols>.aside{width:100%}.live{grid-template-columns:1fr}.hints{max-height:none}}@media (width<=760px){.shell{flex-direction:column}.side{z-index:20;transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%)}.side.open{transform:none;box-shadow:0 0 40px #0000004d}.mobile-bar{display:block}.hamburger{background:var(--side);color:#fff;border:0;border-radius:10px;padding:8px 12px;font-size:16px;display:inline-flex}.main{gap:18px;padding:20px 16px}.page-head h1{font-size:22px}.kpis{gap:12px}.kpi{padding:14px 16px}.kpi .value .num{font-size:26px}.grid2{grid-template-columns:1fr}.part-row{grid-template-columns:70px 1fr 32px}.part-row .wide{grid-column:2/3}.table .hide-sm{display:none}.transcript{height:50vh}}
