body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-root{align-items:center;background:linear-gradient(135deg,#14405c,#14b8a6);display:flex;justify-content:center;min-height:100vh;padding:16px}.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column;max-width:360px;padding:32px 28px;width:100%}.login-logo{font-size:40px;text-align:center}.login-title{color:#12263a;font-size:22px;margin:8px 0 0;text-align:center}.login-subtitle{color:#667;font-size:14px;margin:4px 0 20px;text-align:center}.login-error{background:#fdecea;border-radius:8px;color:#b3261e;font-size:13px;margin-bottom:12px;padding:8px 12px}.login-label{color:#444;font-size:13px;font-weight:600;margin-bottom:6px;margin-top:12px}.login-input{border:1px solid #d3dbe1;border-radius:8px;font-size:14px;padding:10px 12px}.login-input:focus{border-color:#14b8a6;outline:none}.login-btn{background:#0f766e;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;margin-top:22px;padding:12px}.login-btn:disabled{cursor:not-allowed;opacity:.6}.spinner{align-items:center;color:#6b7a85;display:flex;font-size:14px;gap:10px;justify-content:center;padding:8px 0}.spinner-page{min-height:100vh}.spinner-ring{animation:spinner-turn .75s linear infinite;border:2.5px solid #d3e2e6;border-radius:50%;border-top-color:#0f766e;flex-shrink:0;height:18px;width:18px}@keyframes spinner-turn{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.spinner-ring{animation-duration:2.5s}}.home-root{display:flex;flex-direction:column;gap:24px}.home-hero{background:linear-gradient(135deg,#14405c,#14b8a6);border-radius:16px;color:#fff;padding:24px}.home-hero-card{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.home-hero-title{font-size:24px;margin:0}.home-hero-name{color:#ccfbf1}.home-hero-message{margin:8px 0 0;max-width:480px;opacity:.9}.home-hero-clock{text-align:right}.home-clock-display{font-feature-settings:"tnum";font-size:28px;font-variant-numeric:tabular-nums;font-weight:700}.home-clock-label{font-size:13px;opacity:.85}.home-section-title{color:#333;font-size:16px;margin:0 0 12px}.home-quick-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.home-quick-card{align-items:center;background:#fff;border-left:4px solid #14b8a6;border-left:4px solid var(--card-color,#14b8a6);border-radius:12px;box-shadow:0 2px 8px #0000000f;color:inherit;display:flex;gap:12px;padding:16px;text-decoration:none;transition:transform .15s ease}.home-quick-card:hover{transform:translateY(-2px)}.home-quick-icon{font-size:24px}.home-quick-body{flex:1 1}.home-quick-label{color:#12263a;font-weight:600}.home-quick-desc{color:#777;font-size:13px}.home-quick-arrow{color:#aaa;font-size:20px}.nb-root{background:#12263a;color:#f0f6f8;display:flex;flex-direction:column;height:100vh;min-width:240px;overflow:hidden;position:sticky;top:0;transition:width .2s ease,min-width .2s ease;width:240px}.nb-root.nb-collapsed{min-width:72px;width:72px}.nb-collapsed .nb-label,.nb-collapsed .nb-logo-text,.nb-collapsed .nb-user-info{display:none}.nb-header{border-bottom:1px solid #ffffff14;padding:16px}.nb-logo-btn{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:10px;padding:4px}.nb-logo-icon{font-size:24px}.nb-nav{display:flex;flex:1 1;flex-direction:column;gap:4px;padding:12px 8px}.nb-item{align-items:center;background:none;border:none;border-radius:8px;color:inherit;cursor:pointer;display:flex;font-size:14px;gap:12px;padding:10px 12px;text-align:left;text-decoration:none;width:100%}.nb-item:hover{background:#ffffff14}.nb-item.active{background:#14b8a640;font-weight:600}.nb-icon{font-size:18px;text-align:center;width:22px}.nb-icon-badge{display:inline-block;position:relative}.nb-pulse-dot{animation:nb-pulse 1.6s infinite;background:#ff5252;border-radius:50%;box-shadow:0 0 0 #ff525299;height:9px;position:absolute;right:-2px;top:-2px;width:9px}@keyframes nb-pulse{0%{box-shadow:0 0 0 0 #ff525299}70%{box-shadow:0 0 0 6px #ff525200}to{box-shadow:0 0 0 0 #ff525200}}.nb-footer{border-top:1px solid #ffffff14;padding:8px}.nb-online-list{border-bottom:1px solid #ffffff14;margin-bottom:4px;padding:8px 12px 4px}.nb-online-label{align-items:center;display:flex;font-size:11px;font-weight:700;gap:6px;letter-spacing:.03em;margin-bottom:6px;opacity:.7;text-transform:uppercase}.nb-online-dot{background:#14b8a6;border-radius:50%;box-shadow:0 0 0 2px #14b8a64d;flex-shrink:0;height:8px;width:8px}.nb-online-user{align-items:center;display:flex;font-size:13px;gap:8px;padding:4px 0}.nb-online-avatar{align-items:center;background:#ffffff26;border-radius:50%;display:flex;flex-shrink:0;font-size:11px;font-weight:700;height:22px;justify-content:center;width:22px}.nb-online-name-wrap{border-radius:4px;display:block;flex:1 1;min-width:0;position:relative}.nb-online-name-wrap:focus-visible{outline:1px solid #ffffffb3;outline-offset:2px}.nb-online-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nb-online-tooltip{background:#0b1826;border:1px solid #ffffff29;border-radius:7px;bottom:calc(100% + 7px);box-shadow:0 8px 22px #0006;color:#f0f6f8;display:flex;flex-direction:column;font-size:12px;gap:3px;left:-30px;line-height:1.3;opacity:0;padding:9px 10px;pointer-events:none;position:absolute;transition:opacity .12s ease;visibility:hidden;white-space:normal;width:200px;z-index:10}.nb-online-name-wrap:focus-within .nb-online-tooltip,.nb-online-name-wrap:hover .nb-online-tooltip{opacity:1;visibility:visible}.nb-online-tooltip-line strong{color:#a9dcd6;font-weight:600}.nb-online-tooltip-since{color:#f0f6f8a6;font-size:11px}.nb-collapsed .nb-online-list{display:none}.nb-user-card{gap:10px;padding:10px 12px}.nb-avatar,.nb-user-card{align-items:center;display:flex}.nb-avatar{background:#14b8a6;border-radius:50%;flex-shrink:0;font-weight:700;height:36px;justify-content:center;width:36px}.nb-user-name{font-size:14px;font-weight:600}.nb-user-role{font-size:12px;opacity:.7}.nb-logout-btn{color:#ffb4a2}.nb-mobile-sidebar,.nb-mobile-topbar,.nb-overlay{display:none}@media (max-width:900px){.nb-root:not(.nb-mobile-sidebar){display:none}.nb-mobile-sidebar{display:flex}.nb-mobile-topbar{align-items:center;background:#12263a;color:#fff;display:flex;gap:12px;padding:12px 16px;position:sticky;top:0;z-index:20}.nb-hamburger{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:4px}.nb-hamburger span{background:#fff;height:2px;width:22px}.nb-mobile-brand{color:#fff;font-weight:600;text-decoration:none}.nb-mobile-sidebar{left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform .2s ease;z-index:40}.nb-mobile-sidebar.open{transform:translateX(0)}.nb-overlay.open{background:#0006;display:block;inset:0;position:fixed;z-index:30}}.nb-count-badge{background:#ff5252;border-radius:8px;box-shadow:0 0 0 2px #12263a;color:#fff;font-size:10px;font-weight:700;height:16px;line-height:16px;min-width:16px;padding:0 4px;position:absolute;right:-9px;text-align:center;top:-6px}.layout-root{background:#f2f6f8;display:flex;min-height:100vh}.main-content{flex:1 1;min-width:0;padding:24px}@media (max-width:900px){.layout-root{flex-direction:column}.main-content{padding:16px}}.settings-root{display:flex;flex-direction:column;gap:16px;max-width:520px}.settings-title{color:#12263a;font-size:22px;margin:0}.settings-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;padding:20px}.settings-label{color:#444;font-size:13px;font-weight:600;margin:14px 0 6px}.settings-label:first-child{margin-top:0}.settings-input,.settings-textarea{border:1px solid #d3dbe1;border-radius:8px;font-family:inherit;font-size:14px;padding:10px 12px}.settings-input:focus,.settings-textarea:focus{border-color:#14b8a6;outline:none}.settings-status{border-radius:8px;font-size:13px;margin-top:14px;padding:8px 12px}.settings-status-success{background:#e0f5f2;color:#0f766e}.settings-status-error{background:#fdecea;color:#b3261e}.settings-save-btn{align-self:flex-start;background:#0f766e;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;margin-top:18px;padding:10px 18px}.settings-save-btn:disabled{cursor:not-allowed;opacity:.6}.settings-loading{color:#667;padding:24px}.settings-group-picker{align-items:center;display:flex;gap:10px;max-width:560px}.settings-group-picker .settings-label{margin:0;white-space:nowrap}.update-banner{align-items:center;animation:update-banner-in .25s ease-out;background:#fff;border:1px solid #0f766e;border-radius:99px;bottom:18px;box-shadow:0 10px 30px #0000002e;box-sizing:border-box;color:#12263a;display:flex;gap:10px;left:50%;max-width:calc(100vw - 24px);padding:8px 8px 8px 14px;position:fixed;transform:translateX(-50%);z-index:9000}@keyframes update-banner-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.update-banner{animation:none}}.update-banner-dot{background:#0f766e;border-radius:50%;box-shadow:0 0 0 4px #0f766e2e;flex:none;height:8px;width:8px}.update-banner-text{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.update-banner-go{background:#0f766e;border:none;border-radius:99px;color:#fff;cursor:pointer;flex:none;font-size:12.5px;font-weight:700;padding:7px 14px}.update-banner-go:hover{background:#0c5f59}.update-banner-x{background:#0000;border:1px solid #d3dbe1;border-radius:50%;color:#6b7a85;cursor:pointer;flex:none;font-size:12px;height:28px;line-height:1;width:28px}@media (max-width:760px){.update-banner{bottom:12px;width:calc(100vw - 24px)}.update-banner-text{flex:1 1 auto;font-size:12.5px;min-width:0}}.data-root{display:flex;flex-direction:column;gap:16px}.data-title{color:#12263a;font-size:22px;margin:0}.page-subtitle{color:#777;font-size:13px;margin:-8px 0 0}.page-header-divided{border-bottom:1px solid #d3e2e6;padding-bottom:12px}.page-topbar{gap:12px;justify-content:space-between}.page-topbar,.topbar-actions{align-items:center;display:flex}.topbar-actions{flex-wrap:wrap;gap:8px;justify-content:flex-end}.topbar-btn{align-items:center;background:#fff;border:1px solid #d3dbe1;border-radius:8px;color:#0f766e;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;padding:8px 14px;text-decoration:none;transition:background .15s,border-color .15s;white-space:nowrap}.topbar-btn:hover{background:#f0f6f8;border-color:#0f766e}.topbar-btn-primary{background:#0f766e;border-color:#0f766e;color:#fff}.topbar-btn-primary:hover{background:#0c5f59;border-color:#0c5f59}.topbar-btn:disabled{cursor:not-allowed;opacity:.5}.hub-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.hub-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;color:inherit;display:flex;gap:14px;padding:18px;text-decoration:none;transition:transform .15s ease}.hub-card:hover{transform:translateY(-2px)}.hub-icon{font-size:26px}.hub-label{color:#12263a;font-weight:600}.hub-desc{color:#777;font-size:13px}.hub-group{display:flex;flex-direction:column;gap:10px}.data-status{border-radius:8px;font-size:13px;padding:8px 12px}.data-status-error{background:#fdecea;color:#b3261e}.data-status-success{background:#e0f5f2;color:#0c5f59}.data-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;overflow-x:auto}.data-card-pad{padding:18px}.data-empty{color:#777;padding:24px}.data-table{border-collapse:collapse;font-size:13px;width:100%}.data-table td,.data-table th{border-bottom:1px solid #e8eef1;padding:10px 12px;text-align:left;white-space:nowrap}.data-table th{color:#777;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.data-table tr:last-child td{border-bottom:none}.data-table .num{text-align:right}.data-table td.clip{max-width:220px;overflow:hidden;text-overflow:ellipsis}.data-table .warn{color:#b3261e;font-weight:600}.data-tag{background:#e0f5f2;border-radius:6px;color:#0c5f59;display:inline-block;font-size:10px;font-weight:700;padding:1px 6px;text-transform:uppercase}.row-actions{display:flex;gap:4px;justify-content:flex-end}.row-icon-btn{align-items:center;background:#fff;border:1px solid #d3dbe1;border-radius:6px;color:#333;cursor:pointer;display:inline-flex;font-size:12px;height:26px;justify-content:center;min-width:30px;padding:0 6px;text-decoration:none}.row-icon-btn:hover{background:#f0f6f8}.history-filters{display:flex;flex-wrap:wrap;gap:10px}.history-select{background:#fff;border:1px solid #d3dbe1;border-radius:8px;font-size:13px;min-width:160px;padding:8px 10px}.history-summary{display:flex;flex-wrap:wrap;gap:12px}.history-summary-card{background:#e6f1f3;border-radius:10px;flex:1 1;min-width:140px;padding:12px 16px}.history-summary-label{color:#4d7480;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.history-summary-value{color:#12263a;font-size:20px;font-weight:700}.data-pager{align-items:center;color:#667;display:flex;font-size:13px;gap:12px;justify-content:space-between}.data-pager-buttons{display:flex;gap:6px}.data-tabs{border-bottom:1px solid #d3e2e6;display:flex;gap:4px}.data-tab{background:none;border:none;border-bottom:3px solid #0000;color:#667;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px}.data-tab.active{border-bottom-color:#0f766e;color:#0f766e}.data-form{display:flex;flex-direction:column;gap:16px}.data-section-title{color:#0f766e;font-size:13px;font-weight:700;letter-spacing:.05em;margin:0 0 12px;text-transform:uppercase}.data-fields{grid-gap:12px 14px;display:grid;gap:12px 14px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.data-fields-narrow{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.data-field{color:#4a5a66;display:flex;flex-direction:column;font-size:12px;font-weight:600;gap:4px}.data-field small{color:#889;font-weight:400}.data-input{background:#fff;border:1px solid #d3dbe1;border-radius:8px;font-family:inherit;font-size:14px;min-width:0;padding:9px 10px}.data-input:focus{border-color:#14b8a6;outline:none}.data-input:read-only{background:#f2f6f8;color:#556}.data-input.num{text-align:right}.data-ages td,.data-ages th{padding:6px 8px}.data-ages .data-input{padding:6px 8px;width:110px}.data-ages tfoot td{border-top:2px solid #d3e2e6;font-weight:700}.data-form-actions{align-items:center;display:flex;gap:10px}.data-btn{background:#0f766e;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 18px}.data-btn:hover{background:#0c5f59}.data-btn:disabled{cursor:not-allowed;opacity:.6}.users-checks{grid-gap:8px 16px;display:grid;gap:8px 16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:6px}.users-check{align-items:center;color:#334;display:flex;font-size:14px;gap:8px}.users-check small{color:#889}.row-icon-btn:disabled{cursor:not-allowed;opacity:.45}.upload-box{align-items:center;background:#f4fbfa;border:2px dashed #a9dcd6;border-radius:12px;display:flex;flex-wrap:wrap;gap:12px;padding:18px}.upload-columns{color:#556;font-size:13px;line-height:1.5;margin:0}.upload-progress{background:#e0e8ec;border-radius:4px;height:8px;overflow:hidden}.upload-progress>div{background:#14b8a6;height:100%;transition:width .3s}.upload-progress.busy>div{animation:upload-slide 1.2s ease-in-out infinite;width:35%}@keyframes upload-slide{0%{margin-left:-35%}to{margin-left:100%}}.upload-notes{color:#556;font-size:13px;line-height:1.6;margin:0;padding-left:18px}.chart-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(520px,1fr))}.chart-grid-3{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.chart-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;min-width:0;padding:16px 18px 12px}.chart-wide{grid-column:1/-1}.chart-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:10px}.chart-title{color:#12263a;font-size:15px;margin:0}.chart-note{color:#778;font-size:12px;margin:3px 0 0}.chart-toggle{background:#fff;border:1px solid #d3dbe1;border-radius:6px;color:#4a5a66;cursor:pointer;flex:none;font-size:12px;padding:4px 10px}.chart-toggle:hover{background:#f0f6f8}.chart-empty{color:#889;font-size:13px;padding:40px 0;text-align:center}.chart-scroll{overflow-x:auto}.chart-table-wrap{max-height:340px;overflow:auto}.analysis-section{border-top:1px solid #d3e2e6;color:#0f766e;font-size:13px;font-weight:700;letter-spacing:.05em;margin:8px 0 0;padding-top:14px;text-transform:uppercase}.page-loader{align-items:center;color:#667;display:flex;justify-content:center;min-height:100vh}
/*# sourceMappingURL=main.fcaf921d.css.map*/