@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Noto+Sans+TC:wght@400;500;700;900&display=swap");:root{--brand:#f60;--brand-deep:#c2410c;--brand-tint:#fff2e6;--espresso:#211711;--espresso-2:#34251b;--bg:#faf5ee;--surface:#fff;--ink:#281e16;--ink-soft:#5b4d40;--muted:#94897b;--line:#ece1d2;--line-soft:#f3ebe0;--good:#1c7a45;--warn:#b23b00;--shadow:0 1px 2px rgba(40,25,10,.04),0 8px 26px rgba(120,70,20,.06);--shadow-lift:0 2px 6px rgba(40,25,10,.06),0 16px 38px rgba(120,70,20,.1);--font-body:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;--font-num:"Fraunces",Georgia,"Times New Roman",serif;--r:16px}*{box-sizing:border-box;margin:0;padding:0}.notice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px;padding:10px 14px;border:1px solid #f3d9b8;background:linear-gradient(0deg,#fff6ea,#fffaf3);border-radius:12px;font-size:.82rem;color:var(--ink-soft);box-shadow:var(--shadow)}.notice-tag{flex:none;font-weight:700;font-size:.72rem;letter-spacing:.04em;color:#fff;background:var(--warn);padding:3px 9px;border-radius:999px}.notice-link,.notice-text strong{color:var(--brand-deep);font-weight:700}.notice-link{text-decoration:underline;text-underline-offset:2px;margin:0 2px}.notice-link:hover{color:var(--brand)}tr.pending{background:#f6f8fd}.pending-cell{color:#5b6b9a;font-style:italic}.subj-toggles{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0 16px}.subj-hint{margin-right:2px}.subj-chip,.subj-hint{font-size:.82rem;color:var(--muted)}.subj-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;transition:opacity .15s,border-color .15s,background .15s;font-family:inherit}.subj-chip:hover{border-color:var(--ink-soft)}.subj-chip:not(.on){opacity:.5}.subj-chip.on{color:var(--ink);background:var(--brand-tint);border-color:#f0d9b8}.subj-chip .dot{width:10px;height:10px;border-radius:50%;border:2px solid;flex:none;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--ink);line-height:1.6;background-color:var(--bg);background-image:radial-gradient(1100px 520px at 88% -8%,#fff3e8 0,rgba(255,243,232,0) 60%),radial-gradient(900px 480px at -6% 6%,#fdeede 0,hsla(31,89%,93%,0) 55%);background-attachment:fixed;min-height:100vh}header.app{position:-webkit-sticky;position:sticky;top:0;z-index:20;width:100%;background:linear-gradient(180deg,var(--espresso-2),var(--espresso));color:#f6ede2;box-shadow:0 10px 30px rgba(33,23,17,.16);transition:transform .28s ease,box-shadow .28s ease}.app-row{display:flex;flex-wrap:nowrap;align-items:center;gap:18px;padding:0 24px;min-height:56px;overflow:hidden}.app-row>*{flex:none}header.app h1{font-size:1.08rem;font-weight:700;letter-spacing:.01em;display:flex;align-items:center;gap:9px;white-space:nowrap}header.app h1:before{content:"";width:8px;height:20px;border-radius:3px;background:linear-gradient(180deg,#ff8a33,var(--brand));box-shadow:0 0 0 4px rgba(255,102,0,.14)}header.app .sub{font-size:.74rem;color:#ffb27a;font-weight:600;letter-spacing:.02em;margin-left:6px}.app-info{display:flex;align-items:center;gap:14px}.app-who{font-size:.82rem;color:#e6d8c8;white-space:nowrap}.app-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.app-actions .btn{padding:7px 13px;font-size:.85rem}.entry-scores{display:flex;flex-direction:column;gap:4px}.entry-row{display:flex;flex-wrap:nowrap;align-items:center;gap:4px}.entry-row dt{font-weight:700;color:#ffb27a;margin-right:3px;letter-spacing:.04em}.entry-row dd,.entry-row dt{font-size:.7rem;white-space:nowrap}.entry-row dd{color:#d9c9b6;background:hsla(0,0%,100%,.06);border:1px solid hsla(33,53%,93%,.14);border-radius:999px;padding:0 8px 0 7px}.entry-row dd b{font-family:var(--font-num);font-weight:600;font-size:.82rem;color:#fff;margin-left:4px}.btn.line{flex:none;display:inline-flex;align-items:center;gap:6px;background:#06c755;box-shadow:0 6px 16px rgba(6,199,85,.22);text-decoration:none;white-space:nowrap}.btn.line:hover{background:#05b34c;box-shadow:0 10px 22px rgba(6,199,85,.3)}.app-nav{display:flex;align-items:center;gap:12px}.nav-seg{display:inline-flex;flex:none;gap:2px;padding:3px;border-radius:999px;background:hsla(0,0%,100%,.07);border:1px solid hsla(33,53%,93%,.12)}.nav-seg a,.nav-seg button{font:inherit;font-weight:700;font-size:.8rem;padding:4px 12px;border:0;border-radius:999px;background:transparent;color:#c8b8a6;cursor:pointer;white-space:nowrap;text-decoration:none;transition:color .15s ease,background .15s ease}.nav-seg a:hover,.nav-seg button:hover{color:#fff}.nav-seg .on{background:var(--brand);color:#fff}.nav-tabs{display:flex;flex:none;gap:0}.nav-tabs button{font:inherit;font-weight:700;font-size:.88rem;padding:17px 11px 15px;border:0;border-bottom:2.5px solid transparent;background:transparent;color:#c8b8a6;cursor:pointer;white-space:nowrap;transition:color .15s ease,border-color .15s ease}.nav-tabs button:hover{color:#fff}.nav-tabs button.on{color:#fff;border-bottom-color:var(--brand)}.app-toggle{display:none;align-items:center;gap:6px}.app-toggle .caret{flex:none;transition:transform .2s ease}.app-toggle .toggle-menu,.app-toggle .toggle-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-toggle[aria-expanded=true] .caret{transform:rotate(180deg)}.app-toggle .toggle-menu{display:none}.app-panel{border-top:1px solid hsla(33,53%,93%,.1);padding:12px 24px 16px;display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 56px);overflow-y:auto}.app-panel .entry-row{flex-wrap:wrap;row-gap:5px}.app-panel .app-nav{flex-direction:column;align-items:flex-start;gap:10px}.app-panel .nav-tabs{flex-wrap:wrap;flex:1 1 auto;gap:6px}.app-panel .nav-tabs button{padding:7px 13px;border:1px solid hsla(33,53%,93%,.16);border-radius:999px}.app-panel .nav-tabs button.on{background:var(--brand);border-color:var(--brand)}.app-panel__foot{display:flex;justify-content:flex-end}header.app[data-mode=mid] .app-row>.app-info{display:none}header.app[data-mode=mid] .app-toggle{display:inline-flex}header.app[data-mode=compact] .app-logout,header.app[data-mode=compact] .app-row>.app-info,header.app[data-mode=compact] .app-row>.app-nav,header.app[data-mode=compact] .line-text,header.app[data-mode=compact] .sub,header.app[data-mode=compact] .toggle-name,header.app[data-mode=mid] .sub{display:none}header.app[data-mode=compact] .app-actions{flex:0 1 auto;min-width:0}header.app[data-mode=compact] .app-toggle{display:inline-flex;min-width:0;color:#ffd2ad}header.app[data-mode=compact] .toggle-menu{display:inline}header.app[data-mode=compact] .app-row{gap:12px;padding:0 14px}header.app[data-mode=compact] .app-panel{padding:12px 14px 16px}@media (max-width:900px){header.app[data-mode=auto] .app-logout,header.app[data-mode=auto] .app-row>.app-info,header.app[data-mode=auto] .app-row>.app-nav,header.app[data-mode=auto] .line-text,header.app[data-mode=auto] .sub{display:none}}.wrap{max-width:1040px;margin:0 auto;padding:26px 28px 60px}.bar{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:18px}.bar label{font-size:.85rem;font-weight:700;color:var(--muted);margin-right:6px}select{font:inherit;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-width:160px}.meta{font-size:.85rem;color:var(--ink-soft);margin-bottom:20px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}.meta b{color:var(--ink);font-weight:700}.meta span{color:var(--muted)}.tabs{display:flex;gap:4px;margin-bottom:22px;border-bottom:1px solid var(--line);overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{font:inherit;font-weight:700;font-size:.92rem;padding:11px 16px;border:0;background:transparent;color:var(--muted);cursor:pointer;border-bottom:2.5px solid transparent;margin-bottom:-1px;white-space:nowrap;flex:0 0 auto;transition:color .15s ease}.tab:hover{color:var(--ink)}.tab.on{color:var(--brand-deep);border-bottom-color:var(--brand)}.subj-chip .sub,.tab .sub{font-size:.78em;font-weight:600;color:var(--muted)}.tab.on .sub{color:var(--brand)}.kpis{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:24px}.kpi{flex:1 1;min-width:132px;border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:var(--surface);box-shadow:var(--shadow);position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#ffb27a,var(--brand));opacity:.85}.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}.kpi .v{font-family:var(--font-num);font-size:2.05rem;font-weight:600;color:var(--brand-deep);line-height:1.05;letter-spacing:-.01em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi .v span{font-size:.85rem;font-family:var(--font-body)}.kpi .l,.kpi .v span{color:var(--muted);font-weight:600}.kpi .l{font-size:.74rem;margin-top:6px;letter-spacing:.01em}.card{border:1px solid var(--line);border-radius:var(--r);padding:22px;margin-bottom:22px;background:var(--surface);box-shadow:var(--shadow)}.card h2{font-size:1.02rem;font-weight:700;margin-bottom:16px;color:var(--ink);display:flex;align-items:center;gap:9px}.card h2:before{content:"";width:5px;height:17px;border-radius:2px;background:var(--brand)}.chart-box{position:relative;height:360px;margin-top:4px}.radar-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:24px;gap:24px;align-items:center}.radar-box{position:relative;width:100%;max-width:400px;margin:0 auto}.radar-list{list-style:none;font-size:.9rem}.radar-list li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 4px;border-bottom:1px solid var(--line-soft)}.radar-list .delta{font-weight:700;margin-left:6px;font-size:.85em}.card h2.radar-pr-title{flex-wrap:wrap}.radar-pr-tag{margin-left:auto;font-weight:400}.radar-pr-detail,.radar-pr-tag{font-size:.79rem;color:var(--muted)}.radar-pr-detail{display:block;margin-top:3px}@media (max-width:640px){.radar-split{grid-template-columns:1fr;gap:12px}.radar-box{max-width:340px}}table{width:100%;border-collapse:collapse;font-size:.85rem}td,th{padding:9px 11px;text-align:center;white-space:nowrap;border-bottom:1px solid var(--line-soft)}thead th{background:var(--brand-tint);color:var(--brand-deep);font-weight:700;font-size:.78rem;letter-spacing:.02em;border-bottom:1.5px solid #ffd9b8;position:-webkit-sticky;position:sticky;top:0}td{font-family:var(--font-num),var(--font-body);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink)}td b{font-weight:600}td:first-child,th:first-child{text-align:left;font-family:var(--font-body);color:var(--ink-soft);font-weight:600}tbody tr{transition:background .12s ease}tbody tr:hover td{background:#fffaf3}tr.absent td{background:#fff5ef}tr.absent:hover td{background:#ffefe4}.note{font-size:.79rem;color:var(--muted);margin-top:12px;line-height:1.7}.miss{display:inline-block;font-size:.7rem;font-weight:700;color:#a83400;background:#ffe6d6;border:1px solid #ffc7a3;border-radius:999px;padding:1px 9px;letter-spacing:.02em}.btn{font:inherit;font-weight:700;padding:10px 18px;border:0;border-radius:10px;background:var(--brand);color:#fff;cursor:pointer;box-shadow:0 6px 16px rgba(255,102,0,.26);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.btn:hover{background:#ff7a1f;transform:translateY(-1px);box-shadow:0 10px 22px rgba(255,102,0,.32)}.btn:active{transform:translateY(0)}.btn.ghost{background:transparent;color:#f0e3d4;border:1px solid hsla(33,53%,93%,.34);box-shadow:none}.btn.ghost:hover{background:hsla(0,0%,100%,.08);color:#fff;transform:none}.login-wrap{max-width:400px;margin:11vh auto;padding:0 24px}.login-card{border:1px solid var(--line);border-radius:20px;padding:34px 30px;background:var(--surface);box-shadow:var(--shadow-lift);position:relative;overflow:hidden;animation:rise .6s cubic-bezier(.2,.7,.2,1) both}.login-card:before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,#ff8a33,var(--brand),#ffae73)}.login-card h1{font-size:1.32rem;font-weight:700}.field{margin-bottom:15px}.field label{display:block;font-size:.8rem;font-weight:700;color:var(--ink-soft);margin-bottom:6px}.field input{width:100%;font:inherit;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:#fffdfb;transition:border-color .15s ease,box-shadow .15s ease}.field input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(255,102,0,.14)}.err{color:var(--warn);font-size:.85rem;margin-bottom:14px;background:#fff1ea;border:1px solid #ffd2bd;border-radius:9px;padding:9px 12px}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.card,.kpi{animation:rise .5s cubic-bezier(.2,.7,.2,1) both}.kpis .kpi:first-child{animation-delay:.03s}.kpis .kpi:nth-child(2){animation-delay:.08s}.kpis .kpi:nth-child(3){animation-delay:.13s}.kpis .kpi:nth-child(4){animation-delay:.18s}.wrap .card:first-of-type{animation-delay:.16s}.wrap .card:nth-of-type(2){animation-delay:.22s}.wrap .card:nth-of-type(3){animation-delay:.28s}.wrap .card:nth-of-type(4){animation-delay:.34s}@media (prefers-reduced-motion:reduce){.card,.kpi,.login-card{animation:none!important}}@media (max-height:500px),(max-width:640px){header.app.app-hidden{transform:translateY(-100%);box-shadow:none}}@media (max-width:640px){header.app h1{font-size:1rem}header.app h1:before{height:18px}.wrap{padding:18px 14px 48px}.card{padding:16px}.chart-box{height:300px}.kpi{min-width:calc(50% - 7px);padding:13px 14px}.kpi .v{font-size:1.7rem}table{font-size:.8rem}td,th{padding:8px 9px}}.guide p{font-size:.86rem;color:var(--ink-soft);margin-bottom:9px}.guide p:last-child{margin-bottom:0}.guide ul{margin:0 0 9px;padding-left:1.15em}.guide li{font-size:.86rem;color:var(--ink-soft);margin-bottom:6px}.guide li::marker{color:var(--brand)}.guide b{color:var(--ink);font-weight:700}.guide h3{font-size:.92rem;font-weight:700;color:var(--brand-deep);margin:22px 0 8px;padding-left:11px;border-left:3px solid #ffd0a8}.guide .card>h3:first-of-type{margin-top:4px}.guide .note{margin-top:6px}.entries{display:grid;grid-template-columns:repeat(auto-fit,minmax(212px,1fr));grid-gap:12px;gap:12px;margin-top:16px}.entry{font:inherit;text-align:left;cursor:pointer;display:block;padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,#fffdfa,var(--surface));box-shadow:var(--shadow);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.entry:hover{transform:translateY(-2px);border-color:#f3cda6;box-shadow:var(--shadow-lift)}.entry .t{display:block;font-weight:700;font-size:.9rem;color:var(--brand-deep)}.entry .d{display:block;font-size:.75rem;color:var(--muted);margin-top:5px;line-height:1.55}.login-wrap{max-width:424px;margin:6vh auto 8vh}.login-help{border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:11px;background:#fffaf4;padding:12px 14px;margin-bottom:18px}.login-help p{font-size:.8rem;color:var(--ink-soft);line-height:1.7}.login-help p+p{margin-top:7px}.login-help b{color:var(--ink);font-weight:700}.login-details{margin-top:16px;border-top:1px solid var(--line-soft);padding-top:12px}.login-details summary{cursor:pointer;font-size:.8rem;font-weight:700;color:var(--brand-deep);list-style:none}.login-details summary::-webkit-details-marker{display:none}.login-details summary:before{content:"＋ ";font-weight:700}.login-details[open] summary:before{content:"－ "}.login-details p{font-size:.78rem;color:var(--ink-soft);line-height:1.75;margin-top:8px}.login-foot{font-size:.75rem;color:var(--muted);line-height:1.7;margin-top:12px}@media (max-width:640px){.login-wrap{margin:3vh auto 6vh;padding:0 16px}.login-card{padding:26px 20px}.entries{grid-template-columns:1fr}.guide h3{margin-top:18px}}.login-card .login-title{font-size:1.2rem;margin-bottom:6px}.login-lede{color:var(--muted);font-size:.85rem;margin-bottom:18px;line-height:1.65}.login-main-title{display:none}@media (min-width:900px){.login-wrap{max-width:1000px;margin:max(24px,calc((100vh - 700px) / 2)) auto;padding:0 32px}.login-card{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);padding:0}.login-intro{padding:46px 40px 40px;background:radial-gradient(120% 70% at 0 0,rgba(255,138,51,.1),transparent 60%),linear-gradient(180deg,#fffaf4,#fdf3e8);border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.login-card .login-title{font-size:1.62rem;letter-spacing:.02em;margin-bottom:10px}.login-lede{font-size:.92rem;color:var(--ink-soft);margin-bottom:22px}.login-intro .notice{box-shadow:none}.login-intro .login-help{margin-bottom:0;background:hsla(0,0%,100%,.72)}.login-intro .login-help p{font-size:.84rem}.login-main{padding:46px 44px 36px;display:flex;flex-direction:column;justify-content:center}.login-main-title{display:block;font-size:1.15rem;font-weight:700;color:var(--ink);margin-bottom:18px;padding-left:11px;border-left:3px solid var(--brand);line-height:1.3}}.site-foot{border-top:1px solid var(--line);background:var(--surface);margin-top:40px}.site-foot__line{max-width:1040px;margin:0 auto;padding:14px 28px 16px;text-align:center;color:var(--muted);font-size:.74rem;line-height:1.8}.site-foot__sep{margin:0 8px;opacity:.55}.site-foot__build{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}@media (max-width:720px){.site-foot__line{padding:12px 14px 14px;font-size:.7rem}.site-foot__sep{display:none}.site-foot__build{display:block}}