@import "https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@500;600;700&family=Noto+Sans+TC:wght@400;500;700&family=JetBrains+Mono:wght@500&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{--bg:#f3f7f4;--panel:#fbfdf9;--line:#d2dfd5;--ink:#1f2a24;--muted:#5f7268;--mint:#01896d;--mint-deep:#016050;--danger:#cc3b3b;--warning:#c06900;--shadow:0 12px 35px #04352a14}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{color:var(--ink);background:radial-gradient(circle at 12% 8%,#008b6d24,#0000 42%),radial-gradient(circle at 86% 14%,#ffb14224,#0000 34%),linear-gradient(165deg,#f5fbf8 0%,#edf5f1 100%);font-family:Noto Sans TC,sans-serif}#root{height:100%;overflow:hidden}.demo-shell{height:100%;padding:2.1rem 2rem 2.3rem;position:relative;overflow:hidden auto}.ambient-glow{filter:blur(70px);opacity:.25;pointer-events:none;border-radius:50%;width:320px;height:320px;position:absolute}.ambient-one{background:#2ec69f;top:-180px;right:-60px}.ambient-two{background:#ffbd4f;bottom:-180px;left:-90px}.hero{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;animation:.55s ease-out both rise-in;display:flex}.eyebrow{color:var(--mint-deep);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.hero h1{margin:.2rem 0 0;font-family:Chakra Petch,sans-serif;font-size:clamp(1.6rem,3vw,2.35rem);line-height:1.12}.hero-subtitle{color:var(--muted);max-width:730px;margin:.45rem 0 0;font-size:.95rem}.hero-status-row{flex-wrap:wrap;justify-content:flex-end;gap:.55rem;display:flex}.badge{border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;padding:.4rem .8rem;font-size:.76rem;font-weight:700;display:inline-flex}.badge-demo{color:#00795f;border-color:#00795f}.badge-good{color:#06614d;background:#e6f8f0;border-color:#82c8ac}.badge-bad{color:#7f2121;background:#fff2f2;border-color:#e7b4b4}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:1rem 0 1.1rem;display:grid}.tab-row{border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:var(--shadow);background:#ffffffb8;border-radius:.95rem;align-items:center;gap:.5rem;margin:0 0 .95rem;padding:.35rem;animation:.55s ease-out both rise-in;display:flex}.tab-btn{color:#2f453c;letter-spacing:.01em;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.7rem;padding:.5rem .9rem;font-size:.82rem;font-weight:700;transition:all .2s}.tab-btn:hover{background:#f4faf7;border-color:#d7e9df}.tab-btn.active{color:#fff;background:linear-gradient(130deg,#0b8c6e,#20b086);border-color:#0b8c6e;box-shadow:0 6px 16px #0870573d}.stat-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:var(--shadow);background:#ffffffbf;border-radius:1rem;align-items:center;gap:.7rem;padding:.85rem 1rem;animation:.6s both rise-in;display:flex}.stat-icon{border-radius:.7rem;place-items:center;width:34px;height:34px;display:grid}.icon-cyan{color:#017f65;background:#d7f5ef}.icon-gold{color:#a55a00;background:#fff1d9}.icon-green{color:#00674f;background:#def5e9}.stat-label{color:var(--muted);margin:0;font-size:.79rem}.stat-value{margin:.1rem 0 0;font-family:Chakra Petch,sans-serif;font-size:1.03rem;font-weight:700}.layout-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:.8rem;display:grid}.layout-grid.layout-single{grid-template-columns:1fr}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:1rem;padding:.92rem;animation:.6s both rise-in}.panel.wide{grid-column:1/2}.panel.full{grid-column:1/-1}.panel-head{justify-content:space-between;align-items:baseline;gap:.6rem;margin-bottom:.7rem;display:flex}.panel-head h2{letter-spacing:.02em;margin:0;font-family:Chakra Petch,sans-serif;font-size:1.02rem}.hint{color:var(--muted);font-size:.75rem}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}label{color:var(--muted);flex-direction:column;gap:.28rem;font-size:.78rem;display:flex}input,select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:.65rem;padding:.56rem .62rem;font-family:Noto Sans TC,sans-serif;font-size:.82rem}input:focus,select:focus{border-color:#5ebba0;outline:2px solid #01896d40}.network-section{flex-direction:column;gap:.5rem;margin-top:.72rem;display:flex}.network-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.net-chip{border:1px solid var(--line);background:#fff;border-radius:.65rem;justify-content:space-between;align-items:center;padding:.5rem .6rem;font-size:.76rem;display:flex}.recheck-btn{align-self:flex-start}.net-chip.checking{opacity:.65}.recheck-btn{align-self:flex-start;gap:.3rem}.net-chip strong.ng{color:var(--danger)}.service-light-row{border:1px solid var(--line);border-radius:.75rem;align-items:center;gap:.5rem;margin-bottom:.6rem;padding:.58rem .7rem;display:flex}.service-light-row p{margin:0;font-size:.82rem}.light{border-radius:50%;flex-shrink:0;width:.72rem;height:.72rem}.light-green{background:#16a178;box-shadow:0 0 0 6px #16a1782b}.light-red{background:#d54545;box-shadow:0 0 0 6px #d5454529}.button-row{grid-template-columns:1fr;gap:.45rem;display:grid}.btn{cursor:pointer;border:1px solid #0000;border-radius:.72rem;justify-content:center;align-items:center;gap:.35rem;padding:.56rem .74rem;font-size:.79rem;font-weight:700;transition:transform .2s,box-shadow .2s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn.primary{color:#fff;background:linear-gradient(130deg,#057e63,#13aa82);box-shadow:0 8px 18px #066d563d}.btn.danger{color:#fff;background:linear-gradient(130deg,#bd3f3f,#db5858);box-shadow:0 8px 18px #a3252533}.btn.subtle{color:#2f443b;border-color:var(--line);background:#fff}.btn.subtle.active{color:#035f4c;background:#effaf5;border-color:#6ebda4}.full-btn{width:100%;margin-top:.56rem}.warning-box{color:var(--warning);background:#fff9ef;border:1px solid #f0d9b9;border-radius:.66rem;align-items:center;gap:.35rem;margin-top:.6rem;padding:.53rem .6rem;font-size:.77rem;display:flex}.warning-box.hide{display:none}.monitor-head{align-items:center}.toolbar{flex-wrap:wrap;gap:.35rem;display:flex}.chip-btn{border:1px solid var(--line);color:#2d4038;cursor:pointer;background:#fff;border-radius:999px;padding:.38rem .68rem;font-size:.73rem;font-weight:700}.chip-btn.active{color:#fff;background:#0f9072;border-color:#0f9072}.quick-actions{flex-wrap:wrap;gap:.4rem;margin-bottom:.55rem;display:flex}.freeze-banner{color:#1c5f4d;background:#eff8f4;border:1px solid #d8e7df;border-radius:.65rem;margin-bottom:.45rem;padding:.5rem .65rem;font-size:.76rem;font-weight:600}.heartbeat{color:#4b665b;margin:0 0 .45rem;font-size:.73rem}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:.8rem;max-width:100%;overflow:auto visible}table{border-collapse:collapse;width:100%;min-width:1020px;font-size:.75rem}thead th{text-align:left;color:#476156;border-bottom:1px solid var(--line);background:#f2f8f5;padding:.55rem}tbody td{vertical-align:middle;border-bottom:1px solid #edf3ef;padding:.53rem}tbody tr:hover{background:#f6fbf8}.clickable-row{cursor:pointer}.checkbox-col{text-align:center;width:32px}.checkbox-col input{width:.92rem;height:.92rem}.mono{font-family:JetBrains Mono,monospace}.status-pill{border-radius:999px;align-items:center;gap:.2rem;padding:.22rem .48rem;font-size:.7rem;font-weight:700;display:inline-flex}.status-pill.processing{color:#005d8a;background:#ebf7ff}.status-pill.pending{color:#5c6661;background:#f5f5f5}.status-pill.error{color:#a92e2e;background:#feeff0}.status-pill.done{color:#087257;background:#e7f8ef}.status-pill.enable-on{color:#087257;background:#e7f8ef;border:1px solid #82c8ac}.status-pill.enable-off{color:#4b5563;background:#f3f4f6;border:1px solid #d1d5db}.status-cell{flex-direction:column;gap:.28rem;display:flex}.status-time{color:#5a7065;margin:0;font-size:.68rem}.admin-type-config{grid-template-columns:180px 1fr auto;align-items:end;gap:.6rem;margin-bottom:.8rem;display:grid}.admin-code-actions{gap:.35rem;display:flex}.admin-code-form{gap:.7rem;margin-bottom:1rem;display:grid}.report-table thead th{text-align:center;vertical-align:middle}.report-filter-row{flex-wrap:wrap;gap:.6rem;margin-bottom:.7rem;display:flex}.progress-wrap{align-items:center;gap:.4rem;min-width:120px;display:flex}.progress-wrap span{color:#496257;width:2.1rem;font-size:.7rem}.progress-bar{background:linear-gradient(90deg,#2ebf95,#0e7a61);border-radius:999px;flex:1;width:0;height:.42rem;transition:width .35s;box-shadow:inset 0 0 0 1px #ffffff2e}.maintenance-grid{grid-template-columns:1fr;gap:.48rem;margin-bottom:.55rem;display:grid}.log-clean-range{grid-template-columns:1fr 1fr;gap:.55rem;margin-bottom:.55rem;display:grid}.action-card{border:1px solid var(--line);text-align:left;color:var(--ink);cursor:pointer;background:#fff;border-radius:.76rem;align-items:flex-start;gap:.52rem;padding:.6rem;display:flex}.action-card h3{margin:0;font-family:Chakra Petch,sans-serif;font-size:.8rem}.action-card p{color:var(--muted);margin:.16rem 0 0;font-size:.73rem}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin;display:inline-block}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:9999;background:#0a19126b;justify-content:center;align-items:center;animation:.2s rise-in;display:flex;position:fixed;inset:0}.modal-box{background:var(--panel);border:1px solid var(--line);border-radius:1.2rem;width:min(440px,92vw);padding:1.6rem 1.7rem 1.4rem;animation:.25s rise-in;position:relative;box-shadow:0 28px 60px #04281c38}.modal-box.modal-lg{flex-direction:column;width:min(880px,95vw);max-height:88vh;display:flex;overflow:hidden}.modal-lg .log-viewport{flex:1;max-height:none;overflow-y:auto}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:.2rem;line-height:1;position:absolute;top:.9rem;right:.9rem}.modal-icon-row{border-radius:.85rem;place-items:center;width:44px;height:44px;margin-bottom:.75rem;display:grid}.icon-danger{color:#b83c3c;background:#fce8e8}.icon-warning{color:#a05a00;background:#fff4e0}.icon-log{color:#2355a0;background:#e8f0fe}.log-viewport{background:#0f1b14;border:1px solid #1e3528;border-radius:.65rem;flex-direction:column;gap:.22rem;max-height:340px;margin-bottom:.9rem;padding:.7rem .75rem;font-family:JetBrains Mono,monospace;font-size:.71rem;display:flex;overflow-y:auto}.log-line{align-items:baseline;gap:.45rem;line-height:1.5;display:flex}.log-ts{color:#4a7c62;flex-shrink:0}.log-badge{border-radius:4px;flex-shrink:0;padding:0 .28rem;font-size:.65rem;font-weight:700}.log-badge-info{color:#7ec8f0;background:#1a3a58}.log-badge-warn{color:#f0c060;background:#3d2e00}.log-badge-error{color:#f07070;background:#3a1010}.log-msg{color:#c8e0d0}.log-warn .log-msg{color:#f0c878}.log-error .log-msg{color:#f09090}.modal-title{margin:0 0 .5rem;font-family:Chakra Petch,sans-serif;font-size:1.05rem}.modal-desc{color:var(--muted);margin:0 0 1rem;font-size:.84rem;line-height:1.6}.modal-desc strong{color:var(--ink)}.modal-range{margin-bottom:1rem}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.detail-grid{grid-template-columns:1fr;gap:.35rem;margin-bottom:1rem;display:grid}.detail-grid p{margin:0;font-size:.82rem}.reply-files-block{margin-top:.4rem}.reply-files-list{gap:.45rem;margin-top:.35rem;display:grid}.reply-file-item{border:1px solid var(--line);border-radius:.65rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .55rem;display:flex}.row-action-cell{width:60px;position:relative}.row-action-kebab{border:1px solid var(--line);color:#415a4f;cursor:pointer;letter-spacing:1px;background:#fff;border-radius:.5rem;min-width:34px;height:28px;font-weight:700}.row-action-menu{z-index:20;border:1px solid var(--line);background:#fff;border-radius:.55rem;gap:.15rem;min-width:130px;padding:.3rem;display:grid;position:absolute;top:32px;right:0;box-shadow:0 10px 20px #06281824}.row-action-item{text-align:left;color:#284238;cursor:pointer;background:0 0;border:none;border-radius:.4rem;padding:.35rem .45rem;font-size:.75rem}.row-action-item:hover{background:#f2f8f5}.upload-form{flex-direction:column;gap:.75rem;margin-bottom:1.25rem;display:flex}.upload-file-label{color:var(--text-muted);letter-spacing:.03em;flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600;display:flex}.upload-file-input{border:1.5px dashed var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:.6rem;padding:.6rem .8rem;font-size:.82rem;transition:border-color .2s}.upload-file-input:hover{border-color:var(--accent)}.btn.btn-sm{border-radius:.45rem;gap:.3rem;padding:.25rem .55rem;font-size:.75rem}.modal-icon-row.icon-cyan{color:#0ea5e9;background:#e0f2fe;border-color:#bae6fd}.toast{border:1px solid var(--line);z-index:10000;border-radius:.85rem;align-items:center;gap:.5rem;max-width:360px;padding:.65rem 1rem;font-size:.82rem;font-weight:600;animation:.25s rise-in;display:flex;position:fixed;bottom:1.6rem;right:1.6rem;box-shadow:0 12px 28px #06281824}.toast-good{color:#066047;background:#e8f9f1;border-color:#9cd8c0}.gate-shell{flex-direction:column;gap:.9rem;height:100%;min-height:100%;display:flex;overflow:hidden}.gate-hero{text-align:center;flex-direction:column;justify-content:center;align-items:center}.gate-hero-content{flex-direction:column;align-items:center;display:flex}.gate-actions{grid-template-columns:1fr 1fr;gap:1rem;width:100%;max-width:920px;margin:0 auto;padding:.25rem;display:grid}.gate-btn{letter-spacing:.02em;border-radius:1.15rem;min-height:112px;padding:1.55rem 1.4rem;font-size:1.18rem;box-shadow:0 14px 28px #0628181f}.gate-btn:hover{transform:translateY(-2px);box-shadow:0 18px 40px #06281829}.sam-login-shell{overflow-y:auto}.sam-login-panel{max-width:760px;margin:0 auto}.sam-login-grid{grid-template-columns:1fr;gap:.75rem;display:grid}.sam-login-actions{justify-content:flex-end;gap:.5rem;margin-top:.9rem;display:flex}.sam-picked{margin:.1rem 0 0}@media (width<=1060px){.layout-grid{grid-template-columns:1fr}.panel.wide{grid-column:auto}.hero{flex-direction:column;align-items:flex-start}.hero-status-row{justify-content:flex-start}.network-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:1fr}.tab-row{flex-wrap:wrap}}@media (width<=740px){.demo-shell{padding:1.1rem .8rem 1.4rem}.form-grid,.network-strip{grid-template-columns:1fr}.toolbar{width:100%}.log-clean-range{grid-template-columns:1fr}.chip-btn{text-align:center;flex:1}.tab-row{grid-template-columns:1fr;gap:.45rem;display:grid}.tab-btn{text-align:center;width:100%}.gate-hero{align-items:center}.gate-actions{grid-template-columns:1fr}.gate-btn{min-height:96px;font-size:1.08rem}.admin-type-config{grid-template-columns:1fr;align-items:stretch}}
