:root{color-scheme:light;--color-bg: #f5f7fb;--color-surface: #ffffff;--color-surface-alt: #edf2f7;--color-text: #172b45;--color-muted: #52657a;--color-border: #ccd6e2;--color-control-border: #71829a;--color-primary: #1d4ed8;--color-primary-soft: #e8efff;--color-on-primary: #ffffff;--color-success: #176b4d;--color-danger: #b42338;--color-warning: #8a5600;--color-danger-soft: #fff0f2;--color-focus: #2563eb;--chart-heart: #be315c;--chart-breath: #087e8b;--chart-motion: #7257b4;--chart-average: #1d4ed8;--chart-max: #b54708;--chart-min: #087e8b;--shadow-card: 0 4px 20px rgb(23 43 69 / 4%);--shadow-dialog: 0 20px 64px rgb(0 0 0 / 24%);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--radius: 12px;--motion-duration: .18s;font-family:Noto Sans TC,Noto Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.6;font-weight:400}:root[data-theme=dark]{color-scheme:dark;--color-bg: #0e1726;--color-surface: #172438;--color-surface-alt: #203149;--color-text: #eef3fb;--color-muted: #b2c2d6;--color-border: #495e79;--color-control-border: #7086a3;--color-primary: #a9c9ff;--color-primary-soft: #263b5c;--color-on-primary: #10213d;--color-success: #7be0b1;--color-danger: #ffa5b4;--color-warning: #f6ca7f;--color-danger-soft: #3d2634;--color-focus: #a9c9ff;--chart-heart: #ffa5b4;--chart-breath: #6fdae6;--chart-motion: #c8b3ff;--chart-average: #a9c9ff;--chart-max: #f6ca7f;--chart-min: #6fdae6;--shadow-card: 0 4px 20px rgb(0 0 0 / 12%)}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text)}a{color:var(--color-primary)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,select{cursor:pointer}button{color:inherit}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{color:var(--color-text);background:var(--color-surface)}input,select{min-height:44px}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;border:1px solid var(--color-control-border);border-radius:8px;padding:8px 12px;min-width:0}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:auto;accent-color:var(--color-primary)}textarea{min-height:96px;resize:vertical}input:disabled,select:disabled{background:var(--color-surface-alt);cursor:not-allowed}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.main-content:focus{outline:none}h1,h2,h3,h4,p{margin:0}h1{font-size:clamp(1.6rem,2.5vw,2rem);line-height:1.3;font-weight:700}h2{font-size:1.25rem;line-height:1.4}h3{font-size:1.125rem;line-height:1.4}small,.muted{color:var(--color-muted)}small{font-size:.875rem}.app-icon{width:24px;height:24px;flex-shrink:0}.skip-link{position:fixed;top:8px;left:8px;z-index:100;transform:translateY(-160%);padding:12px 16px;background:var(--color-surface);border:2px solid var(--color-primary);border-radius:8px}.skip-link:focus{transform:translateY(0)}.app-shell{min-height:100dvh}.sidebar{padding:16px max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left));background:var(--color-surface);border-bottom:1px solid var(--color-border)}.brand{display:flex;gap:12px;align-items:center;color:var(--color-text);text-decoration:none;width:fit-content;min-height:48px}.brand strong{display:block;font-size:1.375rem;letter-spacing:-.025em}.brand small{display:block}.brand-symbol{display:grid;place-items:center;width:44px;height:44px;background:var(--color-primary);color:var(--color-on-primary);border-radius:12px}.navigation{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.nav-item{display:flex;gap:8px;align-items:center;min-height:48px;padding:8px 12px;color:var(--color-muted);border-radius:8px;text-decoration:none;font-weight:500;transition:background-color var(--motion-duration),color var(--motion-duration)}.nav-item:hover,.nav-item.active{background:var(--color-primary-soft);color:var(--color-primary)}.nav-item.active{font-weight:700}.sidebar-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:16px}.connection-state{display:flex;gap:8px;align-items:center;font-size:.875rem;color:var(--color-muted)}.status-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:var(--color-muted)}.status-dot.online{background:var(--color-success)}.status-dot.offline{background:var(--color-danger)}.main-content{min-width:0;width:100%;padding:24px max(16px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.page-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:24px}.page-header h1{font-size:1.5rem}.header-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px}.update-time{color:var(--color-muted);font-size:.875rem}.update-time time{font-variant-numeric:tabular-nums}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border:1px solid var(--color-control-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);text-decoration:none;font-weight:500;transition:background-color var(--motion-duration),border-color var(--motion-duration)}.button:hover:not(:disabled),.button:active:not(:disabled){background:var(--color-surface-alt);border-color:var(--color-muted)}.button.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.button.primary:hover:not(:disabled),.button.primary:active:not(:disabled){filter:brightness(.9);background:var(--color-primary)}.button.danger{color:var(--color-danger);border-color:var(--color-danger)}.button.danger:hover:not(:disabled){background:var(--color-danger-soft)}.icon-button{width:44px;padding:8px;flex-shrink:0}.theme-button{font-size:.875rem}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-card);min-width:0}.section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:24px}.toolbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field>label{font-weight:500}.field>small{max-width:65ch}.form-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.badge{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--color-border);background:var(--color-surface-alt);border-radius:20px;padding:4px 12px;font-size:.875rem;font-weight:500;max-width:100%;overflow-wrap:anywhere}.badge.success{color:var(--color-success)}.badge.danger{color:var(--color-danger)}.badge.warning{color:var(--color-warning)}.error-message{padding:12px 16px;border:1px solid var(--color-danger);border-radius:8px;color:var(--color-danger);background:var(--color-danger-soft);margin-bottom:16px;overflow-wrap:anywhere}.empty-state{text-align:center;padding:40px 16px;color:var(--color-muted)}.empty-state .button{margin-top:16px}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:16px;margin:24px 0}.metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;min-width:0}.metric-card strong,.metric-value{display:block;font-size:1.75rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.4}.table-wrap{overflow-x:auto;max-width:100%}.data-table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}.data-table th,.data-table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--color-border);overflow-wrap:anywhere;vertical-align:top}.data-table th{color:var(--color-muted);font-size:.875rem;font-weight:600;background:var(--color-surface-alt)}.data-table caption{text-align:left;padding:0 0 16px;color:var(--color-muted)}.app-dialog{width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-dialog)}.app-dialog.wide{width:min(1080px,calc(100% - 32px))}.app-dialog::backdrop{background:#030c1999}.dialog-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.dialog-content{padding:24px}.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}@media(min-width:768px){.main-content{padding:32px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;padding:32px 20px;border-bottom:0;border-right:1px solid var(--color-border)}.navigation{flex-direction:column;margin-top:40px}.nav-item{padding:12px 16px}.sidebar-footer{flex-direction:column;align-items:stretch;margin-top:auto;padding-top:32px}.connection-state{padding:8px}.main-content{padding:32px}}@media(max-width:480px){.panel{padding:16px}.nav-item{padding:8px;font-size:.9375rem}.nav-item .app-icon{width:20px;height:20px}.dialog-header,.dialog-content{padding:16px}.toolbar{align-items:stretch}.toolbar .field{flex:1 1 100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
