@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--color-primary: #0033FF;--color-primary-light: #4D70FF;--color-success: #10B981;--color-warning: #F59E0B;--color-danger: #EF4444;--color-background: #F3F4F6;--color-surface: #FFFFFF;--color-text-primary: #1F2937;--color-text-secondary: #6B7280;--color-border: #E5E7EB;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .4);--glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, .05);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--radius-sm: .375rem;--radius-md: .75rem;--radius-lg: 1.5rem;--radius-full: 9999px;--font-family: "Inter", system-ui, -apple-system, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-family);background-color:var(--color-background);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;display:flex;flex-direction:column}a{text-decoration:none;color:inherit;transition:color .2s ease}button{cursor:pointer;border:none;background:none;font-family:inherit}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--radius-lg)}.text-gradient{background-image:linear-gradient(135deg,var(--color-primary),var(--color-success));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-ripple{position:relative;overflow:hidden;transition:transform .1s ease,box-shadow .2s ease}.btn-ripple:active{transform:scale(.97)}.page-enter{opacity:0;transform:translateY(10px)}.page-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s,transform .3s}.page-exit{opacity:1}.page-exit-active{opacity:0;transition:opacity .2s}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#6b72804d;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:#6b728080}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.text-warning{color:var(--color-warning)}.text-success{color:var(--color-success)}.text-secondary{color:var(--color-text-secondary)}.modal-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{width:100%;max-width:400px;padding:24px;border-radius:var(--radius-lg);animation:modalFadeUp .2s ease}.modal-header h3{margin:0 0 12px;font-size:1.2rem;font-weight:700}.modal-actions{display:flex;gap:12px;margin-top:20px;justify-content:flex-end}@keyframes modalFadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.layout-container{display:flex;height:100vh;width:100vw;overflow:hidden;background-color:var(--color-background);background-image:radial-gradient(circle at 10% 20%,rgba(0,51,255,.03) 0%,transparent 50%),radial-gradient(circle at 90% 80%,rgba(16,185,129,.03) 0%,transparent 50%)}.sidebar{width:260px;flex:0 0 260px;height:calc(100vh - 32px);margin:16px;display:flex;flex-direction:column;position:relative;overflow:visible;transition:transform .3s ease,width .3s ease,flex-basis .3s ease;z-index:50}.sidebar.closed{width:84px;flex-basis:84px;min-width:84px;max-width:84px}.sidebar.mobile-hidden{display:none}.sidebar-header{padding:32px 24px;text-align:center;display:flex;align-items:center;justify-content:center}.brand-block{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%}.brand-logo{width:32px;height:32px;flex-shrink:0}.brand-block-mobile{width:auto}.brand-logo-mobile{width:28px;height:28px}.logo{font-size:28px;font-weight:800;letter-spacing:1px}.sidebar .sidebar-edge-toggle{position:absolute;top:50%;right:-13px;width:28px;height:78px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid rgba(229,231,235,.95);border-radius:var(--radius-full);background:#ffffffdb;box-shadow:0 8px 20px #1f268714;color:var(--color-text-secondary);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transform:translateY(-50%);transition:all .2s ease,transform .2s ease;z-index:70}.sidebar .sidebar-edge-toggle:before{content:"";position:absolute;top:18px;bottom:18px;left:6px;width:2px;border-radius:var(--radius-full);background:#0033ff29}.sidebar .sidebar-edge-toggle:hover{color:var(--color-primary);border-color:#03f3;background:#fffffff5;box-shadow:0 10px 24px #0033ff1f;transform:translateY(-50%) translate(1px)}.sidebar-edge-toggle-icon{position:relative;z-index:1;display:flex;align-items:center;justify-content:center}.sidebar .sidebar-edge-toggle.btn-ripple:active{transform:translateY(-50%) scale(.98)}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:8px;padding:0 16px}.nav-item{display:flex;align-items:center;gap:16px;padding:14px 20px;border-radius:var(--radius-md);color:var(--color-text-secondary);font-weight:700;font-size:17px;transition:all .2s ease}.nav-item:hover{background-color:#ffffff80;color:var(--color-primary)}.nav-item.active{background-color:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm);font-weight:600}.sidebar.closed .sidebar-header{flex-direction:column;gap:12px;padding:20px 12px 16px}.sidebar.closed .brand-block{gap:0}.sidebar.closed .logo,.sidebar.closed .nav-label,.sidebar.closed .user-info{display:none}.sidebar.closed .sidebar-nav{padding:0 10px}.sidebar.closed .nav-item{justify-content:center;gap:0;padding:13px 0}.sidebar.closed .user-profile-section{justify-content:center;padding:12px 0;margin:0 10px 16px}.sidebar.closed .user-dropdown{top:0;left:calc(100% + 10px);right:auto;width:168px}.user-profile-section{display:flex;align-items:center;gap:12px;padding:12px 16px;margin:0 16px 16px;background:var(--color-surface);border-radius:var(--radius-md);cursor:pointer;position:relative;border:1px solid var(--color-border);transition:all .2s ease}.user-profile-section:hover{box-shadow:var(--shadow-sm);border-color:#03f3}.user-avatar{width:36px;height:36px;border-radius:50%;background:#0033ff1a;color:var(--color-primary);display:flex;align-items:center;justify-content:center}.user-info{display:flex;flex-direction:column;flex:1}.user-name{font-size:14px;font-weight:600;color:var(--color-text-primary)}.user-role{font-size:11px;color:var(--color-text-secondary)}.user-dropdown{position:absolute;top:105%;left:0;right:0;z-index:100;display:flex;flex-direction:column;padding:8px;border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--color-border)}.user-dropdown button{display:flex;align-items:center;gap:8px;padding:10px 12px;background:transparent;border:none;font-size:13px;font-weight:500;color:var(--color-text-primary);cursor:pointer;border-radius:var(--radius-sm);transition:background .2s;text-align:left}.user-dropdown button:hover{background:#0000000a}.user-dropdown button.text-danger{color:var(--color-danger)}.user-dropdown button.text-danger:hover{background:#ef44441a}.main-content{flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden;position:relative}.mobile-header{display:none;justify-content:space-between;align-items:center;padding:16px 20px;margin:12px 12px 0;z-index:40}.icon-btn{display:flex;align-items:center;justify-content:center;padding:8px;border-radius:50%;background:var(--color-surface);box-shadow:var(--shadow-sm);color:var(--color-text-primary)}.content-scrollarea{flex:1;overflow-y:auto;padding:24px 24px 90px}.bottom-nav{display:none;position:absolute;bottom:20px;left:20px;right:20px;overflow-x:auto;justify-content:flex-start;padding:8px 12px;z-index:50;box-shadow:0 -4px 16px #0000000d;gap:4px;scrollbar-width:none;-ms-overflow-style:none}.bottom-nav::-webkit-scrollbar{display:none}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--color-text-secondary);padding:6px 0;border-radius:var(--radius-md);flex-shrink:0;min-width:calc((100vw - 64px) / 3.5)}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-item .nav-label{font-size:11px;font-weight:600}@media(max-width:768px){.layout-container{flex-direction:column}.mobile-header,.bottom-nav{display:flex}.content-scrollarea{padding:16px 12px 100px}}.login-container{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background-color:var(--color-background);position:relative;overflow:hidden}.login-blob{position:absolute;border-radius:50%;filter:blur(80px);z-index:0;opacity:.6}.blob-1{width:400px;height:400px;background:var(--color-primary);top:-100px;left:-100px;animation:float 8s ease-in-out infinite alternate}.blob-2{width:500px;height:500px;background:var(--color-success);bottom:-150px;right:-100px;animation:float 10s ease-in-out infinite alternate-reverse}@keyframes float{0%{transform:translate(0) scale(1)}to{transform:translate(50px,50px) scale(1.1)}}.login-card{width:90%;max-width:400px;padding:40px;z-index:10;display:flex;flex-direction:column;align-items:center}.login-header{text-align:center;margin-bottom:32px}.login-icon{width:72px;height:72px;border-radius:50%;background:#0033ff1a;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;box-shadow:inset 0 2px 4px #ffffff80}.subtitle{color:var(--color-text-secondary);font-size:14px;font-weight:500;letter-spacing:.5px}.login-form{width:100%;display:flex;flex-direction:column;gap:20px}.input-group{width:100%}.login-input{width:100%;padding:16px 20px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:#fffc;font-size:16px;outline:none;transition:all .2s ease;box-shadow:inset 0 2px 4px #00000005}.login-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0033ff1a}.login-btn{width:100%;padding:16px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));color:#fff;font-size:16px;font-weight:600;display:flex;justify-content:center;align-items:center;gap:12px;box-shadow:0 4px 12px #0033ff4d}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-footer{margin-top:32px;font-size:12px;color:var(--color-text-secondary);text-align:center}.observer-apply-entry{margin-top:18px;color:var(--color-primary);font-size:13px;font-weight:700}.observer-apply-entry:hover{color:var(--color-primary-light)}.observer-modal-overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a57}.observer-modal{width:min(640px,100%);max-height:min(720px,calc(100vh - 48px));overflow-y:auto;padding:26px}.observer-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.observer-modal-header h2{margin:0 0 6px;font-size:20px;color:var(--color-text-primary)}.observer-modal-header p{margin:0;font-size:13px;line-height:1.5;color:var(--color-text-secondary)}.observer-modal-close{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--color-text-secondary)}.observer-modal-close:hover{background:#0000000d}.observer-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.observer-form-grid label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:var(--color-text-primary)}.observer-form-grid input,.observer-form-grid textarea{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#ffffffdb;color:var(--color-text-primary);font-size:14px;outline:none}.observer-form-grid input:focus,.observer-form-grid textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0033ff1a}.observer-form-grid textarea{min-height:112px;resize:vertical}.observer-form-grid small{color:var(--color-text-secondary);font-size:12px;line-height:1.4;font-weight:500}.observer-reason-field{grid-column:1 / -1}.observer-form-error,.observer-form-success{margin-top:14px;padding:10px 12px;border-radius:var(--radius-sm);font-size:13px;font-weight:700}.observer-form-error{color:var(--color-danger);background:#ef444414}.observer-form-success{color:var(--color-success);background:#10b9811a}.observer-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.observer-cancel-btn,.observer-submit-btn{padding:10px 18px;border-radius:var(--radius-sm);font-size:13px;font-weight:700}.observer-cancel-btn{color:var(--color-text-secondary);border:1px solid var(--color-border);background:#fff}.observer-submit-btn{color:#fff;background:var(--color-primary)}.observer-submit-btn:hover:not(:disabled){background:var(--color-primary-light)}.observer-submit-btn:disabled{opacity:.65;cursor:not-allowed}.captcha-row{display:flex;gap:10px;align-items:center}.captcha-input{flex:1;min-width:0}.captcha-img-wrap{flex-shrink:0;width:120px;height:50px;border-radius:var(--radius-md);border:1px solid var(--color-border);cursor:pointer;position:relative;overflow:hidden;transition:border-color .2s,box-shadow .2s;background:#eef1f8e6;display:flex;align-items:center;justify-content:center}.captcha-img-wrap:hover{border-color:var(--color-primary);box-shadow:0 0 0 3px #0033ff14}.captcha-img-wrap:hover .captcha-refresh-overlay{opacity:1}.captcha-img{width:100%;height:100%;display:block;object-fit:fill;border-radius:var(--radius-md)}.captcha-refresh-overlay{position:absolute;inset:0;background:#00000061;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity .2s ease;border-radius:var(--radius-md)}.captcha-placeholder{color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center}.captcha-loading{opacity:.45;pointer-events:none}@media(max-width:640px){.login-container{align-items:flex-start;overflow-y:auto;padding:24px 0}.login-card{padding:30px 22px}.observer-modal-overlay{align-items:flex-start;padding:14px}.observer-modal{padding:20px;max-height:calc(100vh - 28px)}.observer-form-grid{grid-template-columns:1fr}.observer-modal-actions{flex-direction:column-reverse}.observer-cancel-btn,.observer-submit-btn{width:100%}}.cage-import-overlay{align-items:flex-start;overflow-y:auto}.cage-import-modal{width:min(1120px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;padding:24px;overflow:hidden}.cage-import-modal-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.cage-import-modal-title h3{margin:0 0 6px;font-size:20px;line-height:1.25}.cage-import-modal-title p{margin:0;color:var(--color-text-secondary);font-size:13px}.cage-import-icon-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;color:var(--color-text-secondary);background:#ffffffd9;border:1px solid var(--color-border);flex-shrink:0}.cage-import-icon-btn:hover{color:var(--color-primary);background:#0033ff0f}.cage-import-body{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;overflow-y:auto;padding-right:4px}.cage-import-section{padding:18px;border-radius:var(--radius-md);background:#ffffffc7;border:1px solid rgba(229,231,235,.9);box-shadow:var(--shadow-sm)}.cage-import-section-wide{grid-column:1 / -1}.cage-import-section-title{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}.cage-import-section-title svg{margin-top:2px;color:var(--color-primary);flex-shrink:0}.cage-import-section-title h4{margin:0 0 4px;font-size:15px;line-height:1.3}.cage-import-section-title p{margin:0;color:var(--color-text-secondary);font-size:12px;line-height:1.5}.cage-import-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cage-import-rule-grid span{padding:8px 10px;border-radius:10px;background:#0033ff0d;color:var(--color-text-primary);font-size:12px;font-weight:600}.cage-import-selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;color:var(--color-text-secondary);font-size:13px}.cage-import-selection-toolbar strong{color:var(--color-primary)}.cage-import-selection-summary{min-width:0;display:flex;flex-direction:column;gap:4px}.cage-import-selection-summary small{color:var(--color-text-secondary);font-size:12px;line-height:1.45}.cage-import-link-btn{padding:4px 8px;color:var(--color-primary);font-size:12px;font-weight:700}.cage-import-row-list{max-height:210px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow-y:auto;margin-bottom:14px;padding-right:4px}.cage-import-row-option{min-width:0;display:flex;align-items:center;gap:8px;padding:10px;border-radius:10px;background:#f3f4f6bf;border:1px solid rgba(229,231,235,.9);cursor:pointer}.cage-import-row-option:hover{border-color:#0033ff40;background:#0033ff0a}.cage-import-row-option input{width:16px;height:16px;accent-color:var(--color-primary);flex-shrink:0}.cage-import-row-option span{min-width:0;display:flex;flex-direction:column;gap:2px}.cage-import-row-option strong{overflow:hidden;color:var(--color-text-primary);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.cage-import-row-option small{color:var(--color-text-secondary);font-size:11px}.cage-import-primary-btn,.cage-import-secondary-btn,.cage-import-danger-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:9px 14px;border-radius:10px;font-size:13px;font-weight:700;line-height:1;white-space:nowrap;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.cage-import-primary-btn{width:100%;color:#fff;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));box-shadow:var(--shadow-sm)}.cage-import-primary-btn:hover:not(:disabled),.cage-import-secondary-btn:hover:not(:disabled),.cage-import-danger-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.cage-import-secondary-btn{color:var(--color-primary);background:#ffffffeb;border:1px solid rgba(0,51,255,.14)}.cage-import-danger-btn{color:#fff;background:var(--color-danger)}.cage-import-primary-btn:disabled,.cage-import-secondary-btn:disabled,.cage-import-danger-btn:disabled{cursor:not-allowed;opacity:.55}.cage-import-secondary-btn.compact{min-height:32px;padding:7px 10px;font-size:12px}.cage-import-upload-box{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-md);background:#f3f4f6a6;border:1px dashed rgba(0,51,255,.18)}.cage-import-upload-box span{min-width:0;overflow:hidden;color:var(--color-text-secondary);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.cage-import-alert{display:flex;align-items:flex-start;gap:8px;margin-top:12px;padding:10px 12px;border-radius:10px;font-size:13px;line-height:1.5}.cage-import-alert svg{margin-top:2px;flex-shrink:0}.cage-import-alert.success{color:#065f46;background:#10b9811f}.cage-import-alert.danger{color:#991b1b;background:#ef44441f}.cage-import-report-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}.cage-import-report-grid div{padding:12px;border-radius:12px;background:#f3f4f6cc;border:1px solid rgba(229,231,235,.9)}.cage-import-report-grid div.danger{background:#ef444414;border-color:#ef44442e}.cage-import-report-grid strong{display:block;color:var(--color-text-primary);font-size:22px;line-height:1.2}.cage-import-report-grid span{color:var(--color-text-secondary);font-size:12px}.cage-import-part-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.cage-import-part-summary span{padding:7px 9px;border-radius:999px;color:var(--color-text-secondary);background:#0033ff0d;border:1px solid rgba(0,51,255,.1);font-size:12px}.cage-import-message-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.45}.cage-import-message-list p{display:flex;align-items:flex-start;gap:6px;margin:0}.cage-import-message-jump-btn,.cage-import-row-help-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;background:#ffffffc7;border:1px solid rgba(229,231,235,.9);color:inherit;flex-shrink:0;text-decoration:none}.cage-import-message-jump-btn:hover,.cage-import-row-help-btn:hover{color:var(--color-primary);border-color:#0033ff38;background:#0033ff0f}.cage-import-message-list.danger{color:#991b1b;background:#ef44441a}.cage-import-message-list.warning{color:#92400e;background:#f59e0b1f}.cage-import-preview-table-wrap{max-height:420px;overflow:auto;border-radius:12px;border:1px solid var(--color-border);background:var(--color-surface)}.cage-import-preview-table{width:100%;min-width:1880px;border-collapse:collapse;font-size:12px}.cage-import-preview-table th,.cage-import-preview-table td{padding:10px 12px;border-bottom:1px solid rgba(229,231,235,.85);text-align:left;white-space:nowrap}.cage-import-preview-table th{position:sticky;top:0;z-index:1;color:var(--color-text-secondary);background:#f3f4f6d9;font-weight:700}.cage-import-preview-table tr.is-error-row td{background:#ef44440f}.cage-import-preview-table tr.is-error-row:hover td{background:#ef444417}.cage-import-preview-table tr.is-highlighted td{background:#0033ff14;box-shadow:inset 3px 0 0 var(--color-primary)}.cage-import-preview-table tr{scroll-margin:72px}.cage-import-remark-cell{max-width:220px;overflow:hidden;text-overflow:ellipsis}.cage-import-status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700}.cage-import-status-pill.valid{color:#065f46;background:#10b9811f}.cage-import-status-pill.error{color:#991b1b;background:#ef44441f}.cage-import-status-pill.ignored{color:var(--color-text-secondary);background:#6b72801a}.cage-import-result-cell{display:inline-flex;align-items:center;gap:6px}.cage-import-row-help-btn{width:24px;height:24px;color:#991b1b;background:#ef444414;border-color:#ef444429}.cage-import-row-error-tip{position:fixed;z-index:1200;max-width:calc(100vw - 24px);padding:11px 12px;border-radius:12px;color:#991b1b;background:#fffffffa;border:1px solid rgba(239,68,68,.2);box-shadow:0 14px 36px #0f172a29;white-space:normal}.cage-import-row-error-tip:before{content:"";position:absolute;top:18px;right:-6px;width:10px;height:10px;background:#fffffffa;border-top:1px solid rgba(239,68,68,.2);border-right:1px solid rgba(239,68,68,.2);transform:rotate(45deg)}.cage-import-row-error-tip.is-after-trigger:before{right:auto;left:-6px;border:none;border-bottom:1px solid rgba(239,68,68,.2);border-left:1px solid rgba(239,68,68,.2)}.cage-import-row-error-tip-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}.cage-import-row-error-tip-title strong{color:#7f1d1d;font-size:13px;line-height:1.35}.cage-import-row-tip-close{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;color:#991b1b;background:#ef444414;flex-shrink:0}.cage-import-row-tip-close:hover{background:#ef444424}.cage-import-row-error-tip p{margin:0;font-size:12px;line-height:1.5}.cage-import-row-error-tip p+p{margin-top:4px}.cage-import-row-tip-message{display:flex;align-items:flex-start;gap:6px}.cage-import-row-tip-badge{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:1px 5px;border-radius:999px;font-size:11px;font-weight:700;flex-shrink:0}.cage-import-row-tip-badge.danger{color:#991b1b;background:#ef44441f}.cage-import-row-tip-badge.warning{color:#92400e;background:#f59e0b24}.cage-import-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.cage-import-history-list{display:flex;flex-direction:column;gap:10px}.cage-import-history-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:12px;background:#f3f4f6b8;border:1px solid rgba(229,231,235,.9)}.cage-import-history-item>div{min-width:0;display:flex;flex-direction:column;gap:4px}.cage-import-history-item strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.cage-import-history-item span{color:var(--color-text-secondary);font-size:12px}.cage-import-empty,.cage-import-loading{padding:16px;border-radius:12px;color:var(--color-text-secondary);background:#f3f4f6b8;font-size:13px;text-align:center}.cage-import-nested-overlay{z-index:1100}.cage-import-revoke-dialog{width:min(720px,100%);max-height:calc(100vh - 64px);display:flex;flex-direction:column;padding:22px;overflow-y:auto}.cage-import-revoke-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.cage-import-revoke-summary div{padding:12px;border-radius:12px;background:#f3f4f6c7;border:1px solid rgba(229,231,235,.9)}.cage-import-revoke-summary strong{display:block;font-size:22px}.cage-import-revoke-summary span{color:var(--color-text-secondary);font-size:12px}.cage-import-block-list,.cage-import-allowed-list{padding:12px;border-radius:12px;margin-bottom:12px}.cage-import-block-list{background:#ef444414}.cage-import-allowed-list{background:#10b9811a}.cage-import-block-list h4,.cage-import-allowed-list h4{margin:0 0 8px;font-size:13px}.cage-import-block-item{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-bottom:1px solid rgba(239,68,68,.12)}.cage-import-block-item:last-child{border-bottom:none}.cage-import-block-item strong{color:#991b1b}.cage-import-block-item span,.cage-import-block-item small,.cage-import-allowed-list p{margin:0;color:var(--color-text-secondary);font-size:12px;line-height:1.5}@media(max-width:768px){.cage-import-overlay{padding:12px}.cage-import-modal{max-height:calc(100vh - 24px);padding:18px;border-radius:var(--radius-lg)}.cage-import-modal-title{gap:10px}.cage-import-modal-title h3{font-size:18px}.cage-import-body{display:flex;flex-direction:column}.cage-import-section{padding:14px}.cage-import-rule-grid,.cage-import-row-list,.cage-import-report-grid,.cage-import-revoke-summary{grid-template-columns:1fr}.cage-import-selection-toolbar,.cage-import-upload-box,.cage-import-history-item,.cage-import-modal-actions{align-items:stretch;flex-direction:column}.cage-import-secondary-btn,.cage-import-danger-btn{width:100%}}.dashboard-container{display:flex;flex-direction:column;gap:24px}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dashboard-import-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;margin-top:2px;padding:10px 16px;border-radius:10px;background:var(--color-primary);color:#fff;font-size:14px;font-weight:700;box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.dashboard-import-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.page-title{font-size:24px;font-weight:700;margin-bottom:4px}.page-subtitle{color:var(--color-text-secondary);font-size:14px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-card{padding:16px;display:flex;align-items:center;gap:16px}.stat-filter-card{width:100%;color:var(--color-text-primary);text-align:left;border:1px solid var(--glass-border);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}.stat-filter-card:hover{border-color:#0033ff38;box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-filter-card:focus-visible{outline:3px solid rgba(0,51,255,.18);outline-offset:2px}.stat-filter-card.active{background:linear-gradient(145deg,#0033ff1f,#ffffffeb);border-color:#0033ff6b;box-shadow:0 10px 24px #0033ff1f}.stat-filter-card.active .stat-label,.stat-filter-card.active .stat-value{color:var(--color-primary)}.stat-card-soft-blue{background:linear-gradient(145deg,rgba(59,130,246,.05) 0%,transparent 100%),var(--glass-bg)}.stat-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center}.bgg-blue{background:#0033ff1a}.bgg-green{background:#10b9811a}.bgg-red{background:#ef44441a}.bgg-teal{background:#0d94881a}.bgg-amber{background:#d977061a}.bgg-gray{background:#6b72801a}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:24px;font-weight:700;line-height:1.2}.stat-label{font-size:12px;color:var(--color-text-secondary)}.dashboard-empty-state{padding:28px 18px;color:var(--color-text-secondary);font-size:14px;font-weight:600;text-align:center}.cage-matrix{padding:24px;content-visibility:auto;contain-intrinsic-size:900px}.matrix-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}.row-group{margin-bottom:16px;content-visibility:auto;contain-intrinsic-size:640px}.row-group-deferred{contain:layout paint style}.row-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.row-title-area{flex:1;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row-label{flex:1;min-width:140px;font-size:13px;font-weight:600;color:var(--color-primary);padding:4px 10px;border-left:3px solid var(--color-primary);background:#0033ff0a;border-radius:0 4px 4px 0}.row-last-viewed-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;padding:6px 10px;border-radius:999px;border:1px solid rgba(0,51,255,.18);background:#0033ff1a;color:var(--color-primary);font-size:12px;font-weight:700;white-space:nowrap;box-shadow:var(--shadow-sm);transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.row-last-viewed-btn:hover{background:#0033ff24;transform:translateY(-1px);box-shadow:var(--shadow-md)}.row-last-viewed-btn svg{flex-shrink:0}.section-toggle-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border-radius:999px;border:1px solid rgba(0,51,255,.12);background:#ffffffe6;color:var(--color-text-secondary);font-size:12px;font-weight:600;box-shadow:var(--shadow-sm);transition:all .2s ease}.section-toggle-btn:hover{color:var(--color-primary);border-color:#0033ff3d;transform:translateY(-1px);box-shadow:var(--shadow-md)}.section-toggle-btn svg{flex-shrink:0}.row-toggle-btn{padding:6px 10px}.matrix-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:16px}.matrix-chunk-stack{display:flex;flex-direction:column;gap:16px}.matrix-chunk-deferred{contain:layout paint style}.row-placeholder{position:relative;border-radius:var(--radius-md);overflow:hidden}.row-placeholder-shell{width:100%;height:100%;min-height:180px;border-radius:inherit;border:1px dashed rgba(0,51,255,.16);background:linear-gradient(180deg,#ffffffb8,#f3f4f6d1),linear-gradient(90deg,#0033ff08,#10b9810d)}.cage-node{position:relative;height:100px;border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;box-shadow:var(--shadow-sm);transition:all .2s ease;border:2px solid transparent}.cage-node.last-viewed-cage{border-color:#0033ff6b;box-shadow:inset 0 0 0 2px #0033ff1f,0 10px 22px #0033ff24}.cage-node:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.cage-node.last-viewed-cage:hover{box-shadow:inset 0 0 0 2px #0033ff29,0 12px 24px #0033ff29}.cage-id{font-size:20px;font-weight:700}.cage-phase{font-size:13px;font-weight:600;padding:3px 10px;border-radius:12px;background:#ffffffd9}.dashboard-abandon-overdue-tag{display:inline-flex;align-items:center;justify-content:center;max-width:calc(100% - 14px);padding:2px 8px;border-radius:999px;background:#f59e0b2e;color:#b45309;border:1px solid rgba(245,158,11,.3);font-size:11px;font-weight:800;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cage-chicks{position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--color-text-primary);background:#fffc;padding:2px 6px;border-radius:8px}.cage-alert-dot{position:absolute;top:-4px;left:-4px;width:14px;height:14px;background-color:var(--color-warning);border-radius:50%;border:2px solid white;animation:pulse 2s infinite}.dashboard-last-viewed-tag{display:inline-flex;align-items:center;justify-content:center;max-width:calc(100% - 16px);padding:2px 7px;border-radius:999px;background:#0033ff1f;color:var(--color-primary);font-size:11px;font-weight:800;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #f59e0bb3}70%{transform:scale(1);box-shadow:0 0 0 10px #f59e0b00}to{transform:scale(.95);box-shadow:0 0 #f59e0b00}}.status-normal{background:var(--color-surface);color:var(--color-text-primary)}.status-warning{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;border-color:#fcd34d}.status-success{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46;border-color:#6ee7b7}.status-danger{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;border-color:#fca5a5}@media(max-width:768px){.dashboard-header{flex-direction:column;align-items:stretch}.dashboard-import-btn{justify-content:center;width:100%}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-card{min-height:84px;padding:14px;gap:12px}.stat-icon{width:42px;height:42px}.matrix-header,.row-header,.row-title-area{align-items:stretch;flex-direction:column}.row-label{min-width:0}.row-last-viewed-btn{width:100%;white-space:normal;text-align:center}.section-toggle-btn{width:100%}.matrix-grid{grid-template-columns:repeat(3,1fr)}.matrix-chunk-stack{gap:12px}.row-placeholder-shell{border-style:solid;background:linear-gradient(180deg,#ffffffdb,#f3f4f6eb),linear-gradient(90deg,#0033ff05,#10b9810a)}.cage-node{height:108px;gap:6px}.cage-id{font-size:16px}.dashboard-last-viewed-tag{font-size:10px}.dashboard-abandon-overdue-tag{font-size:10px;padding:2px 6px}.cage-alert-dot{animation:none;box-shadow:none}}.cockpit-page{display:flex;flex-direction:column;gap:16px;padding-bottom:24px}.cockpit-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:0}.cockpit-live-badge{white-space:nowrap;background:#2563eb1a;color:var(--color-primary)}.cockpit-header-actions{display:flex;align-items:center;gap:8px}.cockpit-filter-toggle{display:none;align-items:center;gap:6px;min-height:32px;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#ffffffe6;color:var(--color-primary);font-size:13px;font-weight:800}.cockpit-filter{display:grid;grid-template-columns:minmax(170px,auto) minmax(280px,1.1fr) minmax(320px,1.2fr) minmax(260px,.9fr);gap:14px;align-items:stretch;padding:16px}.cockpit-filter-block{display:flex;flex-direction:column;gap:8px;min-width:0}.cockpit-filter-title{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary);font-size:13px;font-weight:800}.cockpit-segment,.cockpit-periods{display:flex;gap:8px;flex-wrap:wrap}.cockpit-segment button,.cockpit-period-btn{min-height:36px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fffc;color:var(--color-text-secondary);font-size:13px;font-weight:800;cursor:pointer;transition:all .18s ease}.cockpit-segment button.active,.cockpit-period-btn.active{border-color:#2563eb59;background:#2563eb1f;color:var(--color-primary);box-shadow:0 6px 16px #2563eb1f}.cockpit-datetime-row,.cockpit-scope-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cockpit-scope-row select:first-child{grid-column:span 1}.cockpit-datetime-row input,.cockpit-scope-row select,.cockpit-chart-select{min-height:36px;width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#ffffffeb;color:var(--color-text-primary);font-size:13px;font-weight:700}.cockpit-datetime-row input,.cockpit-scope-row select{padding:0 10px}.cockpit-chart-select{max-width:120px;padding:0 10px}.cockpit-hint{color:var(--color-warning);font-size:12px;font-weight:700}.cockpit-notice{padding:12px 14px;color:var(--color-warning);font-size:13px;font-weight:700}.cockpit-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.cockpit-kpi{display:flex;flex-direction:column;gap:8px;min-height:94px;padding:16px;border-left:4px solid rgba(37,99,235,.42)}.cockpit-kpi span{color:var(--color-text-secondary);font-size:13px;font-weight:800}.cockpit-kpi strong{color:var(--color-text-primary);font-size:28px;line-height:1;word-break:break-word}.cockpit-kpi.tone-green{border-left-color:var(--color-success)}.cockpit-kpi.tone-red{border-left-color:var(--color-danger)}.cockpit-kpi.tone-amber{border-left-color:var(--color-warning)}.cockpit-kpi.tone-cyan{border-left-color:#14b8a6}.cockpit-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cockpit-chart-card{min-width:0;padding:16px}.cockpit-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:50px;margin-bottom:10px}.cockpit-card-head h3{display:flex;align-items:center;gap:8px;margin:0;color:var(--color-text-primary);font-size:16px;line-height:1.35}.cockpit-card-head p{margin:4px 0 0;color:var(--color-text-secondary);font-size:12px;font-weight:700;line-height:1.45}.cockpit-chart-wrap{min-height:260px;width:100%}.cockpit-custom-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 10px;margin-top:10px}.cockpit-legend-item{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 9px;border:1px solid rgba(148,163,184,.28);border-radius:999px;background:#ffffffdb;color:var(--color-text-secondary);font-size:12px;font-weight:800;cursor:pointer;transition:all .18s ease}.cockpit-legend-item:hover{border-color:#2563eb4d;background:#2563eb14;color:var(--color-primary)}.cockpit-legend-item span{width:9px;height:9px;border-radius:999px;flex:0 0 auto}.cockpit-legend-item.inactive{color:#9ca3af;text-decoration:line-through;background:#f3f4f6b8}.cockpit-legend-item.inactive span{opacity:.32}.cockpit-empty-chart{display:flex;align-items:center;justify-content:center;min-height:260px;border:1px dashed rgba(148,163,184,.45);border-radius:var(--radius-md);background:#f8fafcc7;color:var(--color-text-secondary);text-align:center;font-size:13px;font-weight:800}.cockpit-footnotes{display:flex;flex-wrap:wrap;gap:10px 16px;padding:13px 16px;color:var(--color-text-secondary);font-size:12px;font-weight:700}@media(max-width:1180px){.cockpit-filter{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:920px){.cockpit-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cockpit-chart-grid{grid-template-columns:1fr}}@media(max-width:768px){.cockpit-page{gap:12px;padding-bottom:96px}.cockpit-page-header{flex-direction:column}.cockpit-header-actions{width:100%;justify-content:space-between}.cockpit-filter-toggle{display:inline-flex}.cockpit-filter{grid-template-columns:1fr;padding:14px}.cockpit-filter.collapsed{display:none}.cockpit-datetime-row,.cockpit-scope-row{grid-template-columns:1fr}.cockpit-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cockpit-kpi{min-height:86px;padding:14px}.cockpit-kpi strong{font-size:23px}.cockpit-card-head{flex-direction:column;min-height:0}.cockpit-chart-select{max-width:none}.cockpit-custom-legend{justify-content:flex-start}}@media(max-width:430px){.cockpit-kpi-grid{grid-template-columns:1fr}}.cage-detail{padding:16px;width:100%}@media(min-width:768px)and (orientation:landscape){.cage-detail{padding:16px 24px}.pad-grid{grid-template-columns:repeat(3,1fr)!important}}@media(min-width:1024px)and (orientation:landscape){.pad-grid{grid-template-columns:repeat(4,1fr)!important}}.detail-header{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:16px;margin-bottom:12px}.back-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:6px;border-radius:50%;transition:background .2s}.back-btn:hover{background:#6366f11a}.title-area{flex:1}.title-text{font-size:1.3rem;font-weight:700;margin:0}.status-badge-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:4px}.status-badge{display:inline-block;font-size:.75rem;padding:2px 10px;border-radius:8px;background:var(--glass-bg);color:var(--text-secondary)}.detail-abandon-overdue-tag{display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:2px 9px;border-radius:999px;background:#f59e0b2e;color:#b45309;border:1px solid rgba(245,158,11,.3);font-size:.75rem;font-weight:800;line-height:1.35;white-space:nowrap}.date-picker-wrap{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:12px;margin-bottom:12px;font-size:.9rem}.date-input{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;padding:6px 12px;color:var(--text-primary);font-size:.9rem}.summary-card{padding:14px 18px;border-radius:14px;margin-bottom:16px}.summary-row{display:flex;justify-content:space-between;padding:4px 0;font-size:.9rem}.summary-row .val{font-weight:600}.warning-text{color:var(--color-warning, #f59e0b)}.pad-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}.pad-btn-wrap{position:relative;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 8px #00000014;transition:transform .15s,box-shadow .15s}.pad-btn-wrap:active{transform:scale(.97)}.pad-btn-top{display:flex;flex-direction:column;align-items:center;justify-content:center;border:none;cursor:pointer;padding:22px 10px 18px;gap:8px;transition:filter .15s;min-height:110px}.pad-btn-top:hover{filter:brightness(1.08)}.pad-btn-top:active{filter:brightness(.92)}.pad-btn-bottom{display:flex;align-items:center;justify-content:center;gap:4px;border:none;cursor:pointer;padding:5px 8px;font-size:.7rem;background:#00000014;color:#ffffffd9;transition:background .15s}.pad-btn-bottom:hover{background:#0000002e}.history-count{font-weight:700}.pad-icon{display:flex;align-items:center;justify-content:center}.pad-label{font-size:1.1rem;font-weight:700;letter-spacing:.5px}.color-egg1 .pad-btn-top{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.color-egg1 .pad-btn-bottom{background:#2563eb4d}.color-egg2 .pad-btn-top{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.color-egg2 .pad-btn-bottom{background:#16a34a4d}.color-fertile .pad-btn-top{background:linear-gradient(135deg,#06b6d4,#0891b2);color:#fff}.color-fertile .pad-btn-bottom{background:#0891b24d}.color-infertile .pad-btn-top{background:linear-gradient(135deg,#94a3b8,#64748b);color:#fff}.color-infertile .pad-btn-bottom{background:#64748b4d}.color-hatch .pad-btn-top{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.color-hatch .pad-btn-bottom{background:#0596694d}.color-transfer .pad-btn-top{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.color-transfer .pad-btn-bottom{background:#d977064d}.color-dead .pad-btn-top{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.color-dead .pad-btn-bottom{background:#dc26264d}.color-abandon .pad-btn-top{background:linear-gradient(135deg,#e11d48,#be123c);color:#fff}.color-abandon .pad-btn-bottom{background:#be123c4d}.color-netegg .pad-btn-top{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.color-netegg .pad-btn-bottom{background:#7c3aed4d}.color-broken .pad-btn-top{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff}.color-broken .pad-btn-bottom{background:#ea580c4d}.color-defect .pad-btn-top{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.color-defect .pad-btn-bottom{background:#f59e0b4d}.color-eliminate .pad-btn-top{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.color-eliminate .pad-btn-bottom{background:#4b55634d}.new-pigeon-action{position:absolute;top:8px;right:8px;z-index:2;display:inline-flex;align-items:center;gap:3px;min-height:26px;padding:4px 8px;border:1px solid rgba(16,185,129,.38);border-radius:999px;background:#ecfdf5f0;color:#047857;font-size:.68rem;font-weight:800;line-height:1;cursor:pointer;box-shadow:0 4px 12px #0f172a1f;transition:transform .15s,background .15s,border-color .15s}.new-pigeon-action:hover:not(:disabled){transform:translateY(-1px);background:#d1fae5;border-color:#10b9818c}.new-pigeon-action.is-marked,.new-pigeon-action:disabled{cursor:default;background:#f0fdf4f5;color:#15803d;border-color:#22c55e6b;box-shadow:none}.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-card{width:100%;max-width:380px;padding:24px;border-radius:20px;animation:fadeUp .2s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-card h3{margin:0 0 12px;font-size:1.1rem;font-weight:700}.modal-actions{display:flex;gap:10px;margin-top:16px}.modal-btn{flex:1;padding:12px 16px;border-radius:12px;font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:all .15s}.modal-btn.outline{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-primary)}.modal-btn.outline:hover{background:#6366f11a}.modal-btn.primary{background:linear-gradient(135deg,var(--color-primary),#7c3aed);color:#fff}.modal-btn.primary:hover{filter:brightness(1.1)}.modal-btn.text-only{background:none;color:var(--text-secondary)}.qty-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.qty-grid .modal-btn{flex:0 0 calc(50% - 4px)}.mb-4{margin-bottom:16px}.history-modal{max-width:420px;max-height:70vh;display:flex;flex-direction:column}.history-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.history-modal-header h3{margin:0}.close-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:50%}.close-btn:hover{background:#0000001a}.history-summary{font-size:.85rem;color:var(--text-secondary);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--glass-border)}.history-list{flex:1;overflow-y:auto;max-height:50vh}.history-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:10px;margin-bottom:6px;background:#00000008;transition:background .15s}.history-item:hover{background:#0000000f}.history-item-info{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1}.history-date{font-weight:600;font-size:.9rem;color:var(--text-primary)}.history-time{font-size:.78rem;color:var(--text-secondary)}.history-detail{font-size:.78rem;padding:2px 8px;border-radius:6px;background:var(--glass-bg);color:var(--text-secondary)}.delete-btn{background:none;border:none;color:#ef4444;cursor:pointer;padding:6px;border-radius:50%;opacity:.5;transition:opacity .15s,background .15s}.history-item-actions{display:flex;align-items:center;gap:8px;margin-left:12px}.history-action-btn{border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text-primary);border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.history-action-btn:hover{background:#6366f11f;border-color:#6366f13d}.history-action-btn.danger,.modal-btn.primary.danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-color:transparent}.history-action-btn.danger:hover,.modal-btn.primary.danger:hover{filter:brightness(1.08)}@media(max-width:640px){.history-item{flex-direction:column;align-items:stretch;gap:10px}.history-item-actions{margin-left:0;justify-content:flex-end}}.delete-btn:hover{opacity:1;background:#ef44441a}.empty-text{text-align:center;color:var(--text-secondary);padding:20px;font-size:.9rem}.btn-ripple{position:relative;overflow:hidden}.history-ledger-section{margin-top:20px;padding:16px;margin-bottom:20px}.ledger-header{margin-bottom:15px}.ledger-header h3{display:flex;align-items:center;gap:8px;font-size:16px;margin:0;color:var(--text-primary)}.ledger-container{width:100%;overflow-x:auto}.ledger-table{width:100%;border-collapse:collapse;font-size:13px;min-width:320px}.ledger-table th{text-align:left;padding:10px 8px;border-bottom:2px solid var(--glass-border);color:var(--text-secondary);font-weight:600}.ledger-table td{padding:10px 8px;border-bottom:1px solid var(--glass-border);color:var(--text-primary);vertical-align:middle}.ledger-type-badge{padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;white-space:nowrap}.ledger-type-badge.type-egg1{background:#6366f11a;color:#6366f1}.ledger-type-badge.type-egg2{background:#22c55e1a;color:#22c55e}.ledger-type-badge.type-fertile{background:#06b6d41a;color:#06b6d4}.ledger-type-badge.type-infertile{background:#94a3b81a;color:#64748b}.ledger-type-badge.type-hatch{background:#10b9811a;color:#10b981}.ledger-type-badge.type-transfer{background:#f59e0b1a;color:#f59e0b}.ledger-type-badge.type-dead{background:#ef44441a;color:#ef4444}.ledger-type-badge.type-abandon{background:#e11d481a;color:#e11d48}.ledger-type-badge.type-netegg{background:#8b5cf61a;color:#8b5cf6}.ledger-type-badge.type-broken{background:#f973161a;color:#f97316}.ledger-type-badge.type-defect{background:#f59e0b1a;color:#d97706}.ledger-type-badge.type-eliminate{background:#6b72801a;color:#4b5563}.ledger-type-badge.type-new-pigeon{background:#10b9811f;color:#047857}.ledger-type-badge.type-revoke{background:#94a3b81a;color:#64748b}.evt-time{color:var(--text-secondary);font-family:monospace;font-size:12px}.evt-operator{font-weight:600;color:var(--color-primary)}.ledger-date-sub{font-size:11px;color:#94a3b8;margin-top:2px}.ledger-data-tip{font-size:11px;color:var(--text-secondary);margin-top:4px;background:#0000000a;display:inline-block;padding:1px 6px;border-radius:4px}.ledger-data-tip.danger-tip{color:#ef4444;background:#ef44440d}.revoked-row{opacity:.6;text-decoration:line-through}.revoked-row .ledger-data-tip{text-decoration:none}.revoked-mark{font-size:10px;font-weight:400;color:#6b7280;margin-left:2px}.prediction-container{padding:16px;width:100%}.today-count{display:inline-flex;align-items:center;justify-content:center;background:#ef4444;color:#fff;font-size:.75rem;font-weight:700;min-width:22px;height:22px;border-radius:11px;padding:0 6px;margin-left:8px;vertical-align:middle;animation:pulse 2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 6px #ef444400}}.main-tabs{display:flex;gap:0;border-radius:14px;overflow:hidden;margin-bottom:14px;padding:0}.main-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:14px 8px;border:none;background:transparent;cursor:pointer;font-size:.82rem;font-weight:600;color:var(--text-secondary);transition:all .25s;border-bottom:3px solid transparent;white-space:nowrap}.main-tab:hover{background:#6366f10a}.main-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:#6366f114}.sub-tabs{display:flex;gap:0;border-bottom:1px solid var(--glass-border)}.sub-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:11px 6px;border:none;background:transparent;cursor:pointer;font-size:.82rem;font-weight:600;color:var(--text-secondary);transition:all .2s;border-bottom:3px solid transparent}.sub-tab:hover{background:#00000008}.sub-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:#6366f10d}.sub-tab.tab-egg1.active{color:#3b82f6;border-bottom-color:#3b82f6;background:#3b82f60d}.sub-tab.tab-egg2.active{color:#22c55e;border-bottom-color:#22c55e;background:#22c55e0d}.sub-tab.tab-place.active{color:#f59e0b;border-bottom-color:#f59e0b;background:#f59e0b0d}.sub-tab.tab-cloth.active{color:#0f766e;border-bottom-color:#0f766e;background:#0f766e0f}.tab-content{border-radius:16px;overflow:hidden}.prediction-content{display:flex;flex-direction:column;gap:0}.prediction-restore-notice{display:flex;align-items:center;gap:8px;margin:6px 0 10px;padding:10px 14px;border:1px solid rgba(0,51,255,.16);border-radius:10px;background:#eff6fff5;color:var(--color-primary);font-size:.88rem;line-height:1.5;box-shadow:var(--glass-shadow)}.prediction-restore-notice svg{flex-shrink:0}.group-list{padding:8px}.pred-item{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid transparent;border-radius:10px;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;margin-bottom:4px}.pred-item:hover{background:#6366f10f}.pred-item.overdue{background:#ef44440f}.pred-item.abnormal{background:#ef44440a}.pred-item.last-visited{background:#0033ff14;border-color:#0033ff47;box-shadow:inset 4px 0 0 var(--color-primary),0 8px 18px #0033ff14}.pred-item.last-visited:hover{background:#0033ff1c}.item-info{display:flex;flex-direction:row;align-items:center;justify-content:space-between;flex:1;gap:12px}.item-title{font-weight:600;font-size:1.05rem;display:flex;align-items:center;gap:8px}.item-date{display:flex;align-items:center;gap:6px;font-size:.9rem;color:var(--text-secondary)}.type-tag{font-size:.68rem;padding:1px 8px;border-radius:6px;font-weight:700}.tag-egg1{background:#3b82f626;color:#3b82f6}.tag-egg2{background:#22c55e26;color:#16a34a}.tag-place{background:#f59e0b26;color:#d97706}.tag-cloth{background:#0f766e24;color:#0f766e}.tag-abnormal{background:#ef44441f;color:#dc2626}.todo-action-group{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px;flex-shrink:0;max-width:360px}.todo-action-btn{min-width:52px;min-height:32px;padding:7px 10px;border:1px solid rgba(0,51,255,.14);border-radius:9px;background:#eff6fff2;color:var(--color-primary);font-size:.78rem;font-weight:800;line-height:1;white-space:nowrap;transition:transform .15s,background .15s,border-color .15s}.todo-action-btn:hover{transform:translateY(-1px);background:#dbeafefa;border-color:#0033ff40}.todo-action-btn:disabled{cursor:wait;opacity:.62;transform:none;pointer-events:none}.todo-action-btn.success,.todo-action-btn.action-place{border-color:#10b98133;background:#ecfdf5fa;color:#047857}.todo-action-btn.warning{border-color:#f59e0b38;background:#fffbebfa;color:#b45309}.todo-action-btn.danger{border-color:#ef444433;background:#fef2f2fa;color:#dc2626}.sub-tabs-wrap{border-bottom:1px solid var(--glass-border)}.sub-tabs-wrap .sub-tabs{border-bottom:none}.cloth-merge-toggle{display:inline-flex;align-items:center;gap:8px;margin:8px 12px 10px;padding:8px 12px;border:1px solid rgba(15,118,110,.16);border-radius:999px;background:#f0fdfae6;color:#0f766e;font-size:.8rem;font-weight:700;line-height:1.3}.cloth-merge-toggle input{width:16px;height:16px;accent-color:#0f766e}.todo-undo-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:12px 14px;border-radius:14px}.todo-message{color:var(--color-text-primary);font-size:.85rem;font-weight:700}.todo-undo-list{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.todo-undo-title{color:var(--color-text-secondary);font-size:.78rem;font-weight:700}.todo-undo-btn{display:inline-flex;align-items:center;gap:5px;min-height:30px;max-width:220px;padding:6px 10px;border:1px solid rgba(0,51,255,.14);border-radius:999px;background:#fffc;color:var(--color-primary);font-size:.76rem;font-weight:700}.todo-undo-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prediction-modal{width:min(100%,440px);padding:24px;border-radius:var(--radius-lg);animation:modalFadeUp .2s ease}.prediction-modal h3{margin:0 0 10px;font-size:1.1rem;font-weight:800}.prediction-modal p{margin:0;color:var(--color-text-secondary);font-size:.92rem;line-height:1.6}.prediction-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.prediction-modal-actions.egg2-choice{flex-wrap:wrap}.prediction-modal-btn{min-height:38px;padding:9px 14px;border-radius:10px;font-size:.86rem;font-weight:800}.prediction-modal-btn.outline{border:1px solid var(--color-border);background:#ffffffdb;color:var(--color-text-secondary)}.prediction-modal-btn.primary{background:var(--color-primary);color:#fff}.prediction-modal-btn:disabled{cursor:wait;opacity:.65}.abandon-overdue-tag{font-size:.68rem;padding:2px 8px;border-radius:999px;background:#f59e0b29;color:#b45309;border:1px solid rgba(245,158,11,.28);font-weight:700;white-space:nowrap}.last-visited-tag{font-size:.68rem;padding:2px 8px;border-radius:999px;background:#0033ff1f;color:var(--color-primary);font-weight:700;white-space:nowrap}.overdue-badge{font-size:.68rem;padding:1px 6px;border-radius:4px;background:#ef4444;color:#fff;font-weight:600;margin-left:6px}.warning-badge{font-size:.68rem;padding:1px 6px;border-radius:4px;background:#f59e0b;color:#fff;font-weight:600;margin-left:6px}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:10px;padding:0 6px;font-size:.72rem;font-weight:700;background:var(--glass-bg);color:var(--text-primary)}.badge.urgent{background:#ef4444;color:#fff}.badge.warn{background:#f59e0b;color:#fff}.abnormal-type{font-size:.78rem;color:#ef4444;font-weight:600}.empty-state{text-align:center;padding:20px;color:var(--text-secondary);font-size:.85rem}.icon-btn{background:none;border:none;cursor:pointer;padding:8px;border-radius:50%;transition:background .15s}.icon-btn:hover{background:#6366f11a}.pred-filter{margin-bottom:14px;padding:14px 18px;display:flex;flex-direction:column;gap:10px;border-radius:12px}.pred-filter .filter-row{display:flex;align-items:center;gap:10px}.pred-filter .filter-label{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.pred-filter .filter-select{flex:1;padding:8px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-background);font-size:.85rem;color:var(--color-text);cursor:pointer}.pred-filter .filter-select:focus{outline:none;border-color:var(--color-primary)}.layout-toggle{display:flex;align-items:center;gap:4px;padding:8px 14px;border:1px solid var(--color-border);border-radius:8px;background:#fff;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:all .2s;white-space:nowrap}.layout-toggle.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.dual-row-selectors{display:flex;gap:10px}.dual-column-layout{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;gap:16px}.column-panel{display:flex;flex-direction:column;min-width:0;max-height:min(62vh,680px);border:1px solid var(--color-border);border-radius:10px;overflow:hidden;background:#ffffff6b}.column-header{padding:10px 14px;font-weight:600;font-size:.85rem;color:var(--color-primary);background:#0033ff0a;border-bottom:1px solid var(--color-border)}.prediction-column-list{flex:1;min-height:180px;max-height:min(56vh,620px);overflow-y:auto;scrollbar-gutter:stable;padding-right:10px}@media(max-width:1024px){.pred-item{align-items:flex-start;flex-wrap:wrap}.item-info{flex:1 1 260px;min-width:min(100%,260px);flex-wrap:wrap}.todo-action-group{width:100%;max-width:none;justify-content:flex-start}.pred-item>.icon-btn{margin-left:auto}}@media(max-width:768px){.prediction-container{padding:0}.pred-filter .filter-row,.dual-row-selectors{flex-direction:column;align-items:stretch}.pred-filter .filter-label{align-self:flex-start}.main-tabs,.sub-tabs{overflow-x:auto}.main-tab,.sub-tab{min-width:112px}.dual-column-layout{grid-template-columns:1fr;gap:12px}.column-panel{max-height:none}.prediction-column-list{max-height:min(46vh,420px)}.pred-item{flex-direction:column;align-items:flex-start}.item-info{width:100%;flex-direction:column;align-items:flex-start;gap:6px}.item-title{flex-wrap:wrap;line-height:1.35}.item-date{flex-wrap:wrap}.todo-action-group{width:100%;max-width:none;justify-content:flex-start}.todo-action-btn{flex:1 1 64px}.pred-item>.icon-btn{align-self:flex-end;margin-top:-4px}.todo-undo-panel{align-items:flex-start;flex-direction:column}.todo-undo-list{justify-content:flex-start}.prediction-modal-actions,.prediction-modal-actions.egg2-choice{flex-direction:column}.prediction-modal-btn{width:100%}}.alerts-container{display:flex;flex-direction:column;gap:16px}.text-danger{color:var(--color-danger)}.alerts-filter{padding:14px 18px;display:flex;align-items:center;gap:10px;border-radius:12px}.alerts-filter .filter-label{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.alerts-filter .filter-select{flex:1;padding:8px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-background);font-size:.85rem;color:var(--color-text);cursor:pointer}.alerts-filter .filter-select:focus{outline:none;border-color:var(--color-primary)}.alerts-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;align-items:start}.alert-column{border-radius:14px;overflow:hidden;display:flex;flex-direction:column;min-height:160px}.column-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-top:3px solid transparent;background:#00000005}.column-title{display:flex;align-items:center;gap:8px}.column-title-text{display:flex;flex-direction:column;gap:1px}.column-main-label{font-size:.82rem;font-weight:700;line-height:1.2}.column-sub-label{font-size:.7rem;opacity:.75;line-height:1.2}.column-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:11px;padding:0 6px;font-size:.72rem;font-weight:700;color:#fff;flex-shrink:0}.column-body{flex:1;border-top:1px solid var(--color-border)}.column-empty{padding:20px 14px;text-align:center;font-size:.78rem;color:var(--color-text-secondary);opacity:.6}.alert-card{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--color-border);transition:background .15s}.alert-card:last-child{border-bottom:none}.alert-card:hover{background:#00000008}.alert-content{flex:1;overflow:hidden;display:flex;align-items:center;gap:6px;min-width:0}.alert-title{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.abandon-overdue-tag{flex-shrink:0;font-size:.68rem;padding:2px 8px;border-radius:999px;background:#f59e0b29;color:#b45309;border:1px solid rgba(245,158,11,.28);font-weight:700;white-space:nowrap}.new-pigeon-alert-tag{flex-shrink:0;font-size:.68rem;padding:2px 8px;border-radius:999px;background:#10b98124;color:#047857;border:1px solid rgba(16,185,129,.28);font-weight:800;white-space:nowrap}@media(max-width:900px){.alerts-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.alerts-grid{grid-template-columns:repeat(2,1fr)}}.stats-page{display:flex;flex-direction:column}.filter-bar{display:flex;flex-direction:column;gap:12px;padding:16px}.level-tabs{display:flex;gap:8px;background:#0000000d;padding:4px;border-radius:var(--radius-md)}.tab-btn{flex:1;padding:8px 0;border-radius:var(--radius-sm);font-weight:600;color:var(--color-text-secondary);transition:all .2s}.tab-btn.active{background:#fff;color:var(--color-primary);box-shadow:var(--shadow-sm)}.node-select{padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:15px;background:#fff;color:var(--color-text-primary)}.stats-overview{padding:20px}.stats-overview h3{display:flex;align-items:center;gap:8px;font-size:16px;margin-bottom:20px}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.overview-item{display:flex;flex-direction:column;gap:10px;padding:20px 16px;background:var(--color-background);border-radius:var(--radius-md);text-align:center}.overview-item .stat-label{font-size:18px;font-weight:700;color:var(--color-text-secondary)}.overview-item strong{font-size:38px;font-weight:800;color:var(--color-primary);line-height:1.1}.events-timeline{padding:20px;flex:1}.timeline-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}.events-timeline h3{display:flex;align-items:center;gap:8px;font-size:16px;margin-bottom:0}.timeline-page-size{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary);font-size:13px;font-weight:700}.timeline-page-size select{height:34px;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text-primary);font-weight:700}.timeline-list{display:flex;flex-direction:column;gap:12px}.timeline-item{display:flex;align-items:flex-start;gap:16px;padding:14px 16px;border-left:3px solid var(--color-primary);background:#fff6;border-radius:0 8px 8px 0}.revoked-item{opacity:.72;border-left-color:#94a3b8}.tl-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.tl-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tl-type{font-weight:700;color:var(--color-primary);font-size:14px}.tl-status-tag{font-size:11px;font-weight:700;color:#64748b;background:#94a3b82e;border-radius:999px;padding:2px 8px}.tl-cage{color:var(--color-text-secondary);font-size:13px;font-weight:600}.tl-details{display:flex;flex-wrap:wrap;gap:8px}.tl-meta{min-width:112px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:12px;color:var(--color-text-secondary)}.tl-time{font-family:monospace;font-size:13px;color:var(--color-text-primary);font-weight:700}.tl-date{font-size:12px}.tl-operator{font-size:12px;font-weight:600;color:var(--color-primary)}.overview-item.clickable{cursor:pointer;transition:all .2s;border:2px solid transparent}.overview-item.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.overview-item.active-filter{border-color:var(--color-primary);background:#6366f114;transform:translateY(-2px);box-shadow:0 4px 12px #6366f133}.click-hint{font-size:.7rem;color:var(--color-text-secondary);font-weight:400;margin-left:8px}.filter-tag{font-size:.72rem;padding:2px 10px;border-radius:8px;background:var(--color-primary);color:#fff;font-weight:600;margin-left:8px}.tl-delete-btn{background:none;border:none;color:#ef4444;cursor:pointer;padding:6px;border-radius:50%;opacity:.4;transition:opacity .15s,background .15s;margin-left:auto;flex-shrink:0}.tl-delete-btn:hover{opacity:1;background:#ef44441a}.tl-delete-btn:disabled{opacity:.2;cursor:not-allowed;background:transparent}.tl-detail{font-size:.75rem;padding:1px 6px;border-radius:4px;background:#0000000d;color:var(--color-text-secondary);margin-left:6px}.tl-detail-muted{color:#94a3b8}.empty-text{text-align:center;color:var(--color-text-secondary);padding:20px}.timeline-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid rgba(229,231,235,.8)}.page-btn{min-width:78px;height:36px;padding:0 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text-primary);font-size:13px;font-weight:700;transition:all .15s}.page-btn:not(:disabled):hover{color:var(--color-primary);border-color:#0033ff59;background:#0033ff0f}.page-btn:disabled{cursor:not-allowed;opacity:.45}.page-info{min-width:96px;text-align:center;color:var(--color-text-secondary);font-size:13px;font-weight:700}.stat-header{display:flex;align-items:center;justify-content:center;gap:4px}.stat-header .stat-label{font-size:18px;font-weight:700;color:var(--color-text-secondary)}.time-filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px}.time-mode-label{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:700;color:var(--color-text-secondary);white-space:nowrap}.time-mode-tabs{display:flex;gap:6px;background:#0000000d;padding:4px;border-radius:var(--radius-md)}.time-tab-btn{padding:8px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--color-text-secondary);transition:all .2s;white-space:nowrap}.time-tab-btn.active{background:#fff;color:var(--color-primary);box-shadow:var(--shadow-sm)}.time-picker-row{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary)}.time-input{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:15px;font-weight:600;background:#fff;color:var(--color-text-primary);outline:none}.time-input:focus{border-color:var(--color-primary)}@media(max-width:600px){.time-filter-bar{flex-direction:column;align-items:flex-start}.time-mode-tabs{width:100%}.time-tab-btn{flex:1;text-align:center}}.stat-delete-btn{background:none;border:none;color:#d1d5db;cursor:pointer;padding:10px;min-width:36px;min-height:36px;border-radius:8px;opacity:0;transition:opacity .15s,color .15s,background .15s;display:flex;align-items:center;justify-content:center}.overview-item:hover .stat-delete-btn{opacity:.6}.stat-delete-btn:hover{opacity:1!important;color:#ef4444}.text-success{color:#22c55e!important}.modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-card{max-width:360px;width:100%;padding:24px;border-radius:16px;text-align:center}.modal-card h3{margin:0 0 12px;font-size:1.1rem}.modal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px}.modal-btn{padding:10px 20px;border-radius:10px;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .15s}.modal-btn.outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary)}.modal-btn.primary{background:var(--color-primary);border:none;color:#fff}.modal-btn.danger{background:#ef4444}@media(max-width:768px){.timeline-header{align-items:flex-start}.timeline-page-size{width:100%;justify-content:flex-end}.timeline-item{flex-direction:column;gap:10px}.tl-meta{width:100%;min-width:0;align-items:flex-start;padding-left:0}.tl-delete-btn{margin-left:0;align-self:flex-end}.timeline-pagination{justify-content:space-between}.page-info{min-width:84px}}.performance-page{display:flex;flex-direction:column}.ranking-list{display:flex;flex-direction:column;overflow:hidden}.ranking-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--color-border);background:#ffffff6b}.ranking-status{color:var(--color-text-secondary);font-size:13px;font-weight:700}.ranking-page-size{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary);font-size:13px;font-weight:700}.ranking-page-size select{height:34px;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text-primary);font-weight:700}.rank-card{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border);gap:16px;cursor:pointer;background:#ffffff4d;transition:background .2s}.rank-card:last-child{border-bottom:none}.rank-card:hover{background:#fff}.rank-card.is-empty{background:#f3f4f6d9}.rank-card.is-empty:hover{background:#f9fafb}.rank-num{width:32px;height:32px;background:var(--color-background);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--color-text-secondary)}.rank-card.is-empty .rank-num{background:#e5e7ebe6;color:var(--color-text-secondary)}.rank-main{flex:1;display:flex;flex-direction:column;gap:6px}.rank-main h4{font-size:16px}.rank-card.is-empty .rank-main h4{color:var(--color-text-secondary)}.rank-stats{display:flex;gap:8px;flex-wrap:wrap}.pill{font-size:12px;font-weight:600;padding:2px 8px;border-radius:12px}.pill.green{background:#10b9811a;color:var(--color-success)}.pill.blue{background:#0033ff1a;color:var(--color-primary)}.rank-meta{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.meta-days,.meta-months{font-size:12px;color:var(--color-text-secondary)}.perf-tabs{display:flex;gap:0;border-radius:12px;overflow-x:auto;margin-bottom:14px}.perf-tab-group{flex:1 0 132px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text-secondary);transition:all .2s;border-bottom:3px solid transparent}.perf-tab-group:hover{background:#00000008}.perf-tab-group.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:#6366f10d}.perf-tab-main{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;height:48px;padding:0 8px 0 12px;border:none;background:transparent;color:inherit;cursor:pointer;font-size:.9rem;font-weight:600;white-space:nowrap}.perf-sort-btn{width:34px;height:34px;margin-right:8px;border:1px solid transparent;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;background:#ffffff94;color:inherit;cursor:pointer;transition:all .15s}.perf-sort-btn:hover{border-color:#0033ff38;background:#0033ff14}.perf-sort-btn.is-reverse{color:var(--color-warning)}.perf-tab-group.tab-eggs.active{color:#3b82f6;border-bottom-color:#3b82f6}.perf-tab-group.tab-hatch.active{color:#10b981;border-bottom-color:#10b981}.perf-tab-group.tab-fertile.active{color:#14b8a6;border-bottom-color:#14b8a6}.perf-tab-group.tab-infertile.active{color:#f59e0b;border-bottom-color:#f59e0b}.perf-tab-group.tab-defect.active{color:var(--color-danger);border-bottom-color:var(--color-danger)}.pill.teal{background:#14b8a61a;color:#14b8a6}.pill.orange{background:#f59e0b1a;color:#f59e0b}.pill.neutral{background:#6b72801f;color:var(--color-text-secondary)}.perf-filter{margin-bottom:14px;padding:14px 18px;display:flex;flex-direction:column;gap:10px}.filter-label{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.filter-row{display:flex;gap:10px;flex-wrap:wrap}.filter-select{flex:1;min-width:100px;padding:8px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-background);font-size:.85rem;color:var(--color-text);cursor:pointer;transition:border-color .2s}.filter-select:focus{outline:none;border-color:var(--color-primary)}.empty-state{padding:32px;text-align:center;color:var(--color-text-secondary)}.error-text{color:var(--color-danger)}.ranking-pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 18px;border-top:1px solid var(--color-border);background:#ffffff6b}.ranking-page-btn{min-width:78px;height:36px;padding:0 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text-primary);font-size:13px;font-weight:700;transition:all .15s}.ranking-page-btn:not(:disabled):hover{color:var(--color-primary);border-color:#0033ff59;background:#0033ff0f}.ranking-page-btn:disabled{cursor:not-allowed;opacity:.45}.ranking-page-info{min-width:96px;text-align:center;color:var(--color-text-secondary);font-size:13px;font-weight:700}@media(max-width:768px){.ranking-toolbar{align-items:flex-start;flex-direction:column}.ranking-page-size{width:100%;justify-content:flex-end}.rank-card{align-items:flex-start}.rank-meta{align-items:flex-end}.ranking-pagination{justify-content:space-between}.ranking-page-info{min-width:84px}}@media(max-width:520px){.rank-card{display:grid;grid-template-columns:32px 1fr;align-items:start}.rank-meta{grid-column:2;align-items:flex-start;flex-direction:row;justify-content:space-between}}.settings-page{display:flex;flex-direction:column}.settings-tabs{display:flex;gap:4px;padding:6px;overflow-x:auto}.settings-tab{display:flex;align-items:center;gap:6px;padding:10px 16px;border-radius:var(--radius-sm);font-weight:600;font-size:13px;color:var(--color-text-secondary);white-space:nowrap;transition:all .2s}.settings-tab.active{background:#fff;color:var(--color-primary);box-shadow:var(--shadow-sm)}.settings-tab:hover:not(.active){background:#00000008}.settings-readonly-tip{padding:12px 16px;margin-bottom:14px;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:13px;line-height:1.6;border:1px solid rgba(0,51,255,.08);background:#0033ff0a}.settings-content{padding:20px;min-height:400px}.config-panel h3{display:flex;align-items:center;gap:8px;font-size:16px;margin-bottom:16px;color:var(--color-text-primary)}.config-table{width:100%;border-collapse:collapse;margin-bottom:16px;font-size:14px}.config-table th{text-align:left;padding:10px 12px;background:var(--color-background);font-weight:600;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.config-table td{padding:10px 12px;border-bottom:1px solid var(--color-border);vertical-align:middle}.config-table tr:hover td{background:#0033ff05}.config-table input,.config-table select{width:100%;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;background:#fff}.config-table input:focus,.config-table select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #0033ff1a}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:600;background:#0033ff14;color:var(--color-primary)}.status-dot{display:inline-flex;align-items:center;gap:6px;font-size:13px}.status-dot:before{content:"";width:8px;height:8px;border-radius:50%}.status-dot.active:before{background:var(--color-success)}.status-dot.inactive:before{background:var(--color-danger)}.actions{display:flex;gap:6px}.icon-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .15s}.icon-btn.edit{color:var(--color-primary)}.icon-btn.edit:hover{background:#0033ff1a}.icon-btn.del{color:var(--color-danger)}.icon-btn.del:hover{background:#ef44441a}.icon-btn.save{color:var(--color-success)}.icon-btn.save:hover{background:#10b9811a}.icon-btn.cancel{color:var(--color-text-secondary)}.icon-btn.cancel:hover{background:#0000000d}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.add-row{display:flex;gap:8px;padding:12px;background:var(--color-background);border-radius:var(--radius-md);align-items:center;flex-wrap:wrap}.add-row input,.add-row select{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;flex:1;min-width:120px}.add-btn{display:flex;align-items:center;gap:4px;padding:8px 16px;background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-weight:600;font-size:13px;white-space:nowrap;transition:background .2s}.add-btn:hover{background:var(--color-primary-light)}.perm-matrix th,.perm-matrix td{text-align:center}.perm-matrix th:first-child,.perm-matrix td:first-child{text-align:left}.perm-cell{padding:8px!important}.toggle{position:relative;display:inline-block;width:36px;height:20px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;border-radius:20px;transition:.3s}.toggle-slider:before{content:"";position:absolute;height:14px;width:14px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.3s}.toggle input:checked+.toggle-slider{background-color:var(--color-primary)}.toggle input:checked+.toggle-slider:before{transform:translate(16px)}.cage-count-input{width:80px!important;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;font-weight:600;text-align:center;color:var(--color-primary)}.cage-count-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #0033ff1a}.hint-text{font-size:13px;color:var(--color-text-secondary);margin-bottom:16px}.cage-overview-house{margin-bottom:16px}.cage-overview-house h4{font-size:14px;margin-bottom:8px;padding:6px 10px;background:#0033ff0a;border-radius:var(--radius-sm)}.cage-overview-row{display:flex;align-items:center;gap:12px;padding:8px 10px}.row-label{font-weight:600;font-size:13px;min-width:40px;color:var(--color-text-secondary)}.cage-chips{display:flex;flex-wrap:wrap;gap:6px}.cage-chip{padding:3px 10px;background:var(--color-background);border:1px solid var(--color-border);border-radius:12px;font-size:12px;font-weight:600;color:var(--color-primary)}.total-bar{margin-top:12px;padding:10px;text-align:center;font-weight:600;color:var(--color-text-secondary);font-size:13px;background:var(--color-background);border-radius:var(--radius-sm)}.worker-scope-grid,.worker-shortcut-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.worker-scope-card,.worker-shortcut-card{background:#ffffffd6;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:16px}.worker-scope-header,.worker-shortcut-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.worker-scope-header h4,.worker-shortcut-header h4{margin:0 0 4px;font-size:16px;font-weight:700;color:var(--color-text-primary)}.worker-scope-header p,.worker-shortcut-header p{margin:0;font-size:13px;color:var(--color-text-secondary);line-height:1.5}.worker-scope-badges{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.worker-scope-list{display:flex;flex-direction:column;gap:10px}.worker-scope-row{padding:12px;background:var(--color-background);border:1px solid rgba(0,51,255,.06);border-radius:var(--radius-sm)}.worker-scope-row-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:13px;color:var(--color-text-secondary)}.worker-scope-row-head strong{color:var(--color-text-primary)}.worker-cage-list{display:flex;flex-wrap:wrap;gap:6px}.worker-shortcut-card-button{width:100%;text-align:left;background:#ffffffd6;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;cursor:pointer}.worker-shortcut-card-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#0033ff2e}.worker-shortcut-actions{display:flex;flex-direction:column;gap:10px}.worker-shortcut-btn{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#fff;color:var(--color-text-primary);font-size:13px;font-weight:600;transition:all .15s ease;cursor:pointer}.worker-shortcut-btn:hover{border-color:#0033ff2e;background:#0033ff0a}.worker-shortcut-footer{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:13px;font-weight:600;color:var(--color-primary)}.observer-application-list{display:grid;gap:14px}.observer-application-card{padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#ffffffd6}.observer-application-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.observer-application-head h4{margin:0 0 4px;font-size:16px;color:var(--color-text-primary)}.observer-application-head p{margin:0;font-size:13px;color:var(--color-text-secondary)}.observer-application-status{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.observer-application-status.status-pending{background:#f59e0b1f;color:#b45309}.observer-application-status.status-approved{background:#10b9811f;color:#047857}.observer-application-status.status-rejected{background:#ef44441a;color:#b91c1c}.observer-application-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin-bottom:12px;font-size:13px;color:var(--color-text-secondary)}.observer-application-reason,.observer-application-notes{padding:12px;margin-bottom:12px;border-radius:var(--radius-sm);background:var(--color-background);font-size:13px;line-height:1.6;color:var(--color-text-secondary)}.observer-application-actions{display:grid;grid-template-columns:120px 1fr auto auto;gap:10px;align-items:center}.observer-application-actions input{height:38px;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;font-size:13px}.observer-approve-btn,.observer-reject-btn{height:38px;padding:0 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:700}.observer-approve-btn{background:#10b9811f;color:#047857;border:1px solid rgba(16,185,129,.22)}.observer-reject-btn{background:#ef44441a;color:#b91c1c;border:1px solid rgba(239,68,68,.22)}.observer-application-error{color:#b91c1c}@media(max-width:768px){.settings-tabs{flex-wrap:nowrap}.settings-tab{font-size:12px;padding:8px 10px}.config-table{display:block;overflow-x:auto}.add-row{flex-direction:column}.add-row input,.add-row select{min-width:auto;width:100%}.worker-scope-grid,.worker-shortcut-grid,.observer-application-grid,.observer-application-actions{grid-template-columns:1fr}.worker-scope-header,.worker-shortcut-header,.worker-scope-row-head{flex-direction:column}}.data-section{margin-bottom:24px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background)}.data-section h4{font-size:14px;font-weight:700;margin-bottom:8px;color:var(--color-text-primary);display:flex;align-items:center;gap:6px}.data-tip{font-size:13px;color:var(--color-text-secondary);margin-bottom:12px;line-height:1.6}.danger-zone{border-color:#ef44444d;background:#ef444408}.danger-tip{color:#dc2626!important}.settings-confirm-modal{max-width:420px}.settings-confirm-modal p{margin:0;line-height:1.6;color:var(--color-text-primary)}.settings-confirm-tip{margin-top:12px;padding:10px 12px;border:1px solid rgba(239,68,68,.16);border-radius:var(--radius-sm);background:#ef44440f;color:#b91c1c;font-size:13px;line-height:1.5}.settings-confirm-cancel,.settings-confirm-danger{display:inline-flex;align-items:center;justify-content:center;min-width:86px;height:36px;padding:8px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:700}.settings-confirm-cancel{border:1px solid var(--color-border);background:#fff;color:var(--color-text-secondary)}.settings-confirm-danger{border:1px solid var(--color-danger);background:var(--color-danger);color:#fff}.settings-confirm-cancel:disabled,.settings-confirm-danger:disabled{opacity:.55;cursor:not-allowed}.btn-export,.btn-import,.btn-reset,.btn-cache-refresh{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:var(--radius-sm);font-weight:600;font-size:13px;transition:all .2s;cursor:pointer}.btn-export{background:#6366f11a;color:#6366f1;border:1px solid rgba(99,102,241,.3)}.btn-export:hover:not(:disabled){background:#6366f12e}.btn-import{background:#0033ff1a;color:var(--color-primary);border:1px solid rgba(0,51,255,.2)}.btn-import:hover:not(:disabled){background:#0033ff2e}.cache-refresh-section{background:#0033ff0a;border-color:#0033ff29}.btn-cache-refresh{background:#0033ff1a;color:var(--color-primary);border:1px solid rgba(0,51,255,.2)}.btn-cache-refresh:hover:not(:disabled){background:#0033ff2e}.btn-cache-refresh:disabled{opacity:.6;cursor:not-allowed}.cache-refresh-status{margin-top:12px;font-size:13px;color:var(--color-primary);font-weight:600}.cache-refresh-spin{animation:cacheRefreshSpin 1s linear infinite}@keyframes cacheRefreshSpin{to{transform:rotate(360deg)}}.btn-reset{background:#dc2626;color:#fff;border:none}.btn-reset:hover:not(:disabled){background:#b91c1c}.btn-reset:disabled{opacity:.4;cursor:not-allowed}.migrate-status{margin-top:10px;font-size:13px;font-weight:600;padding:8px 12px;border-radius:var(--radius-sm);background:#0000000a}.reset-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.reset-confirm-input{flex:1;min-width:180px;padding:8px 12px;border:1px solid #fca5a5;border-radius:var(--radius-sm);font-size:13px;background:#fff}.reset-confirm-input:focus{border-color:#dc2626;outline:none;box-shadow:0 0 0 2px #dc26261a}.pred-config-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.pred-config-header h3{margin-bottom:0}.pred-config-actions{display:flex;align-items:center;gap:12px}.pred-reset-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--color-border);background:#fff;border-radius:var(--radius-sm);font-size:13px;font-weight:600;color:var(--color-text-secondary);transition:all .2s;cursor:pointer}.pred-reset-btn:hover{background:#0000000a;color:var(--color-text-primary)}.pred-saved-tip{font-size:12px;color:#16a34a;font-weight:600;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.pred-config-group{margin-bottom:24px}.pred-group-title{font-size:13px;font-weight:600;color:var(--color-text-secondary);margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid rgba(0,0,0,.06)}.pred-config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.pred-config-card{background:#ffffffb3;border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:6px;transition:box-shadow .2s}.pred-config-card:hover{box-shadow:0 2px 12px #00000014}.pred-card-label{font-size:13px;font-weight:600;color:var(--color-text-primary);cursor:default}.pred-card-input-wrap{display:flex;align-items:center;gap:8px}.pred-card-input{width:72px;padding:6px 10px;border:1.5px solid rgba(0,0,0,.12);border-radius:var(--radius-sm);font-size:18px;font-weight:700;color:var(--color-primary);text-align:center;background:#fff;transition:border-color .2s,box-shadow .2s}.pred-card-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb, 99, 102, 241),.12)}.pred-card-input:disabled{opacity:1;background:var(--color-background);color:var(--color-primary);cursor:default}.pred-card-input::-webkit-inner-spin-button,.pred-card-input::-webkit-outer-spin-button{-webkit-appearance:none}.pred-card-input[type=number]{-moz-appearance:textfield;appearance:textfield}.pred-card-unit{font-size:13px;color:var(--color-text-secondary);font-weight:500}.pred-card-hint{font-size:11px;color:var(--color-text-secondary);line-height:1.4}.pred-modified-badge{display:inline-block;font-size:10px;padding:2px 7px;border-radius:20px;background:#ea580c1a;color:#ea580c;font-weight:600;width:fit-content}.online-users-section{padding:14px;margin:14px 0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#ffffffb8;box-shadow:var(--shadow-sm)}.online-users-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.online-users-head h4{display:flex;align-items:center;gap:7px;margin:0 0 4px;font-size:15px;color:var(--color-text-primary)}.online-users-head p{margin:0;font-size:13px;color:var(--color-text-secondary)}.online-users-refresh{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:34px;min-width:76px;padding:7px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text-primary);font-size:13px;font-weight:600}.online-users-refresh:hover:not(:disabled){border-color:#0033ff2e;color:var(--color-primary);background:#0033ff0a}.online-users-refresh:disabled{opacity:.45;cursor:not-allowed}.session-settings-box{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;margin-bottom:12px;border:1px solid rgba(0,51,255,.1);border-radius:var(--radius-md);background:#0033ff09}.session-settings-copy h5{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:14px;color:var(--color-text-primary)}.session-settings-copy p{margin:0;font-size:13px;line-height:1.45;color:var(--color-text-secondary)}.session-settings-control{display:flex;align-items:center;gap:8px;flex-shrink:0}.session-settings-control input{width:112px;height:34px;padding:7px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text-primary);font-size:13px}.session-settings-control span{color:var(--color-text-secondary);font-size:13px}.session-settings-control button{height:34px;min-width:62px;padding:7px 12px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:13px;font-weight:700}.session-settings-control button:disabled{opacity:.55;cursor:not-allowed}.online-users-error{margin-bottom:10px;font-size:13px}.online-users-table{table-layout:fixed}.online-users-table th:nth-child(1),.online-users-table td:nth-child(1){width:180px}.online-users-table th:nth-child(2),.online-users-table td:nth-child(2){width:96px}.online-users-table th:nth-child(3),.online-users-table td:nth-child(3),.online-users-table th:nth-child(4),.online-users-table td:nth-child(4){width:150px}.online-users-table th:nth-child(6),.online-users-table td:nth-child(6){width:116px}.online-user-name{font-weight:700;color:var(--color-text-primary)}.online-user-id,.online-last-seen{display:block;margin-top:4px;font-size:12px;color:var(--color-text-secondary);word-break:break-word}.online-source{color:var(--color-text-secondary);word-break:break-word}.online-actions{text-align:right}.online-force-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:32px;padding:6px 10px;border:1px solid rgba(239,68,68,.22);border-radius:var(--radius-sm);background:#ef44440f;color:var(--color-danger);font-size:12px;font-weight:700}.online-force-btn:hover:not(:disabled){background:#ef44441a}.online-force-btn:disabled{opacity:.45;cursor:not-allowed}.online-current-session{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 9px;border-radius:999px;background:#10b9811a;color:#047857;font-size:12px;font-weight:700}.online-mobile-action{margin-top:10px}.online-users-mobile-list{display:none}.operation-log-filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:14px;margin-bottom:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background)}.operation-log-filter-field{display:flex;flex-direction:column;gap:6px;min-width:150px}.operation-log-filter-field label{font-size:13px;font-weight:600;color:var(--color-text-secondary)}.operation-log-filter-field input,.operation-log-filter-field select{height:36px;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;font-size:13px;color:var(--color-text-primary)}.operation-log-filter-field input:focus,.operation-log-filter-field select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #0033ff1a}.operation-log-query{height:36px}.operation-log-clear{height:36px;padding:8px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text-secondary);font-size:13px;font-weight:600}.operation-log-clear:hover:not(:disabled){color:var(--color-primary);background:#0033ff0a}.operation-log-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;font-size:13px;color:var(--color-text-secondary)}.operation-log-error{color:var(--color-danger);font-weight:600}.operation-log-table{table-layout:fixed}.operation-log-table th:nth-child(1),.operation-log-table td:nth-child(1){width:150px}.operation-log-table th:nth-child(2),.operation-log-table td:nth-child(2){width:128px}.operation-log-table th:nth-child(3),.operation-log-table td:nth-child(3){width:96px}.operation-log-table th:nth-child(4),.operation-log-table td:nth-child(4){width:180px}.operation-log-table th:nth-child(5),.operation-log-table td:nth-child(5){width:80px}.operation-log-detail{color:var(--color-text-secondary);line-height:1.5;word-break:break-word}.operation-log-empty{text-align:center;color:var(--color-text-secondary);padding:28px 12px!important}.operation-log-mobile-list{display:none}.operation-log-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:8px;font-size:13px;color:var(--color-text-secondary)}.operation-log-pagination button{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text-primary);font-weight:600}.operation-log-pagination button:hover:not(:disabled){border-color:#0033ff2e;color:var(--color-primary);background:#0033ff0a}.operation-log-pagination button:disabled,.operation-log-clear:disabled{opacity:.45;cursor:not-allowed}@media(max-width:768px){.pred-config-grid{grid-template-columns:repeat(2,1fr)}.operation-log-filters{align-items:stretch}.online-users-head{align-items:flex-start;flex-direction:column}.online-users-refresh{width:100%}.session-settings-box{align-items:stretch;flex-direction:column}.session-settings-control{width:100%}.session-settings-control input{flex:1;min-width:0}.session-settings-control button{min-width:70px}.online-users-table{display:none}.online-users-mobile-list{display:flex;flex-direction:column;gap:10px}.operation-log-filter-field,.operation-log-query,.operation-log-clear{width:100%}.operation-log-table{display:none}.operation-log-mobile-list{display:flex;flex-direction:column;gap:10px}.operation-log-card{padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#ffffffd6;box-shadow:var(--shadow-sm)}.operation-log-card-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.operation-log-card-line{margin-bottom:6px;font-size:13px;color:var(--color-text-secondary);word-break:break-word}.operation-log-card-line strong{color:var(--color-text-primary)}.operation-log-card-detail{margin-top:8px;padding:10px;border-radius:var(--radius-sm);background:var(--color-background);font-size:13px;color:var(--color-text-secondary);line-height:1.5;word-break:break-word}.operation-log-empty-card{text-align:center;color:var(--color-text-secondary)}.online-force-btn.mobile,.online-current-session{width:100%}.operation-log-pagination{justify-content:space-between}}@media(max-width:480px){.pred-config-grid{grid-template-columns:1fr}}.record-card{display:flex;align-items:flex-start;gap:14px;padding:18px 20px;border-radius:14px}.record-icon{width:44px;height:44px;border-radius:10px;background:#6366f11a;color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.record-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.record-title{font-weight:800;font-size:22px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.record-tag{font-size:14px;padding:2px 10px;border-radius:6px;background:#6366f11f;color:var(--color-primary);font-weight:700}.record-fields-horizontal{display:flex;flex-wrap:wrap;gap:12px}.record-field{display:flex;align-items:center;gap:6px;background:var(--color-surface);padding:10px 16px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:all .2s ease}.record-field:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.field-label{font-size:16px;font-weight:600;color:var(--color-text-secondary)}.field-value{font-size:18px;font-weight:700;color:var(--color-text-primary)}.record-remark{font-size:15px;color:var(--color-text-secondary);font-style:italic;padding:8px 12px;background:var(--color-background);border-radius:6px}.record-delete{background:none;border:none;color:#ef4444;cursor:pointer;padding:6px;border-radius:50%;opacity:.4;transition:opacity .15s;flex-shrink:0}@media(min-width:768px){.field-label{font-size:16px}.field-value{font-size:20px}.record-fields-horizontal{gap:16px}.record-field{padding:12px 20px}.record-title{font-size:26px}}@media(max-width:480px){.field-label{font-size:14px}.field-value{font-size:16px}.record-fields-horizontal{padding:10px 12px;column-gap:16px;row-gap:6px}.record-icon{display:none}.record-title{font-size:18px}}.record-page{width:100%}.record-toolbar{display:flex;gap:10px;margin-bottom:14px}.record-filter{flex:1;display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;color:var(--color-text-secondary)}.record-filter .filter-select{flex:1;border:none;background:transparent;font-size:.85rem;color:var(--color-text);cursor:pointer}.add-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;border:none;border-radius:10px;font-size:.85rem;font-weight:600;background:linear-gradient(135deg,var(--color-primary),#7c3aed);color:#fff;cursor:pointer;white-space:nowrap;transition:filter .2s}.add-btn:hover{filter:brightness(1.1)}.record-readonly-tip{padding:12px 16px;margin-bottom:14px;border-radius:14px;color:var(--color-text-secondary);font-size:.9rem;border:1px solid rgba(0,51,255,.08);background:#0033ff0a}.icon-disinfect{background:#10b9811a;color:#10b981}.record-form{padding:18px;border-radius:14px;margin-bottom:14px;display:flex;flex-direction:column;gap:12px}.form-row{display:flex;flex-direction:column;gap:4px}.form-row label{font-size:.8rem;font-weight:600;color:var(--color-text-secondary)}.form-row input,.form-row select{padding:10px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-background);font-size:.9rem;color:var(--color-text)}.form-actions{display:flex;gap:10px;margin-top:4px}.btn-cancel{flex:1;padding:10px;border-radius:10px;border:1px solid var(--color-border);background:transparent;font-weight:600;cursor:pointer;color:var(--color-text-secondary)}.btn-submit{flex:1;padding:10px;border-radius:10px;border:none;background:linear-gradient(135deg,var(--color-primary),#7c3aed);color:#fff;font-weight:600;cursor:pointer}.btn-submit:hover{filter:brightness(1.1)}.record-list{display:flex;flex-direction:column;gap:10px}.record-card{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-radius:14px}.record-icon{width:40px;height:40px;border-radius:10px;background:#6366f11a;color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.record-info{flex:1;display:flex;flex-direction:column;gap:4px}.record-title{font-weight:600;font-size:.95rem;display:flex;align-items:center;gap:8px}.record-tag{font-size:.72rem;padding:1px 8px;border-radius:6px;background:#6366f11f;color:var(--color-primary);font-weight:600}.record-meta{font-size:.8rem;color:var(--color-text-secondary)}.record-remark{font-size:.8rem;color:var(--color-text-secondary);font-style:italic}.record-delete{background:none;border:none;color:#ef4444;cursor:pointer;padding:6px;border-radius:50%;opacity:.4;transition:opacity .15s}.record-delete:hover{opacity:1}.empty-state{text-align:center;padding:32px;color:var(--color-text-secondary);font-size:.9rem;border-radius:14px}.record-page{padding:16px}.record-page .page-title{font-size:24px;font-weight:700;margin-bottom:4px}.record-page .page-subtitle{font-size:14px;color:var(--text-secondary)}.record-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.record-filter{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:8px}.record-filter .filter-select{border:none;background:transparent;font-size:14px;outline:none;cursor:pointer}.add-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:opacity .2s}.add-btn:hover{opacity:.9}.record-readonly-tip{padding:12px 16px;margin-bottom:16px;border-radius:12px;color:var(--color-text-secondary);font-size:14px;border:1px solid rgba(0,51,255,.08);background:#0033ff0a}.record-form{padding:20px;border-radius:12px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.form-row{display:flex;flex-direction:column;gap:6px}.form-row label{font-size:13px;font-weight:600;color:var(--text-secondary)}.form-row input,.form-row select{padding:10px;border-radius:8px;border:1px solid var(--glass-border);background:var(--color-background);color:var(--text-primary)}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--color-primary)}.form-actions{display:flex;justify-content:flex-end;gap:12px}.mt-2{margin-top:16px}.btn-cancel,.btn-submit{padding:8px 20px;border-radius:8px;font-weight:600;border:none;cursor:pointer}.btn-cancel{background:transparent;border:1px solid var(--glass-border);color:var(--text-secondary)}.btn-submit{background:var(--color-primary);color:#fff}.record-list{display:flex;flex-direction:column;gap:12px}.empty-state{text-align:center;padding:40px;color:var(--text-secondary)}.record-card{display:flex;align-items:flex-start;padding:20px;border-radius:12px;gap:16px;transition:transform .15s}.record-card:hover{transform:translateY(-2px)}.record-icon{width:48px;height:48px;border-radius:50%;background:#f59e0b1a;color:#f59e0b;display:flex;align-items:center;justify-content:center;flex-shrink:0}.record-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.record-title{font-size:18px;font-weight:700;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.record-tag{font-size:14px;background:#6366f11a;color:var(--color-primary);padding:3px 10px;border-radius:12px;font-weight:600}.record-stats{display:flex;flex-wrap:wrap;gap:12px;width:100%}.stat-row{flex:1 1 120px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:14px 18px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-left:5px solid transparent;transition:all .2s ease}.stat-row:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-row-label{font-size:14px;font-weight:600;color:var(--color-text-secondary)}.stat-row-value{font-size:26px;font-weight:800;margin-top:4px}.stat-row.incubated{border-left-color:#3b82f6}.stat-row.infertile{border-left-color:#f59e0b}.stat-row.dead-sperm{border-left-color:#ef4444}.stat-row.dead-embryo{border-left-color:#8b5cf6}.stat-row.hatched{border-left-color:#10b981}.stat-row.incubated .stat-row-value{color:#3b82f6}.stat-row.infertile .stat-row-value{color:#f59e0b}.stat-row.dead-sperm .stat-row-value{color:#ef4444}.stat-row.dead-embryo .stat-row-value{color:#8b5cf6}.stat-row.hatched .stat-row-value{color:#10b981}.record-remark{font-size:15px;color:var(--color-text-primary);padding:12px 16px;background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);border-left:4px solid var(--color-warning);box-shadow:var(--shadow-sm)}.record-card-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.record-action{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:8px;border-radius:50%;opacity:.5;transition:opacity .2s,color .2s,background .2s}.record-action:hover{opacity:1;background:#0000000a}.record-edit:hover{color:var(--color-primary)}.record-delete:hover{color:var(--color-danger)}.record-card-editing:hover{transform:none}.record-edit-grid{width:100%}.record-edit-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:6px}.record-edit-actions .btn-cancel,.record-edit-actions .btn-submit{display:inline-flex;align-items:center;justify-content:center;gap:6px}@media(min-width:768px){.stat-row-label{font-size:16px}.stat-row-value{font-size:28px}.stat-row{padding:16px 20px}}@media(max-width:480px){.stat-row-label{font-size:13px}.stat-row-value{font-size:20px}.stat-row{padding:10px 14px}.record-icon{display:none}.record-card-actions{flex-direction:row}.record-edit-actions .btn-cancel,.record-edit-actions .btn-submit{flex:1;padding:9px 12px}}
