:root{--bg:#f4f5f7;--surface:#fff;--line:#e6e8ec;--line2:#cfd2d9;--txt:#1c1f26;--txt2:#5b606b;--txt3:#9096a1;--brand:#1f5fa5;--brand-bg:#e7f0fb;--g-bg:#d7eccb;--g-fg:#1f4d12;--t-bg:#cdeee0;--t-fg:#0c4a3a;--b-bg:#cfe2f7;--b-fg:#0c447c;--a-bg:#fbe1b0;--a-fg:#5a3604;--r-bg:#f6d2d2;--r-fg:#7a1f1f;--n-bg:#e4e5e1;--n-fg:#4a4a46}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;background:var(--bg);color:var(--txt);font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%}.splash{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--txt2);padding:24px;text-align:center}.dot{width:9px;height:9px;border-radius:50%;background:#ffd54a}.dot.live{background:#54e09a}.g{background:var(--g-bg);color:var(--g-fg)}.t{background:var(--t-bg);color:var(--t-fg)}.b{background:var(--b-bg);color:var(--b-fg)}.a{background:var(--a-bg);color:var(--a-fg)}.r{background:var(--r-bg);color:var(--r-fg)}.n{background:var(--n-bg);color:var(--n-fg)}.seg{display:inline-flex;border:1px solid var(--line2);border-radius:10px;overflow:hidden}.seg button{border:none;background:transparent;padding:8px 14px;font:inherit;font-size:14px;font-weight:700;color:var(--txt2);cursor:pointer}.seg button.on{background:var(--brand-bg);color:var(--brand)}.legend{display:flex;flex-wrap:wrap;gap:7px;font-size:12px}.lg{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:8px}.lg b{font-weight:700;font-size:13px}.sym{min-width:30px;padding:5px 0;border-radius:8px;font-size:15px}.chip,.sym{display:inline-block;text-align:center;font-weight:700}.chip{width:16px;height:18px;line-height:18px;border-radius:3px;font-size:11px}.empty{color:var(--txt3);font-weight:400}.toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);background:#1c1f26;color:#fff;padding:12px 22px;border-radius:26px;font-size:15px;opacity:0;transition:opacity .25s;pointer-events:none;z-index:40;text-align:center}.toast.show{opacity:1}.navbtn{font:inherit;font-size:13px;font-weight:700;padding:7px 12px;border:none;border-radius:9px;background:hsla(0,0%,100%,.16);color:#fff;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center}.navbtn:hover{background:hsla(0,0%,100%,.3)}.navbtn.on{color:var(--brand);cursor:default}.navbtn.on,.navbtn.on:hover{background:#fff}.appbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--brand);color:#fff;padding:10px 20px;gap:10px;flex-wrap:wrap}.appbar,.appbar .appbar-title{display:flex;align-items:center}.appbar .appbar-title{gap:8px;min-width:0}.appbar .appbar-title .ttl{font-size:18px;font-weight:700}.appbar .appbar-title .sub{font-size:13px;opacity:.9}.appbar .spacer{flex:1 1}.appbar .navlinks{display:inline-flex;gap:6px;flex-wrap:wrap}.appbar input{font:inherit;font-size:14px;padding:7px 10px;border:none;border-radius:9px;background:hsla(0,0%,100%,.16);color:#fff}.appbar input::-webkit-calendar-picker-indicator{filter:invert(1)}.acct{position:relative;display:inline-flex}.acct-btn{gap:5px;padding-left:10px;padding-right:9px}.acct-ico{display:block}.acct-caret{font-size:10px;line-height:1;opacity:.85}.acct-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:210px;z-index:50;background:var(--surface);color:var(--txt);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:6px}.acct-head{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}.acct-email{font-size:13px;font-weight:700;color:var(--txt);word-break:break-all}.acct-role{font-size:11px;color:var(--txt2);margin-top:2px}.acct-item{display:block;width:100%;text-align:left;font:inherit;font-size:14px;padding:9px 10px;border:none;background:transparent;color:var(--txt);border-radius:8px;cursor:pointer;text-decoration:none}.acct-item:hover{background:var(--bg)}.acct-item.danger{color:#a3261f}.acct-item.danger:hover{background:#fbeceb}.mini{font:inherit;font-size:13px;padding:8px 12px;border:1px solid var(--line2);border-radius:9px;background:var(--surface);color:var(--txt2);cursor:pointer}.mini:disabled{opacity:.4;cursor:default}.mini.danger{color:#a3261f;border-color:#e7b3ad}.btn{font:inherit;font-size:14px;font-weight:700;padding:9px 16px;border:none;border-radius:10px;background:var(--brand);color:#fff;cursor:pointer}.btn.sub{color:var(--txt2);border:1px solid var(--line2)}.btn.danger,.btn.sub{background:transparent;font-weight:400}.btn.danger{color:#a3261f;border:1px solid #e7b3ad;padding:7px 12px}.p-input .wrap{max-width:520px;margin:0 auto;padding-bottom:84px}.p-input header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--brand);color:#fff;padding:12px 16px}.p-input header .t{font-size:17px;font-weight:700;display:flex;align-items:center;gap:8px}.p-input header .meta{display:flex;gap:8px;margin-top:8px}.p-input header input,.p-input header select{flex:1 1;font:inherit;font-size:15px;padding:9px 10px;border:none;border-radius:10px;background:hsla(0,0%,100%,.16);color:#fff}.p-input header select:disabled{opacity:.85}.p-input header select option{color:#000}.p-input header input::-webkit-calendar-picker-indicator{filter:invert(1)}.p-input .ctl{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.p-input .ctl .lbl{font-size:13px;color:var(--txt2)}.p-input .legend{padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.p-input .note{padding:10px 16px 0;color:var(--txt2);font-size:13px}.p-input .grp{padding:14px 16px 4px;font-size:13px;font-weight:700;color:var(--brand)}.p-input .grp small{color:var(--txt3);font-weight:400;margin-left:6px}.p-input .item{background:var(--surface);margin:0 10px 8px;border:1px solid var(--line);border-radius:14px;padding:10px 12px}.p-input .item .nm{font-size:15px;font-weight:600;margin-bottom:8px}.p-input .item .sub{font-size:11px;color:var(--txt3);font-weight:400;margin-right:6px}.p-input .opts{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:6px;gap:6px}.p-input .opts button{height:46px;border:1.5px solid var(--line2);border-radius:11px;background:var(--surface);font:inherit;font-size:20px;font-weight:700;color:var(--txt3);transition:transform .05s;cursor:pointer}.p-input .opts button:active{transform:scale(.94)}.p-input .opts button.sel.g{background:var(--g-bg);color:var(--g-fg);border-color:var(--g-fg)}.p-input .opts button.sel.t{background:var(--t-bg);color:var(--t-fg);border-color:var(--t-fg)}.p-input .opts button.sel.b{background:var(--b-bg);color:var(--b-fg);border-color:var(--b-fg)}.p-input .opts button.sel.a{background:var(--a-bg);color:var(--a-fg);border-color:var(--a-fg)}.p-input .opts button.sel.r{background:var(--r-bg);color:var(--r-fg);border-color:var(--r-fg)}.p-input .opts button.sel.n{background:var(--n-bg);color:var(--n-fg);border-color:var(--n-fg)}.p-input footer{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:12px;max-width:520px;margin:0 auto}.p-input footer .prog{font-size:13px;color:var(--txt2);white-space:nowrap}.p-input footer a.board{font-size:12px;font-weight:700;color:var(--brand);text-decoration:none;white-space:nowrap;padding:8px 11px;border:1px solid var(--line2);border-radius:9px;background:var(--surface);display:inline-flex;align-items:center}.p-input footer a.board:hover{background:var(--brand-bg);border-color:var(--brand)}.p-input footer button.send{flex:1 1;height:50px;border:none;border-radius:13px;background:var(--brand);color:#fff;font:inherit;font-size:17px;font-weight:700;cursor:pointer}.p-input footer button.send:active{filter:brightness(.94)}.p-board .bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.p-board select{font:inherit;font-size:14px;padding:7px 11px;border:1px solid var(--line2);border-radius:9px;background:var(--surface);color:var(--txt)}.p-board .chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--txt2);cursor:pointer}.p-board .row2{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.p-board .legend{padding:10px 20px 0}.p-board .instatus{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 20px 0;font-size:12px}.p-board .instatus .lbl{color:var(--txt2);font-weight:700}.p-board .instatus .pill{padding:2px 9px;border-radius:8px;border:1px solid var(--line2)}.p-board .instatus .pill.ok{background:#eef7f0;color:#1f5d33;border-color:#bfe3c8}.p-board .instatus .pill.ng{background:#fff3e0;color:#8a4b00;border-color:#f0c98a;font-weight:700}.p-board .skey{padding:8px 20px 0;font-size:12px;color:var(--txt2);display:flex;align-items:center;gap:8px}.p-board .skey .bx{padding:1px 7px;border:1px solid var(--line2);border-radius:4px;background:var(--surface);color:var(--txt2)}.p-board .wrap{padding:14px 20px 40px;overflow-x:auto}.p-board table{border-collapse:collapse;font-size:14px;background:var(--surface);border-radius:12px;overflow:hidden}.p-board table.full{width:100%}.p-board thead th{font-weight:600;color:var(--txt2);padding:9px 8px;border-bottom:2px solid var(--line2);text-align:center;background:var(--surface)}.p-board thead th.name{text-align:left}.p-board td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:center;vertical-align:top}.p-board td.name{text-align:left}.p-board tr.grp td{background:#eef0f3;color:var(--txt2);font-weight:700;font-size:13px;text-align:left;padding:8px 12px}.p-board .clscode{color:var(--txt3);font-size:11px}.p-board .mktag{font-size:11px;color:var(--txt2);border:1px solid var(--line2);border-radius:7px;padding:1px 7px;margin-left:6px}.p-board tr.hi{background:var(--brand-bg)}.p-board td.emph{box-shadow:inset 0 0 0 2px var(--brand);border-radius:8px}.p-board .dim{opacity:.32}.p-board .axhead{position:-webkit-sticky;position:sticky;left:0;background:var(--surface)}.p-board .cellrow{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:3px 0}.p-board .cellrow .mn{font-size:10px;color:var(--txt3);line-height:1.2}.p-board .chips{display:grid;grid-template-columns:repeat(4,16px);grid-gap:3px;gap:3px}.p-board .foot{font-size:12px;color:var(--txt3);padding:10px 0 0}.p-board .modal{display:flex;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:100;align-items:center;justify-content:center}.p-board .modalbox{background:var(--surface);color:var(--txt);border-radius:16px;padding:22px;text-align:center;max-width:320px}.p-board .modalbox .mt{font-weight:700;margin-bottom:12px}.p-board .modalbox .mbtn{font:inherit;font-size:14px;font-weight:700;padding:9px 18px;border:none;border-radius:10px;background:var(--brand);color:#fff;cursor:pointer;margin-top:14px}.p-board .modalbox .qrurl{font-size:12px;color:var(--txt2);margin-top:10px;word-break:break-all}.p-admin .wrap{max-width:880px;margin:0 auto;padding:18px 20px 60px}.p-admin .add{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:18px;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.p-admin .add .f{display:flex;flex-direction:column;gap:4px}.p-admin .add label{font-size:12px;color:var(--txt2)}.p-admin input[type=text],.p-admin select{font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--line2);border-radius:9px;background:var(--surface);color:var(--txt)}.p-admin table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:12px;overflow:hidden;font-size:14px}.p-admin th{text-align:left;font-weight:600;color:var(--txt2);padding:9px 10px;border-bottom:2px solid var(--line2);font-size:13px}.p-admin td{padding:7px 10px;border-bottom:1px solid var(--line)}.p-admin tr.grp td{background:#eef0f3;font-weight:700;color:var(--txt2);font-size:13px}.p-admin td input[type=text],.p-admin td select{width:100%}.p-admin .cnt,.p-admin .muted{color:var(--txt2);font-size:13px}.p-admin .cnt{margin:10px 2px}.p-admin .inactive{opacity:.5}.p-admin .chk{display:inline-flex;align-items:center;gap:5px}.p-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.p-login .card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 24px;width:100%;max-width:360px;box-shadow:0 6px 24px rgba(0,0,0,.06)}.p-login .brand{color:var(--brand);font-weight:700;font-size:18px;margin-bottom:4px}.p-login .sub{color:var(--txt2);font-size:13px;margin-bottom:20px}.p-login label{display:block;font-size:12px;color:var(--txt2);margin:12px 0 4px}.p-login input{width:100%;font:inherit;font-size:15px;padding:11px 12px;border:1px solid var(--line2);border-radius:10px;background:var(--surface);color:var(--txt)}.p-login button.primary{width:100%;margin-top:20px;height:48px;border:none;border-radius:12px;background:var(--brand);color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}.p-login button.primary:disabled{opacity:.6;cursor:default}.p-login .err{color:#a3261f;font-size:13px;margin-top:12px;min-height:18px}.p-login .manual-link{margin-top:8px;padding-top:16px;border-top:1px solid var(--line);text-align:center}.p-login .manual-link a{color:var(--brand);font-size:13px;font-weight:600;text-decoration:none}.p-login .manual-link a:hover{text-decoration:underline}.userchip{font-size:12px;color:#fff;opacity:.9;display:inline-flex;align-items:center;gap:8px}.clspick{position:relative;width:100%;min-width:150px}.clspick-in{width:100%;font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--line2);border-radius:9px;background:var(--surface);color:var(--txt)}.clspick.open .clspick-in{border-color:var(--brand)}.clspick-pop{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;max-height:280px;overflow-y:auto;background:var(--surface);border:1px solid var(--line2);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:4px}.clspick-cat{font-size:11px;font-weight:700;color:var(--txt2);background:#eef0f3;padding:4px 8px;border-radius:6px;margin:4px 2px 2px}.clspick-opt{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;border:none;background:transparent;padding:7px 10px;border-radius:7px;font:inherit;font-size:14px;color:var(--txt);cursor:pointer}.clspick-opt.sel,.clspick-opt:hover{background:var(--brand-bg)}.clspick-code,.clspick-opt.sel{font-weight:700}.clspick-code{min-width:56px}.clspick-lbl{color:var(--txt2);font-size:13px}.clspick-empty{padding:12px;text-align:center;color:var(--txt3);font-size:13px}.p-dashboard .wrap{max-width:1600px;margin:0 auto;padding:18px 28px 60px}.p-dashboard .filter-bar{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:18px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}.p-dashboard .date-pickers{display:inline-flex;align-items:center;gap:8px}.p-dashboard .date-pickers input{font:inherit;font-size:14px;padding:6px 10px;border:1px solid var(--line2);border-radius:9px;background:var(--surface);color:var(--txt)}.p-dashboard .tilde{color:var(--txt2);font-size:14px}.p-dashboard .data-meta{font-size:13px;color:var(--txt2)}.p-dashboard .data-meta .term{font-weight:700;color:var(--brand)}.p-dashboard .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:16px;gap:16px;margin-bottom:20px}.p-dashboard .kpi-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px;transition:transform .2s,box-shadow .2s}.p-dashboard .kpi-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.05)}.p-dashboard .kpi-label{font-size:13px;color:var(--txt2);font-weight:600;margin-bottom:6px}.p-dashboard .kpi-value{font-size:28px;font-weight:800;line-height:1.1;margin-bottom:6px}.p-dashboard .kpi-value.brand-color{color:var(--brand)}.p-dashboard .kpi-value.text-red{color:#a3261f}.p-dashboard .kpi-value .unit{font-size:16px;font-weight:600;margin-left:2px}.p-dashboard .kpi-value .sub-val{font-size:18px;font-weight:600;margin-left:10px;opacity:.85}.p-dashboard .kpi-desc{font-size:11px;color:var(--txt3)}.p-dashboard .chart-row{display:grid;grid-template-columns:1.3fr 1fr;grid-gap:16px;gap:16px;margin-bottom:20px}@media (max-width:820px){.p-dashboard .chart-row{grid-template-columns:1fr}}.p-dashboard .chart-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px;display:flex;flex-direction:column}.p-dashboard .card-title{font-size:15px;font-weight:700;color:var(--txt);margin-bottom:12px}.p-dashboard .card-desc{font-size:12px;color:var(--txt2);margin-top:-8px;margin-bottom:16px}.p-dashboard .svg-container{position:relative;width:100%;height:200px}.p-dashboard .empty-chart{display:flex;align-items:center;justify-content:center;height:160px;color:var(--txt3);font-size:14px}.p-dashboard .chart-legend-bottom{font-size:11px;color:var(--txt3);margin-top:10px}.p-dashboard .tooltip-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.p-dashboard .chart-tooltip{position:absolute;transform:translate(-50%,-100%);background:#1c1f26;color:#fff;padding:6px 10px;border-radius:8px;font-size:11px;display:flex;flex-direction:column;gap:2px;white-space:nowrap;pointer-events:none;z-index:10;box-shadow:0 4px 10px rgba(0,0,0,.15)}.p-dashboard .chart-tooltip:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #1c1f26}.p-dashboard .chart-tooltip .date{font-weight:400;opacity:.8}.p-dashboard .chart-tooltip .rate{font-weight:700;color:#ffd54a}.p-dashboard .store-bars-list{display:flex;flex-direction:column;gap:14px;flex:1 1;justify-content:center;margin-bottom:14px}.p-dashboard .store-bar-row{display:flex;align-items:center;gap:12px}.p-dashboard .store-info-col{width:100px;display:flex;flex-direction:column;flex-shrink:0}.p-dashboard .store-short{font-size:14px;font-weight:700}.p-dashboard .store-rate-num{font-size:11px;color:var(--txt3)}.p-dashboard .stacked-bar-track{display:flex;flex:1 1;height:26px;background:#eef0f3;border-radius:6px;overflow:hidden}.p-dashboard .bar-segment{display:flex;align-items:center;justify-content:center;height:100%;transition:width .3s ease;position:relative;cursor:pointer}.p-dashboard .bar-segment:hover{filter:brightness(.95)}.p-dashboard .segment-label{font-size:11px;font-weight:700;color:inherit;pointer-events:none}.p-dashboard .legend-box{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;margin-top:6px;padding-top:10px;border-top:1px solid var(--line)}.p-dashboard .class-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.p-dashboard .class-card-header{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.p-dashboard .rank-seg{flex-shrink:0}.p-dashboard .hm-expand-ctl{display:flex;gap:8px;flex-shrink:0}.p-dashboard .class-table-header{display:grid;grid-template-columns:50px 140px 1fr 100px;padding:6px 12px;border-bottom:2px solid var(--line2);font-size:12px;font-weight:700;color:var(--txt2);margin-bottom:8px}.p-dashboard .th-rank{text-align:center}.p-dashboard .th-rate{text-align:right}.p-dashboard .class-rows-container{display:flex;flex-direction:column;gap:1px;max-height:380px;overflow-y:auto}.p-dashboard .class-table-row{display:grid;grid-template-columns:50px 140px 1fr 100px;padding:9px 12px;border-bottom:1px solid var(--line);align-items:center;font-size:14px}.p-dashboard .class-table-row:hover{background:var(--bg)}.p-dashboard .td-rank{display:flex;justify-content:center}.p-dashboard .rank-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#eef0f3;color:var(--txt2);font-size:11px;font-weight:700}.p-dashboard .rank-badge.top-3{background:var(--brand-bg);color:var(--brand)}.p-dashboard .td-class{display:flex;align-items:center;gap:8px}.p-dashboard .cls-code-badge{font-weight:700;color:var(--txt);background:var(--brand-bg);padding:2px 6px;border-radius:5px;font-size:12px;min-width:32px;text-align:center}.p-dashboard .cls-label{font-size:12px;color:var(--txt2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-dashboard .td-progress{padding:0 16px}.p-dashboard .progress-bar-bg{width:100%;height:10px;background:#eef0f3;border-radius:5px;overflow:hidden}.p-dashboard .progress-bar-fill{height:100%;border-radius:5px;transition:width .3s ease}.p-dashboard .progress-bar-fill.safe{background:#54e09a}.p-dashboard .progress-bar-fill.warning{background:#ffd54a}.p-dashboard .progress-bar-fill.danger{background:#ff6b6b}.p-dashboard .td-rate{display:flex;flex-direction:column;align-items:flex-end}.p-dashboard .rate-num{font-weight:700;color:var(--txt)}.p-dashboard .rate-count{font-size:10px;color:var(--txt3);margin-top:1px}.p-dashboard .live-error{background:#fbeceb;color:#a3261f;border:1px solid #e7b3ad;border-radius:10px}.p-dashboard .live-empty,.p-dashboard .live-error{padding:10px 14px;font-size:13px;margin-bottom:14px}.p-dashboard .live-empty{background:var(--surface);color:var(--txt2);border:1px dashed var(--line2);border-radius:10px}.p-dashboard .heatmap-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:20px}.p-dashboard .heatmap-scroll{overflow-x:auto;margin-top:8px}.p-dashboard .heatmap-table{border-collapse:collapse;width:100%;font-size:12px}.p-dashboard .heatmap-table th{position:-webkit-sticky;position:sticky;top:0;background:var(--surface);color:var(--txt2);font-size:11px;font-weight:700;padding:6px 8px;text-align:center;border-bottom:2px solid var(--line2);white-space:nowrap}.p-dashboard .heatmap-table .hm-corner{text-align:left}.p-dashboard .heatmap-table .hm-cls{font-weight:700;color:var(--txt);padding:5px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.p-dashboard .heatmap-table .hm-cell{text-align:center;padding:5px 8px;border-bottom:1px solid var(--line);font-weight:600;color:var(--txt);min-width:56px}.p-dashboard .heatmap-table .hm-overall-th{border-right:2px solid var(--line2)}.p-dashboard .heatmap-table .hm-overall{border-right:2px solid var(--line2);font-weight:800}.p-dashboard .heatmap-table .hm-row-cls{cursor:pointer}.p-dashboard .heatmap-table .hm-row-cls:hover .hm-cls,.p-dashboard .heatmap-table .hm-row-cls:hover .hm-model-name{background:var(--bg)}.p-dashboard .hm-chevron{display:inline-block;margin-right:5px;font-size:10px;color:var(--txt3);transition:transform .15s ease}.p-dashboard .hm-chevron.open{transform:rotate(90deg)}.p-dashboard .heatmap-table .hm-row-model{background:var(--bg)}.p-dashboard .heatmap-table .hm-model-name{padding:4px 8px 4px 26px;color:var(--txt2);font-size:11px;font-weight:600;border-bottom:1px solid var(--line);white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.p-dashboard .heatmap-table .hm-row-model .hm-cell{font-weight:500;font-size:11px}