:root{--bg: #0b1020;--panel: #141a2e;--panel-2: #1b2237;--line: #2a3350;--text: #eef2ff;--muted: #94a3c4;--gold: #fbbf24;--silver: #cbd5e1;--bronze: #d9915c;--good: #34d399;--warn: #fbbf24;--bad: #f87171;--accent: #60a5fa}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:IBM Plex Sans Thai,system-ui,-apple-system,sans-serif;font-size:clamp(14px,1.05vw,22px);-webkit-font-smoothing:antialiased;overflow-x:hidden}.app{zoom:.93;padding:clamp(12px,1.2vw,28px);height:calc(100vh / .93);display:grid;grid-template-rows:auto auto 1fr auto;gap:clamp(8px,.75vw,16px);overflow:hidden}.head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.head h1{font-size:clamp(20px,1.9vw,40px);font-weight:700;letter-spacing:-.01em}.head .shop{color:var(--accent)}.head .when{color:var(--muted);font-size:clamp(13px,1.05vw,22px);text-align:right}.kpi-groups{display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,.8vw,18px)}.kpi-group{background:#141a2e80;border:1px solid var(--line);border-radius:16px;padding:clamp(7px,.55vw,13px);display:flex;flex-direction:column;gap:clamp(5px,.4vw,9px)}.group-head{font-size:clamp(12px,.95vw,19px);font-weight:600;color:var(--muted);padding:0 clamp(4px,.35vw,8px)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(5px,.45vw,10px)}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:clamp(7px,.62vw,14px) clamp(8px,.7vw,16px)}.kpi .label{color:var(--muted);font-size:clamp(12px,.9vw,18px);margin-bottom:4px}.kpi .value{font-size:clamp(16px,1.65vw,34px);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.kpi .value.dim{color:var(--muted)}.kpi.good .value{color:var(--good)}.kpi.accent .value{color:var(--accent)}.kpi.cost .value{color:var(--warn)}.cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,.8vw,18px)}@media(max-width:1100px){.cols,.kpi-groups{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}.card>h2{font-size:clamp(15px,1.25vw,26px);font-weight:600;padding:clamp(6px,.5vw,12px) clamp(12px,1vw,22px);border-bottom:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between;gap:10px}.card>h2 .sub{color:var(--muted);font-weight:400;font-size:.78em}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{padding:clamp(2px,.22vw,5px) clamp(7px,.65vw,14px);text-align:right;white-space:nowrap}th{color:var(--muted);font-weight:500;font-size:clamp(11px,.85vw,17px);border-bottom:1px solid var(--line)}td{font-size:clamp(13px,1.05vw,21px);border-bottom:1px solid rgba(42,51,80,.5)}tbody tr:last-child td{border-bottom:none}th:nth-child(2),td:nth-child(2){text-align:left;white-space:normal}th:first-child,td.rank{text-align:center;width:1%;color:var(--muted)}td.name{font-weight:500}td.sales{font-weight:700}td.comm{color:var(--good);font-weight:600}td.dim{color:var(--muted)}tr.top1 td.rank,tr.top2 td.rank,tr.top3 td.rank{font-size:1.15em}tr.top1 td.rank{color:var(--gold)}tr.top2 td.rank{color:var(--silver)}tr.top3 td.rank{color:var(--bronze)}tr.top1 td.sales{color:var(--gold)}tfoot td{border-top:2px solid var(--line);font-weight:700;padding-top:clamp(6px,.55vw,13px)}.tag{display:inline-block;font-size:.62em;padding:1px 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted);margin-left:6px;vertical-align:middle;white-space:nowrap}.tag.warn{color:var(--warn);border-color:#fbbf2473}.tag.good{color:var(--good);border-color:#34d39973}.note{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;color:var(--muted);overflow:hidden;font-size:clamp(11px,.82vw,16px);line-height:1.45;padding:clamp(5px,.45vw,10px) clamp(12px,1vw,22px);border-top:1px solid var(--line);background:#00000029}.note b{color:var(--warn);font-weight:600}.empty{padding:clamp(18px,2vw,40px);text-align:center;color:var(--muted);font-size:clamp(14px,1.1vw,22px)}.cols{min-height:0;overflow:hidden}.cols>.card{max-height:100%;display:flex;flex-direction:column;overflow:hidden}.cols>.card>h2{flex:none}.cols>.card>.fit{flex:1 1 auto;min-height:0;overflow:hidden}.cols>.card>.note{flex:none;margin-top:auto}.shop-card{height:24vh;display:flex;flex-direction:column;overflow:hidden}.shop-card>h2{flex:none}.shop-days{flex:1 1 auto;overflow:hidden;min-height:0}.shop-days th:first-child,.shop-days td:first-child{width:22%}.foot{display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--muted);font-size:clamp(11px,.85vw,17px);flex-wrap:wrap}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--good);margin-right:7px;vertical-align:middle}.dot.stale{background:var(--bad);animation:blink 1.4s ease-in-out infinite}@keyframes blink{50%{opacity:.25}}.foot-actions{display:flex;align-items:center;gap:10px}.foot button,.foot-actions a{background:none;border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:5px 13px;font:inherit;font-size:.92em;cursor:pointer;text-decoration:none;line-height:1.6}.foot button:hover,.foot-actions a:hover{color:var(--text);border-color:var(--muted)}.gate{min-height:100vh;display:grid;place-items:center;padding:24px}.gate-box{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:clamp(26px,3vw,54px);width:min(460px,100%);text-align:center}.gate-box h1{font-size:clamp(19px,1.7vw,32px);margin-bottom:6px}.gate-box p{color:var(--muted);margin-bottom:22px;font-size:clamp(13px,1vw,18px)}.gate-box input{width:100%;background:var(--panel-2);border:2px solid var(--line);border-radius:12px;color:var(--text);font:inherit;font-size:clamp(26px,2.6vw,44px);font-weight:700;text-align:center;letter-spacing:.34em;padding:12px 8px;font-variant-numeric:tabular-nums;text-indent:.34em}.gate-box input:focus{outline:none;border-color:var(--accent)}.gate-box button{width:100%;margin-top:14px;background:var(--accent);color:#07122a;border:none;border-radius:12px;font:inherit;font-weight:700;font-size:clamp(15px,1.2vw,22px);padding:12px;cursor:pointer}.gate-box button:disabled{opacity:.5;cursor:default}.gate-err{color:var(--bad);margin-top:14px;min-height:1.5em;font-size:clamp(13px,1vw,18px)}button.kpi{font:inherit;text-align:left;cursor:pointer;width:100%;transition:border-color .15s,background .15s}button.kpi:hover{border-color:var(--accent);background:var(--panel-2)}.kpi .hint{color:var(--accent);font-size:.82em;font-weight:500}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#040814d1;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:clamp(16px,2vw,40px);z-index:50}.modal{background:var(--panel);border:1px solid var(--line);border-radius:18px;width:min(1000px,100%);max-height:86vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px #0000008c}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:clamp(10px,.9vw,20px) clamp(14px,1.2vw,26px);border-bottom:1px solid var(--line)}.modal-head h2{font-size:clamp(16px,1.35vw,28px);font-weight:600}.modal-head .sub{color:var(--muted);font-weight:400;font-size:.78em}.modal-actions{display:flex;align-items:center;gap:12px}.countdown{color:var(--muted);font-size:clamp(11px,.85vw,17px);font-variant-numeric:tabular-nums}.modal-actions button{background:none;border:1px solid var(--line);color:var(--muted);border-radius:9px;font:inherit;font-size:clamp(13px,1vw,20px);line-height:1;padding:7px 12px;cursor:pointer}.modal-actions button:hover{color:var(--text);border-color:var(--muted)}.modal-body{overflow:auto}.modal-body tr.today td{background:#60a5fa17}.modal-body tfoot td{position:sticky;bottom:0;background:var(--panel)}.who{display:inline-flex;align-items:center;gap:clamp(6px,.5vw,11px)}.avatar{width:clamp(24px,1.9vw,40px);height:clamp(24px,1.9vw,40px);border-radius:50%;object-fit:cover;flex:none;border:1px solid var(--line);background:var(--panel-2)}.avatar-fallback{display:inline-grid;place-items:center;color:var(--muted);font-size:clamp(11px,.9vw,18px);font-weight:600}.manage{max-width:820px;margin:0 auto;padding:clamp(18px,2vw,40px) clamp(14px,1.5vw,28px)}.manage-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px}.manage-head h1{font-size:clamp(19px,1.6vw,30px)}.manage-head a{color:var(--accent);text-decoration:none;font-size:clamp(13px,1vw,18px)}.manage-msg{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:clamp(13px,1vw,18px)}.manage-list{display:flex;flex-direction:column;gap:8px}.manage-row{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px}.manage-row .avatar{width:46px;height:46px;font-size:18px}.manage-name{flex:1;min-width:0}.manage-name>div:first-child{font-weight:500;font-size:clamp(14px,1.1vw,20px)}.manage-sub{color:var(--muted);font-size:clamp(11px,.85vw,15px)}.manage-actions{display:flex;gap:8px;flex:none}.manage-actions button{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:9px;font:inherit;font-size:clamp(12px,.95vw,16px);padding:7px 14px;cursor:pointer}.manage-actions button:hover:not(:disabled){border-color:var(--accent)}.manage-actions button:disabled{opacity:.5;cursor:default}.manage-actions button.danger{color:var(--bad)}.manage-note{color:var(--muted);font-size:clamp(11px,.85vw,15px);line-height:1.6;margin-top:16px}tr.top1 td{padding-top:clamp(10px,.98vw,22px);padding-bottom:clamp(10px,.98vw,22px)}tr.top1 td.name{font-size:1.83em;font-weight:600}tr.top1 td.sales{font-size:1.94em}tr.top1 td.comm{font-size:1.68em}tr.top1 td.rank{font-size:2.24em}tr.top1 .avatar{width:clamp(48px,3.9vw,80px);height:clamp(48px,3.9vw,80px)}tr.top1 .avatar-fallback{font-size:clamp(21px,1.78vw,36px)}tr.more{cursor:pointer}tr.more:hover td{background:#60a5fa12}tr.more td.name{color:var(--accent)}@keyframes cheerGlow{0%,to{background:#fbbf241a}50%{background:#fbbf2442}}tr.cheering td{animation:cheerGlow 1.1s ease-in-out infinite}tr.cheering td.sales{color:var(--gold)}@keyframes cheerPop{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.12);opacity:1}to{transform:scale(1);opacity:1}}.who-name{display:inline-flex;flex-direction:column;gap:2px;min-width:0}.tag.cheer{color:#0b1020;background:var(--gold);border-color:var(--gold);font-weight:700;animation:cheerPop .45s ease-out;margin-left:0;align-self:flex-start;font-size:.55em}.manage-head-actions{display:inline-flex;align-items:baseline;gap:14px}.manage-head-actions .linklike{background:none;border:none;color:var(--muted);font:inherit;font-size:clamp(13px,1vw,18px);cursor:pointer;padding:0}.manage-head-actions .linklike:hover{color:var(--bad)}
