:root{--ink:#172b3a;--muted:#667887;--line:#dfe6e8;--paper:#f5f7f6;--navy:#142e3f;--teal:#087e82;--red:#bc4547;--green:#198263;--gold:#bf9553;--white:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #37babc;outline-offset:3px}a{color:var(--teal)}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;margin-bottom:10px}h2{font-size:19px;margin-bottom:8px}h3{font-size:16px}p{line-height:1.7}small,.muted{color:var(--muted)}.loading{min-height:100vh;display:grid;place-content:center;text-align:center;gap:20px}.brandmark{height:45px;width:45px;display:grid;place-items:center;border:1px solid #ffffff45;border-radius:12px;color:#e4ca9c;font-weight:600;background:var(--navy);font-size:22px}.auth{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.auth-story{background:var(--navy);color:white;padding:12vh 11%;position:relative;overflow:hidden}.auth-story:after{content:"";height:390px;width:390px;border:1px solid #ffffff15;position:absolute;border-radius:50%;right:-160px;bottom:-110px;box-shadow:0 0 0 55px #ffffff04,0 0 0 110px #ffffff03}.eyebrow{font-size:11px;font-weight:650;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted)}.auth-story .eyebrow{color:#b6c6cd;margin-top:80px}.auth-story h1{font-size:40px;line-height:1.45;font-weight:550}.auth-story p{color:#b6c6cd;font-size:14px;max-width:320px}.auth-story footer{margin-top:100px;font-size:11px;letter-spacing:2px;color:#91aab8}.auth-form-wrap{display:grid;place-content:center;padding:40px}.auth-form{width:360px;max-width:100%}.auth-form h2{font-size:25px;margin:12px 0}.auth-form .intro{font-size:13px;color:var(--muted);margin-bottom:30px}.field{margin-bottom:20px}label{font-size:13px;display:block;font-weight:600;margin-bottom:8px}input:not([type=file]){width:100%;border:1px solid #cad6d9;background:white;padding:13px;border-radius:8px;color:var(--ink)}.primary{border:0;border-radius:8px;padding:12px 20px;background:var(--navy);color:white;font-weight:600;font-size:13px}.primary:hover{background:#224b63}.wide{width:100%}.secondary{border:1px solid var(--line);border-radius:8px;padding:9px 15px;background:white;font-size:12px;color:var(--ink)}.link-button{border:0;background:none;padding:10px 0;color:var(--teal);font-size:12px}.auth-note{border-top:1px solid var(--line);margin-top:28px;padding-top:18px;color:var(--muted);font-size:11px;line-height:1.8}.error{color:var(--red);font-size:13px;min-height:20px}.shell{display:grid;grid-template-columns:214px 1fr;min-height:100vh}.sidebar{background:var(--navy);color:#d6e3e9;padding:30px 20px;display:flex;flex-direction:column;position:fixed;width:214px;inset:0 auto 0 0}.brand{display:flex;gap:12px;align-items:center;margin:0 0 48px}.brand strong{font-size:17px;letter-spacing:2px}.brand small{display:block;font-size:8px;letter-spacing:1.5px;color:#8aa5b6;margin-top:4px}.nav-label{font-size:9px;color:#829eae;letter-spacing:2px;padding:0 13px;margin-bottom:12px}.nav button{display:flex;align-items:center;gap:12px;border:0;color:#b2c5cf;background:none;width:100%;text-align:left;padding:14px;border-radius:8px;margin:4px 0;font-size:13px}.nav button.active{color:white;background:#ffffff12;border-left:2px solid #c9a76d}.nav .symbol{font-size:17px;width:22px}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff16;padding-top:20px;color:#90a9b7;font-size:11px;line-height:1.9}.sidebar-bottom .logout{color:#c8d9e2}.main{grid-column:2;padding:0 42px 40px;min-width:0}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted);margin-bottom:34px}.topbar .tag{font-size:10px;background:#e8eeeb;padding:5px 10px;border-radius:20px;color:#526c60}.user-chip{display:flex;align-items:center;gap:9px}.avatar{width:29px;height:29px;border:1px solid #ced9dd;background:white;border-radius:50%;display:grid;place-items:center;font-size:11px;color:var(--ink)}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:26px}.page-head p{font-size:12px;margin:0;color:var(--muted)}.badge{display:inline-block;font-size:10px;padding:5px 9px;border-radius:5px;font-weight:600;background:#e7f0eb;color:#39735b;white-space:nowrap}.badge.warning{color:#8d6829;background:#f7efdf}.badge.block{background:#fbe8e7;color:#aa4244}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:22px}.card,.panel{background:white;border:1px solid var(--line);border-radius:12px}.card{padding:22px}.card.feature{background:var(--navy);color:white;border:0}.card-label{font-size:11px;color:var(--muted);margin-bottom:18px}.feature .card-label{color:#b6cbd6}.value{font-size:29px;letter-spacing:-1px;font-variant-numeric:tabular-nums;margin-bottom:10px;overflow-wrap:anywhere}.value small{font-size:12px;letter-spacing:0;margin-right:6px}.card-caption{font-size:10px;color:var(--muted);line-height:1.6}.feature .card-caption{color:#a5bdca}.positive{color:var(--red)}.negative{color:var(--green)}.feature .positive{color:#ffb6a9}.feature .negative{color:#80d7b3}.panel{padding:24px;margin-bottom:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.panel-head p{font-size:11px;color:var(--muted);margin:0}.grid-two{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(240px,1fr);gap:20px}.chart{height:225px;width:100%;display:block;margin-top:20px}.chart-footer{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.metric-row{display:flex;justify-content:space-between;align-items:flex-start;padding:13px 0;gap:15px;border-bottom:1px solid #edf0f1;font-size:12px;line-height:1.6}.metric-row:last-child{border:0}.metric-row span{color:var(--muted)}.metric-row strong{text-align:right;font-weight:500}.notice{padding:14px 17px;background:#f3efe6;border:1px solid #e7dfca;border-radius:8px;font-size:11px;color:#82704b;line-height:1.8;margin-bottom:22px}.notice.neutral{background:#edf3f4;color:#587580;border-color:#dbe7e9}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}th{text-align:right;font-size:10px;font-weight:500;color:var(--muted);background:#f7f9f9;padding:13px 14px;border-bottom:1px solid var(--line)}td{text-align:right;padding:14px;border-bottom:1px solid #ecf0f1}td:first-child,th:first-child{text-align:left}tr:last-child td{border:0}.empty{text-align:center;padding:65px 24px}.empty-icon{width:58px;height:58px;border:1px solid var(--line);background:var(--paper);margin:0 auto 20px;border-radius:16px;display:grid;place-items:center;font-size:25px;color:var(--teal)}.empty p{font-size:13px;color:var(--muted);max-width:410px;margin:0 auto 20px}.source{font-size:10px;line-height:1.9;color:var(--muted);overflow-wrap:anywhere}.source a{color:var(--teal)}.check{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #edf0f1;font-size:12px;line-height:1.7}.check .badge{min-width:43px;text-align:center}.import-box{padding:22px;border:1px dashed #b9cbd0;border-radius:10px;background:#f8faf9;margin-top:20px}.import-box p{font-size:12px;color:var(--muted)}input[type=file]{width:100%;font-size:12px;margin:10px 0 18px}input[type=file]::file-selector-button{background:#e5eeef;border:0;padding:9px 13px;border-radius:6px;margin-right:15px;color:#325867}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.footer{font-size:10px;line-height:1.8;color:#90a0a9;padding-top:15px;display:flex;justify-content:space-between;gap:15px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;border-radius:8px;box-shadow:0 5px 25px #0002;font-size:12px;padding:14px 20px;z-index:100;display:none;max-width:90vw}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.break{overflow-wrap:anywhere}
@media(min-width:1500px){.main{max-width:1500px;width:100%;margin:auto}}@media(max-width:1100px){.main{padding:0 25px 30px}.cards{gap:12px}.card{padding:18px}.value{font-size:23px}.grid-two{grid-template-columns:1fr}}@media(max-width:760px){.auth{display:block}.auth-story{padding:25px 25px 30px}.auth-story .eyebrow{margin-top:25px}.auth-story h1{font-size:27px;margin-bottom:0}.auth-story p,.auth-story footer{display:none}.auth-form-wrap{padding:32px 25px}.auth-form{width:min(420px,calc(100vw - 50px))}.shell{display:block}.sidebar{position:static;width:auto;padding:18px 20px 0;display:block}.brand{margin:0 0 15px}.brandmark{height:36px;width:36px;font-size:18px}.brand strong{font-size:16px}.nav-label,.sidebar-bottom{display:none}.nav{display:flex;gap:3px}.nav button{justify-content:center;font-size:12px;gap:6px;padding:12px 5px;border-radius:7px 7px 0 0;margin:0}.nav button.active{border-left:0;border-bottom:2px solid #c9a76d}.nav .symbol{font-size:14px;width:auto}.main{padding:0 18px 30px}.topbar{height:62px;margin-bottom:23px}.topbar .tag{display:none}.page-head{align-items:flex-start;margin-bottom:20px;gap:8px}.page-head h1{font-size:25px}.page-head .badge{font-size:9px;margin-top:5px}.cards{grid-template-columns:1fr 1fr;gap:10px}.card.feature{grid-column:1/-1}.value{font-size:24px}.feature .value{font-size:32px}.card{padding:18px 15px}.card-label{margin-bottom:14px}.panel{padding:18px}.panel-head h2{font-size:16px}.chart{height:190px}.notice{font-size:11px}.footer{display:block}.user-chip .logout{display:inline}.mobile-logout{display:inline}.panel .empty{padding:30px 5px}.check{font-size:11px}.source{font-size:9px}}@media(min-width:761px){.mobile-logout{display:none}}
