#initial-loader{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#fff;z-index:99999;display:flex;justify-content:center;align-items:center;flex-direction:column;transition:opacity .3s ease-out}#initial-loader .scan{text-align:center}#initial-loader img{width:300px;height:300px;margin-bottom:10px}#initial-loader .loading-text{font-size:60px;color:var(--color-primary-light, #3a76c2);font-family:var(--font-base, sans-serif);font-weight:700;animation:blink 1.5s infinite}@keyframes blink{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.fingerprint{background-image:none!important}:root{--color-primary: #214f7c;--color-primary-hover: #2a5f96;--color-primary-light: #3a76c2;--color-primary-soft: #e9f1fa;--color-bg-page: #f5f7fb;--color-bg-card: #ffffff;--color-text-primary: #1f2d3d;--color-text-secondary: #5a6472;--color-text-muted: #8b93a1;--color-border: #e5e7eb;--color-danger: #d64545;--color-success: #2f9e63;--color-warning: #e0a23c;--color-accent-orange: #ee963f;--shadow-card: 0 2px 8px rgba(0, 0, 0, .06);--shadow-dropdown: 0 8px 24px rgba(30, 60, 90, .12);--radius-card: 16px;--radius-input: 10px;--radius-button: 10px;--font-base: "Inter", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", -apple-system, "Segoe UI", sans-serif;--focus-ring: 0 0 0 4px rgba(58, 118, 194, .12)}body,#app{font-family:var(--font-base);color:var(--color-text-primary)}.ui-page-title{font-size:24px;font-weight:700;letter-spacing:.01em;color:var(--color-text-primary)}.ui-subtitle{font-size:14px;font-weight:400;color:var(--color-text-secondary)}.ui-stat-number{font-size:28px;font-weight:700;color:var(--color-text-primary)}.page-icon-container{background-color:var(--color-primary)}.page-icon-container:hover{background-color:var(--color-primary-light)}.ui-card{background-color:var(--color-bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 18px;height:44px;background-color:var(--color-primary);color:#fff;font-family:var(--font-base);font-size:14px;font-weight:600;letter-spacing:.03em;border:none;border-radius:var(--radius-button);cursor:pointer;white-space:nowrap;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease}.btn-primary:not(:disabled):hover{background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 6px 16px #285ab433}.btn-primary:not(:disabled):active{transform:scale(.98)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 18px;height:44px;background-color:var(--color-bg-card);color:var(--color-primary);font-family:var(--font-base);font-size:14px;font-weight:500;border:1px solid var(--color-primary-light);border-radius:var(--radius-button);cursor:pointer;white-space:nowrap;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.btn-secondary:not(:disabled):hover{background-color:var(--color-primary-soft);border-color:var(--color-primary)}.btn-secondary:disabled{opacity:.6;cursor:default}.btn-tertiary{display:inline-flex;align-items:center;gap:4px;padding:6px 8px;background:none;border:none;color:var(--color-primary-light);font-family:var(--font-base);font-size:14px;font-weight:500;border-radius:6px;cursor:pointer;transition:color .2s ease,background-color .2s ease}.btn-tertiary:not(:disabled):hover{color:var(--color-primary);background-color:var(--color-primary-soft)}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 18px;height:44px;background-color:var(--color-bg-card);color:var(--color-danger);font-family:var(--font-base);font-size:14px;font-weight:500;border:1px solid var(--color-danger);border-radius:var(--radius-button);cursor:pointer;white-space:nowrap;transition:background-color .2s ease,color .2s ease}.btn-danger:not(:disabled):hover{background-color:#fdecec}.btn-danger:disabled{opacity:.6;cursor:default}.ui-input{height:44px;padding:0 12px;font-family:var(--font-base);font-size:14px;color:var(--color-text-primary);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-input);box-sizing:border-box;transition:border-color .25s ease,box-shadow .25s ease}.ui-input::placeholder{color:var(--color-text-muted)}.ui-input:focus{outline:none;border-color:var(--color-primary-light);box-shadow:var(--focus-ring)}body{background:var(--color-bg-page)}.page-caption h1{font-size:24px;font-weight:700;letter-spacing:.01em;color:var(--color-text-primary)}.responsive-toolbar{background:var(--color-bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:14px 18px;margin-top:1.25rem;margin-bottom:1rem}.viewpoint-container{background:var(--color-bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:.25rem 1rem}.responstable thead{background-color:var(--color-bg-card);color:var(--color-text-secondary)}.responstable th{color:var(--color-text-secondary);font-weight:600;font-size:13px;letter-spacing:.02em;background-color:var(--color-bg-card);border-bottom:1px solid var(--color-border)}.responstable tr{border:none;border-bottom:1px solid var(--color-border)}.responstable tbody tr:last-child{border-bottom:none}.responstable tbody tr:hover{background-color:#f8fafd}.responstable td{font-size:14px;color:var(--color-text-primary)}@media (min-width: 480px){.responstable th,.responstable td{padding:1rem 1.1rem}}.responstable tr.row-muted{background-color:#f3f5f9}.responstable tr.row-muted td{color:var(--color-text-muted)}.sort-icon{width:12px;height:12px;margin-left:4px;opacity:.55;transition:transform .2s ease,opacity .2s ease}.edit-button,.device-round-btn{border:1px solid var(--color-border);border-radius:var(--radius-button);width:56px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-card);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.edit-button:hover,.device-round-btn:hover{background-color:var(--color-primary-light);border-color:var(--color-primary-light);color:#fff}.edit-button-trash{border:1px solid rgba(214,69,69,.55);border-radius:var(--radius-button);width:56px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-card);cursor:pointer;transition:all .2s ease}.edit-button-trash:hover{background-color:#fdecec;border-color:var(--color-danger)}input[type=checkbox]{accent-color:var(--color-primary)}.toolbar-select-label{display:flex;align-items:center;font-size:14px;color:var(--color-text-secondary);cursor:pointer;margin-right:8px}.toolbar-icon{width:20px;height:20px;object-fit:contain}.toolbar-icon-lg{width:24px;height:24px;object-fit:contain}.th-sortable{cursor:pointer}.cell-secondary{color:var(--color-text-muted)}.device-date-input{height:40px;padding:0 10px;font-family:var(--font-base);font-size:14px;color:var(--color-text-primary);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-input);box-sizing:border-box;transition:border-color .25s ease,box-shadow .25s ease}.device-date-input:focus{outline:none;border-color:var(--color-primary-light);box-shadow:var(--focus-ring)}.search-box{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-input);height:40px;transition:border-color .25s ease,box-shadow .25s ease,background-color .25s ease}.search-box:hover{background-color:var(--color-bg-card);border-color:var(--color-primary-light)}.search-box:focus-within{border-color:var(--color-primary-light);box-shadow:var(--focus-ring)}.search-box-icon{color:var(--color-text-muted)}.search-box-input{font-size:14px;font-weight:400;color:var(--color-text-primary)}.search-box-input::placeholder{color:var(--color-text-muted)}.ui-modal-overlay{display:flex;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(31,45,61,.45);z-index:1000;justify-content:center;align-items:center}.ui-modal{display:flex;flex-direction:column;background:var(--color-bg-card);border-radius:var(--radius-card);box-shadow:0 20px 50px #1e2d3d2e;padding:28px;width:90%;max-height:90vh;overflow-y:auto}.delete-modal-cancel{padding:0 18px;height:40px;border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--color-bg-card);color:var(--color-text-secondary);font-size:14px;cursor:pointer;transition:background-color .2s ease}.delete-modal-cancel:hover{background:#f3f4f6}.delete-modal-confirm{padding:0 18px;height:40px;border:1px solid var(--color-danger);border-radius:var(--radius-button);background:var(--color-bg-card);color:var(--color-danger);font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.delete-modal-confirm:hover{background:#fdecec}.form-field{display:flex;flex-direction:column}.form-field>label{font-size:13px;color:var(--color-text-secondary);margin-bottom:6px}.ui-input:disabled,.ui-input[readonly]{background-color:#f3f4f6;color:var(--color-text-muted);cursor:not-allowed}textarea.ui-input{height:auto;min-height:80px;padding:10px 12px;resize:vertical}select.ui-input{cursor:pointer}.btn-sm{height:40px;padding:0 14px}.stat-card{display:flex;flex-direction:column;min-width:140px;padding:1rem 1.25rem;background-color:var(--color-bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.stat-label{margin-bottom:.5rem;font-size:13px;font-weight:500;letter-spacing:.02em;color:var(--color-text-secondary);white-space:nowrap}.stat-value-row{display:flex;align-items:center;gap:1rem;height:44px}.stat-value{font-weight:700;font-size:28px;color:var(--color-text-primary);min-width:60px}.stat-growth{font-size:13px;color:var(--color-text-secondary);display:flex;justify-content:center;align-items:center;gap:.5rem}.image_button_default,.image_button_005{width:auto;min-width:96px;padding:0 16px;background:var(--color-bg-card);color:var(--color-primary);font-family:var(--font-base);font-size:14px;font-weight:500;text-shadow:none;border:1px solid var(--color-primary-light);border-radius:var(--radius-button);height:40px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.image_button_default:hover,.image_button_005:hover{background:var(--color-primary-soft);color:var(--color-primary);font-size:14px;padding:0;text-shadow:none;border:1px solid var(--color-primary)}.image_button_default .iconfont,.image_button_005 .iconfont{color:var(--color-primary)}.label-style-default,.label-style-2{display:inline-block;padding:0 0 6px;font-size:13px;font-weight:500;color:var(--color-text-secondary);background:none;border-radius:0;box-shadow:none}.label-style-default:hover,.label-style-2:hover{transform:none}.styled-select{height:40px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-input);transition:border-color .25s ease,box-shadow .25s ease}.styled-select:focus-within{border-color:var(--color-primary-light);box-shadow:var(--focus-ring)}.styled-select select{height:100%;width:100%;font-family:var(--font-base);font-size:14px;color:var(--color-text-primary);background:transparent;border:none;outline:none;padding:0 8px;cursor:pointer}.frame-table td input:not([type=checkbox]):not([type=radio]):not(.search-box-input){height:40px;padding:0 12px;font-family:var(--font-base);font-size:14px;color:var(--color-text-primary);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-input);width:100%;transition:border-color .25s ease,box-shadow .25s ease}.frame-table td input:not([type=checkbox]):not([type=radio]):not(.search-box-input):focus{outline:none;border:1px solid var(--color-primary-light);box-shadow:var(--focus-ring)}.frame-table td input:disabled{background-color:#f3f4f6;color:var(--color-text-muted);cursor:not-allowed}.frame-table td{padding:.35rem}.responsive-toolbar.toolbar-flat{background:transparent;box-shadow:none;border-radius:0;border-bottom:1px solid var(--color-border);margin:0}.block{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-bg-card);box-shadow:var(--shadow-card);padding:1rem 1.25rem;margin:12px 0}.block:hover{border:1px solid var(--color-primary-light);transform:none}.block p{color:var(--color-text-primary)}.image_button_default:disabled,.image_button_005:disabled{background:var(--color-primary);border-color:var(--color-primary);color:#fff;cursor:default}.image_button_default:disabled .iconfont,.image_button_005:disabled .iconfont{color:#fff}.modal-action-btn{min-width:120px;height:44px;justify-content:center}
