input,button{font:inherit}input{min-width:0}button{min-width:44px;min-height:44px}button:disabled{cursor:default;opacity:.65}button:focus-visible,input:focus-visible{outline:2px solid #7963a6;outline-offset:3px}.header-tools{gap:9px}.top .access{white-space:nowrap}.text-btn{min-width:44px}.data-status{border:1px solid #e1cda8;background:#fff7ea;color:#75551e;padding:12px 16px;border-radius:10px;margin-bottom:14px;font-size:14px}.signin-shell{min-height:100svh;display:grid;grid-template-columns:minmax(300px,1fr) minmax(410px,540px);background:#f7f5f4}.signin-art{background:#1a1c29 url('/assets/star-moon-banner.png') 37% center/auto 100% no-repeat}.signin-card{align-self:center;padding:50px;max-width:540px;width:100%}.signin-brand{font:34px 'Songti SC',serif;letter-spacing:.25em;margin-bottom:30px;color:#6f5d89}.signin-card h1{font:600 28px/1.5 'Songti SC',serif}.signin-card>p{font-size:15px;color:#6b6374;margin:12px 0 32px}.signin-card label{display:block;margin:18px 0 8px;font-size:15px;color:#484151}.signin-card input{width:100%;height:50px;border:1px solid #dcd5e3;border-radius:9px;padding:0 13px;background:#fff;color:#292430;font-size:16px}.code-row{display:flex;gap:10px}.code-row input{flex:1;width:100px}.code-row button{background:#eee8f4;color:#6c567f;border:1px solid #d8cbe5;border-radius:9px;font-size:14px;padding:0 12px;white-space:nowrap}.form-status{min-height:45px;margin:12px 0;color:#776388;font-size:14px}.signin-foot{border-top:1px solid #e4dfe8;padding-top:20px;margin-top:20px;font-size:13px;color:#787080}.users-list{display:grid;gap:12px;margin-top:20px}.user-card{width:100%;text-align:left;border:1px solid #e5dfeb;background:#fff;border-radius:12px;padding:18px}.user-card h2{font-size:16px;color:#5c4777}.user-card>p{color:#80778a;font-size:13px;margin:7px 0 12px}.user-counts{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.user-counts div span{display:block;font-size:13px;color:#797080}.user-counts div b{font-size:23px;font-weight:500}.pager{display:flex;align-items:center;gap:14px;margin-top:20px}.pager button{width:auto;min-width:100px}.pager>span{font-size:13px;color:#787080;flex:1;text-align:center}.distribution-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:20px}.distribution-grid h3{font-size:15px;color:#57476c;margin-bottom:15px}.distribution-row{display:grid;grid-template-columns:90px 1fr 28px;gap:10px;align-items:center;font-size:13px;margin:12px 0}.distribution-row progress{width:100%;height:11px;accent-color:#9280bc;border:0}.distribution-row b{font-size:13px;color:#665475}.live-donut{width:150px;height:150px;flex-shrink:0}.live-donut svg{width:100%;height:100%;stroke:none;fill:none}.live-donut .ring{stroke:#eee9f4;stroke-width:15}.live-donut .arc{stroke-width:15;fill:none;stroke-linecap:butt;transform:rotate(-90deg);transform-origin:75px 75px}.live-donut .day{stroke:#8276c9}.live-donut .week{stroke:#b8a9d8}.live-donut .month{stroke:#e6c39f}.live-donut text{fill:#373047;stroke:none;text-anchor:middle;font-family:-apple-system,sans-serif}.live-donut .total{font-size:27px;font-weight:600}.live-donut .caption{font-size:12px;fill:#766980}.participation progress{width:100%;height:11px;accent-color:#9380bb;border:0}.note{padding:12px 0}.note:first-child{border-top:0}.empty-note{padding:25px;text-align:center;color:#7c7285;font-size:14px;background:#fff;border-radius:12px}.rows .row b{overflow-wrap:anywhere}.sheet{max-width:720px}.sheet .row{font-size:14px}.detail-event{padding:12px 0;border-bottom:1px solid #eee8f3;font-size:13px;color:#73667e}.detail-event b{display:block;font-size:14px;color:#44364f}.detail-event p{font-size:13px}.metric .hint,.metric .label{font-size:13px}.focus-card p{font-size:13px}.footnote{font-size:13px}
@media(max-width:900px){.signin-shell{display:block;padding:0 16px 30px}.signin-art{height:155px;margin:0 -16px 12px;background-size:cover;background-position:center}.signin-card{margin:auto;padding:25px 13px;max-width:440px}.signin-brand{font-size:27px;margin-bottom:20px}.signin-card h1{font-size:25px}.signin-card>p{margin-bottom:24px}.header-tools .access{min-width:52px;padding:6px 10px}.top{gap:8px}.brand b{font-size:22px}.user-counts{grid-template-columns:repeat(3,1fr);gap:12px}.distribution-grid{grid-template-columns:1fr}.focus-card p{font-size:13px}.metric .hint,.metric .label{font-size:13px}.pager{gap:8px}.pager button{min-width:83px;font-size:13px}.row{gap:10px}.live-donut{width:150px;height:150px}.snapshot-right{font-size:12px}}
@media(max-width:345px){.brand-caption{display:none}.brand b{font-size:20px}.header-tools{gap:5px}.top .access{font-size:12px;min-width:44px;padding-inline:7px}.user-card{padding:14px}.code-row{gap:6px}.code-row button{padding-inline:8px}}
.traffic-section{padding:22px;margin:20px 0}.traffic-section .filter{margin:0}.traffic-section .metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.traffic-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:24px 0}.traffic-columns h3,.traffic-section>h3{font-size:1rem;margin:0 0 12px}.hour-row{display:grid;grid-template-columns:90px minmax(40px,1fr) 30px;gap:12px;align-items:center;margin:12px 0;font-size:.875rem}.hour-row progress{width:100%;height:10px;accent-color:#8173d6}.hour-row b{text-align:right}.action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.action-card{border:1px solid #eeedf2;border-radius:12px;padding:16px;background:#fff}.action-card h4{font-size:.875rem;margin:0 0 12px;font-weight:500}.action-card strong{font-size:1.35rem}.action-card p{font-size:.875rem;margin:8px 0}.action-card small{font-size:.8125rem;color:#6c6879}.action-card.polling{background:#f5f4f8}.traffic-section .chart-caption{line-height:1.7}.traffic-section .row{gap:12px}.traffic-section .row b{text-align:right;white-space:normal}
@media(max-width:700px){.traffic-section{padding:16px}.traffic-section .metrics,.action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.traffic-columns{grid-template-columns:1fr;gap:22px}.traffic-section .section-head{flex-wrap:wrap;gap:12px}.action-card{padding:12px}.hour-row{grid-template-columns:84px minmax(40px,1fr) 26px}}
select{font:inherit;color:inherit;min-height:44px}select:focus-visible{outline:2px solid #7963a6;outline-offset:3px}.date-toolbar{position:sticky;top:0;z-index:9;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px 16px;margin:0 0 10px;border:1px solid #e7e2ec;border-radius:12px;background:rgba(249,248,251,.98);box-shadow:0 3px 12px #29213108}.date-title b{display:block;font-size:1rem}.date-title small{font-size:.8125rem;color:#787080}.date-controls{display:flex;align-items:center;gap:8px;min-width:0}.date-controls select,.date-controls input{border:1px solid #dcd6e4;border-radius:8px;background:white;padding:8px 10px;min-height:44px;font-size:.9375rem}.date-controls input{width:152px;min-width:132px;color:#332b40}.date-controls button:not(.text-btn){border:1px solid #ddd7e5;border-radius:8px;background:white;font-size:1.4rem;width:44px}.date-controls .text-btn{padding:6px;font-size:.875rem;white-space:nowrap}#date-scope{margin:10px 0 14px;line-height:1.6}.date-toolbar[aria-busy=true]{opacity:.8}@media(max-width:700px){.date-toolbar{flex-wrap:wrap;gap:8px;padding:10px 12px}.date-title{display:flex;align-items:center;gap:10px;width:100%}.date-controls{width:100%;gap:5px;flex-wrap:wrap}.date-controls select{flex:1;min-width:88px;padding:8px 6px}.date-controls input{flex:2;width:136px;font-size:16px;padding:6px;min-width:126px}.date-controls .text-btn{flex-basis:100%;text-align:right;min-height:32px}.date-controls button:not(.text-btn){width:36px;min-width:36px}.date-toolbar .date-title b{font-size:.9375rem}}@media(max-width:345px){.date-controls select{flex-basis:100%}.date-controls .text-btn{flex-basis:auto;margin-left:auto}}
.day-controls{display:flex;align-items:center;gap:5px;min-width:0}.day-controls[hidden],#period-range-label[hidden]{display:none!important}#period-range-label{font-size:14px;line-height:1.5}.traffic-section>summary,.more-stats>summary{cursor:pointer;font-size:16px;font-weight:600;min-height:44px;display:list-item;align-content:center;outline-offset:4px}.traffic-section:not([open]){padding-block:10px}.traffic-section[open]>summary{margin-bottom:16px}.more-stats{margin:16px 0}.more-stats>summary{padding:8px 16px;background:#fff;border:1px solid #e7e2ec;border-radius:12px}.more-stats[open]>summary{margin-bottom:12px}@media(max-width:700px){.day-controls{flex:2}.day-controls input{width:126px;min-width:112px;flex:1}.date-controls select{max-width:145px}.date-controls .text-btn{flex-basis:auto;margin-left:auto}#period-range-label{flex:1;min-width:150px}}@media(max-width:345px){.day-controls{flex-basis:100%;width:100%}.date-controls select{max-width:none}.date-controls #period-range-label{min-width:135px}}
.case-sheet{max-width:860px}.case-gate{margin-top:18px;padding:16px;border:1px solid #e5dfeb;border-radius:12px;background:#faf8fb}.case-gate label{display:block;font-weight:600;margin-bottom:8px}.case-gate select{width:100%;border:1px solid #dcd5e3;border-radius:9px;background:#fff;color:#292430;padding:0 12px}.case-list{display:grid;gap:10px;margin-top:15px}.case-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px 12px;width:100%;padding:15px 16px;border:1px solid #e5dfeb;border-radius:12px;background:#fff;color:#2f2938;text-align:left}.case-card-title{display:flex;align-items:center;gap:9px}.case-card-title b{font-size:15px}.case-card p{grid-column:1;color:#6e6578;font-size:13px}.case-card .chevron{grid-column:2;grid-row:1/3}.case-summary{border:1px solid #ebe5ef;border-radius:12px;padding:0 15px;margin:8px 0 18px}.chart-section{margin:18px 0}.chart-section h3{font:600 17px "Songti SC",serif;color:#3c3446;margin-bottom:10px}.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.chart-item{padding:10px 12px;border:1px solid #ebe6ee;border-radius:9px;background:#faf9fb;color:#4d4556;font-size:13px;overflow-wrap:anywhere}#case-back{padding-left:0;margin-bottom:5px}#case-status{margin:10px 0 0;min-height:28px}
@media(max-width:700px){.case-sheet{max-height:92dvh}.chart-grid{grid-template-columns:1fr}.case-card{padding:14px}.case-summary .row{display:block}.case-summary .row b{display:block;text-align:left;margin-top:3px}}
