*{margin:0;padding:0;box-sizing:border-box;}
:root{--primary:#00F0FF;--primary-dark:#0891B2;--primary-light:#22D3EE;--success:#10B981;--success-dark:#059669;--warning:#F59E0B;--warning-dark:#D97706;--danger:#EF4444;--danger-dark:#DC2626;--bg:#0A0A14;--bg-secondary:#111827;--card:#1A1A2E;--text:#E2E8F0;--text-light:#94A3B8;--text-lighter:#64748B;--border:#1E293B;--shadow-sm:0 1px 2px rgba(0,0,0,0.3);--shadow:0 2px 8px rgba(0,0,0,0.4);--shadow-md:0 4px 12px rgba(0,0,0,0.5);--shadow-lg:0 8px 24px rgba(0,0,0,0.6);--radius-sm:6px;--radius:8px;--radius-md:12px;--radius-lg:16px;}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;background:#0A0A14;color:var(--text);line-height:1.6;padding-bottom:20px;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.container{max-width:100%;margin:0 auto;padding:20px 24px;}
header{background:#0F172A;padding:16px 24px 0;position:relative;border-bottom:1px solid rgba(148,163,184,0.1);}
header h1{font-size:1.4rem;font-weight:500;color:#F1F5F9;letter-spacing:2px;text-align:center;margin-bottom:4px;}
header .subtitle{font-size:0.9rem;opacity:0.85;font-weight:500;color:#94A3B8;text-align:center;}
header .header-actions{position:absolute;top:16px;right:20px;display:flex;gap:10px;flex-wrap:wrap;z-index:100;}
.tab-navigation{display:flex;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;margin-top:12px;}
.tab-navigation::-webkit-scrollbar{display:none;}
.tab-button{flex:0 0 auto;padding:12px 18px 10px;background:transparent;border:none;border-bottom:2px solid transparent;color:#94A3B8;font-size:0.9rem;font-weight:500;cursor:pointer;transition:all 0.25s ease;white-space:nowrap;position:relative;}
.tab-button:hover{color:#CBD5E1;}
.tab-button.active{color:#38BDF8;border-bottom-color:#38BDF8;font-weight:600;}
header .config-toggle{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);color:#94A3B8;padding:10px 18px;border-radius:var(--radius-md);cursor:pointer;font-size:0.9rem;font-weight:500;transition:all 0.3s ease;}
header .config-toggle:hover{background:rgba(255,255,255,0.15);color:#E2E8F0;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.2);}
header .config-toggle.active{background:rgba(255,255,255,0.2);color:#F1F5F9;box-shadow:0 4px 12px rgba(0,0,0,0.3);}
.view-container{display:none;}
.view-container.active{display:block;animation:fadeIn 0.3s ease-out;}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px);}
to{opacity:1;transform:translateY(0);}
}
.search-box{background:var(--card);padding:20px;border-radius:var(--radius-md);margin-bottom:20px;box-shadow:var(--shadow-md);}
.search-box input{width:100%;padding:12px 16px;border:2px solid var(--border);border-radius:var(--radius-md);font-size:1rem;box-sizing:border-box;transition:all 0.3s ease;}
.search-box input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,240,255,0.15);}
.search-box input::placeholder{color:var(--text-lighter);}
.search-results{background:var(--card);padding:20px;border-radius:var(--radius-md);margin-bottom:20px;box-shadow:var(--shadow-md);max-height:400px;overflow-y:auto;}
.advanced-search-panel{background:var(--card);padding:24px;border-radius:var(--radius-md);margin-bottom:20px;box-shadow:var(--shadow-md);border:2px solid var(--border);}
.advanced-search-panel.hidden{display:none;}
.advanced-search-panel h3{color:var(--primary);margin-bottom:20px;font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:8px;}
.filter-row{display:flex;align-items:center;margin-bottom:16px;}
.filter-row label{width:100px;font-weight:600;color:var(--text-light);}
.filter-row input,.filter-row select{flex:1;padding:10px 14px;border:2px solid var(--border);border-radius:var(--radius-md);font-size:0.95rem;}
.filter-row input:focus,.filter-row select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,240,255,0.1);}
.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;}
.filter-actions{display:flex;gap:12px;margin-top:24px;}
.search-results h3{color:var(--primary);margin-bottom:16px;font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:8px;}
.search-result-item{padding:16px;border-bottom:2px solid var(--bg-secondary);margin-bottom:12px;border-radius:var(--radius);transition:all 0.3s cubic-bezier(0.4,0,0.2,1);cursor:pointer;position:relative;border:2px solid transparent;}
.search-result-item:hover{background:rgba(0,240,255,0.08);border-color:var(--primary);transform:translateX(8px);box-shadow:0 4px 12px rgba(0,240,255,0.15);}
.search-result-item:hover .date{color:#22D3EE;}
.search-result-item:hover .device{color:#38BDF8;font-weight:600;}
.search-result-item:hover .fault{color:#E2E8F0;}
.search-result-item::after{content:'点击查看详情';position:absolute;right:16px;top:50%;transform:translateY(-50%);background:var(--primary);color:white;padding:6px 12px;border-radius:6px;font-size:0.85rem;font-weight:500;opacity:0;transition:opacity 0.3s ease;pointer-events:none;}
.search-result-item:hover::after{opacity:1;}
.search-result-item:last-child{border-bottom:none;margin-bottom:0;}
.search-result-item .date{color:var(--primary);font-weight:700;font-size:1rem;}
.search-result-item .device{color:var(--text-light);font-size:0.9rem;font-weight:500;}
.search-result-item .fault{margin-top:8px;color:var(--text);}
.count-badge{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#FFF;padding:4px 12px;border-radius:var(--radius);font-size:0.85rem;font-weight:600;margin-left:10px;box-shadow:0 2px 8px rgba(0,240,255,0.3);}
.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;height:100dvh;min-height:-webkit-fill-available;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);z-index:1000;align-items:center;justify-content:center;animation:fadeIn 0.2s ease-out;}
.modal.active{display:flex;}
.modal.show{display:flex !important;}
.modal-content{background:#1A1A2E;padding:28px;border-radius:var(--radius-lg);border:1px solid rgba(0,240,255,0.08);max-width:800px;max-height:85vh;max-height:85dvh;overflow-y:auto;width:95%;box-shadow:var(--shadow-lg);animation:slideUp 0.3s ease-out;}
@keyframes slideUp{from{opacity:0;transform:translateY(20px);}
to{opacity:1;transform:translateY(0);}
}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--border);}
.modal-header h3{margin:0;color:var(--primary);font-size:1.3rem;font-weight:700;}
.modal-close{background:var(--bg-secondary);border:none;font-size:1.8rem;cursor:pointer;color:var(--text-light);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all 0.2s ease;line-height:1;}
.modal-close:hover{background:var(--danger);color:#FFF;transform:rotate(90deg);}
.detail-row{display:flex;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--bg-secondary);}
.detail-label{font-weight:600;width:130px;flex-shrink:0;color:var(--primary);}
.detail-value{flex:1;line-height:1.6;}
.highlight{background:rgba(0,240,255,0.2);color:#22D3EE;padding:2px 6px;border-radius:4px;font-weight:600;}
.flex{display:flex;}
.flex-center{display:flex;align-items:center;}
.flex-center-gap4{display:flex;align-items:center;gap:4px;}
.flex-center-gap8{display:flex;align-items:center;gap:8px;}
.flex-between{display:flex;justify-content:space-between;align-items:center;}
.flex-between-wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;}
.mb-12{margin-bottom:12px;}
.mt-12{margin-top:12px;}
.mb-16{margin-bottom:16px;}
.w-full{width:100%;}
.form-input{width:100%;padding:8px 12px;border:2px solid var(--border);border-radius:6px;}
.form-select{padding:6px 10px;border-radius:6px;border:1px solid #ddd;}
.form-label{display:block;font-size:0.85rem;color:#94A3B8;margin-bottom:4px;}
.th-style{padding:10px 12px;text-align:left;font-size:0.85rem;color:#94A3B8;}
.td-style{padding:8px;text-align:left;border-bottom:1px solid var(--border);}
.checkbox-label{display:flex;align-items:center;gap:4px;font-size:0.82rem;padding:4px 8px;background:rgba(255,255,255,0.03);border-radius:6px;cursor:pointer;}
.text-muted{color:#94A3B8;}
.text-amber{color:#F59E0B;}
.text-gray{color:#9CA3AF;}
.bg-card{background:var(--card);}
.bg-subtle{background:rgba(255,255,255,0.03);}
.rounded-sm{border-radius:6px;}
.rounded-md{border-radius:8px;}
.rounded-lg{border-radius:10px;}
.text-sm{font-size:0.82rem;}
.text-base{font-size:0.85rem;}
.text-lg{font-size:0.9rem;}
.p-8{padding:8px;}
.px-4{padding:4px 8px;}
.py-2{padding:7px 12px;}
.p-10-12{padding:10px 12px;}
.cursor-pointer{cursor:pointer;}
.text-left{text-align:left;}
.text-center{text-align:center;}
.overflow-x-auto{overflow-x:auto;}
.border-b{border-bottom:1px solid var(--border);}
.sticky-header{background:rgba(255,255,255,0.03);position:sticky;top:0;}
@media (max-width:768px){.modal{align-items:flex-end;}
.modal-content{width:100%;max-width:100vw !important;height:auto;max-height:92vh;max-height:92dvh;border-radius:12px 12px 0 0;padding:20px 16px;margin:0;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.detail-row{flex-direction:column;gap:6px;}
.detail-label{width:100%;}
}
.btn-success{background:var(--success);color:#FFF;}
.btn-success:hover{background:#4a8bc7;}
main{background:var(--card);border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px;}
.form-section{margin-bottom:30px;padding-bottom:24px;border-bottom:2px solid var(--bg-secondary);}
.form-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.form-section h2{font-size:1.2rem;color:var(--primary);margin-bottom:20px;font-weight:700;border-bottom:3px solid var(--primary);padding-bottom:10px;display:flex;align-items:center;gap:8px;}
.form-group{margin-bottom:15px;}
.form-row{display:flex;gap:20px;margin-bottom:15px;}
.form-group-half{flex:1;margin-bottom:0;}
.multi-select-container{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:rgba(255,255,255,0.02);}
.multi-select-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;min-height:28px;}
.multi-select-tag{display:inline-flex;align-items:center;gap:4px;background:rgba(56,189,248,0.15);color:#38BDF8;border:1px solid rgba(56,189,248,0.3);border-radius:16px;padding:3px 10px;font-size:0.85rem;cursor:default;}
.multi-select-tag .remove{cursor:pointer;font-weight:bold;opacity:0.7;transition:opacity 0.2s;}
.multi-select-tag .remove:hover{opacity:1;color:#F87171;}
.multi-select-input-row{display:flex;gap:8px;align-items:center;}
.multi-select-input-row select{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);font-size:0.9rem;outline:none;}
.multi-select-input-row select:focus{border-color:#38BDF8;box-shadow:0 0 0 2px rgba(56,189,248,0.2);}
.multi-select-input-row .btn-sm{padding:8px 14px;font-size:0.85rem;white-space:nowrap;}
.cascade-container{background:rgba(255,255,255,0.03);border:1px solid var(--border);border-radius:12px;padding:20px;margin-top:15px;}
.cascade-container .form-group{margin-bottom:15px;}
.cascade-container .form-group:last-child{margin-bottom:0;}
.cascade-container label{display:flex;align-items:center;gap:6px;}
.cascade-container label::before{content:"";display:inline-block;width:4px;height:16px;background:linear-gradient(180deg,#00F0FF,#0891B2);border-radius:2px;}
.cascade-container select:disabled{background-color:rgba(255,255,255,0.03);color:#94A3B8;cursor:not-allowed;}
.cascade-container select:not(:disabled){background-color:var(--bg);border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,240,255,0.1);}
label{display:block;margin-bottom:5px;font-weight:500;color:var(--primary);font-size:0.95rem;}
label.required::after{content:" *";color:#FF0000;}
input[type="text"],input[type="number"],input[type="date"],input[type="time"],input[type="password"],input[type="email"],input[type="search"],input[type="tel"],input:not([type]),textarea,select{width:100%;padding:12px 14px;border:2px solid var(--border);border-radius:var(--radius-md);font-size:1rem;font-family:inherit;transition:all 0.3s ease;background-color:var(--bg);color:var(--text);}
textarea{resize:vertical;min-height:100px;line-height:1.5;}
select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748B' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);background-color:var(--card);box-shadow:0 0 0 3px rgba(0,240,255,0.1);}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 4px rgba(0,240,255,0.15);}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}
}
input::placeholder,textarea::placeholder{color:var(--text-lighter);}
small.hint{color:#94A3B8;font-size:0.85rem;margin-top:5px;display:block;}
.template-hints{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap;}
.template-hints .hint-label{color:#94A3B8;font-size:0.82rem;white-space:nowrap;}
.template-btn{padding:3px 10px;font-size:0.8rem;border:1px solid #94A3B8;border-radius:12px;background:rgba(255,255,255,0.05);color:#CBD5E1;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;}
.template-btn:hover{background:var(--primary);color:#06060E;border-color:var(--primary);}
.btn{padding:12px 24px;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all 0.3s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px;}
.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#FFF;box-shadow:0 4px 12px rgba(0,240,255,0.3);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,240,255,0.4);}
.btn-primary:active{transform:translateY(0);}
.btn-warning{background:linear-gradient(135deg,var(--warning) 0%,var(--warning-dark) 100%);color:#FFF;box-shadow:0 4px 12px rgba(245,158,11,0.3);}
.btn-warning:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(245,158,11,0.4);}
.btn-warning:active{transform:translateY(0);}
.btn-secondary{background:linear-gradient(135deg,#94A3B8 0%,#4B5563 100%);color:#FFF;box-shadow:0 4px 12px rgba(107,114,128,0.3);}
.btn-secondary:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(107,114,128,0.4);}
.btn-secondary:active{transform:translateY(0);}
.btn-danger{background:linear-gradient(135deg,var(--danger) 0%,var(--danger-dark) 100%);color:#FFF;padding:6px 12px;font-size:0.85rem;border-radius:var(--radius-sm);box-shadow:0 2px 8px rgba(239,68,68,0.3);}
.btn-danger:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(239,68,68,0.4);}
.btn-danger:active{transform:translateY(0);}
.btn-outline{background:transparent;color:var(--text-light);border:1px solid rgba(148,163,184,0.35);box-shadow:none;font-weight:500;}
.btn-outline:hover{background:rgba(148,163,184,0.12);border-color:rgba(148,163,184,0.6);transform:translateY(-1px);}
.btn-outline:active{transform:translateY(0);}
.btn-success{background:linear-gradient(135deg,var(--success) 0%,var(--success-dark) 100%);color:#FFF;padding:6px 12px;font-size:0.85rem;border-radius:var(--radius-sm);box-shadow:0 2px 8px rgba(16,185,129,0.3);}
.btn-success:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(16,185,129,0.4);}
.btn-success:active{transform:translateY(0);}
.form-actions{display:flex;gap:10px;margin-top:20px;}
.form-actions .btn{flex:1;}
.fault-form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;}
.fault-form-actions .btn-save-main{flex:1 1 100%;padding:14px 24px;font-size:1.05rem;font-weight:600;min-height:48px;}
.fault-form-actions .btn-action-sub{flex:1 1 calc(25% - 8px);min-width:100px;padding:10px 8px;font-size:0.9rem;white-space:nowrap;}
.message-area{margin-bottom:20px;padding:16px 20px;border-radius:var(--radius-md);display:none;font-weight:500;border-left:4px solid;}
.message-area.show{display:block;animation:slideIn 0.3s ease-out;}
@keyframes slideIn{from{opacity:0;transform:translateY(-10px);}
to{opacity:1;transform:translateY(0);}
}
.message-area.success{background:rgba(16,185,129,0.12);border-color:var(--success);color:#6EE7B7;}
.message-area.error{background:rgba(239,68,68,0.12);border-color:var(--danger);color:#FCA5A5;}
.message-area.warning{background:rgba(245,158,11,0.12);border-color:var(--warning);color:#FCD34D;}
.rca-reminder-banner{margin-bottom:20px;padding:14px 20px;border-radius:var(--radius-md);background:rgba(245,158,11,0.1);border:2px solid #F59E0B;display:none;align-items:center;justify-content:space-between;gap:12px;font-weight:500;color:#FCD34D;animation:slideIn 0.3s ease-out;}
.rca-reminder-banner.show{display:flex !important;}
.rca-reminder-banner .rca-reminder-text{flex:1;}
.rca-reminder-banner .rca-reminder-btn{background:var(--danger);color:#fff;border:none;padding:8px 16px;border-radius:var(--radius);font-size:0.85rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:all 0.2s;}
.rca-reminder-banner .rca-reminder-btn:hover{background:var(--danger-dark);}
.rca-reminder-banner .rca-reminder-close{background:none;border:none;color:#FCD34D;font-size:1.2rem;cursor:pointer;padding:0 4px;opacity:0.6;}
.rca-reminder-banner .rca-reminder-close:hover{opacity:1;}
.duplicate-check-area{margin-bottom:20px;padding:20px;background:rgba(245,158,11,0.15);border:2px solid var(--warning);border-radius:var(--radius-md);box-shadow:var(--shadow);}
.duplicate-check-area.hidden{display:none;}
.duplicate-check-area .alert{margin-bottom:10px;}
.config-panel{background:var(--bg-secondary);border:2px solid var(--border);border-radius:var(--radius-md);padding:24px;margin-bottom:25px;box-shadow:var(--shadow-md);}
.config-panel.hidden{display:none;}
.smart-suggestions{background:rgba(0,240,255,0.05);border:1px solid rgba(0,240,255,0.15);border-radius:var(--radius-md);padding:16px;margin:15px 0;animation:slideDown 0.3s ease-out;}
.smart-suggestions.hidden{display:none;}
.device-history-alert{background:rgba(245,158,11,0.1);border:2px solid #F59E0B;border-radius:var(--radius-md);padding:16px;margin:16px 0;animation:slideDown 0.3s ease-out;box-shadow:var(--shadow-md);}
.device-history-alert.hidden{display:none;}
.history-suggestions.hidden{display:none;}
.alert-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.alert-icon{font-size:1.4rem;}
.alert-title{font-weight:600;color:#FCD34D;flex:1;}
.alert-close{background:none;border:none;font-size:1.5rem;color:#FCD34D;cursor:pointer;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all 0.2s;}
.alert-close:hover{background:rgba(146,64,14,0.1);}
.alert-content{color:#FCD34D;font-size:0.95rem;line-height:1.6;margin-bottom:12px;}
.alert-content .highlight{font-weight:600;color:#DC2626;}
.alert-actions{display:flex;gap:10px;}
.btn-sm{padding:6px 14px;font-size:0.85rem;}
.history-list{max-height:400px;overflow-y:auto;}
.history-item{background:var(--bg-secondary);border-radius:var(--radius);padding:14px;margin-bottom:12px;border-left:4px solid var(--warning);}
.history-item:last-child{margin-bottom:0;}
.history-date{font-weight:600;color:var(--text);margin-bottom:6px;display:flex;justify-content:space-between;align-items:center;}
.history-level{font-size:0.75rem;padding:2px 8px;border-radius:12px;font-weight:500;}
.history-level.严重{background:rgba(239,68,68,0.12);color:#DC2626;}
.history-level.中等{background:rgba(245,158,11,0.15);color:#FBBF24;}
.history-level.轻微,.history-level.一般{background:rgba(16,185,129,0.12);color:#059669;}
.history-phenomenon{color:var(--text-light);font-size:0.9rem;margin-bottom:4px;}
.history-cause{color:var(--text-lighter);font-size:0.85rem;}
@keyframes slideDown{from{opacity:0;transform:translateY(-10px);}
to{opacity:1;transform:translateY(0);}
}
.suggestion-section{margin-bottom:12px;}
.suggestion-section:last-child{margin-bottom:0;}
.suggestion-section label{display:block;font-size:0.85rem;font-weight:600;color:var(--primary);margin-bottom:8px;}
.suggestion-tags{display:flex;flex-wrap:wrap;gap:8px;}
.suggestion-tag{background:rgba(0,240,255,0.08);border:1px solid rgba(0,240,255,0.2);color:#22D3EE;padding:6px 12px;border-radius:20px;font-size:0.85rem;cursor:pointer;transition:all 0.2s ease;user-select:none;}
.suggestion-tag:hover{background:#0EA5E9;color:#FFF;border-color:#0EA5E9;transform:translateY(-1px);}
.suggestion-tag:active{transform:translateY(0);}
.config-panel h3{margin-bottom:20px;color:var(--primary);font-size:1.2rem;font-weight:700;display:flex;align-items:center;gap:8px;}
.config-section{margin-bottom:24px;padding:20px;background:var(--card);border-radius:var(--radius);border:1px solid var(--border);}
.config-section:last-child{margin-bottom:0;}
.config-section h4{font-size:1rem;margin-bottom:12px;color:var(--text);font-weight:600;}
.fault-level-config-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:15px;margin-bottom:15px;}
.fault-level-config-item{padding:15px;border-radius:10px;border-left:4px solid;background:var(--bg-secondary);transition:all 0.2s ease;}
.fault-level-config-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.3);}
.fault-level-config-item.critical{border-left-color:#dc2626;background:rgba(239,68,68,0.1);}
.fault-level-config-item.major{border-left-color:#ea580c;background:rgba(234,88,12,0.1);}
.fault-level-config-item.general{border-left-color:#d97706;background:rgba(245,158,11,0.1);}
.fault-level-config-item.minor{border-left-color:#059669;background:rgba(16,185,129,0.1);}
.level-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.level-icon{font-size:1.2rem;}
.level-name{font-weight:600;font-size:0.95rem;flex:1;}
.level-badge{padding:2px 8px;border-radius:4px;font-size:0.75rem;font-weight:600;background:rgba(255,255,255,0.08);}
.level-details{font-size:0.85rem;color:#94A3B8;}
.detail-row{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px dashed rgba(255,255,255,0.05);}
.detail-row:last-child{border-bottom:none;}
.detail-label{font-weight:500;color:#94A3B8;}
.fault-level-doc-content{padding:10px;}
.doc-header{padding:12px 15px;background:rgba(255,255,255,0.03);border-radius:8px;margin-bottom:20px;font-size:0.9rem;color:#94A3B8;}
.fault-level-doc-content h4{color:#E2E8F0;margin:25px 0 15px 0;padding-bottom:8px;border-bottom:2px solid #CBD5E1;font-size:1.1rem;}
.fault-level-doc-content h5{color:#CBD5E1;margin:15px 0 10px 0;font-size:1rem;display:flex;align-items:center;gap:8px;}
.doc-section{margin-bottom:20px;padding:15px;border-radius:10px;background:var(--bg-secondary);border-left:4px solid #94A3B8;}
.doc-section.critical{background:rgba(239,68,68,0.1);border-left-color:#dc2626;}
.doc-section.major{background:rgba(234,88,12,0.1);border-left-color:#ea580c;}
.doc-section.general{background:rgba(245,158,11,0.1);border-left-color:#d97706;}
.doc-section.minor{background:rgba(16,185,129,0.1);border-left-color:#059669;}
.doc-table{width:100%;border-collapse:collapse;margin:10px 0;font-size:0.9rem;}
.doc-table td{padding:8px 12px;border-bottom:1px solid var(--border);}
.doc-table td:first-child{width:120px;color:#94A3B8;font-weight:500;}
.doc-subsection{margin-top:15px;padding-top:15px;border-top:1px dashed #94A3B8;}
.doc-subsection p{margin:10px 0;color:#94A3B8;}
.doc-subsection ul,.doc-subsection ol{margin:8px 0;padding-left:20px;}
.doc-subsection li{margin:5px 0;color:#94A3B8;}
.doc-section ul{margin:10px 0;padding-left:20px;}
.doc-section li{margin:8px 0;color:#94A3B8;line-height:1.5;}
.config-note{padding:12px 15px;background:#eff6ff;border-radius:8px;border-left:3px solid #60A5FA;font-size:0.9rem;color:#38BDF8;}
.config-note p{margin:4px 0;}
.config-note a{color:#60A5FA;text-decoration:underline;}
.config-info-box{display:flex;gap:15px;padding:15px;background:rgba(255,255,255,0.03);border-radius:8px;margin-bottom:15px;}
.info-icon{font-size:2rem;line-height:1;}
.info-content p{margin:4px 0;color:#94A3B8;}
.info-content p strong{color:#E2E8F0;}
.config-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:15px;}
.stat-item{text-align:center;padding:15px;background:#1A1A2E;border-radius:8px;border:1px solid var(--border);}
.stat-value{display:block;font-size:1.8rem;font-weight:700;color:#60A5FA;margin-bottom:5px;}
.stat-label{font-size:0.85rem;color:#94A3B8;}
.config-actions{display:flex;gap:10px;flex-wrap:wrap;}
.config-actions .btn{flex:1;min-width:150px;}
.option-list{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;}
.option-item{display:flex;align-items:center;gap:8px;background:var(--bg-secondary);padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius);font-size:0.9rem;font-weight:500;transition:all 0.2s ease;}
.option-item:hover{border-color:var(--primary);background:var(--bg);}
.add-option-form{display:flex;gap:10px;align-items:center;}
.add-option-form input{flex:1;padding:10px 14px;}
.add-option-form button{padding:10px 18px;}
.image-upload-section{margin-top:10px;}
.image-upload-container{border:3px dashed var(--border);border-radius:var(--radius-md);padding:30px 20px;text-align:center;cursor:pointer;transition:all 0.3s ease;background:var(--bg-secondary);position:relative;overflow:hidden;}
.image-upload-container:hover{border-color:var(--primary);background:rgba(0,240,255,0.05);transform:translateY(-2px);box-shadow:var(--shadow);}
.image-upload-container.dragover{border-color:var(--primary);background:rgba(0,240,255,0.1);transform:scale(1.02);}
.image-upload-container input[type="file"]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:10;}
.image-upload-label{color:var(--text-light);font-size:0.95rem;font-weight:500;}
.image-upload-icon{font-size:2.5rem;margin-bottom:12px;color:var(--primary);transition:transform 0.3s ease;}
.image-upload-container:hover .image-upload-icon{transform:scale(1.1);}
.upload-progress-container{margin-top:15px;}
.upload-progress-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);margin-bottom:8px;border:1px solid var(--border);}
.upload-progress-item.uploading{border-color:var(--primary);background:rgba(0,240,255,0.05);}
.upload-progress-item.success{border-color:#10b981;background:rgba(16,185,129,0.05);}
.upload-progress-item.error{border-color:#ef4444;background:rgba(239,68,68,0.05);}
.upload-progress-icon{font-size:1.5rem;flex-shrink:0;}
.upload-progress-info{flex:1;min-width:0;}
.upload-progress-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:0.9rem;}
.upload-progress-bar-bg{height:6px;background:var(--border);border-radius:3px;margin-top:6px;overflow:hidden;}
.upload-progress-bar{height:100%;background:linear-gradient(90deg,var(--primary),#60a5fa);border-radius:3px;transition:width 0.3s ease;width:0%;}
.upload-progress-item.uploading .upload-progress-bar{animation:progress-pulse 1.5s ease-in-out infinite;}
@keyframes progress-pulse{0%,100%{opacity:1;}
50%{opacity:0.5;}
}
.upload-progress-status{font-size:0.8rem;color:var(--text-light);margin-top:4px;}
.upload-progress-item.success .upload-progress-status{color:#10b981;}
.upload-progress-item.error .upload-progress-status{color:#ef4444;}
.spare-parts-container{margin-bottom:10px;}
.spare-part-item{display:grid;grid-template-columns:1fr 1fr 80px 40px;gap:8px;padding:12px;background:var(--bg-secondary);border-radius:var(--radius);margin-bottom:8px;border:1px solid var(--border);align-items:end;animation:slideIn 0.2s ease-out;}
.spare-part-item .form-group{margin-bottom:0;}
.spare-part-item .form-group label{font-size:0.75rem;margin-bottom:4px;color:var(--text-light);}
.spare-part-item input{padding:8px 10px;font-size:0.9rem;}
.btn-remove-spare{background:var(--danger);color:white;border:none;border-radius:var(--radius-sm);padding:8px;cursor:pointer;font-size:1.1rem;transition:all 0.2s ease;height:36px;display:flex;align-items:center;justify-content:center;}
.btn-remove-spare:hover{background:var(--danger-dark);transform:scale(1.05);}
.btn-add-spare{background:var(--primary);color:white;border:none;border-radius:var(--radius);padding:10px 20px;cursor:pointer;font-size:0.9rem;font-weight:500;transition:all 0.2s ease;width:100%;margin-top:5px;}
.btn-add-spare:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow);}
@media (max-width:600px){.spare-part-item{grid-template-columns:1fr 1fr;}
.spare-part-item .form-group:nth-child(3),.spare-part-item .form-group:nth-child(4){grid-column:span 1;}
}
.image-preview-container{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px;}
.image-preview-item{position:relative;width:130px;height:130px;border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:all 0.3s ease;}
.image-preview-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.image-preview-item img{width:100%;height:100%;object-fit:cover;}
.image-preview-item .delete-btn{position:absolute;top:8px;right:8px;background:rgba(239,68,68,0.95);color:#FFF;border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:1rem;line-height:1;transition:all 0.2s ease;box-shadow:0 2px 8px rgba(0,0,0,0.2);}
.image-preview-item .delete-btn:hover{background:rgba(220,38,38,1);transform:scale(1.1);}
.image-preview-item .upload-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;z-index:2;border-radius:var(--radius);transition:opacity 0.3s;pointer-events:none;font-weight:600;text-align:center;padding:4px;}
footer{text-align:center;padding:24px;color:var(--text-light);font-size:0.9rem;margin-top:20px;}
@media (max-width:600px){.container{padding:12px 8px;}
header{padding:12px 16px 0;border-radius:0;}
header h1{font-size:1.1rem;letter-spacing:1px;line-height:1.3;}
header .subtitle{font-size:0.75rem;display:none;}
header .header-actions{position:static;justify-content:flex-end;margin-top:8px;padding:0 4px;}
header .config-toggle{position:static;margin-top:12px;width:100%;padding:10px;}
main{padding:20px 16px;}
.form-section h2{font-size:1.1rem;}
.form-actions{gap:8px;}
.form-actions .btn{flex:1;padding:10px 12px;font-size:0.9rem;}
.fault-form-actions{gap:8px;}
.fault-form-actions .btn-save-main{flex:1 1 100%;padding:14px 20px;font-size:1rem;min-height:48px;}
.fault-form-actions .btn-action-sub{flex:1 1 calc(50% - 4px);min-width:auto;padding:10px 6px;font-size:0.85rem;}
.add-option-form{flex-direction:column;gap:10px;}
.add-option-form input,.add-option-form button{width:100%;}
.image-preview-item{width:100px;height:100px;}
.image-upload-container{padding:24px 16px;}
.search-box{padding:16px;}
.advanced-search-panel{padding:20px 16px;}
.filter-row{flex-direction:column;align-items:stretch;gap:8px;}
.filter-row label{width:100%;}
.config-section{padding:16px;}
.config-panel h3{font-size:1.1rem;}
.tab-navigation{flex-wrap:nowrap;gap:4px;padding:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;justify-content:flex-start;border-radius:0;background:transparent;backdrop-filter:none;border:none;margin-top:8px;}
.tab-navigation::-webkit-scrollbar{display:none;}
.tab-button{flex:0 0 auto;padding:10px 14px 8px;font-size:0.85rem;white-space:nowrap;min-width:44px;text-align:center;border-radius:0;border-bottom:2px solid transparent;}
.tab-button.active{background:transparent;box-shadow:none;border-bottom-color:#38BDF8;}
.device-tree-header{display:none !important;}
.device-header{gap:8px !important;}
.device-header > div{display:flex !important;flex-wrap:nowrap !important;overflow-x:auto;gap:8px !important;width:100%;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.device-header > div::-webkit-scrollbar{display:none;}
.device-header > div > div{display:contents;border:none !important;padding:0 !important;}
.device-header > div > .btn,.device-header > div > div > .btn{flex:0 0 auto;font-size:0.78rem !important;padding:8px 14px !important;text-align:center;white-space:nowrap;border-radius:8px;border:none;min-width:72px;}
.device-header > div > .btn-primary,.device-header > div > div > .btn-primary{background:linear-gradient(135deg,#00F0FF,#3B82F6) !important;color:#fff !important;font-weight:600;}
.device-header > div > .btn-secondary,.device-header > div > div > .btn-secondary{background:rgba(255,255,255,0.06) !important;color:#CBD5E1 !important;border:1px solid rgba(255,255,255,0.08) !important;}
.device-filter-bar{flex-direction:row;flex-wrap:wrap;gap:6px;}
.device-filter-bar .search-wrapper{flex:1 1 100%;min-width:0;}
.device-filter-bar select{flex:1;min-width:0;padding:6px 10px;font-size:0.8rem;background-position:right 8px center;padding-right:24px;}
.device-stats{display:flex;overflow-x:auto;white-space:nowrap;gap:8px;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.device-stats::-webkit-scrollbar{display:none;}
.device-stat-card{flex:0 0 auto;min-width:110px;padding:8px 12px;font-size:0.78rem;}
.device-tree-container{border-radius:8px;}
.device-tree-body{max-height:70vh;}
.device-line-row{padding:10px 12px;font-size:0.82rem;flex-wrap:wrap;gap:4px;}
.device-line-row .line-badge{font-size:0.65rem;padding:1px 6px;}
.device-line-row > span[style*="flex:0 0 80px"],.device-line-row > span[style*="flex:0 0 180px"]{display:none !important;}
.device-line-row .action-group{flex:0 0 auto !important;width:auto !important;min-width:0 !important;}
.device-row{display:block !important;padding:10px 12px 10px 16px !important;border-top:1px solid rgba(255,255,255,0.03) !important;border-left:3px solid #60A5FA !important;position:relative;}
.device-row > span:not(.action-group)[style*="flex:0 0 100px"],.device-row > span:not(.action-group)[style*="flex:0 0 80px"],.device-row > span:not(.action-group)[style*="flex:0 0 180px"]{display:none !important;}
.device-row .device-name{display:flex !important;align-items:center;font-size:0.88rem !important;font-weight:600;color:#E2E8F0;line-height:1.4;padding:0 !important;margin:0 !important;overflow:visible;white-space:normal;}
.device-row .device-toggle{flex-shrink:0;}
.device-row .device-code{display:block !important;font-size:0.7rem !important;color:#94a3b8;font-family:'Consolas','Courier New',monospace;margin-top:2px;padding:0 !important;flex:none !important;width:auto !important;}
.device-row .device-type{font-size:0.68rem !important;color:#94A3B8;margin-top:1px;flex:none !important;width:auto !important;}
.device-row .action-group{position:absolute !important;top:8px;right:8px;flex-direction:row !important;gap:2px !important;flex:none !important;width:auto !important;}
.part-row{display:block !important;padding:8px 12px 8px 22px !important;border-top:1px solid rgba(255,255,255,0.03) !important;border-left:3px solid #8b5cf6 !important;position:relative;background:rgba(255,255,255,0.04);}
.part-row > span:not(.action-group)[style*="flex:0 0 100px"],.part-row > span:not(.action-group)[style*="flex:0 0 80px"],.part-row > span:not(.action-group)[style*="flex:0 0 180px"]{display:none !important;}
.part-row .part-name{display:flex !important;align-items:center;font-size:0.84rem !important;font-weight:500;color:#94A3B8;line-height:1.4;padding:0 !important;margin:0 !important;overflow:visible;white-space:normal;}
.part-row .part-toggle{flex-shrink:0;}
.part-row .part-code{display:block !important;font-size:0.68rem !important;color:#a5b4c4;font-family:'Consolas','Courier New',monospace;margin-top:2px;padding:0 !important;flex:none !important;width:auto !important;}
.part-row .action-group{position:absolute !important;top:6px;right:8px;flex-direction:row !important;gap:2px !important;flex:none !important;width:auto !important;}
.component-row{display:block !important;padding:6px 12px 6px 30px !important;border-top:1px solid rgba(255,255,255,0.03) !important;border-left:3px solid #cbd5e1 !important;position:relative;background:rgba(255,255,255,0.04);}
.component-row > span:not(.action-group)[style*="flex:0 0 100px"],.component-row > span:not(.action-group)[style*="flex:0 0 80px"],.component-row > span:not(.action-group)[style*="flex:0 0 180px"]{display:none !important;}
.component-row .comp-name{display:block !important;font-size:0.8rem !important;font-weight:400;color:#94A3B8;line-height:1.4;padding:0 !important;margin:0 !important;overflow:visible;white-space:normal;}
.component-row .comp-code{display:block !important;font-size:0.66rem !important;color:#a5b4c4;font-family:'Consolas','Courier New',monospace;margin-top:1px;padding:0 !important;flex:none !important;width:auto !important;}
.component-row .action-group{position:absolute !important;top:4px;right:8px;flex-direction:row !important;gap:2px !important;flex:none !important;width:auto !important;}
.type-tag{font-size:0.6rem !important;padding:0px 5px !important;vertical-align:middle;}
.grade-badge{font-size:0.6rem !important;padding:0px 6px !important;vertical-align:middle;}
.device-row > span:empty,.part-row > span:empty,.component-row > span:empty{display:none !important;}
.btn-icon{padding:4px 6px !important;font-size:0.72rem !important;min-width:28px;min-height:28px;border-radius:6px !important;}
.table-scroll-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;}
.table-scroll-wrapper table{min-width:600px;}
.record-item{padding:12px !important;}
.record-item > div:first-child{flex-direction:column !important;gap:6px !important;}
.record-item .record-meta{flex-wrap:wrap !important;gap:4px 12px !important;}
.record-item .record-actions{flex-wrap:wrap !important;gap:6px !important;}
.record-item .record-actions button{flex:1 1 calc(50% - 6px) !important;min-height:40px;}
.issue-card{padding:14px !important;}
.issue-card-header{flex-direction:column !important;gap:8px !important;}
.issue-card-meta{flex-wrap:wrap !important;gap:4px 10px !important;}
.issue-card-actions{flex-wrap:wrap !important;gap:6px !important;}
.issue-card-actions button{flex:1 1 calc(50% - 6px) !important;min-height:40px;}
.maintenance-card{padding:12px !important;}
button,.btn,.tab-button,input[type="checkbox"],input[type="radio"]{min-height:44px;min-width:44px;}
.btn-sm{min-height:36px;min-width:36px;}
#view-user-management #user-list-container table{min-width:700px;}
#view-user-management #user-list-container th,#view-user-management #user-list-container td{padding:8px 6px !important;font-size:0.78rem !important;white-space:nowrap;}
#view-user-management #user-list-container td:nth-child(1),#view-user-management #user-list-container th:nth-child(1){max-width:60px;overflow:hidden;text-overflow:ellipsis;}
#view-user-management #user-list-container td:nth-child(5),#view-user-management #user-list-container th:nth-child(5){max-width:100px;overflow:hidden;text-overflow:ellipsis;}
.ai-chat-panel{width:100vw !important;height:100vh !important;max-width:100vw !important;max-height:100vh !important;border-radius:0 !important;right:0 !important;bottom:0 !important;}
.ai-fab{width:50px !important;height:50px !important;bottom:16px !important;right:16px !important;}
.rca-card{padding:14px !important;}
.rca-why-chain{padding-left:16px !important;}
@media (min-width:601px) and (max-width:768px){.container{padding:16px 12px;}
.form-actions{gap:8px;}
.form-actions .btn{flex:1;padding:10px 12px;font-size:0.9rem;}
}
}
.loading{display:inline-block;width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite;margin-right:10px;}
@keyframes spin{to{transform:rotate(360deg);}
}
.issue-tracker{background:transparent;border-radius:12px;padding:20px;}
.issue-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;}
.issue-header h2{margin:0;color:var(--text);}
.issue-statistics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-bottom:20px;}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;text-align:center;transition:transform 0.2s;}
.stat-card:hover{transform:translateY(-2px);}
.stat-card.stat-total .stat-number{color:#94A3B8;}
.stat-card.stat-pending .stat-number{color:#F87171;}
.stat-card.stat-progress .stat-number{color:#38BDF8;}
.stat-card.stat-resolved .stat-number{color:#34D399;}
.stat-number{font-size:2rem;font-weight:700;margin-bottom:4px;}
.stat-label{font-size:0.85rem;color:var(--text-light);}
.issue-filters{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap;}
.issue-filters input{flex:1;min-width:200px;padding:10px 15px;border:2px solid var(--border);border-radius:8px;font-size:1rem;}
.issue-filters select{padding:10px 15px;border:2px solid var(--border);border-radius:8px;font-size:1rem;background:#1A1A2E;cursor:pointer;}
.issue-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:15px;}
@media (max-width:768px){.issue-list{grid-template-columns:1fr;gap:12px;}
.issue-statistics{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px;}
.stat-card{padding:10px 6px;border-radius:8px;}
.stat-card .stat-number{font-size:1.4rem;margin-bottom:2px;}
.stat-card .stat-label{font-size:0.7rem;}
.plan-task-check input[type="checkbox"]{width:14px;height:14px;transform:scale(0.6);transform-origin:center;}
}
.issue-item{background:var(--card);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow);border:1px solid var(--border);transition:all 0.3s ease;}
.issue-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border);}
.issue-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.issue-header-badges{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.issue-schedule-badge{padding:3px 10px;border-radius:12px;font-size:0.75rem;font-weight:600;background:rgba(0,240,255,0.1);color:#00F0FF;border:1px solid rgba(0,240,255,0.25);white-space:nowrap;}
.issue-item.issue-scheduled .issue-title::after{content:' 📅';font-size:0.8rem;opacity:0.7;}
.issue-id{font-size:0.85rem;color:var(--text-light);font-family:monospace;}
.issue-priority{padding:4px 10px;border-radius:12px;font-size:0.75rem;font-weight:600;border:1px solid var(--border);background:rgba(255,255,255,0.04);color:var(--text-light);}
.issue-status{padding:4px 10px;border-radius:12px;font-size:0.75rem;font-weight:600;border:1px solid rgba(255,255,255,0.08);}
.issue-status.status-待处理{background:rgba(239,68,68,0.12);color:var(--danger);border-color:rgba(239,68,68,0.2);}
.issue-status.status-进行中{background:rgba(0,240,255,0.1);color:var(--primary);border-color:rgba(0,240,255,0.2);}
.issue-status.status-已解决{background:rgba(16,185,129,0.12);color:var(--success);border-color:rgba(16,185,129,0.2);}
.issue-status.status-已关闭{background:rgba(255,255,255,0.04);color:var(--text-lighter);border-color:var(--border);}
.issue-title{font-size:1.1rem;font-weight:600;color:var(--text);margin:12px 0 8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;}
.issue-desc{color:var(--text-light);font-size:0.9rem;line-height:1.5;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;}
.issue-clickable{cursor:pointer;transition:color 0.2s;}
.issue-clickable:hover{color:var(--text);}
.issue-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:0.85rem;color:var(--text-light);margin-bottom:12px;line-height:1.4;}
.issue-meta span{display:inline-flex;align-items:center;gap:4px;padding:2px 0;background:transparent;border-radius:0;border:none;color:var(--text-lighter);font-size:0.82rem;}
.issue-meta span:not(:last-child)::after{content:"·";margin-left:8px;color:var(--border);}
.issue-meta span:empty{display:none;}
.empty-state{text-align:center;padding:60px 20px;color:var(--text-light);}
.empty-icon{font-size:48px;margin-bottom:16px;opacity:0.6;}
.empty-state h3{font-size:1.2rem;font-weight:600;margin-bottom:8px;color:var(--text-light);}
.empty-state p{font-size:0.95rem;opacity:0.8;}
.issue-actions{display:flex;gap:8px;justify-content:flex-end;}
.btn-sm{padding:6px 12px;font-size:0.85rem;border-radius:6px;}
.btn-danger{background:rgba(239,68,68,0.1);color:#dc2626;border:none;}
.btn-danger:hover{background:rgba(239,68,68,0.12);}
.issue-view-switcher{display:flex;gap:8px;margin-bottom:16px;}
.issue-view-switcher .btn-view-switch{padding:8px 16px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text);cursor:pointer;font-size:0.85rem;font-weight:500;transition:all 0.2s;}
.issue-view-switcher .btn-view-switch.active{background:linear-gradient(135deg,#00F0FF,#A855F7);color:#06060E;border-color:transparent;font-weight:600;}
.issue-view-switcher .btn-view-switch:hover:not(.active){background:rgba(0,240,255,0.08);border-color:rgba(0,240,255,0.3);}
.issue-calendar-view{display:none;}
.issue-calendar-view.active{display:block;}
.issue-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:12px 16px;background:var(--card);border-radius:12px;border:1px solid var(--border);flex-wrap:wrap;gap:10px;}
.issue-cal-nav-left{display:flex;align-items:center;gap:10px;}
.issue-cal-nav button{padding:6px 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text);cursor:pointer;font-size:0.85rem;transition:all 0.2s;}
.issue-cal-nav button:hover{background:rgba(0,240,255,0.1);border-color:rgba(0,240,255,0.3);}
.issue-cal-month-title{font-size:1.1rem;font-weight:700;color:var(--primary);min-width:140px;text-align:center;}
.issue-cal-grid{background:var(--card);border-radius:12px;border:1px solid var(--border);overflow:hidden;}
.issue-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:rgba(0,240,255,0.05);border-bottom:1px solid var(--border);}
.issue-cal-weekday{padding:10px 4px;text-align:center;font-size:0.8rem;font-weight:600;color:var(--text-light);}
.issue-cal-weekday:first-child,.issue-cal-weekday:last-child{color:#EF4444;}
.issue-cal-days{display:grid;grid-template-columns:repeat(7,1fr);}
.issue-cal-day{min-height:80px;padding:6px;border-right:1px solid rgba(255,255,255,0.03);border-bottom:1px solid rgba(255,255,255,0.03);cursor:pointer;transition:background 0.15s;position:relative;}
.issue-cal-day:nth-child(7n){border-right:none;}
.issue-cal-day:hover{background:rgba(0,240,255,0.06);}
.issue-cal-day.empty{cursor:default;background:rgba(255,255,255,0.01);}
.issue-cal-day.today{background:rgba(0,240,255,0.12);box-shadow:inset 0 0 0 2px rgba(0,240,255,0.5);border-radius:6px;}
.issue-cal-day.weekend{background:rgba(255,255,255,0.015);}
.issue-cal-day.weekend.today{background:rgba(0,240,255,0.12);box-shadow:inset 0 0 0 2px rgba(0,240,255,0.5);}
.issue-cal-day.load-light{background:rgba(0,240,255,0.04);}
.issue-cal-day.load-medium{background:rgba(0,240,255,0.08);}
.issue-cal-day.load-heavy{background:rgba(0,240,255,0.14);}
.issue-cal-day.load-light.weekend{background:rgba(0,240,255,0.02);}
.issue-cal-day.load-medium.weekend{background:rgba(0,240,255,0.05);}
.issue-cal-day.load-heavy.weekend{background:rgba(0,240,255,0.10);}
.issue-cal-day.today{background:rgba(0,240,255,0.12) !important;box-shadow:inset 0 0 0 2px rgba(0,240,255,0.5) !important;border-radius:6px;}
.issue-cal-day-num{font-size:0.85rem;font-weight:600;color:var(--text);margin-bottom:4px;}
.issue-cal-day.today .issue-cal-day-num{color:var(--primary);font-weight:700;font-size:0.95rem;text-shadow:0 0 8px rgba(0,240,255,0.4);}
.issue-cal-day.weekend .issue-cal-day-num{color:var(--text-lighter);}
.issue-cal-day.today.weekend .issue-cal-day-num{color:var(--primary);font-weight:700;}
.issue-cal-dots{display:flex;flex-wrap:wrap;gap:3px;}
.issue-cal-dot{width:18px;height:8px;border-radius:4px;flex-shrink:0;}
.issue-cal-dot.p0{background:#DC2626;}
.issue-cal-dot.p1{background:#EA580C;}
.issue-cal-dot.p2{background:#FBBF24;}
.issue-cal-dot.p3{background:#60A5FA;}
.issue-cal-count{font-size:0.7rem;color:var(--text-light);margin-top:2px;}
.issue-cal-legend{display:flex;gap:16px;margin-top:12px;padding:8px 16px;background:var(--card);border-radius:8px;border:1px solid var(--border);flex-wrap:wrap;font-size:0.78rem;}
.issue-cal-legend-item{display:flex;align-items:center;gap:6px;color:var(--text-light);}
.issue-cal-legend-dot{width:12px;height:6px;border-radius:3px;}
.issue-cal-legend-dot.p0{background:#DC2626;}
.issue-cal-legend-dot.p1{background:#EA580C;}
.issue-cal-legend-dot.p2{background:#FBBF24;}
.issue-cal-legend-dot.p3{background:#60A5FA;}
.issue-cal-legend-dot.today{background:#00F0FF;width:12px;height:12px;border-radius:3px;}
.issue-day-modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.7);z-index:2000;justify-content:center;align-items:center;}
.issue-day-modal.active{display:flex;}
.issue-day-modal-content{background:var(--card);border-radius:var(--radius-lg);border:1px solid var(--border);width:90vw;max-width:600px;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-lg);}
.issue-day-modal-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--card);z-index:1;border-radius:var(--radius-lg) var(--radius-lg) 0 0;}
.issue-day-modal-header h3{margin:0;font-size:1.1rem;color:var(--primary);}
.issue-day-modal-close{background:none;border:none;color:var(--text-light);font-size:1.5rem;cursor:pointer;padding:4px 8px;border-radius:6px;}
.issue-day-modal-close:hover{background:rgba(255,255,255,0.1);color:var(--text);}
.issue-day-modal-body{padding:16px 20px;}
.issue-day-empty{text-align:center;padding:40px 20px;color:var(--text-light);}
.issue-day-empty .icon{font-size:2.5rem;display:block;margin-bottom:12px;}
.issue-day-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;margin-bottom:8px;border-radius:8px;border:1px solid var(--border);background:var(--bg-secondary);gap:10px;flex-wrap:wrap;}
.issue-day-item-left{flex:1;min-width:200px;}
.issue-day-item-title{font-weight:600;font-size:0.9rem;color:var(--text);margin-bottom:4px;}
.issue-day-item-meta{font-size:0.78rem;color:var(--text-light);}
.issue-day-item-priority{display:inline-block;padding:2px 8px;border-radius:10px;font-size:0.72rem;font-weight:600;margin-right:6px;}
.issue-day-item-actions{display:flex;gap:6px;align-items:center;}
.issue-day-item-actions button{padding:4px 10px;font-size:0.78rem;border-radius:6px;border:none;cursor:pointer;white-space:nowrap;}
.btn-unschedule{background:rgba(239,68,68,0.1);color:#EF4444;}
.btn-unschedule:hover{background:rgba(239,68,68,0.2);}
.btn-add-to-date{background:rgba(0,240,255,0.1);color:var(--primary);border:1px solid rgba(0,240,255,0.3);padding:8px 16px;border-radius:8px;cursor:pointer;font-size:0.85rem;font-weight:500;width:100%;margin-top:12px;transition:all 0.2s;}
.btn-add-to-date:hover{background:rgba(0,240,255,0.15);}
.issue-picker-modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.7);z-index:2100;justify-content:center;align-items:center;}
.issue-picker-modal.active{display:flex;}
.issue-picker-content{background:var(--card);border-radius:var(--radius-lg);border:1px solid var(--border);width:90vw;max-width:650px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);}
.issue-picker-header{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;}
.issue-picker-header h3{margin:0;font-size:1.05rem;color:var(--text);}
.issue-picker-filters{padding:10px 20px;border-bottom:1px solid var(--border);display:flex;gap:8px;flex-wrap:wrap;}
.issue-picker-filters input,.issue-picker-filters select{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-secondary);color:var(--text);font-size:0.82rem;}
.issue-picker-filters input{flex:1;min-width:150px;}
.issue-picker-list{flex:1;overflow-y:auto;padding:10px 20px;max-height:50vh;}
.issue-picker-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;margin-bottom:6px;border-radius:8px;border:1px solid var(--border);background:var(--bg-secondary);transition:background 0.15s;gap:10px;flex-wrap:wrap;}
.issue-picker-item:hover{background:rgba(0,240,255,0.04);}
.issue-picker-item-left{flex:1;min-width:180px;}
.issue-picker-item-title{font-weight:600;font-size:0.85rem;color:var(--text);margin-bottom:3px;}
.issue-picker-item-meta{font-size:0.75rem;color:var(--text-light);}
.btn-pick-issue{padding:5px 14px;background:linear-gradient(135deg,#00F0FF,#A855F7);color:#06060E;border:none;border-radius:6px;cursor:pointer;font-size:0.8rem;font-weight:600;white-space:nowrap;transition:opacity 0.2s;}
.btn-pick-issue:hover{opacity:0.85;}
.issue-picker-empty{text-align:center;padding:40px 20px;color:var(--text-light);}
.device-tree-container{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,0.04);}
.device-tree-header{padding:14px 20px;background:linear-gradient(135deg,rgba(0,240,255,0.05) 0%,var(--bg-secondary) 100%);border-bottom:1px solid var(--border);display:flex;font-weight:600;font-size:0.82rem;color:#94A3B8;letter-spacing:0.3px;}
.device-tree-body{min-height:200px;max-height:65vh;overflow-y:auto;}
.device-tree-body::-webkit-scrollbar{width:6px;}
.device-tree-body::-webkit-scrollbar-track{background:rgba(255,255,255,0.03);}
.device-tree-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px;}
.device-tree-body::-webkit-scrollbar-thumb:hover{background:#94a3b8;}
.device-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px;}
.device-header > div{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.device-header > div > div{display:flex;align-items:center;gap:6px;padding-right:8px;border-right:1px solid var(--border);}
.device-header > div > div:last-of-type{border-right:none;padding-right:0;}
.device-header .btn{white-space:nowrap;padding:8px 16px;font-size:0.85rem;font-weight:500;border-radius:8px;min-width:auto;letter-spacing:0.5px;height:36px;display:inline-flex;align-items:center;justify-content:center;line-height:1;}
.device-header .btn-primary{background:linear-gradient(135deg,#0891B2 0%,#06B6D4 100%);color:#fff;box-shadow:0 2px 8px rgba(6,182,212,0.25);border:none;}
.device-header .btn-primary:hover{background:linear-gradient(135deg,#06B6D4 0%,#22D3EE 100%);box-shadow:0 4px 12px rgba(6,182,212,0.35);transform:translateY(-1px);}
.device-header .btn-secondary{background:rgba(30,41,59,0.6);color:#94A3B8;border:1px solid rgba(148,163,184,0.15);box-shadow:none;}
.device-header .btn-secondary:hover{background:rgba(30,41,59,0.9);color:#CBD5E1;border-color:rgba(148,163,184,0.3);transform:translateY(-1px);}
.device-tree-row{display:flex;align-items:center;transition:background 0.15s ease;}
.device-tree-row:hover{background:rgba(0,240,255,0.05) !important;}
.device-tree-row.highlight-row{background:rgba(245,158,11,0.1) !important;animation:highlightPulse 1.5s ease;}
@keyframes highlightPulse{0%{background:rgba(245,158,11,0.15);}
50%{background:rgba(245,158,11,0.1);}
100%{background:transparent;}
}
.device-tree-line{border-bottom:1px solid rgba(255,255,255,0.03);}
.device-tree-line:last-child{border-bottom:none;}
.device-line-row{display:flex;align-items:center;padding:10px 20px;background:linear-gradient(135deg,rgba(0,240,255,0.05) 0%,rgba(0,240,255,0.08) 100%);font-weight:600;color:#60A5FA;font-size:0.9rem;cursor:pointer;border-bottom:1px solid rgba(0,240,255,0.08);}
.device-line-row:hover{background:linear-gradient(135deg,rgba(0,240,255,0.08) 0%,rgba(0,240,255,0.15) 100%);}
.device-line-row .line-toggle{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:8px;font-size:0.7rem;color:#60A5FA;transition:transform 0.2s;}
.device-line-row .line-badge{display:inline-block;padding:1px 10px;border-radius:12px;background:rgba(255,255,255,0.6);color:#94A3B8;font-size:0.75rem;font-weight:400;margin-left:10px;}
.device-row{display:flex;align-items:center;padding:7px 20px 7px 40px;border-top:1px solid rgba(255,255,255,0.03);font-size:0.85rem;}
.device-row:hover{background:rgba(0,240,255,0.05) !important;}
.device-row .device-toggle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:6px;font-size:0.65rem;color:#94A3B8;transition:transform 0.2s;}
.device-row .device-code{flex:0 0 160px;color:#94A3B8;font-family:'Consolas','Courier New',monospace;font-size:0.8rem;}
.device-row .device-name{flex:1;font-weight:500;color:#E2E8F0;}
.device-row .device-type{flex:0 0 100px;color:#94A3B8;font-size:0.8rem;}
.part-row{display:flex;align-items:center;padding:5px 20px 5px 56px;border-top:1px solid var(--bg-secondary);font-size:0.82rem;background:var(--bg-secondary);}
.part-row:hover{background:rgba(0,240,255,0.05) !important;}
.part-row .part-toggle{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:6px;font-size:0.6rem;color:#94a3b8;transition:transform 0.2s;}
.part-row .part-code{flex:0 0 160px;color:#94a3b8;font-family:'Consolas','Courier New',monospace;font-size:0.78rem;}
.part-row .part-name{flex:1;color:#94A3B8;}
.component-row{display:flex;align-items:center;padding:4px 20px 4px 72px;border-top:1px solid var(--bg-secondary);font-size:0.8rem;background:var(--bg-secondary);}
.component-row:hover{background:rgba(0,240,255,0.05) !important;}
.component-row .comp-code{flex:0 0 160px;color:#a0aec0;font-family:'Consolas','Courier New',monospace;font-size:0.75rem;}
.component-row .comp-name{flex:1;color:#94A3B8;}
.type-tag{display:inline-block;padding:1px 8px;border-radius:4px;font-size:0.7rem;font-weight:500;}
.type-tag-line{background:rgba(0,240,255,0.08);color:#38BDF8;}
.type-tag-device{background:rgba(16,185,129,0.1);color:#6EE7B7;}
.type-tag-part{background:rgba(245,158,11,0.1);color:#FCD34D;}
.type-tag-component{background:rgba(255,255,255,0.03);color:#94A3B8;}
.grade-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:0.72rem;font-weight:600;letter-spacing:0.5px;}
.grade-a{background:rgba(239,68,68,0.1);color:#dc2626;}
.grade-b{background:rgba(26,26,46,0.6);color:#ea580c;}
.grade-c{background:rgba(16,185,129,0.1);color:#059669;}
.device-line-children{overflow:hidden;transition:all 0.25s ease;}
.action-group{display:flex;gap:4px;align-items:center;}
.action-group .btn-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer;font-size:0.8rem;transition:all 0.15s ease;padding:0;}
.action-group .btn-icon:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,0.1);}
.action-group .btn-icon:active{transform:translateY(0);}
.action-group .btn-icon-add{color:#60A5FA;}
.action-group .btn-icon-add:hover{background:#eff6ff;border-color:#bfdbfe;}
.action-group .btn-icon-edit{color:#d97706;}
.action-group .btn-icon-edit:hover{background:rgba(245,158,11,0.08);border-color:rgba(245,158,11,0.15);}
.action-group .btn-icon-delete{color:#dc2626;}
.action-group .btn-icon-delete:hover{background:rgba(239,68,68,0.1);border-color:rgba(239,68,68,0.12);}
.device-stats{display:flex;gap:12px;margin-bottom:14px;}
.device-stat-card{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:10px;background:var(--bg-secondary);border:1px solid var(--border);font-size:0.82rem;color:#94A3B8;}
.device-stat-card strong{font-size:1.1rem;color:#E2E8F0;}
.device-stat-card .stat-icon{font-size:1rem;}
.device-filter-bar{display:flex;gap:12px;margin-bottom:16px;align-items:center;}
.device-filter-bar .search-wrapper{position:relative;flex:1;}
.device-filter-bar .search-wrapper .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:0.9rem;color:#94a3b8;pointer-events:none;}
.device-filter-bar .search-wrapper input{width:100%;padding:9px 14px 9px 36px;border:1px solid #94A3B8;border-radius:10px;font-size:0.9rem;background:var(--card);transition:border-color 0.15s ease,box-shadow 0.15s ease;outline:none;box-sizing:border-box;}
.device-filter-bar .search-wrapper input:focus{border-color:#60A5FA;box-shadow:0 0 0 3px rgba(59,130,246,0.1);}
.device-filter-bar .search-wrapper input:focus + .search-icon{color:#60A5FA;}
.device-filter-bar .search-wrapper .search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:none;width:20px;height:20px;border:none;border-radius:50%;background:var(--border);color:#94A3B8;font-size:0.7rem;cursor:pointer;align-items:center;justify-content:center;padding:0;line-height:1;transition:background 0.15s;}
.device-filter-bar .search-wrapper .search-clear:hover{background:#cbd5e1;}
.device-filter-bar .search-wrapper .search-clear.visible{display:flex;}
.device-filter-bar select{padding:9px 14px;border:1px solid #94A3B8;border-radius:10px;font-size:0.9rem;background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right 12px center;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:32px;flex:0 0 180px;transition:border-color 0.15s ease,box-shadow 0.15s ease;outline:none;cursor:pointer;}
.device-filter-bar select:focus{border-color:#60A5FA;box-shadow:0 0 0 3px rgba(59,130,246,0.1);}
.device-filter-bar .filter-hint{font-size:0.78rem;color:#94a3b8;white-space:nowrap;}
.empty-state{padding:60px 20px;text-align:center;color:#94a3b8;}
.empty-state .empty-icon{font-size:3rem;margin-bottom:12px;opacity:0.4;}
.empty-state .empty-text{font-size:0.95rem;}
.loading-state{padding:50px 20px;text-align:center;}
.loading-spinner{display:inline-block;width:28px;height:28px;border:3px solid var(--border);border-top-color:#60A5FA;border-radius:50%;animation:spin 0.8s linear infinite;}
.loading-text{margin-top:10px;color:#94a3b8;font-size:0.9rem;}
.device-modal-body{padding:24px;}
.device-modal-body .form-group{margin-bottom:18px;}
.device-modal-body .form-group:last-child{margin-bottom:0;}
.device-modal-body label{display:block;margin-bottom:6px;font-size:0.88rem;font-weight:600;color:#CBD5E1;}
.device-modal-body label .required{color:#dc2626;margin-left:2px;}
.device-modal-body input[type="text"],.device-modal-body select{width:100%;padding:10px 12px;border:1px solid #94A3B8;border-radius:8px;font-size:0.95rem;transition:border-color 0.15s ease,box-shadow 0.15s ease;outline:none;box-sizing:border-box;}
.device-modal-body input[type="text"]:focus,.device-modal-body select:focus{border-color:#60A5FA;box-shadow:0 0 0 3px rgba(59,130,246,0.1);}
.device-modal-body input[readonly]{background:rgba(255,255,255,0.03);color:#94A3B8;}
.device-modal-body .form-hint{display:block;margin-top:4px;font-size:0.78rem;color:#94a3b8;}
.device-modal-body .form-row{display:flex;gap:14px;}
.device-modal-body .form-row .form-group{flex:1;}
.device-modal-body .form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,0.03);}
.dimension-section{margin:14px 0;padding:14px 16px;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border);}
.dimension-section .section-title{font-size:0.85rem;font-weight:600;color:#CBD5E1;margin-bottom:10px;}
.dimension-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;}
.dimension-item{display:flex;align-items:center;gap:6px;}
.dimension-item label{font-size:0.78rem;color:#94A3B8;white-space:nowrap;min-width:60px;font-weight:400;}
.dimension-item select{flex:1;padding:6px 8px;border:1px solid #94A3B8;border-radius:6px;font-size:0.8rem;background:var(--card);color:#E2E8F0;min-width:0;}
.dimension-item select:focus{border-color:#60A5FA;outline:none;box-shadow:0 0 0 2px rgba(59,130,246,0.1);}
.grading-result{margin-top:10px;padding:8px 12px;background:var(--card);border-radius:8px;border:1px dashed #cbd5e1;font-size:0.82rem;color:#94A3B8;text-align:center;}
.grading-result strong{font-size:0.9rem;}
.grading-result .grade-badge-inline{display:inline-block;padding:2px 10px;border-radius:10px;font-weight:600;font-size:0.85rem;margin:0 4px;}
.grade-badge-inline.grade-a{background:rgba(239,68,68,0.12);color:#DC2626;}
.grade-badge-inline.grade-b{background:rgba(245,158,11,0.15);color:#FBBF24;}
.grade-badge-inline.grade-c{background:rgba(16,185,129,0.12);color:#059669;}
.dimension-detail-trigger{cursor:pointer;font-size:0.72rem;color:#60A5FA;margin-left:6px;text-decoration:underline;text-decoration-style:dotted;}
.dimension-detail-trigger:hover{color:#60A5FA;}
.dimension-popup{display:none;position:absolute;z-index:100;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,0.1);padding:12px 14px;min-width:240px;font-size:0.78rem;}
.dimension-popup.show{display:block;}
.dimension-popup .dim-row{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px solid rgba(255,255,255,0.03);}
.dimension-popup .dim-row:last-child{border-bottom:none;}
.dimension-popup .dim-label{color:#94A3B8;}
.dimension-popup .dim-value{font-weight:500;color:#E2E8F0;}
.dimension-popup .dim-total{margin-top:6px;padding-top:6px;border-top:1px solid var(--border);font-weight:600;text-align:center;color:#E2E8F0;}
.device-modal-body .info-block{padding:10px 14px;background:rgba(0,240,255,0.05);border:1px solid rgba(0,240,255,0.15);border-radius:8px;font-weight:600;color:#60A5FA;font-size:0.9rem;}
.device-modal-body .delete-message{color:#dc2626;font-size:1rem;line-height:1.6;}
.device-modal-body .delete-warning{color:#d97706;font-size:0.9rem;margin-top:8px;padding:10px 14px;background:rgba(245,158,11,0.08);border:1px solid rgba(245,158,11,0.15);border-radius:8px;}
@media (max-width:768px){#add-device-modal .modal-content{display:flex;flex-direction:column;max-width:100% !important;width:100%;height:100%;max-height:100dvh;border-radius:0;padding:0;}
#add-device-modal .modal-header{flex-shrink:0;padding:14px 16px;margin-bottom:0;background:#1A1A2E;border-bottom:1px solid var(--border);}
#add-device-modal .modal-header h3{font-size:1.1rem;}
#add-device-modal .device-modal-body{flex:1;overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch;}
#add-device-modal .device-modal-body .form-group{margin-bottom:14px;}
#add-device-modal .form-row{flex-direction:column;gap:0;margin-bottom:0;}
#add-device-modal .form-row .form-group{margin-bottom:14px;}
#add-device-modal .dimension-grid{grid-template-columns:1fr;gap:10px;}
#add-device-modal .dimension-item{flex-direction:column;align-items:stretch;gap:4px;}
#add-device-modal .dimension-item label{white-space:normal;min-width:auto;font-size:0.8rem;}
#add-device-modal .form-actions{position:static;margin-top:20px;padding:12px 0;background:transparent;border-top:none;gap:10px;}
}
.status-select{padding:5px 10px;font-size:0.85rem;border-radius:6px;border:1px solid #94A3B8;background:rgba(16,185,129,0.1);color:#6EE7B7;cursor:pointer;font-weight:500;transition:all 0.2s ease;outline:none;min-width:110px;}
.status-select:hover{border-color:#6EE7B7;background:rgba(16,185,129,0.1);}
.status-select:focus{border-color:#6EE7B7;box-shadow:0 0 0 2px rgba(22,163,74,0.2);}
.issue-detail-content{max-width:600px;}
.issue-detail-body{padding:20px;max-height:60vh;overflow-y:auto;}
.detail-section{margin-bottom:18px;}
.detail-section.half{flex:1;margin-bottom:0;}
.detail-label{font-size:0.85rem;color:#94A3B8;margin-bottom:5px;font-weight:500;}
.detail-value{font-size:1rem;color:var(--text);line-height:1.6;}
.detail-value.detail-title{font-size:1.2rem;font-weight:600;color:#E2E8F0;}
.detail-value.detail-desc{background:var(--bg-secondary);padding:12px;border-radius:8px;white-space:pre-wrap;}
.detail-row{display:flex;gap:20px;margin-bottom:18px;}
.issue-detail-actions{display:flex;justify-content:flex-end;gap:10px;padding:15px 20px;border-top:1px solid #eee;background:var(--bg-secondary);border-radius:0 0 12px 12px;}
.issue-clickable{cursor:pointer;transition:color 0.2s ease;}
.issue-clickable:hover{color:#667eea;}
.btn-danger:hover{background:rgba(239,68,68,0.12);}
.empty-state{text-align:center;padding:40px;color:#CBD5E1;grid-column:1/-1;}
.fault-level-info{margin-top:10px;padding:12px 15px;border-radius:8px;background:var(--bg-secondary);border-left:4px solid #ccc;transition:all 0.3s ease;}
.fault-level-info.hidden{display:none;}
.fault-level-info.critical{background:rgba(239,68,68,0.1);border-left-color:#dc2626;}
.fault-level-info.major{background:rgba(26,26,46,0.6);border-left-color:#ea580c;}
.fault-level-info.general{background:rgba(245,158,11,0.1);border-left-color:#d97706;}
.fault-level-info.minor{background:rgba(16,185,129,0.1);border-left-color:#059669;}
.fault-level-badge{font-weight:600;font-size:0.95rem;margin-bottom:6px;display:flex;align-items:center;gap:6px;}
.fault-level-desc{font-size:0.85rem;color:#94A3B8;margin-bottom:8px;line-height:1.4;}
.fault-level-criteria{font-size:0.8rem;color:#94a3b8;display:grid;grid-template-columns:repeat(2,1fr);gap:4px 12px;}
.fault-level-criteria span{display:flex;align-items:center;gap:4px;}
.fault-level-criteria .criteria-label{font-weight:500;}
#fault_level option[data-level="critical"]{color:#dc2626;}
#fault_level option[data-level="major"]{color:#ea580c;}
#fault_level option[data-level="general"]{color:#d97706;}
#fault_level option[data-level="minor"]{color:#059669;}
.history-level{padding:2px 8px;border-radius:4px;font-size:0.75rem;font-weight:500;}
.history-level.紧急,.history-level.critical{background:rgba(239,68,68,0.1);color:#dc2626;}
.history-level.重大,.history-level.major{background:rgba(26,26,46,0.6);color:#c2410c;}
.history-level.一般,.history-level.general{background:rgba(245,158,11,0.1);color:#a16207;}
.history-level.轻微,.history-level.minor{background:rgba(16,185,129,0.1);color:#6EE7B7;}
.admin-login-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:2000;justify-content:center;align-items:center;overflow:hidden;}
.admin-login-modal::before{content:'';position:absolute;inset:0;background:#06060E;z-index:0;}
.admin-login-modal::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 30%,rgba(0,240,255,0.08) 0%,transparent 50%),radial-gradient(ellipse at 70% 65%,rgba(168,85,247,0.08) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(244,114,182,0.05) 0%,transparent 55%),radial-gradient(ellipse at 85% 20%,rgba(0,240,255,0.04) 0%,transparent 40%);z-index:1;pointer-events:none;}
.login-grid-overlay{position:absolute;inset:0;background-image:linear-gradient(rgba(0,240,255,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(0,240,255,0.04) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;z-index:2;}
.login-scanlines{position:absolute;inset:0;pointer-events:none;z-index:3;background:repeating-linear-gradient( 0deg,transparent,transparent 3px,rgba(0,240,255,0.02) 3px,rgba(0,240,255,0.02) 6px );animation:scanlines 8s linear infinite;}
@keyframes scanlines{from{transform:translateY(0);}
to{transform:translateY(6px);}
}
.cyber-particles{position:absolute;inset:0;pointer-events:none;z-index:4;}
.cyber-particles span{position:absolute;border-radius:50%;animation:particle-float var(--dur) ease-in-out infinite;animation-delay:var(--delay);opacity:0;}
@keyframes particle-float{0%{opacity:0;transform:translate(0,0) scale(0);}
10%{opacity:0.8;}
50%{opacity:0.4;transform:translate(var(--dx),var(--dy)) scale(1);}
90%{opacity:0.8;}
100%{opacity:0;transform:translate(0,0) scale(0);}
}
.admin-login-modal.show{display:flex;animation:fadeIn 0.3s ease;}
.login-gear{position:absolute;pointer-events:none;z-index:2;}
.login-gear-large{top:-50px;left:-50px;width:220px;height:220px;animation:gear-spin-cw 40s linear infinite;filter:drop-shadow(0 0 8px rgba(0,240,255,0.3));}
.login-gear-small{bottom:-30px;right:-30px;width:130px;height:130px;animation:gear-spin-ccw 30s linear infinite;filter:drop-shadow(0 0 6px rgba(168,85,247,0.3));}
@keyframes gear-spin-cw{from{transform:rotate(0deg)}
to{transform:rotate(360deg)}
}
@keyframes gear-spin-ccw{from{transform:rotate(360deg)}
to{transform:rotate(0deg)}
}
.admin-login-content{position:relative;z-index:10;background:rgba(18,24,40,0.92);backdrop-filter:blur(28px) saturate(140%);-webkit-backdrop-filter:blur(28px) saturate(140%);border:1px solid rgba(0,240,255,0.25);border-radius:16px;padding:36px 32px 32px;width:90%;max-width:420px;box-shadow:0 0 40px rgba(0,240,255,0.12),0 0 80px rgba(168,85,247,0.08),0 8px 32px rgba(0,0,0,0.5),inset 0 1px 0 rgba(255,255,255,0.05);animation:slideUp 0.5s ease,border-pulse 4s ease-in-out infinite;}
@keyframes border-pulse{0%,100%{box-shadow:0 0 40px rgba(0,240,255,0.12),0 0 80px rgba(168,85,247,0.08),0 8px 32px rgba(0,0,0,0.5),inset 0 1px 0 rgba(255,255,255,0.05);}
50%{box-shadow:0 0 60px rgba(0,240,255,0.22),0 0 100px rgba(168,85,247,0.14),0 8px 32px rgba(0,0,0,0.5),inset 0 1px 0 rgba(255,255,255,0.08);}
}
.admin-login-content::before{content:'';position:absolute;top:-1px;left:40px;right:40px;height:2px;background:linear-gradient(90deg,transparent,#00F0FF,#A855F7,#00F0FF,transparent);border-radius:2px;box-shadow:0 0 12px rgba(0,240,255,0.4);}
.login-card-rivets{position:absolute;inset:0;pointer-events:none;z-index:1;}
.login-card-rivets::before,.login-card-rivets::after{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:#00F0FF;box-shadow:0 0 8px rgba(0,240,255,0.6),0 0 16px rgba(0,240,255,0.3);}
.login-card-rivets::before{top:12px;right:12px;}
.login-card-rivets::after{bottom:12px;left:12px;background:#A855F7;box-shadow:0 0 8px rgba(168,85,247,0.6),0 0 16px rgba(168,85,247,0.3);}
.login-card-rivets-corner{position:absolute;inset:0;pointer-events:none;z-index:1;}
.login-card-rivets-corner::before,.login-card-rivets-corner::after{content:'';position:absolute;width:6px;height:6px;border-radius:50%;box-shadow:0 0 8px rgba(0,240,255,0.6),0 0 16px rgba(0,240,255,0.3);}
.login-card-rivets-corner::before{top:12px;left:12px;background:#00F0FF;}
.login-card-rivets-corner::after{bottom:12px;right:12px;background:#A855F7;box-shadow:0 0 8px rgba(168,85,247,0.6),0 0 16px rgba(168,85,247,0.3);}
.login-branding{text-align:center;margin-bottom:24px;}
.login-branding-icon{font-size:2.2rem;margin-bottom:10px;}
.login-branding h2{font-size:1.3rem;font-weight:700;color:#FFFFFF;margin:0 0 4px;letter-spacing:3px;text-shadow:0 0 20px rgba(255,255,255,0.3);}
.login-branding .en-sub{font-size:0.68rem;color:#00F0FF;text-transform:uppercase;letter-spacing:4px;margin-bottom:14px;opacity:0.7;}
.login-branding-divider{width:56px;height:2px;background:linear-gradient(90deg,#00F0FF,#A855F7);margin:0 auto;border-radius:2px;box-shadow:0 0 10px rgba(0,240,255,0.3);}
.admin-login-header{text-align:center;margin-bottom:16px;}
.admin-login-header h3{font-size:1rem;color:#FFFFFF;margin-bottom:4px;font-weight:500;}
.admin-login-header p{color:#CBD5E1;font-size:0.8rem;}
.admin-login-icon{font-size:2.4rem;margin-bottom:12px;display:none;}
.admin-login-form .form-group{margin-bottom:16px;}
.admin-login-form label{display:block;margin-bottom:6px;font-weight:500;font-size:0.82rem;color:#CBD5E1;letter-spacing:1px;}
.admin-login-form input{width:100%;padding:11px 14px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);border-radius:8px;font-size:0.95rem;color:#FFFFFF;transition:all 0.3s ease;outline:none;}
.admin-login-form input:focus{border-color:#00F0FF;background:rgba(255,255,255,0.12);box-shadow:0 0 20px rgba(0,240,255,0.15),inset 0 0 10px rgba(0,240,255,0.04);}
.admin-login-form input::placeholder{color:#6B7280;}
.admin-login-actions{display:flex;gap:12px;margin-top:20px;}
.admin-login-actions button{flex:1;padding:11px 20px;border-radius:8px;font-size:0.95rem;font-weight:600;cursor:pointer;transition:all 0.3s ease;letter-spacing:1px;}
.admin-login-actions .btn-primary{background:linear-gradient(135deg,#00F0FF 0%,#A855F7 100%);color:#06060E;border:none;box-shadow:0 0 20px rgba(0,240,255,0.15);}
.admin-login-actions .btn-primary:hover{transform:translateY(-1px) scale(1.02);box-shadow:0 0 35px rgba(0,240,255,0.3),0 0 60px rgba(168,85,247,0.15);}
.admin-login-actions .btn-secondary{background:rgba(255,255,255,0.05);color:#94A3B8;border:1px solid rgba(0,240,255,0.12);}
.admin-login-actions .btn-secondary:hover{background:rgba(0,240,255,0.06);color:#CBD5E1;border-color:rgba(0,240,255,0.25);}
.admin-login-error{background:rgba(220,38,38,0.12);color:#FCA5A5;padding:10px 14px;border-radius:8px;margin-bottom:14px;font-size:0.85rem;display:none;border:1px solid rgba(220,38,38,0.2);}
.admin-login-error.show{display:block;animation:shake 0.5s ease;}
@keyframes slideUp{from{opacity:0;transform:translateY(30px);}
to{opacity:1;transform:translateY(0);}
}
@keyframes shake{0%,100%{transform:translateX(0);}
25%{transform:translateX(-10px);}
75%{transform:translateX(10px);}
}
.admin-status{position:absolute;top:20px;left:20px;display:flex;align-items:center;gap:8px;padding:8px 14px;background:rgba(255,255,255,0.15);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.2);border-radius:20px;color:white;font-size:0.85rem;font-weight:500;transition:all 0.3s ease;z-index:100;}
.admin-status.logged-in{background:rgba(16,185,129,0.2);border-color:rgba(16,185,129,0.3);}
.admin-status-icon{font-size:1rem;}
.admin-logout-btn{margin-left:8px;padding:4px 10px;background:rgba(255,255,255,0.2);border:none;border-radius:12px;color:white;font-size:0.75rem;cursor:pointer;transition:all 0.2s ease;}
.admin-logout-btn:hover{background:rgba(255,255,255,0.3);}
.maintenance-tracker{background:rgba(26,26,46,0.6);border-radius:12px;padding:20px;}
.maintenance-alert{background:linear-gradient(135deg,rgba(245,158,11,0.1) 0%,rgba(245,158,11,0.15) 100%);border:2px solid #f59e0b;border-radius:12px;padding:15px 20px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;}
.maintenance-alert.hidden{display:none;}
.alert-content{display:flex;align-items:center;gap:10px;}
.alert-icon{font-size:1.5rem;}
.maintenance-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-bottom:20px;}
.maintenance-stats .stat-card{background:linear-gradient(135deg,#10b981 0%,#059669 100%);display:flex;align-items:center;gap:12px;padding:16px 18px;}
.mt-stat-icon{font-size:1.8rem;opacity:0.9;}
.mt-stat-info{flex:1;}
.mt-stat-blue{background:linear-gradient(135deg,#60A5FA 0%,#60A5FA 100%);}
.mt-stat-amber{background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);}
.mt-stat-purple{background:linear-gradient(135deg,#8b5cf6 0%,#7c3aed 100%);}
.mt-stat-green{background:linear-gradient(135deg,#10b981 0%,#059669 100%);}
.mt-filter-search{position:relative;flex:1;min-width:200px;}
.mt-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:0.85rem;pointer-events:none;}
.mt-filter-search input{width:100%;padding:10px 12px 10px 36px !important;}
.mt-filter-sep{display:flex;align-items:center;color:#94a3b8;font-size:0.85rem;font-weight:500;padding:0 2px;}
.btn-mt-nav{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;background:var(--card);cursor:pointer;font-size:0.9rem;color:#94A3B8;transition:all 0.15s;}
.btn-mt-nav:hover{background:rgba(255,255,255,0.03);border-color:var(--primary);}
.btn-mt-today{padding:6px 14px;border:1px solid var(--border);border-radius:8px;background:var(--card);cursor:pointer;font-size:0.8rem;font-weight:600;color:#94A3B8;transition:all 0.15s;}
.btn-mt-today:hover{background:rgba(255,255,255,0.03);border-color:var(--primary);}
.maintenance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px;}
.maintenance-header h2{margin:0;color:#E2E8F0;}
.maintenance-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.btn-mt-action{display:inline-flex;align-items:center;gap:5px;padding:8px 16px;border:none;border-radius:8px;font-size:0.85rem;font-weight:600;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;line-height:1.4;}
.btn-mt-action:active{transform:scale(0.97);}
.btn-mt-icon{font-size:1rem;}
.btn-mt-primary{background:linear-gradient(135deg,#60A5FA,#60A5FA);color:#fff;box-shadow:0 2px 8px rgba(0,240,255,0.35);}
.btn-mt-primary:hover{box-shadow:0 4px 14px rgba(0,240,255,0.5);transform:translateY(-1px);}
.btn-mt-green{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 8px rgba(16,185,129,0.3);}
.btn-mt-green:hover{box-shadow:0 4px 14px rgba(16,185,129,0.45);transform:translateY(-1px);}
.btn-mt-orange{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 2px 8px rgba(245,158,11,0.3);}
.btn-mt-orange:hover{box-shadow:0 4px 14px rgba(245,158,11,0.45);transform:translateY(-1px);}
.btn-mt-more{background:rgba(255,255,255,0.03);color:#94A3B8;border:1px solid var(--border);}
.btn-mt-more:hover{background:var(--border);color:#CBD5E1;}
.btn-mt-dropdown-wrap{position:relative;}
.btn-mt-dropdown{display:none;position:absolute;right:0;top:calc(100% + 6px);background:var(--card);border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,0.12),0 0 0 1px rgba(0,0,0,0.04);min-width:200px;z-index:100;overflow:hidden;animation:mtDropIn 0.15s ease-out;}
.btn-mt-dropdown.show{display:block;}
.btn-mt-dropdown button{display:flex;align-items:center;gap:8px;width:100%;padding:11px 16px;border:none;background:none;font-size:0.85rem;color:#94A3B8;cursor:pointer;transition:background 0.15s;text-align:left;}
.btn-mt-dropdown button:hover{background:rgba(255,255,255,0.04);}
.btn-mt-dropdown button + button{border-top:1px solid rgba(255,255,255,0.04);}
@keyframes mtDropIn{from{opacity:0;transform:translateY(-6px);}
to{opacity:1;transform:translateY(0);}
}
.maintenance-filters{margin-bottom:20px;}
.maintenance-filters .filter-row{display:flex;gap:10px;flex-wrap:wrap;}
.maintenance-filters input,.maintenance-filters select{padding:10px 15px;border:1px solid #94A3B8;border-radius:8px;font-size:0.9rem;}
.maintenance-filters input[type="text"]{flex:1;min-width:200px;}
.maintenance-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:15px;}
.view-switcher{display:flex;background:rgba(255,255,255,0.03);border-radius:8px;overflow:hidden;border:1px solid var(--border);}
.btn-view-switch{padding:8px 16px;border:none;background:transparent;cursor:pointer;font-size:0.85rem;font-weight:500;color:#94A3B8;transition:all 0.2s;white-space:nowrap;}
.btn-view-switch.active{background:#60A5FA;color:white;}
.btn-view-switch:hover:not(.active){background:var(--border);color:#CBD5E1;}
.calendar-container{background:#1A1A2E;border-radius:12px;padding:20px;box-shadow:0 2px 12px rgba(0,0,0,0.06);}
.calendar-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px;}
.calendar-nav-left{display:flex;align-items:center;gap:8px;}
.calendar-month-title{margin:0;font-size:1.3rem;font-weight:700;color:#E2E8F0;min-width:140px;text-align:center;}
.calendar-month-stats{display:flex;gap:16px;}
.cal-stat{display:flex;flex-direction:column;align-items:center;gap:2px;}
.cal-stat-val{font-size:1.2rem;font-weight:700;color:#CBD5E1;}
.cal-stat-val.completed{color:#10b981;}
.cal-stat-val.grace{color:#d97706;}
.cal-stat-val.overdue{color:#ef4444;}
.cal-stat-label{font-size:0.75rem;color:#94a3b8;}
.calendar-grid{user-select:none;}
.cal-weekday{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px;}
.cal-weekday-cell{text-align:center;font-size:0.8rem;font-weight:600;color:#94a3b8;padding:8px 0;}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.cal-day{min-height:72px;border-radius:10px;border:2px solid transparent;padding:6px;cursor:pointer;transition:all 0.2s ease;display:flex;flex-direction:column;align-items:center;background:var(--bg-secondary);}
.cal-day.empty{background:transparent;cursor:default;min-height:0;}
.cal-day:hover:not(.empty){border-color:#00E5FF;background:rgba(0,240,255,0.1);transform:scale(1.03);}
.cal-day.today{border-color:#00E5FF;background:rgba(0,240,255,0.12);box-shadow:0 0 0 2px rgba(59,130,246,0.15);}
.cal-day.has-tasks{background:rgba(0,240,255,0.05);}
.cal-day.overdue{background:rgba(239,68,68,0.1);border-color:rgba(239,68,68,0.2);}
.cal-day.overdue:hover:not(.empty){border-color:#f87171;background:rgba(239,68,68,0.1);}
.cal-day.grace{background:rgba(245,158,11,0.08);border-color:#fcd34d;}
.cal-day.grace:hover:not(.empty){border-color:#fbbf24;background:rgba(245,158,11,0.1);}
.cal-day.completed{background:rgba(16,185,129,0.1);border-color:rgba(16,185,129,0.2);}
.cal-day.completed:hover:not(.empty){border-color:#4ade80;background:rgba(16,185,129,0.1);}
.cal-day-number{font-size:0.9rem;font-weight:600;color:#CBD5E1;margin-bottom:4px;}
.cal-day.today .cal-day-number{color:#60A5FA;font-weight:700;}
.cal-day-dots{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;}
.cal-dot{display:inline-flex;align-items:center;justify-content:center;font-size:0.65rem;font-weight:700;padding:1px 5px;border-radius:10px;line-height:1.4;}
.cal-dot.pending{background:rgba(0,240,255,0.08);color:#60A5FA;}
.cal-dot.grace{background:rgba(245,158,11,0.1);color:#d97706;}
.cal-dot.overdue{background:rgba(239,68,68,0.1);color:#dc2626;}
.cal-dot.completed{background:rgba(16,185,129,0.1);color:#6EE7B7;}
.calendar-legend{display:flex;gap:20px;justify-content:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--border);}
.legend-item{display:flex;align-items:center;gap:6px;font-size:0.8rem;color:#94A3B8;}
.legend-dot{width:12px;height:12px;border-radius:4px;}
.legend-dot.overdue{background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.2);}
.legend-dot.grace{background:rgba(245,158,11,0.1);border:1px solid #fcd34d;}
.legend-dot.pending{background:rgba(0,240,255,0.08);border:1px solid #93c5fd;}
.legend-dot.completed{background:rgba(16,185,129,0.1);border:1px solid rgba(16,185,129,0.2);}
.legend-dot.today{background:rgba(0,240,255,0.12);border:2px solid #00E5FF;}
.calendar-day-tasks-list{max-height:400px;overflow-y:auto;}
.cal-day-empty{text-align:center;padding:40px 20px;color:#94a3b8;font-size:0.95rem;}
.cal-task-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,0.03);}
.cal-task-item:last-child{border-bottom:none;}
.cal-task-item.completed{opacity:0.7;}
.cal-task-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0;}
.cal-task-status{font-size:1.2rem;flex-shrink:0;}
.cal-task-info{min-width:0;}
.cal-task-name{font-weight:600;font-size:0.95rem;color:#E2E8F0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cal-task-meta{font-size:0.8rem;color:#94a3b8;margin-top:2px;}
.cal-task-badge{font-size:0.75rem;padding:3px 10px;border-radius:12px;font-weight:600;}
.cal-task-badge.grace-badge{background:rgba(245,158,11,0.1);color:#d97706;}
.cal-task-badge.overdue-badge{background:rgba(239,68,68,0.1);color:#dc2626;}
.cal-task-item .cal-task-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.cal-task-item.overdue{background:rgba(239,68,68,0.1);border-radius:8px;margin:0 -12px;padding:12px;}
.cal-task-item.grace{background:rgba(245,158,11,0.08);border-radius:8px;margin:0 -12px;padding:12px;}
.btn-outline{padding:6px 12px;border:1px solid #94A3B8;background:#1A1A2E;border-radius:6px;cursor:pointer;font-size:0.8rem;color:#94A3B8;transition:all 0.2s;}
.btn-outline:hover{background:rgba(255,255,255,0.03);border-color:#94a3b8;}
@media (max-width:768px){.cal-day{min-height:52px;padding:4px;}
.cal-day-number{font-size:0.8rem;}
.cal-dot{font-size:0.6rem;padding:0 3px;}
.calendar-nav{flex-direction:column;align-items:stretch;}
.calendar-nav-left{justify-content:center;}
.calendar-month-stats{justify-content:center;}
.calendar-month-title{font-size:1.1rem;}
.calendar-legend{gap:12px;}
}
.maintenance-card{background:#1A1A2E;border-radius:12px;padding:20px;box-shadow:0 2px 8px rgba(0,0,0,0.08);transition:all 0.3s ease;border-left:4px solid #10b981;}
.maintenance-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,0.12);}
.maintenance-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;}
.maintenance-card-title{font-size:1.1rem;font-weight:600;color:#E2E8F0;margin:0;}
.maintenance-card-date{font-size:0.85rem;color:#CBD5E1;}
.maintenance-card-body{margin-bottom:15px;}
.maintenance-info-row{display:flex;gap:15px;margin-bottom:8px;font-size:0.9rem;}
.maintenance-info-label{color:#94A3B8;min-width:70px;}
.maintenance-info-value{color:#E2E8F0;font-weight:500;}
.maintenance-steps{background:var(--bg-secondary);border-radius:8px;padding:12px;margin:10px 0;font-size:0.9rem;color:#94A3B8;max-height:100px;overflow-y:auto;}
.spare-parts-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.spare-part-tag{background:rgba(0,240,255,0.08);color:#60A5FA;padding:4px 10px;border-radius:12px;font-size:0.8rem;}
.maintenance-card-actions{display:flex;gap:8px;justify-content:flex-end;}
.maintenance-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;}
.maintenance-form-grid .form-group.full-width{grid-column:1 / -1;}
@media (max-width:600px){.maintenance-form-grid{grid-template-columns:1fr;}
}
.plan-card{border-left-color:#60A5FA;}
.plan-card.disabled{opacity:0.6;background:rgba(255,255,255,0.04);border-left-color:#6B7280;}
.plan-card.disabled .plan-title{color:#94A3B8;}
.plan-cycle-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:0.8rem;font-weight:500;background:rgba(0,240,255,0.08);color:#60A5FA;}
.plan-card.disabled .plan-cycle-badge{background:rgba(255,255,255,0.04);color:#94A3B8;}
.plan-next-date{color:#dc2626;font-weight:600;}
.plan-next-date.upcoming{color:#d97706;}
.plan-actions{display:flex;gap:8px;margin-top:12px;}
.plan-actions button{flex:1;padding:8px 12px;font-size:0.85rem;}
.plan-actions button:disabled{opacity:0.5;cursor:not-allowed;}
.plan-badges{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.plan-level-tag,.plan-grade-tag,.plan-duration-tag,.plan-benchmark-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:0.72rem;font-weight:600;white-space:nowrap;}
.plan-grade-tag.grade-A{background:rgba(239,68,68,0.12);color:#DC2626;}
.plan-grade-tag.grade-B{background:rgba(245,158,11,0.15);color:#FBBF24;}
.plan-grade-tag.grade-C{background:rgba(16,185,129,0.12);color:#059669;}
.plan-duration-tag{background:rgba(79,70,229,0.12);color:#4F46E5;}
.plan-benchmark-tag{font-size:0.9rem;}
.plan-content{font-size:0.85rem;color:#94A3B8;margin:6px 0;line-height:1.5;}
.plan-standard{font-size:0.8rem;color:#059669;background:rgba(16,185,129,0.12);padding:3px 8px;border-radius:6px;margin-top:4px;display:inline-block;}
.plan-tools{font-size:0.8rem;color:#94A3B8;margin-top:2px;}
.benchmark-import-content{max-width:700px;max-height:85vh;overflow-y:auto;}
.benchmark-import-info{padding:12px;background:#EFF6FF;border-radius:8px;margin-bottom:15px;font-size:0.9rem;color:#1E40AF;}
.benchmark-import-info p{margin:0;}
.bench-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;}
.bench-stat{text-align:center;padding:15px;background:linear-gradient(135deg,#EFF6FF,rgba(0,240,255,0.08));border-radius:12px;}
.bench-stat-val{font-size:1.8rem;font-weight:700;color:#60A5FA;}
.bench-stat-label{font-size:0.8rem;color:#94A3B8;margin-top:4px;}
.bench-section{margin-bottom:15px;}
.bench-section h4{font-size:0.95rem;color:#94A3B8;margin-bottom:8px;padding-bottom:6px;border-bottom:2px solid #E5E7EB;}
.bench-workshop-list,.bench-device-list{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;}
.bench-workshop-item,.bench-device-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#1A1A2E;border-radius:8px;font-size:0.85rem;}
.bench-ws-name{font-weight:600;color:#94A3B8;}
.bench-ws-count{color:#94A3B8;font-size:0.8rem;}
.bench-dev-name{font-weight:500;color:#94A3B8;flex:1;}
.bench-dev-code{color:#9CA3AF;font-size:0.78rem;margin:0 6px;}
.bench-dev-items{color:#60A5FA;font-weight:600;font-size:0.82rem;}
.device-grade-tag{padding:1px 6px;border-radius:6px;font-size:0.7rem;font-weight:600;margin:0 4px;}
.device-grade-tag.grade-A{background:rgba(239,68,68,0.12);color:#DC2626;}
.device-grade-tag.grade-B{background:rgba(245,158,11,0.15);color:#FBBF24;}
.device-grade-tag.grade-C{background:rgba(16,185,129,0.12);color:#059669;}
.benchmark-view-content{max-width:700px;max-height:85vh;overflow-y:auto;}
.benchmark-view-list{padding:15px;max-height:65vh;overflow-y:auto;}
.bench-item-card{padding:12px 15px;background:#1A1A2E;border-radius:10px;margin-bottom:10px;border-left:3px solid #60A5FA;transition:all 0.2s;}
.bench-item-card:hover{background:#E2E8F0;box-shadow:0 2px 8px rgba(0,0,0,0.08);}
.bench-item-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:6px;}
.bench-item-part{font-weight:600;color:#E2E8F0;font-size:0.95rem;}
.bench-level-tag{padding:2px 8px;border-radius:8px;font-size:0.72rem;font-weight:600;}
.bench-cycle-tag{padding:2px 8px;border-radius:8px;font-size:0.72rem;font-weight:500;background:#E0E7FF;color:#4338CA;}
.bench-duration-tag{font-size:0.75rem;color:#94A3B8;}
.bench-item-content{font-size:0.88rem;color:#4B5563;line-height:1.5;}
.bench-item-row{font-size:0.82rem;color:#94A3B8;margin-top:4px;}
.bench-item-label{font-weight:600;color:#9CA3AF;margin-right:4px;}
.plan-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:0.75rem;font-weight:500;background:rgba(0,240,255,0.08);color:#1d4ed8;margin-left:8px;vertical-align:middle;}
.today-tasks-list{max-height:400px;overflow-y:auto;}
.today-task-item{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid rgba(255,255,255,0.04);}
.today-task-item:last-child{border-bottom:none;}
.today-task-info h4{margin:0 0 5px 0;color:var(--text);}
.today-task-meta{font-size:0.85rem;color:#94A3B8;}
.timeline-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,0.04);}
.tl-stat{text-align:center;padding:10px 8px;background:var(--bg-secondary);border-radius:10px;}
.tl-stat-val{font-size:1.35rem;font-weight:700;color:#E2E8F0;}
.tl-stat-label{font-size:0.72rem;color:#94a3b8;margin-top:3px;}
.tl-stat-empty .tl-stat-val{color:#cbd5e1;}
.tl-tabs{display:flex;gap:2px;background:rgba(255,255,255,0.03);border-radius:10px;padding:3px;margin-bottom:14px;}
.tl-tab{flex:1;padding:8px 0;border:none;background:transparent;cursor:pointer;font-size:0.85rem;border-radius:8px;color:#94A3B8;font-weight:500;transition:all 0.2s;}
.tl-tab.active{background:var(--card);color:#E2E8F0;box-shadow:0 1px 3px rgba(0,0,0,0.08);}
.tl-tab:hover:not(.active){background:var(--border);}
.tl-tab-content{max-height:52vh;overflow-y:auto;}
.tl-tab-content.hidden{display:none;}
.tl-year-group{margin-bottom:16px;}
.tl-year-label{font-size:0.8rem;font-weight:700;color:#6366f1;background:#eef2ff;display:inline-block;padding:3px 12px;border-radius:12px;margin-bottom:10px;}
.tl-item{position:relative;padding-left:22px;margin-bottom:2px;}
.tl-item-line{position:relative;display:flex;align-items:flex-start;}
.tl-dot{position:absolute;left:-22px;top:14px;width:10px;height:10px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 2px var(--border);z-index:1;}
.tl-dot-default{background:#10B981;}
.tl-item::before{content:'';position:absolute;left:-18px;top:24px;bottom:-2px;width:2px;background:var(--border);}
.tl-item:last-child::before{display:none;}
.tl-item-content{flex:1;background:var(--bg-secondary);border:1px solid rgba(255,255,255,0.04);border-radius:10px;padding:12px 14px;transition:all 0.2s;}
.tl-item-content:hover{border-color:#c7d2fe;box-shadow:0 2px 8px rgba(99,102,241,0.08);}
.tl-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;}
.tl-date-main{font-size:1rem;font-weight:700;color:#E2E8F0;}
.tl-date-time{font-size:0.75rem;color:#94a3b8;margin-left:6px;}
.tl-item-badges{display:flex;gap:5px;align-items:center;flex-shrink:0;}
.tl-level-badge,.tl-cycle-badge,.tl-duration{font-size:0.7rem;padding:2px 8px;border-radius:6px;font-weight:600;}
.tl-duration{background:rgba(255,255,255,0.03);color:#94A3B8;}
.tl-item-part{font-size:0.88rem;font-weight:600;color:#CBD5E1;margin-bottom:3px;}
.tl-item-steps{font-size:0.8rem;color:#94A3B8;line-height:1.5;margin-bottom:6px;}
.tl-item-meta{display:flex;gap:14px;font-size:0.75rem;color:#94a3b8;flex-wrap:wrap;}
.tl-spareparts{margin-top:6px;padding:5px 10px;background:rgba(245,158,11,0.08);border-radius:6px;font-size:0.75rem;color:#FCD34D;}
.tl-tools{font-size:0.75rem;color:#94A3B8;}
.tl-notes{margin-top:5px;padding:5px 10px;background:rgba(16,185,129,0.1);border-radius:6px;font-size:0.75rem;color:#6EE7B7;}
.tl-empty{text-align:center;padding:30px 20px;color:#94a3b8;font-size:0.9rem;}
.tl-section-title{font-size:0.85rem;font-weight:600;color:#CBD5E1;margin-bottom:10px;}
.tl-level-tags{display:flex;gap:6px;flex-wrap:wrap;}
.tl-level-tag{padding:4px 10px;border-radius:8px;font-size:0.8rem;font-weight:600;}
.tl-bar-chart{display:flex;flex-direction:column;gap:8px;}
.tl-bar-row{display:grid;grid-template-columns:100px 1fr 30px;align-items:center;gap:10px;}
.tl-bar-label{font-size:0.78rem;color:#94A3B8;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tl-bar-track{height:20px;background:rgba(255,255,255,0.03);border-radius:10px;overflow:hidden;}
.tl-bar-fill{height:100%;background:linear-gradient(90deg,#6366f1,#818cf8);border-radius:10px;transition:width 0.6s ease;min-width:4px;}
.tl-bar-val{font-size:0.78rem;font-weight:700;color:#E2E8F0;text-align:center;}
.tl-person-tags{display:flex;gap:8px;flex-wrap:wrap;}
.tl-person-tag{padding:5px 12px;background:rgba(0,240,255,0.05);border:1px solid rgba(0,240,255,0.15);border-radius:8px;font-size:0.8rem;color:#60A5FA;}
.tl-person-tag b{color:#0c4a6e;margin-left:2px;}
.tl-regularity{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.tl-reg-item{background:var(--bg-secondary);padding:12px;border-radius:10px;text-align:center;}
.tl-reg-label{display:block;font-size:0.75rem;color:#94a3b8;margin-bottom:4px;}
.tl-reg-value{font-size:1.3rem;font-weight:700;color:#E2E8F0;}
.tl-plan-section{margin-top:0;}
.tl-plan-list{display:flex;flex-direction:column;gap:8px;}
.tl-plan-item{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:10px 14px;background:var(--bg-secondary);border-radius:10px;border:1px solid rgba(255,255,255,0.04);font-size:0.82rem;}
.tl-plan-part{font-weight:600;color:#CBD5E1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tl-plan-cycle{background:#eef2ff;color:#4f46e5;padding:2px 8px;border-radius:6px;font-size:0.75rem;font-weight:500;}
.tl-plan-status{padding:2px 8px;border-radius:6px;font-size:0.72rem;font-weight:600;}
.tl-plan-active{background:rgba(16,185,129,0.1);color:#6EE7B7;}
.tl-plan-overdue{background:rgba(239,68,68,0.1);color:#FCA5A5;}
.tl-plan-disabled{background:rgba(255,255,255,0.03);color:#94a3b8;}
.tl-plan-next{font-size:0.8rem;color:#94A3B8;font-weight:500;}
.timeline-device-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;padding:4px;}
.timeline-device-item{padding:12px;background:var(--bg-secondary);border:1px solid rgba(255,255,255,0.04);border-radius:10px;cursor:pointer;transition:all 0.2s;}
.timeline-device-item:hover{border-color:#6366f1;background:#eef2ff;transform:translateY(-1px);box-shadow:0 3px 10px rgba(99,102,241,0.12);}
.timeline-device-name{font-weight:600;color:#E2E8F0;font-size:0.88rem;margin-bottom:3px;}
.timeline-device-meta{font-size:0.72rem;color:#94a3b8;}
@media (max-width:640px){.timeline-stats{grid-template-columns:repeat(2,1fr);}
.tl-plan-item{grid-template-columns:1fr auto;gap:6px;}
.tl-plan-cycle,.tl-plan-status{display:none;}
.timeline-device-list{grid-template-columns:1fr;}
.tl-regularity{grid-template-columns:1fr;}
}
.plans-toolbar{padding:14px 18px;border-bottom:1px solid var(--border,var(--border));background:var(--bg-secondary);}
.plans-search-row{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.plans-search-input{flex:1;min-width:180px;padding:9px 14px;border:1px solid #94A3B8;border-radius:8px;font-size:0.88rem;outline:none;transition:border-color 0.2s,box-shadow 0.2s;}
.plans-search-input:focus{border-color:#60A5FA;box-shadow:0 0 0 3px rgba(59,130,246,0.1);}
.plans-filter-select{padding:9px 12px;border:1px solid #94A3B8;border-radius:8px;font-size:0.85rem;background:var(--card);cursor:pointer;min-width:120px;}
.plans-toolbar-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end;}
.plans-filter-count{font-size:0.82rem;color:#94A3B8;margin-right:auto;}
.plans-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;padding:14px 18px;background:linear-gradient(135deg,rgba(0,240,255,0.05),rgba(0,240,255,0.08));border-bottom:1px solid rgba(0,240,255,0.15);}
.plans-summary-item{text-align:center;padding:8px 4px;border-radius:10px;background:rgba(255,255,255,0.7);}
.plans-summary-val{font-size:1.3rem;font-weight:700;color:#38BDF8;}
.plans-summary-label{font-size:0.72rem;color:#94A3B8;margin-top:2px;}
.plans-summary-item.overdue .plans-summary-val{color:#dc2626;}
.plans-summary-item.active .plans-summary-val{color:#059669;}
.plans-summary-item.warning .plans-summary-val{color:#d97706;}
.device-group{border-bottom:1px solid var(--border);}
.device-group:last-child{border-bottom:none;}
.device-group-header{display:flex;align-items:center;gap:10px;padding:12px 18px;cursor:pointer;user-select:none;transition:background 0.15s;border-left:4px solid #60A5FA;background:var(--card);}
.device-group-header:hover{background:rgba(255,255,255,0.03);}
.device-group-header .group-arrow{font-size:0.75rem;color:#94a3b8;transition:transform 0.2s;flex-shrink:0;}
.device-group-header .group-arrow.collapsed{transform:rotate(-90deg);}
.device-group-header .group-device-name{font-size:0.95rem;font-weight:700;color:#E2E8F0;flex:1;}
.device-group-header .group-tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.group-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:0.7rem;font-weight:600;white-space:nowrap;}
.group-tag.overdue{background:rgba(239,68,68,0.1);color:#dc2626;}
.group-tag.active{background:rgba(16,185,129,0.1);color:#059669;}
.group-tag.warning{background:rgba(245,158,11,0.1);color:#d97706;}
.group-tag.disabled{background:rgba(255,255,255,0.04);color:#6B7280;}
.group-tag.count{background:#e0e7ff;color:#4f46e5;}
.group-tag.grade-A{background:rgba(239,68,68,0.12);color:#DC2626;}
.group-tag.grade-B{background:rgba(245,158,11,0.15);color:#FBBF24;}
.group-tag.grade-C{background:rgba(16,185,129,0.12);color:#059669;}
.group-tag.line-tag{background:rgba(0,240,255,0.05);color:#60A5FA;font-weight:500;}
.device-group-body{padding:0 18px 12px;}
.device-group-body.collapsed{display:none;}
.device-group-plans{display:flex;flex-direction:column;gap:8px;}
.device-group-body .plan-card{margin:0;border-radius:10px;padding:12px 14px;}
.device-group-body .plan-card .plan-header{margin-bottom:4px;}
.device-group-body .plan-card .plan-title{font-size:0.88rem;}
.device-group-body .plan-card .plan-meta{font-size:0.78rem;}
.device-group-body .plan-card .plan-actions{margin-top:8px;gap:6px;}
.device-group-body .plan-card .plan-actions button{padding:6px 10px;font-size:0.8rem;}
.plans-empty-state{text-align:center;padding:40px 20px;color:#94a3b8;}
.plans-empty-state .empty-icon{font-size:2.5rem;margin-bottom:10px;}
.plans-empty-state .empty-text{font-size:0.95rem;color:#94A3B8;}
@media (max-width:640px){.plans-search-row{flex-direction:column;}
.plans-filter-select{width:100%;}
.plans-summary{grid-template-columns:repeat(3,1fr);}
}
.dashboard-container{padding:20px;max-width:1400px;margin:0 auto;}
.dashboard-loading{text-align:center;padding:60px 20px;color:#94A3B8;font-size:16px;}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px;}
.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;text-align:center;box-shadow:var(--shadow-sm);transition:transform 0.2s;}
.kpi-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,0.12);}
.kpi-label{font-size:13px;color:#94A3B8;margin-bottom:8px;}
.kpi-value{font-size:28px;font-weight:700;color:#E2E8F0;line-height:1.2;}
.kpi-value.blue{color:#60A5FA;}
.kpi-value.red{color:#EF4444;}
.kpi-value.orange{color:#F97316;}
.kpi-value.green{color:#059669;}
.kpi-value.purple{color:#8B5CF6;}
.kpi-value.cyan{color:#0891B2;}
.dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:20px;}
.dashboard-card{background:rgba(26,26,46,0.7);backdrop-filter:blur(10px);border-radius:12px;padding:20px;box-shadow:0 2px 12px rgba(0,0,0,0.3);border:1px solid rgba(0,240,255,0.06);}
.dashboard-card.full-width{grid-column:1 / -1;}
.dashboard-card h3{font-size:15px;font-weight:600;color:#E2E8F0;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid #E2E8F0;}
.chart-container{position:relative;height:300px;}
.ranking-container{max-height:320px;overflow-y:auto;padding-right:8px;}
@media (max-width:768px){.dashboard-grid{grid-template-columns:1fr;}
.kpi-grid{grid-template-columns:repeat(3,1fr);}
.kpi-value{font-size:22px;}
header .header-actions{position:static;margin-top:15px;justify-content:center;width:100%;}
#header-login-btn{padding:8px 18px;font-size:0.9rem;border-radius:10px;background:rgba(255,255,255,0.25);border:2px solid rgba(255,255,255,0.4);font-weight:600;}
#user-status{position:static;margin:15px auto 0;justify-content:center;width:fit-content;padding:8px 16px;background:rgba(255,255,255,0.15);border-radius:12px;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.2);}
#login-menu{position:fixed !important;top:50% !important;left:50% !important;transform:translate(-50%,-50%) !important;width:85% !important;max-width:300px !important;box-shadow:0 12px 32px rgba(0,0,0,0.2) !important;border-radius:16px !important;z-index:9999 !important;}
#login-menu::before{content:'';position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);z-index:-1;}
}
@media (max-width:480px){.kpi-grid{grid-template-columns:repeat(2,1fr);}
header h1{font-size:1.4rem;padding-right:0;}
#header-login-btn{padding:10px 20px;font-size:0.95rem;min-height:44px;min-width:120px;}
#user-status{padding:10px 18px;font-size:0.9rem;min-height:44px;}
#login-menu button{min-height:48px;padding:12px 16px;font-size:0.95rem;}
#login-menu button:active{background:#E2E8F0 !important;}
.admin-logout-btn{min-height:36px;min-width:60px;padding:8px 12px;}
.login-icon{font-size:1.1rem;margin-right:6px;}
.login-text{font-weight:600;}
@media (max-width:360px){#header-login-btn{padding:8px 16px;font-size:0.9rem;}
.login-icon{margin-right:4px;}
header h1{font-size:1.3rem;}
}
}
.rca-container{padding:10px 0;}
.rca-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;}
.rca-stat-card{background:var(--card);border-radius:var(--radius-md);padding:16px;text-align:center;box-shadow:var(--shadow);}
.rca-stat-card .stat-number{font-size:1.8rem;font-weight:700;color:var(--primary);}
.rca-stat-card .stat-label{font-size:0.85rem;color:var(--text-light);margin-top:4px;}
.rca-stat-card.danger .stat-number{color:var(--danger);}
.rca-stat-card.warning .stat-number{color:var(--warning);}
.rca-stat-card.success .stat-number{color:var(--success);}
.rca-filters{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap;}
.rca-filters select,.rca-filters input{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:0.9rem;background:var(--card);}
.rca-card{background:var(--card);border-radius:var(--radius-md);padding:16px 20px;margin-bottom:12px;box-shadow:var(--shadow-sm);border-left:4px solid var(--danger);transition:box-shadow 0.2s;}
.rca-card:hover{box-shadow:var(--shadow);}
.rca-card.status-done{border-left-color:var(--success);}
.rca-card.status-progress{border-left-color:var(--warning);}
.rca-card.status-pending{border-left-color:var(--text-lighter);}
.rca-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;}
.rca-card-title{font-size:1.05rem;font-weight:600;color:var(--text);}
.rca-card-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:0.85rem;color:var(--text-light);margin-bottom:12px;}
.rca-card-meta span{display:flex;align-items:center;gap:4px;}
.rca-why-chain{background:var(--bg-secondary);border-radius:var(--radius);padding:12px 16px;margin-bottom:10px;}
.rca-why-step{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px dashed var(--border);}
.rca-why-step:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none;}
.rca-why-num{background:var(--danger);color:#fff;font-size:0.75rem;font-weight:700;padding:2px 8px;border-radius:10px;white-space:nowrap;min-width:28px;text-align:center;}
.rca-why-num.root{background:#8B0000;}
.rca-why-text{font-size:0.9rem;color:var(--text);line-height:1.5;}
.rca-card-actions{display:flex;gap:8px;justify-content:flex-end;}
.rca-card-actions button{font-size:0.8rem;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);cursor:pointer;transition:all 0.2s;}
.rca-card-actions button:hover{background:var(--bg-secondary);}
.rca-card-actions .btn-rca-delete{color:var(--danger);border-color:var(--danger);}
.rca-card-actions .btn-rca-delete:hover{background:rgba(239,68,68,0.12);}
.rca-category-tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:0.75rem;font-weight:600;}
.rca-category-tag.cat-man{background:rgba(0,240,255,0.08);color:#60A5FA;}
.rca-category-tag.cat-machine{background:rgba(239,68,68,0.12);color:#DC2626;}
.rca-category-tag.cat-material{background:rgba(245,158,11,0.15);color:#FBBF24;}
.rca-category-tag.cat-method{background:rgba(16,185,129,0.12);color:#059669;}
.rca-category-tag.cat-env{background:#E0E7FF;color:#4338CA;}
.rca-status-badge{display:inline-block;padding:2px 10px;border-radius:10px;font-size:0.75rem;font-weight:600;}
.rca-status-badge.pending{background:#111827;color:#94A3B8;}
.rca-status-badge.progress{background:rgba(245,158,11,0.15);color:#FBBF24;}
.rca-status-badge.done{background:rgba(16,185,129,0.12);color:#059669;}
.rca-modal-form .why-input-group{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px;}
.rca-modal-form .why-label{background:var(--primary);color:#fff;padding:8px 12px;border-radius:var(--radius);font-size:0.8rem;font-weight:700;white-space:nowrap;min-width:50px;text-align:center;}
.rca-modal-form .why-label.root-why{background:#8B0000;}
.rca-modal-form textarea{flex:1;border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;font-size:0.9rem;resize:vertical;min-height:60px;font-family:inherit;}
.rca-modal-form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,240,255,0.1);}
.rca-modal-form .rca-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.rca-modal-form .rca-form-group label{display:block;font-size:0.85rem;font-weight:600;color:var(--text);margin-bottom:4px;}
.rca-modal-form .rca-form-group select,.rca-modal-form .rca-form-group input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:0.9rem;}
.rca-pending-section{background:linear-gradient(135deg,rgba(245,158,11,0.15) 0%,#FDE68A 100%);border:2px solid #F59E0B;border-radius:var(--radius-md);padding:16px;margin-bottom:20px;}
.rca-pending-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.rca-pending-header h3{margin:0;font-size:1rem;color:#FCD34D;}
.rca-pending-badge{background:#EF4444;color:#fff;padding:2px 10px;border-radius:12px;font-size:0.8rem;font-weight:700;}
.rca-pending-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:10px;}
.rca-pending-card{background:rgba(255,255,255,0.9);border-radius:var(--radius);padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px;box-shadow:0 1px 3px rgba(0,0,0,0.06);transition:all 0.2s;}
.rca-pending-card:hover{box-shadow:0 2px 8px rgba(0,0,0,0.1);transform:translateY(-1px);}
.rca-pending-info{flex:1;min-width:0;}
.rca-pending-info .pending-id{font-weight:700;font-size:0.9rem;color:var(--text);}
.rca-pending-info .pending-meta{font-size:0.8rem;color:var(--text-light);margin-top:2px;}
.rca-pending-info .pending-phenomenon{font-size:0.8rem;color:#FCD34D;margin-top:3px;white-space:nowrap;overflow:hidden;}
.btn-rca-skip{background:transparent;border:1px solid #94A3B8;color:#9CA3AF;border-radius:var(--radius);padding:4px 8px;font-size:0.8rem;cursor:pointer;transition:all 0.2s;}
.btn-rca-skip:hover{background:rgba(239,68,68,0.12);border-color:#F87171;color:#EF4444;}
.btn-rca-fill{background:var(--danger);color:#fff;border:none;padding:6px 14px;border-radius:var(--radius);font-size:0.8rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all 0.2s;}
.btn-rca-fill:hover{background:var(--danger-dark);transform:scale(1.03);}
@media (max-width:768px){.rca-stats{grid-template-columns:repeat(2,1fr);}
.rca-modal-form .rca-form-row{grid-template-columns:1fr;}
.rca-pending-list{grid-template-columns:1fr;}
.rca-pending-card{flex-direction:column !important;align-items:stretch !important;gap:8px;background:var(--card) !important;}
.rca-pending-card > div:last-child{justify-content:flex-end;}
.rca-pending-card .btn-rca-fill,.rca-pending-card .btn-rca-skip{padding:4px 8px !important;font-size:0.75rem !important;}
.rca-pending-info .pending-phenomenon{white-space:normal !important;word-break:break-all;}
#rca-modal .modal-content{max-width:100vw !important;width:96vw !important;margin:2vh auto !important;max-height:96vh;overflow-y:auto;}
#rca-modal input[type="date"]{min-width:140px;font-size:16px;-webkit-appearance:none;}
.login-gear-large{width:100px;height:100px;top:-20px;left:-20px;}
.login-gear-small{width:60px;height:60px;bottom:-15px;right:-15px;}
.admin-login-content{padding:28px 20px 24px;border-radius:12px;}
.login-branding h2{font-size:1.05rem;letter-spacing:1px;}
.login-branding .en-sub{font-size:0.6rem;letter-spacing:2px;}
.cyber-particles span{display:none;}
.cyber-particles span:nth-child(1),.cyber-particles span:nth-child(3),.cyber-particles span:nth-child(5),.cyber-particles span:nth-child(7){display:block;}
.login-grid-overlay{background-size:40px 40px;}
}
.toast-container{position:fixed;top:20px;right:20px;z-index:99999;display:flex;flex-direction:column;gap:8px;pointer-events:none;}
.toast-item{display:flex;align-items:center;gap:10px;padding:14px 20px;border-radius:10px;font-size:0.9rem;font-weight:500;box-shadow:0 4px 16px rgba(0,0,0,0.15);pointer-events:auto;animation:toastSlideIn 0.3s ease,toastFadeOut 0.3s ease 2.7s forwards;max-width:400px;}
.toast-item.toast-success{background:rgba(16,185,129,0.1);color:#6EE7B7;border-left:4px solid #6EE7B7;}
.toast-item.toast-error{background:rgba(239,68,68,0.1);color:#FCA5A5;border-left:4px solid #dc2626;}
.toast-item.toast-warning{background:rgba(245,158,11,0.1);color:#FCD34D;border-left:4px solid #d97706;}
.toast-item.toast-info{background:rgba(0,240,255,0.08);color:#22D3EE;border-left:4px solid var(--primary);}
@keyframes toastSlideIn{from{transform:translateX(100%);opacity:0;}
to{transform:translateX(0);opacity:1;}
}
@keyframes toastFadeOut{from{opacity:1;transform:translateX(0);}
to{opacity:0;transform:translateX(100%);}
}
.mt-level-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:0.75rem;font-weight:600;margin-right:6px;}
.mt-status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:0.72rem;font-weight:600;background:rgba(16,185,129,0.1);color:#6EE7B7;}
.mt-status-badge.overdue{background:rgba(239,68,68,0.1);color:#dc2626;}
.mt-status-badge.today{background:#eff6ff;color:#60A5FA;}
.mt-time-tag{font-size:0.72rem;font-weight:600;}
.mt-card-parts{font-size:0.8rem;color:#94A3B8;margin-top:4px;}
.mt-group{margin-bottom:12px;}
.mt-group-header:hover{background:rgba(255,255,255,0.03) !important;}
.mt-group-items{padding-left:20px;border-left:2px dashed var(--border);}
.pl-input{padding:8px 12px;border:1px solid var(--border,var(--border));border-radius:8px;font-size:0.9rem;outline:none;transition:border-color 0.2s;background:var(--input-bg,#fff);color:var(--text,#E2E8F0);}
.pl-input:focus{border-color:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,0.1);}
.pl-select{padding:8px 12px;border:1px solid var(--border,var(--border));border-radius:8px;font-size:0.9rem;outline:none;background:var(--input-bg,#fff);color:var(--text,#E2E8F0);}
.pl-btn-primary{padding:8px 18px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-size:0.9rem;cursor:pointer;white-space:nowrap;transition:all 0.2s;}
.pl-btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(16,185,129,0.3);}
.pl-btn-add{padding:6px 14px;background:#10b981;color:#fff;border:none;border-radius:6px;font-size:0.85rem;cursor:pointer;white-space:nowrap;}
.pl-btn-add:hover{background:#059669;}
.pl-btn-edit,.pl-btn-move{background:none;border:1px solid var(--border,var(--border));border-radius:6px;padding:4px 8px;cursor:pointer;font-size:0.85rem;transition:all 0.2s;}
.pl-btn-edit:hover{border-color:#f59e0b;background:rgba(245,158,11,0.1);}
.pl-btn-move:hover{border-color:#60A5FA;background:rgba(0,240,255,0.08);}
.pl-btn-del{background:none;border:1px solid var(--border,var(--border));border-radius:6px;padding:4px 8px;cursor:pointer;font-size:0.85rem;transition:all 0.2s;}
.pl-btn-del:hover{border-color:#ef4444;background:rgba(239,68,68,0.1);}
.pl-btn-del:disabled{opacity:0.4;cursor:not-allowed;}
.pl-btn-del:disabled:hover{border-color:var(--border,var(--border));background:none;}
.pl-line-card{background:var(--card-bg,#fff);border:1px solid var(--border,var(--border));border-radius:12px;margin-bottom:12px;overflow:hidden;transition:box-shadow 0.2s;}
.pl-line-card:hover{box-shadow:0 2px 12px rgba(0,0,0,0.06);}
.pl-line-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(135deg,rgba(16,185,129,0.1),rgba(16,185,129,0.1));border-bottom:1px solid var(--border,var(--border));}
.pl-line-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pl-line-icon{font-size:1.2rem;}
.pl-line-name{font-weight:600;font-size:1rem;color:var(--text,#E2E8F0);}
.pl-device-count{background:rgba(16,185,129,0.15);color:#059669;padding:2px 8px;border-radius:10px;font-size:0.78rem;font-weight:500;}
.pl-grade-dot{display:inline-flex;align-items:center;padding:1px 6px;border-radius:8px;font-size:0.72rem;font-weight:600;color:#fff;}
.pl-line-actions{display:flex;gap:6px;}
.pl-device-list{padding:8px 12px;max-height:300px;overflow-y:auto;}
.pl-device-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-radius:8px;transition:background 0.15s;}
.pl-device-item:hover{background:rgba(0,0,0,0.03);}
.pl-device-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0;}
.pl-device-name{font-weight:500;font-size:0.9rem;color:var(--text,#E2E8F0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pl-device-code{font-size:0.8rem;color:var(--text-secondary,#94A3B8);font-family:monospace;}
.pl-device-grade{font-weight:600;font-size:0.8rem;}
.pl-device-actions{display:flex;gap:4px;flex-shrink:0;}
.pl-add-device-row{display:flex;gap:6px;padding:10px 12px;border-top:1px solid var(--border,var(--border));background:rgba(0,0,0,0.01);align-items:center;}
.pl-empty-devices{text-align:center;color:var(--text-secondary,#94a3b8);padding:16px;font-size:0.9rem;}
.pl-empty{text-align:center;color:var(--text-secondary,#94a3b8);padding:40px;font-size:1rem;}
.bs-device-row{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border,var(--border));transition:background 0.15s;font-size:0.88rem;}
.bs-device-row:last-child{border-bottom:none;}
.bs-device-row:hover{background:rgba(16,185,129,0.04);}
.bs-device-row.bs-existing{background:rgba(0,0,0,0.02);opacity:0.6;}
.bs-checkbox-label{display:flex;align-items:center;gap:8px;flex:2;min-width:0;cursor:pointer;}
.bs-checkbox-label input[type="checkbox"]{width:16px;height:16px;accent-color:#10b981;flex-shrink:0;}
.bs-device-name{font-weight:500;color:var(--text,#E2E8F0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bs-device-code{font-family:monospace;font-size:0.8rem;color:var(--text-secondary,#94A3B8);flex:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bs-device-grade{font-weight:600;font-size:0.8rem;width:36px;text-align:center;flex-shrink:0;}
.bs-device-workshop{font-size:0.78rem;color:var(--text-secondary,#94a3b8);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bs-device-items{font-size:0.75rem;color:var(--text-secondary,#94a3b8);width:40px;text-align:right;flex-shrink:0;}
.bs-existing-tag{font-size:0.72rem;background:rgba(255,255,255,0.03);color:#94A3B8;padding:1px 6px;border-radius:4px;flex-shrink:0;}
.bs-empty{text-align:center;color:var(--text-secondary,#94a3b8);padding:30px;font-size:0.9rem;}
.ai-fab{position:fixed;bottom:90px;right:24px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:white;border:none;cursor:pointer;font-size:24px;display:none;align-items:center;justify-content:center;box-shadow:0 4px 15px rgba(99,102,241,0.4);z-index:9998;transition:all 0.3s ease;line-height:1;}
.ai-fab:hover{transform:scale(1.1);box-shadow:0 6px 20px rgba(99,102,241,0.6);}
.ai-fab.has-new{animation:ai-fab-pulse 2s infinite;}
@keyframes ai-fab-pulse{0%,100%{box-shadow:0 4px 15px rgba(99,102,241,0.4);}
50%{box-shadow:0 4px 25px rgba(99,102,241,0.7),0 0 0 8px rgba(99,102,241,0.1);}
}
.ai-chat-window{position:fixed;bottom:100px;right:24px;width:480px;height:620px;min-width:340px;min-height:400px;max-width:90vw;max-height:85vh;background:#1A1A2E;border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,0.18),0 2px 8px rgba(0,0,0,0.06);z-index:9999;display:flex;flex-direction:column;overflow:hidden;transform:translateY(20px) scale(0.95);opacity:0;pointer-events:none;transition:opacity 0.25s cubic-bezier(0.4,0,0.2,1),box-shadow 0.2s;resize:both;}
.ai-chat-window.open{transform:translateY(0) scale(1);opacity:1;pointer-events:all;}
.ai-chat-window:hover{box-shadow:0 12px 40px rgba(0,0,0,0.22),0 4px 12px rgba(0,0,0,0.08);}
.ai-chat-window.resizing{transition:none;}
.ai-chat-header{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:white;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;cursor:grab;user-select:none;}
.ai-chat-header:active{cursor:grabbing;}
.ai-chat-header-left{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;pointer-events:none;}
.ai-chat-header-actions{display:flex;gap:6px;}
.ai-chat-header-actions button{background:rgba(255,255,255,0.2);border:none;color:white;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:background 0.2s;}
.ai-chat-header-actions button:hover{background:rgba(255,255,255,0.35);}
.ai-quick-actions{padding:10px 12px;display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,0.03);flex-shrink:0;background:var(--bg-secondary);}
.ai-quick-btn{padding:5px 10px;border-radius:16px;border:1px solid var(--border);background:white;color:#94A3B8;font-size:12px;cursor:pointer;transition:all 0.2s;white-space:nowrap;}
.ai-quick-btn:hover{background:#6366f1;color:white;border-color:#6366f1;}
.ai-chat-messages{flex:1;overflow-y:auto;padding:14px 14px;display:flex;flex-direction:column;gap:14px;scroll-behavior:smooth;}
.ai-chat-messages::-webkit-scrollbar{width:5px;}
.ai-chat-messages::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px;}
.ai-chat-messages::-webkit-scrollbar-thumb:hover{background:#94a3b8;}
.ai-msg{max-width:85%;padding:12px 16px;border-radius:12px;font-size:14px;line-height:1.7;word-break:break-word;animation:ai-msg-in 0.3s ease;}
@keyframes ai-msg-in{from{opacity:0;transform:translateY(8px);}
to{opacity:1;transform:translateY(0);}
}
.ai-msg-user{align-self:flex-end;background:#6366f1;color:white;border-bottom-right-radius:4px;}
.ai-msg-ai{align-self:flex-start;background:rgba(255,255,255,0.03);color:#E2E8F0;border-bottom-left-radius:4px;}
.ai-msg-ai p{margin:4px 0;}
.ai-msg-ai strong{color:#CBD5E1;}
.ai-msg-ai ul,.ai-msg-ai ol{margin:4px 0;padding-left:18px;}
.ai-msg-system{align-self:center;background:rgba(245,158,11,0.1);color:#FCD34D;font-size:12px;padding:6px 12px;border-radius:8px;}
.ai-typing{align-self:flex-start;display:flex;gap:4px;padding:12px 16px;background:rgba(255,255,255,0.03);border-radius:12px;border-bottom-left-radius:4px;}
.ai-typing span{width:8px;height:8px;border-radius:50%;background:#94a3b8;animation:ai-typing-bounce 1.4s infinite;}
.ai-typing span:nth-child(2){animation-delay:0.2s;}
.ai-typing span:nth-child(3){animation-delay:0.4s;}
@keyframes ai-typing-bounce{0%,60%,100%{transform:translateY(0);}
30%{transform:translateY(-6px);}
}
.ai-chat-input{padding:12px 14px;border-top:1px solid rgba(255,255,255,0.03);display:flex;gap:10px;flex-shrink:0;background:white;}
.ai-chat-input input{flex:1;padding:10px 16px;border:1px solid var(--border);border-radius:22px;font-size:14px;outline:none;transition:border-color 0.2s;background:var(--bg-secondary);}
.ai-chat-input input:focus{border-color:#6366f1;background:white;}
.ai-chat-input input::placeholder{color:#94a3b8;}
.ai-send-btn{width:38px;height:38px;border-radius:50%;background:#6366f1;color:white;border:none;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all 0.2s;flex-shrink:0;}
.ai-send-btn:hover{background:#4f46e5;}
.ai-send-btn:disabled{background:#c7d2fe;cursor:not-allowed;}
.ai-config-panel{position:fixed;bottom:0;right:0;width:360px;height:100%;background:white;box-shadow:-4px 0 24px rgba(0,0,0,0.1);z-index:10001;transform:translateX(100%);transition:transform 0.3s ease;display:flex;flex-direction:column;}
.ai-config-panel.open{transform:translateX(0);}
.ai-config-header{padding:16px 20px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:white;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;}
.ai-config-header h3{margin:0;font-size:16px;}
.ai-config-close{background:rgba(255,255,255,0.2);border:none;color:white;width:30px;height:30px;border-radius:6px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;}
.ai-config-body{flex:1;overflow-y:auto;padding:20px;}
.ai-config-group{margin-bottom:18px;}
.ai-config-group label{display:block;font-size:13px;font-weight:600;color:#CBD5E1;margin-bottom:6px;}
.ai-config-group input,.ai-config-group select{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:13.5px;outline:none;box-sizing:border-box;}
.ai-config-group input:focus,.ai-config-group select:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,0.1);}
.ai-provider-tab{cursor:pointer;transition:all 0.2s ease;}
.ai-provider-tab.active{color:#e2e8f0 !important;border-bottom-color:#6366f1 !important;}
.ai-provider-tab:hover{color:#e2e8f0 !important;}
.ai-config-group .hint{font-size:11px;color:#94a3b8;margin-top:4px;}
.ai-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(255,255,255,0.03);}
.ai-toggle-row .label-text{font-size:14px;font-weight:500;color:#CBD5E1;}
.ai-toggle-row .label-desc{font-size:12px;color:#94a3b8;margin-top:2px;}
.ai-toggle{position:relative;width:44px;height:24px;flex-shrink:0;}
.ai-toggle input{display:none;}
.ai-toggle-slider{position:absolute;inset:0;background:#cbd5e1;border-radius:12px;cursor:pointer;transition:background 0.3s;}
.ai-toggle-slider::before{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:white;top:3px;left:3px;transition:transform 0.3s;box-shadow:0 1px 3px rgba(0,0,0,0.2);}
.ai-toggle input:checked + .ai-toggle-slider{background:#6366f1;}
.ai-toggle input:checked + .ai-toggle-slider::before{transform:translateX(20px);}
.ai-config-save{padding:10px;flex-shrink:0;border-top:1px solid rgba(255,255,255,0.03);}
.ai-config-save button{width:100%;padding:10px;background:#6366f1;color:white;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background 0.2s;}
.ai-config-save button:hover{background:#4f46e5;}
.ai-config-save button:disabled{background:#c7d2fe;cursor:not-allowed;}
@media (max-width:640px){.ai-chat-window{width:calc(100vw - 32px);height:65vh;min-width:unset;min-height:unset;right:16px;bottom:140px;resize:none;}
.ai-config-panel{width:100vw;}
.ai-fab{bottom:80px;right:16px;}
}
.plan-center{padding:20px;max-width:1400px;margin:0 auto;}
.plan-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;}
.plan-header h1{font-size:1.5rem;color:var(--text);margin:0;}
.plan-date-picker input{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font-size:0.9rem;}
.plan-stats{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:20px;}
.plan-stat-card{background:var(--card);border:2px solid var(--border);border-radius:10px;padding:12px 6px;text-align:center;transition:all 0.2s;cursor:pointer;}
.plan-stat-card:hover{transform:translateY(-2px);border-color:rgba(56,189,248,0.4);}
.plan-stat-card.active{border-color:#38BDF8;background:rgba(56,189,248,0.08);box-shadow:0 0 12px rgba(56,189,248,0.15);}
.plan-stat-card .stat-number{font-size:1.6rem;font-weight:700;margin-bottom:2px;}
.plan-stat-card.pending .stat-number{color:#F87171;}
.plan-stat-card.planned .stat-number{color:#38BDF8;}
.plan-stat-card.processing .stat-number{color:#FBBF24;}
.plan-stat-card.review .stat-number{color:#F97316;}
.plan-stat-card.completed .stat-number{color:#34D399;}
.plan-stat-card.postponed .stat-number{color:#A855F7;}
.plan-stat-card.today .stat-number{color:#22C55E;}
.plan-stat-card .stat-label{font-size:0.85rem;color:var(--text-light);}
.plan-filter-bar{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap;}
.plan-filter-btn{padding:6px 16px;border:1px solid var(--border);border-radius:20px;background:var(--card);color:var(--text-light);font-size:0.85rem;cursor:pointer;transition:all 0.2s;}
.plan-filter-btn:hover,.plan-filter-btn.active{background:rgba(56,189,248,0.15);border-color:#38BDF8;color:#38BDF8;}
.plan-section{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:20px;}
.plan-section h2{font-size:1.1rem;margin:0 0 16px 0;color:var(--text);}
.plan-section h2 span{color:var(--text-light);font-weight:normal;font-size:0.9rem;}
.plan-tab-panel{display:none;}
.plan-tab-panel.active{display:block;}
.plan-subtabs-desktop{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:12px;}
.plan-subtab-btn{padding:8px 16px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text-light);font-size:0.85rem;cursor:pointer;transition:all 0.2s;white-space:nowrap;}
.plan-subtab-btn:hover{background:rgba(56,189,248,0.1);border-color:#38BDF8;color:#38BDF8;}
.plan-subtab-btn.active{background:rgba(56,189,248,0.15);border-color:#38BDF8;color:#38BDF8;font-weight:600;}
.plan-review-section{margin-bottom:20px;}
.plan-review-section h3{font-size:1rem;margin:0 0 12px 0;color:var(--text);padding-bottom:8px;border-bottom:1px solid var(--border);}
.plan-review-section h3 span{color:var(--text-light);font-weight:normal;font-size:0.85rem;}
.plan-list{display:flex;flex-direction:column;gap:10px;}
.plan-item{display:flex;align-items:flex-start;gap:12px;padding:14px;background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:10px;transition:background 0.2s;}
.plan-item:hover{background:rgba(255,255,255,0.04);}
.plan-item-check{padding-top:2px;}
.plan-item-body{flex:1;min-width:0;}
.plan-item-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.plan-item-title{font-weight:600;color:var(--text);font-size:0.95rem;}
.plan-item-type{font-size:0.75rem;padding:2px 8px;border-radius:4px;background:rgba(56,189,248,0.1);color:#38BDF8;}
.plan-item-source{font-size:0.75rem;color:var(--text-light);}
.plan-item-meta{font-size:0.8rem;color:var(--text-light);display:flex;gap:12px;flex-wrap:wrap;}
.plan-item-actions{display:flex;gap:6px;flex-shrink:0;}
.plan-priority{font-size:0.7rem;font-weight:700;padding:2px 8px;border-radius:4px;}
.priority-p0{background:rgba(248,113,113,0.15);color:#F87171;}
.priority-p1{background:rgba(251,191,36,0.15);color:#FBBF24;}
.priority-p2{background:rgba(56,189,248,0.15);color:#38BDF8;}
.priority-p3{background:rgba(148,163,184,0.15);color:#94A3B8;}
.plan-calendar{display:flex;flex-direction:column;gap:12px;}
.plan-date-group{border-left:3px solid #38BDF8;padding-left:12px;}
.plan-date-label{font-weight:600;color:var(--text);margin-bottom:6px;font-size:0.9rem;}
.plan-date-tasks{display:flex;flex-direction:column;gap:6px;}
.plan-calendar-task{display:flex;justify-content:space-between;padding:8px 12px;background:rgba(255,255,255,0.02);border-radius:6px;font-size:0.85rem;}
.plan-task-title{color:var(--text);}
.plan-task-device{color:var(--text-light);font-size:0.8rem;}
.plan-batch-bar{position:sticky;bottom:20px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px 20px;display:flex;align-items:center;gap:12px;box-shadow:0 4px 20px rgba(0,0,0,0.3);z-index:100;}
.plan-export-bar{display:flex;gap:8px;margin-bottom:12px;}
.plan-empty{text-align:center;padding:40px;color:var(--text-light);font-size:0.9rem;}
.plan-table{width:100%;border-collapse:collapse;font-size:0.85rem;}
.plan-table th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text-light);font-weight:500;}
.plan-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,0.03);color:var(--text);}
.plan-status-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:0.75rem;}
.plan-status-badge.pending{background:rgba(56,189,248,0.15);color:#38BDF8;}
.plan-status-badge.processing{background:rgba(251,191,36,0.15);color:#FBBF24;}
.plan-status-badge.review{background:rgba(168,85,247,0.15);color:#A855F7;}
.plan-status-badge.done{background:rgba(52,211,153,0.15);color:#34D399;}
.plan-conflict{background:rgba(248,113,113,0.1);border:1px solid rgba(248,113,113,0.3);border-radius:8px;padding:10px 14px;color:#F87171;font-size:0.85rem;}
.readonly-field{padding:10px 12px;background:rgba(255,255,255,0.03);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:0.9rem;}
.plan-task-card{display:flex;align-items:flex-start;gap:12px;padding:16px;background:linear-gradient(135deg,rgba(30,41,59,0.6) 0%,rgba(15,23,42,0.4) 100%);border:1px solid var(--border);border-radius:12px;transition:all 0.25s ease;position:relative;overflow:hidden;}
.plan-task-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--border);border-radius:12px 0 0 12px;}
.plan-task-card.priority-p0::before{background:linear-gradient(180deg,#EF4444,#F87171);box-shadow:0 0 12px rgba(239,68,68,0.4);}
.plan-task-card.priority-p1::before{background:linear-gradient(180deg,#F59E0B,#FBBF24);box-shadow:0 0 12px rgba(245,158,11,0.4);}
.plan-task-card.priority-p2::before{background:linear-gradient(180deg,#3B82F6,#38BDF8);box-shadow:0 0 12px rgba(59,130,246,0.4);}
.plan-task-card.priority-p3::before{background:linear-gradient(180deg,#64748B,#94A3B8);}
.plan-task-card:hover{transform:translateY(-2px);border-color:rgba(56,189,248,0.3);box-shadow:0 8px 32px rgba(0,0,0,0.3);}
.plan-task-check{padding-top:4px;flex-shrink:0;}
.plan-task-check input[type="checkbox"]{width:18px;height:18px;accent-color:#38BDF8;cursor:pointer;}
.plan-task-body{flex:1;min-width:0;}
.plan-task-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.plan-task-title{font-weight:600;color:var(--text);font-size:0.95rem;cursor:pointer;transition:color 0.2s;}
.plan-task-title:hover{color:#38BDF8;}
.plan-task-badge{font-size:0.72rem;padding:3px 10px;border-radius:6px;font-weight:500;white-space:nowrap;}
.plan-task-meta{font-size:0.8rem;color:var(--text-light);display:flex;gap:14px;flex-wrap:wrap;margin-bottom:10px;}
.plan-task-meta span{display:inline-flex;align-items:center;gap:4px;}
.plan-task-actions{display:flex;gap:8px;flex-wrap:wrap;}
.plan-task-actions .btn{font-size:0.78rem;padding:5px 12px;border-radius:6px;}
.plan-task-priority{display:inline-block;padding:2px 8px;border-radius:6px;font-size:0.72rem;font-weight:600;border:1px solid;white-space:nowrap;flex-shrink:0;}
.plan-task-desc{font-size:0.82rem;color:#94A3B8;line-height:1.5;margin-bottom:8px;padding:6px 10px;background:rgba(15,23,42,0.4);border-radius:6px;border-left:2px solid rgba(56,189,248,0.2);word-break:break-all;}
.plan-badge-issue{background:rgba(239,68,68,0.12);color:#EF4444;border:1px solid rgba(239,68,68,0.2);}
.plan-badge-maintenance{background:rgba(59,130,246,0.12);color:#3B82F6;border:1px solid rgba(59,130,246,0.2);}
.plan-badge-improve{background:rgba(16,185,129,0.12);color:#10B981;border:1px solid rgba(16,185,129,0.2);}
.plan-badge-inspection{background:rgba(168,85,247,0.12);color:#A855F7;border:1px solid rgba(168,85,247,0.2);}
.plan-badge-other{background:rgba(148,163,184,0.12);color:#94A3B8;border:1px solid rgba(148,163,184,0.2);}
.plan-compact-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:10px;transition:all 0.2s;margin-bottom:8px;}
.plan-compact-item:last-child{margin-bottom:0;}
.plan-compact-item:hover{background:rgba(255,255,255,0.04);border-color:rgba(56,189,248,0.2);}
.plan-compact-title{font-weight:600;color:var(--text);font-size:0.9rem;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.plan-compact-meta{font-size:0.8rem;color:var(--text-light);white-space:nowrap;flex-shrink:0;}
.plan-compact-actions{display:flex;gap:6px;flex-shrink:0;}
.plan-compact-actions .btn{font-size:0.75rem;padding:4px 10px;}
.plan-info-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,0.04);}
.plan-info-row:last-child{border-bottom:none;}
.plan-info-label{font-size:0.8rem;color:var(--text-light);font-weight:500;min-width:80px;flex-shrink:0;}
.plan-info-value{font-size:0.9rem;color:var(--text);flex:1;word-break:break-all;}
.plan-readonly-info{background:rgba(255,255,255,0.02);border-radius:10px;padding:12px 16px;margin-bottom:16px;}
.plan-stat-card{position:relative;overflow:hidden;}
.plan-stat-card::after{content:'';position:absolute;top:-20px;right:-20px;width:60px;height:60px;border-radius:50%;opacity:0.08;}
.plan-stat-card.pending::after{background:#EF4444;}
.plan-stat-card.planned::after{background:#38BDF8;}
.plan-stat-card.processing::after{background:#FBBF24;}
.plan-stat-card.review::after{background:#F97316;}
.plan-stat-card.completed::after{background:#34D399;}
.plan-stat-card.postponed::after{background:#A855F7;}
.plan-stat-card.today::after{background:#22C55E;}
.plan-stat-card .stat-number{background:linear-gradient(135deg,currentColor,rgba(255,255,255,0.6));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.plan-filter-btn{font-weight:500;letter-spacing:0.02em;}
.plan-filter-btn.active{box-shadow:0 0 12px rgba(56,189,248,0.2);}
.plan-batch-bar{backdrop-filter:blur(12px);background:rgba(30,41,59,0.85);}
#plan-assign-modal .modal-content,#plan-batch-assign-modal .modal-content{max-width:600px;}
#plan-assign-modal .form-group label.required::after{content:' *';color:#EF4444;}
.plan-assign-info{background:linear-gradient(135deg,rgba(30,41,59,0.5) 0%,rgba(15,23,42,0.3) 100%);border:1px solid rgba(56,189,248,0.1);border-radius:12px;padding:14px 16px;margin-bottom:20px;}
.plan-assign-info-row{display:flex;align-items:flex-start;gap:10px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,0.04);}
.plan-assign-info-row:last-child{border-bottom:none;}
.plan-assign-info-row.plan-assign-info-desc{flex-direction:column;gap:4px;}
.plan-assign-info-row.plan-assign-info-desc .plan-assign-info-value{line-height:1.6;white-space:pre-wrap;}
.plan-assign-info-label{font-size:0.8rem;color:#94A3B8;font-weight:500;min-width:72px;flex-shrink:0;}
.plan-assign-info-value{font-size:0.9rem;color:#E2E8F0;flex:1;word-break:break-all;}
#plan-assign-title.plan-assign-info-value{font-weight:600;font-size:0.95rem;color:#F0F9FF;}
#plan-assign-modal select,#plan-assign-modal input[type="datetime-local"],#plan-assign-modal textarea{background:rgba(15,23,42,0.6);border:1px solid rgba(56,189,248,0.15);border-radius:8px;padding:10px 12px;color:#E2E8F0;font-size:0.9rem;transition:all 0.2s ease;width:100%;}
#plan-assign-modal select:focus,#plan-assign-modal input[type="datetime-local"]:focus,#plan-assign-modal textarea:focus{outline:none;border-color:rgba(56,189,248,0.4);box-shadow:0 0 0 3px rgba(56,189,248,0.08);}
#plan-assign-modal select option{background:#1E293B;color:#E2E8F0;}
#plan-assign-modal .modal-footer .btn{padding:10px 24px;font-size:0.9rem;font-weight:500;border-radius:8px;transition:all 0.2s ease;}
#plan-assign-modal .modal-footer .btn-primary{background:linear-gradient(135deg,#38BDF8,#0EA5E9);border:none;box-shadow:0 4px 14px rgba(56,189,248,0.25);}
#plan-assign-modal .modal-footer .btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(56,189,248,0.35);}
#plan-assign-modal .modal-footer .btn-secondary{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);}
#plan-assign-modal .modal-footer .btn-secondary:hover{background:rgba(255,255,255,0.1);}
#plan-assign-modal .multi-select-input-row .btn{padding:8px 14px;font-size:0.85rem;border-radius:6px;}
.plan-info-desc-row{align-items:flex-start !important;}
.plan-info-desc-value{line-height:1.7;white-space:pre-wrap;background:rgba(15,23,42,0.4);padding:8px 12px;border-radius:8px;font-size:0.88rem;}
@media (max-width:768px){.plan-stats{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:16px;}
.plan-stat-card{flex:0 0 80px;min-width:80px;padding:10px 4px;}
.plan-stat-card .stat-number{font-size:1.3rem;}
.plan-stat-card .stat-label{font-size:0.7rem;}
.plan-item-actions{flex-direction:column;}
.plan-table{font-size:0.75rem;}
.plan-table th,.plan-table td{padding:6px 8px;}
.plan-task-card{padding:12px;}
.plan-task-header{gap:6px;}
.plan-task-actions{gap:6px;}
.plan-compact-item{flex-wrap:wrap;padding:10px 12px;}
.plan-section{padding:14px;}
.plan-compact-title{width:100%;margin-bottom:4px;}
}
.workbench-container{padding:10px 0;}
.wb-header{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:16px;}
.wb-stat-card{background:rgba(59,130,246,0.08);border-radius:10px;padding:14px 8px;text-align:center;transition:transform 0.2s;}
.wb-stat-card:hover{transform:translateY(-2px);}
.wb-stat-num{font-size:1.6rem;font-weight:700;color:#3B82F6;line-height:1;}
.wb-stat-label{font-size:0.78rem;color:#94A3B8;margin-top:6px;}
.wb-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border);padding-bottom:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.wb-tabs::-webkit-scrollbar{display:none;}
.wb-tab-btn{padding:8px 14px;background:transparent;border:none;color:#94A3B8;cursor:pointer;font-size:0.88rem;border-bottom:2px solid transparent;white-space:nowrap;transition:all 0.2s;border-radius:6px 6px 0 0;}
.wb-tab-btn:hover{color:#E2E8F0;background:rgba(255,255,255,0.03);}
.wb-tab-btn.active{color:#FFFFFF;border-bottom-color:var(--primary);background:rgba(0,240,255,0.05);font-weight:600;text-shadow:0 0 8px rgba(0,240,255,0.4);}
.wb-tab-panel{animation:fadeIn 0.2s ease;}
.wb-tab-panel.hidden{display:none;}
.wb-task-card{background:var(--card);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px;border-left:4px solid var(--primary);transition:all 0.2s;}
.wb-task-card:hover{background:rgba(255,255,255,0.03);transform:translateX(2px);}
.wb-task-card.postponed{opacity:0.7;border-left-color:#F59E0B;}
.wb-task-card.completed{border-left-color:#10B981;}
.wb-task-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.wb-task-type{font-size:0.85rem;font-weight:600;}
.wb-task-status{font-size:0.78rem;color:#94A3B8;background:rgba(255,255,255,0.05);padding:2px 8px;border-radius:4px;}
.wb-task-body{margin-bottom:10px;}
.wb-task-title{font-size:1rem;font-weight:600;color:#E2E8F0;margin-bottom:6px;}
.wb-task-meta{display:flex;gap:16px;font-size:0.8rem;color:#94A3B8;margin-bottom:4px;flex-wrap:wrap;}
.wb-task-meta span{display:flex;align-items:center;gap:4px;}
.wb-task-actions{display:flex;gap:8px;justify-content:flex-end;}
.wb-date-group{margin-bottom:16px;}
.wb-date-label{font-size:0.85rem;color:var(--primary);font-weight:600;margin-bottom:8px;padding-left:4px;}
.wb-spare-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--card);border-radius:8px;margin-bottom:8px;font-size:0.88rem;}
.wb-spare-row span:first-child{color:#E2E8F0;font-weight:500;}
.wb-spare-row span:last-child{color:#94A3B8;font-size:0.8rem;}
.wb-execute-form{padding:8px 0;}
.wb-execute-info{background:rgba(0,240,255,0.05);border:1px solid rgba(0,240,255,0.1);border-radius:10px;padding:14px;margin-bottom:16px;font-size:0.9rem;color:#CBD5E1;}
.wb-execute-info div{margin-bottom:6px;}
.wb-execute-info div:last-child{margin-bottom:0;}
.wb-execute-section{margin-bottom:16px;}
.wb-execute-section label{display:block;font-size:0.88rem;font-weight:600;color:#CBD5E1;margin-bottom:8px;}
.wb-step-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px;padding:8px 10px;background:rgba(255,255,255,0.02);border-radius:8px;}
.wb-step-check{width:18px;height:18px;accent-color:var(--primary);flex-shrink:0;margin-top:6px;}
.wb-step-input{flex:1;background:rgba(255,255,255,0.06);border:1px solid rgba(148,163,184,0.35);border-radius:6px;padding:6px 10px;color:#E2E8F0;font-size:0.88rem;min-width:80px;resize:none;overflow:hidden;line-height:1.4;}
.wb-step-input:focus{border-color:#60A5FA;outline:none;background:rgba(255,255,255,0.1);}
.wb-step-row .btn-xs{flex-shrink:0;white-space:nowrap;}
.wb-photo-status{font-size:0.78rem;color:#10B981;}
.wb-step-thumb{width:32px;height:32px;border-radius:4px;object-fit:cover;cursor:pointer;flex-shrink:0;}
.wb-del-photo{padding:2px 4px;font-size:0.7rem;flex-shrink:0;}
.wb-execute-footer{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;}
.wb-execute-footer .btn{flex:0 0 auto;}
.wb-weekly-stats{background:rgba(16,185,129,0.08);border-radius:8px;padding:10px 14px;font-size:0.85rem;color:#6EE7B7;}
.empty{text-align:center;padding:40px 20px;color:#64748B;font-size:0.9rem;}
.loading{text-align:center;padding:40px 20px;color:#94A3B8;font-size:0.9rem;}
@media (max-width:768px){.workbench-container{padding:0;}
.wb-header{padding:12px;margin-bottom:12px;}
.wb-header > div{flex-direction:column;align-items:flex-start !important;gap:4px;}
.wb-header h2{font-size:1.1rem;}
#wb-date{font-size:0.8rem;}
#wb-weather{justify-content:flex-start !important;font-size:0.78rem !important;flex-wrap:wrap;}
.wb-stat-card{padding:10px 4px;}
.wb-stat-num{font-size:1.3rem;}
.wb-stat-label{font-size:0.72rem;}
.wb-tabs{gap:4px;padding-bottom:6px;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.wb-tabs::-webkit-scrollbar{display:none;}
.wb-tab-btn{padding:6px 10px;font-size:0.82rem;flex-shrink:0;white-space:nowrap;}
.wb-task-card{padding:12px;margin-bottom:10px;}
.wb-task-title{font-size:0.95rem;}
.wb-task-meta{gap:10px;font-size:0.78rem;}
.wb-task-actions{gap:6px;}
.wb-task-actions .btn{padding:6px 12px;font-size:0.8rem;}
.wb-step-row{gap:3px;padding:5px 6px;flex-wrap:nowrap;overflow-x:auto;}
.wb-step-input{font-size:0.85rem;padding:5px 6px;min-width:0;background:rgba(255,255,255,0.08);border-color:rgba(148,163,184,0.4);}
.wb-step-row .btn-xs{padding:2px 3px !important;font-size:0.65rem !important;min-width:22px;}
.wb-step-num{width:18px !important;font-size:0.8rem !important;}
.wb-step-check{width:16px;height:16px;margin-top:5px;}
.wb-photo-status{font-size:0.65rem !important;white-space:nowrap;}
.wb-step-thumb{width:24px !important;height:24px !important;}
.wb-del-photo{padding:1px 2px !important;font-size:0.6rem !important;min-width:18px !important;height:18px !important;}
.wb-execute-footer{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.wb-execute-footer .btn{width:100%;padding:8px 4px;font-size:0.8rem;white-space:nowrap;}
}
@media (max-width:768px){#spares-list-container table{font-size:0.75rem;}
#spares-list-container th,#spares-list-container td{padding:8px 4px;}
#spares-list-container th:first-child,#spares-list-container td:first-child{padding:8px 2px;width:28px;}
#spares-list-container input[type="checkbox"]{width:18px;height:18px;}
#spares-list-container .btn-sm{padding:4px 8px;font-size:0.72rem;}
}
<style> .mt-v2-wrap{padding:16px;}
.mt-v2-tabs{display:flex;gap:4px;border-bottom:2px solid var(--border);margin-bottom:16px;}
.mt-v2-tab{padding:10px 24px;background:none;border:none;color:#94a3b8;cursor:pointer;font-size:0.95rem;font-weight:600;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .2s;}
.mt-v2-tab.active{color:var(--primary);border-bottom-color:var(--primary);}
.mt-v2-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px;}
.mt-v2-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.mt-v2-filters input,.mt-v2-filters select{padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:0.85rem;}
.mt-v2-filters input[type="text"]{width:180px;}
.mt-v2-filters input[type="date"]{width:130px;}
.mt-v2-filters select{min-width:100px;}
.mt-v2-actions{display:flex;gap:8px;flex-wrap:wrap;}
.mt-v2-actions button{padding:6px 14px;border-radius:6px;border:none;cursor:pointer;font-size:0.85rem;font-weight:600;}
.mt-v2-btn-primary{background:var(--primary);color:#fff;}
.mt-v2-btn-secondary{background:var(--bg-secondary);color:var(--text);border:1px solid var(--border);}
.mt-v2-btn-success{background:#10b981;color:#fff;}
.mt-v2-btn-warning{background:#f59e0b;color:#fff;}
.mt-v2-table-wrap{overflow-x:auto;background:var(--card);border-radius:10px;border:1px solid var(--border);}
.mt-v2-table{width:100%;border-collapse:collapse;font-size:0.85rem;}
.mt-v2-table th{padding:10px 12px;text-align:left;background:var(--bg-secondary);color:#94a3b8;font-weight:600;border-bottom:2px solid var(--border);white-space:nowrap;}
.mt-v2-table td{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text);}
.mt-v2-table tr:hover td{background:rgba(255,255,255,0.03);}
.mt-v2-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:0.75rem;font-weight:600;}
.mt-v2-tag-blue{background:rgba(59,130,246,0.15);color:#60a5fa;}
.mt-v2-tag-green{background:rgba(16,185,129,0.15);color:#34d399;}
.mt-v2-tag-amber{background:rgba(245,158,11,0.15);color:#fbbf24;}
.mt-v2-tag-purple{background:rgba(168,85,247,0.15);color:#c084fc;}
.mt-v2-tag-red{background:rgba(239,68,68,0.15);color:#f87171;}
.mt-v2-btn-sm{padding:4px 10px;border-radius:4px;border:none;cursor:pointer;font-size:0.8rem;margin-right:4px;}
.mt-v2-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;}
.mt-v2-stat{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px;}
.mt-v2-stat-val{font-size:1.5rem;font-weight:700;color:var(--primary);}
.mt-v2-stat-label{font-size:0.8rem;color:#94a3b8;margin-top:4px;}
.hidden{display:none !important;}
.mt-v2-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:2000;display:none;justify-content:center;align-items:center;}
.mt-v2-modal{background:var(--card);border:1px solid var(--border);border-radius:12px;max-width:700px;width:90vw;max-height:90vh;overflow-y:auto;padding:24px;}
.mt-v2-modal h3{margin:0 0 16px;font-size:1.1rem;color:var(--text);}
.mt-v2-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.mt-v2-form-grid.full{grid-template-columns:1fr;}
.mt-v2-form-group{display:flex;flex-direction:column;gap:4px;}
.mt-v2-form-group label{font-size:0.8rem;color:#94a3b8;font-weight:600;}
.mt-v2-form-group input,.mt-v2-form-group select,.mt-v2-form-group textarea{padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:0.9rem;}
.mt-v2-form-group textarea{min-height:80px;resize:vertical;}
.mt-v2-modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border);}
.mt-v2-wizard-step{display:none;}
.mt-v2-wizard-step.active{display:block;}
.mt-v2-wizard-items{max-height:400px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;padding:12px;}
.mt-v2-wizard-item{display:flex;align-items:center;gap:10px;padding:8px;border-bottom:1px solid var(--border);}
.mt-v2-wizard-item:last-child{border-bottom:none;}
.mt-v2-wizard-item select{width:100px;padding:4px 8px;}
.mt-v2-month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px;}
.mt-v2-month-cell{padding:8px;border:1px solid var(--border);border-radius:6px;text-align:center;cursor:pointer;font-size:0.85rem;}
.mt-v2-month-cell.selected{background:var(--primary);color:#fff;border-color:var(--primary);}
.mt-v2-month-cell .count{font-size:0.75rem;opacity:0.8;}
@media(max-width:768px){.mt-v2-form-grid{grid-template-columns:1fr;}
.mt-v2-toolbar{flex-direction:column;align-items:stretch;}
.mt-v2-stats{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px;}
.mt-v2-stat{padding:8px 4px;text-align:center;}
.mt-v2-stat-val{font-size:1.1rem;}
.mt-v2-stat-label{font-size:0.7rem;margin-top:2px;}
}
</style> <style> .devhist-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px;background:#0a0a0a;border-bottom:1px solid #1e293b;}
.devhist-stat-card{background:#141414;border-radius:8px;padding:12px;text-align:center;border:1px solid #1e293b;}
.devhist-stat-value{font-size:1.6rem;font-weight:700;color:#38bdf8;line-height:1;}
.devhist-stat-label{font-size:0.75rem;color:#64748b;margin-top:4px;}
.devhist-stat-value.hot{color:#f97316;}
.devhist-stat-value.cold{color:#94a3b8;}
.devhist-tabs{display:flex;gap:0;border-bottom:1px solid #1e293b;background:#0f0f0f;}
.devhist-tab{flex:1;padding:12px;text-align:center;cursor:pointer;font-size:0.9rem;color:#64748b;border-bottom:2px solid transparent;transition:all 0.2s;background:none;border:none;}
.devhist-tab:hover{color:#e2e8f0;background:#1a1a1a;}
.devhist-tab.active{color:#38bdf8;border-bottom-color:#38bdf8;font-weight:600;}
.devhist-content{padding:16px;}
.devhist-empty{text-align:center;padding:40px;color:#475569;font-size:0.9rem;}
.devhist-timeline{position:relative;padding-left:16px;}
.devhist-timeline::before{content:"";position:absolute;left:4px;top:0;bottom:0;width:2px;background:#1e293b;}
.devhist-item{position:relative;margin-bottom:16px;padding-left:20px;}
.devhist-item::before{content:"";position:absolute;left:-14px;top:6px;width:10px;height:10px;border-radius:50%;background:#38bdf8;border:2px solid #0f0f0f;}
.devhist-item.critical::before{background:#ef4444;}
.devhist-item.warning::before{background:#f97316;}
.devhist-date{font-size:0.8rem;color:#64748b;margin-bottom:4px;font-weight:600;}
.devhist-card{background:#141414;border-radius:8px;padding:12px;border:1px solid #1e293b;}
.devhist-row{display:flex;gap:8px;margin-bottom:6px;font-size:0.85rem;line-height:1.4;}
.devhist-row:last-child{margin-bottom:0;}
.devhist-icon{flex-shrink:0;width:20px;text-align:center;}
.devhist-label{color:#64748b;flex-shrink:0;}
.devhist-value{color:#e2e8f0;}
.devhist-value.hot{color:#f97316;}
.devhist-meta{display:flex;gap:16px;font-size:0.8rem;color:#475569;margin-top:4px;padding-top:4px;border-top:1px solid #1e293b;}
.devhist-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:0.75rem;background:#1e293b;color:#94a3b8;margin-right:4px;}
.devhist-tag.critical{background:#450a0a;color:#fca5a5;}
.devhist-tag.warning{background:#451a03;color:#fdba74;}
.devhist-tag.success{background:#064e3b;color:#86efac;}
@media (max-width:640px){.devhist-stats{grid-template-columns:repeat(2,1fr);}
.devhist-stat-value{font-size:1.3rem;}
}
input[type="date"]::-webkit-calendar-picker-indicator,input[type="time"]::-webkit-calendar-picker-indicator,input[type="datetime-local"]::-webkit-calendar-picker-indicator{filter:invert(1) brightness(1.8);opacity:0.9;cursor:pointer;}
input[type="date"]:hover::-webkit-calendar-picker-indicator,input[type="time"]:hover::-webkit-calendar-picker-indicator,input[type="datetime-local"]:hover::-webkit-calendar-picker-indicator{opacity:1;filter:invert(1) brightness(2);}
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:rgba(148,163,184,0.25);border-radius:4px;border:2px solid transparent;background-clip:content-box;}
::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,0.45);background-clip:content-box;}
::-webkit-scrollbar-corner{background:transparent;}
*{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,0.25) transparent;}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,[tabindex]:focus-visible,.btn:focus-visible,.tab-button:focus-visible,.modal-close:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--primary);}
input:focus,textarea:focus,select:focus,.form-control:focus,.plans-search-input:focus,.plans-filter-select:focus{box-shadow:0 0 0 3px rgba(0,240,255,0.15),0 0 12px rgba(0,240,255,0.08);border-color:var(--primary-light);}
.btn-primary:active{transform:translateY(0) scale(0.96);box-shadow:0 2px 8px rgba(0,240,255,0.25);filter:brightness(0.92);}
.btn-warning:active{transform:translateY(0) scale(0.96);box-shadow:0 2px 8px rgba(245,158,11,0.25);filter:brightness(0.92);}
.btn-secondary:active{transform:translateY(0) scale(0.96);box-shadow:0 2px 8px rgba(107,114,128,0.25);filter:brightness(0.92);}
.btn-danger:active{transform:translateY(0) scale(0.95);box-shadow:0 2px 8px rgba(239,68,68,0.25);filter:brightness(0.92);}
.btn-success:active{transform:translateY(0) scale(0.95);box-shadow:0 2px 8px rgba(16,185,129,0.25);filter:brightness(0.92);}
.btn-outline:active{transform:translateY(0) scale(0.96);background:rgba(148,163,184,0.18);}
.search-result-item:active,.issue-item:active,.device-tree-row:active,.bench-card:active,.bench-item-card:active,.plan-task-card:active,.wb-task-card:active,.rca-card:active,.rca-pending-card:active{transform:scale(0.992);transition-duration:0.05s;}
.press-scale:active{transform:scale(0.96);}
.press-scale-sm:active{transform:scale(0.95);}
.hover-lift{transition:transform 0.25s cubic-bezier(0.4,0,0.2,1),box-shadow 0.25s cubic-bezier(0.4,0,0.2,1);}
.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.hover-glow:hover{box-shadow:0 0 20px rgba(0,240,255,0.12);}
.hover-scale:hover{transform:scale(1.02);}
.search-result-item,.issue-item,.device-tree-row,.bench-card,.bench-item-card,.plan-task-card,.wb-task-card,.rca-card,.rca-pending-card,.stat-card,.kpi-card,.pl-stat-card,.wb-stat-card,.maintenance-card{transition:transform 0.2s ease,box-shadow 0.2s ease,background-color 0.2s ease;}
.device-tree-row:hover{background:rgba(0,240,255,0.04);}
.skeleton{background:linear-gradient( 90deg,rgba(148,163,184,0.08) 25%,rgba(148,163,184,0.15) 50%,rgba(148,163,184,0.08) 75% );background-size:200% 100%;border-radius:var(--radius-sm);animation:skeleton-shimmer 1.5s ease-in-out infinite;pointer-events:none;user-select:none;}
.skeleton-text{height:1em;margin-bottom:0.5em;}
.skeleton-text:last-child{width:75%;}
.skeleton-title{height:1.25em;width:40%;margin-bottom:0.75em;}
.skeleton-circle{width:40px;height:40px;border-radius:50%;}
.skeleton-card{height:120px;border-radius:var(--radius-md);margin-bottom:12px;}
.skeleton-btn{height:40px;width:100px;border-radius:var(--radius-md);}
@keyframes skeleton-shimmer{0%{background-position:200% 0;}
100%{background-position:-200% 0;}
}
.photo-viewer-modal{display:none;align-items:center;justify-content:center;background:rgba(0,0,0,0.92) !important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.photo-viewer-modal.active{display:flex;}
.photo-viewer-backdrop{position:absolute;inset:0;z-index:0;}
.photo-viewer-container{position:relative;width:100vw;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1;user-select:none;-webkit-user-select:none;}
.photo-viewer-toolbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(to bottom,rgba(0,0,0,0.6),transparent);z-index:10;transition:opacity 0.3s ease;}
.photo-viewer-counter{color:#fff;font-size:0.9rem;font-weight:500;text-shadow:0 1px 4px rgba(0,0,0,0.5);}
.photo-viewer-actions{display:flex;gap:6px;align-items:center;}
.pv-btn{width:36px;height:36px;border-radius:50%;border:none;background:rgba(255,255,255,0.15);color:#fff;font-size:1.1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.2s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.pv-btn:hover{background:rgba(255,255,255,0.3);}
.pv-btn-close{font-size:1.4rem;font-weight:300;}
.pv-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:72px;border:none;background:rgba(255,255,255,0.08);color:#fff;font-size:2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:background 0.2s ease,opacity 0.3s ease;border-radius:8px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.pv-nav:hover{background:rgba(255,255,255,0.2);}
.pv-prev{left:12px;}
.pv-next{right:12px;}
.photo-viewer-stage{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;}
.photo-viewer-stage img{max-width:90vw;max-height:80vh;border-radius:8px;object-fit:contain;transition:transform 0.15s ease-out;will-change:transform;cursor:grab;}
.photo-viewer-stage img:active{cursor:grabbing;}
.photo-viewer-thumbnails{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:8px;padding:8px 12px;background:rgba(0,0,0,0.5);border-radius:8px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:10;max-width:90vw;overflow-x:auto;transition:opacity 0.3s ease;scrollbar-width:none;}
.photo-viewer-thumbnails::-webkit-scrollbar{display:none;}
.pv-thumb{width:56px;height:56px;border-radius:6px;object-fit:cover;cursor:pointer;border:2px solid transparent;opacity:0.7;transition:opacity 0.2s ease,border-color 0.2s ease;flex-shrink:0;}
.pv-thumb:hover{opacity:1;}
.pv-thumb.active{border-color:var(--primary);opacity:1;}
@media (max-width:640px){.pv-nav{display:none !important;}
.pv-btn{width:40px;height:40px;}
.photo-viewer-toolbar{padding:16px 12px 20px;}
.photo-viewer-stage img{max-width:96vw;max-height:78vh;border-radius:4px;}
}
.skeleton-pulse{background:rgba(148,163,184,0.12);animation:skeleton-pulse 2s ease-in-out infinite;}
@keyframes skeleton-pulse{0%,100%{opacity:1;}
50%{opacity:0.5;}
}
.toast-item:hover{animation-play-state:paused;}
.toast-item{transition:transform 0.2s ease,box-shadow 0.2s ease;}
.toast-item:hover{transform:translateX(-4px);box-shadow:0 6px 24px rgba(0,0,0,0.25);}
.loading-dots{display:inline-flex;align-items:center;gap:4px;}
.loading-dots span{display:inline-block;width:6px;height:6px;background:var(--primary);border-radius:50%;animation:loading-dot-bounce 1.4s ease-in-out infinite both;}
.loading-dots span:nth-child(1){animation-delay:-0.32s;}
.loading-dots span:nth-child(2){animation-delay:-0.16s;}
.loading-dots span:nth-child(3){animation-delay:0s;}
@keyframes loading-dot-bounce{0%,80%,100%{transform:scale(0.6);opacity:0.4;}
40%{transform:scale(1);opacity:1;}
}
.progress-bar-animated{position:relative;overflow:hidden;}
.progress-bar-animated::after{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient( 90deg,transparent,rgba(255,255,255,0.15),transparent );animation:progress-shimmer 1.5s ease-in-out infinite;}
@keyframes progress-shimmer{0%{left:-100%;}
100%{left:100%;}
}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;}
}
.modal-overlay{transition:opacity 0.25s ease,backdrop-filter 0.25s ease;}
.modal-content{transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1),opacity 0.25s ease;}
.modal-close{transition:transform 0.2s ease,color 0.2s ease,background 0.2s ease;}
.modal-close:hover{transform:rotate(90deg);}
@media (prefers-reduced-motion:reduce){.skeleton,.skeleton-pulse,.loading-dots span,.progress-bar-animated::after{animation:none;}
.skeleton{background:rgba(148,163,184,0.1);}
.hover-lift:hover,.hover-scale:hover,.search-result-item:hover,.issue-item:hover,.device-tree-row:hover,.bench-card:hover,.bench-item-card:hover,.plan-task-card:hover,.wb-task-card:hover,.rca-card:hover,.rca-pending-card:hover,.stat-card:hover,.kpi-card:hover,.pl-stat-card:hover,.wb-stat-card:hover,.maintenance-card:hover{transform:none;}
.modal-close:hover{transform:none;}
.toast-item:hover{transform:none;}
}
button,.btn,.btn-primary,.btn-secondary,.btn-warning,.btn-danger,.btn-success,.btn-outline,.tab-button,.modal-close,.action-btn,.btn-sm,.btn-action-sub,header .header-actions button,#header-login-btn,#user-status,.form-actions .btn,.fault-form-actions .btn,.template-btn{min-height:44px;min-width:44px;}
.btn-sm,.btn-danger,.btn-success{min-height:36px;min-width:36px;}
input,textarea,select,.form-control,.plans-search-input,.plans-filter-select{font-size:16px !important;}
.form-group{margin-bottom:16px;}
input[type="checkbox"],input[type="radio"]{min-width:20px;min-height:20px;width:20px;height:20px;}
@media (max-width:640px){.container,.dashboard-container{padding:12px;}
.modal-content,.modal-body{max-width:100% !important;width:100%;height:100%;max-height:100dvh;border-radius:0;padding:16px;}
.modal-header{padding:14px 16px;position:sticky;top:0;background:var(--card);z-index:10;}
.modal-header h3{font-size:1.1rem;}
.modal-close{width:44px;height:44px;}
.form-actions{position:static;background:transparent;padding:12px 0;margin:0;border-top:none;}
table,.plan-table,.mt-v2-table,.doc-table,.data-table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;max-width:100vw;}
.table-scroll-wrapper,.mt-v2-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.form-actions .btn,.form-actions .btn-primary,.form-actions .btn-secondary,.form-actions .btn-success,.form-actions .btn-outline,.modal-footer .btn{flex:1 1 auto;min-height:44px;font-size:0.9rem;}
.fault-form-actions{display:flex !important;flex-wrap:wrap;gap:8px;padding:0;}
.fault-form-actions .btn-save-main{flex:1 1 100%;min-height:48px;font-size:1rem;padding:10px 16px;}
.fault-form-actions .btn-action-sub{flex:1 1 calc(50% - 4px);min-width:auto;min-height:44px;padding:8px;font-size:0.85rem;}
.form-row,.mt-v2-form-grid,.dimension-grid{flex-direction:column;gap:0;}
.form-row .form-group{margin-bottom:14px;}
.plans-toolbar,.mt-v2-toolbar,.toolbar{flex-direction:column;align-items:stretch;gap:8px;}
.plans-search-row{flex-direction:column;}
.plans-filter-select,.plans-search-input{width:100%;}
.kpi-grid{grid-template-columns:repeat(2,1fr);}
.plans-summary{grid-template-columns:repeat(2,1fr);}
.devhist-stats{grid-template-columns:repeat(2,1fr);}
.stat-card{padding:12px 8px;}
.device-tree-row{padding:8px 10px;font-size:0.9rem;}
.device-line-row .line-badge{display:none;}
.wb-tabs,.wb-step-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.wb-tabs::-webkit-scrollbar,.wb-step-row::-webkit-scrollbar{display:none;}
header{padding:16px 16px 0;border-radius:0;}
header h1{font-size:1.4rem;letter-spacing:1px;}
header .header-actions{position:static;margin-top:12px;justify-content:center;width:100%;}
.tab-nav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;padding-bottom:4px;}
.tab-nav::-webkit-scrollbar{display:none;}
.tab-button{white-space:nowrap;padding:10px 16px 8px;font-size:0.9rem;border-bottom:2px solid transparent;border-radius:0;}
.tab-button.active{background:transparent;box-shadow:none;border-bottom-color:#38BDF8;}
.tl-plan-cycle,.tl-plan-status{display:none;}
.issue-list{grid-template-columns:1fr;}
.issue-statistics{grid-template-columns:repeat(2,1fr);}
.dashboard-grid{grid-template-columns:1fr;}
.multi-select-tags{gap:4px;}
.multi-select-tag{font-size:0.8rem;padding:2px 8px;}
#login-menu{position:fixed !important;top:50% !important;left:50% !important;transform:translate(-50%,-50%) !important;width:85% !important;max-width:320px !important;border-radius:16px !important;}
}
@media (max-width:768px){.modal-content{max-width:95vw;padding:20px;}
.plan-task-check input[type="checkbox"]{width:20px;height:20px;transform:none;transform-origin:center;}
.plan-table,.mt-v2-table{font-size:0.85rem;}
.kpi-grid{grid-template-columns:repeat(3,1fr);}
.kpi-value{font-size:22px;}
.issue-list{grid-template-columns:1fr;}
#view-user-management #user-list-container table{display:block;overflow-x:auto;white-space:nowrap;}
}
@supports (padding-top:env(safe-area-inset-top)){header{padding-top:max(20px,env(safe-area-inset-top));}
.modal-content{padding-bottom:max(16px,env(safe-area-inset-bottom));}
.form-actions{padding-bottom:max(12px,env(safe-area-inset-bottom));}
}
@media (max-width:360px){header h1{font-size:1.2rem;}
.tab-button{padding:8px 12px;font-size:0.85rem;}
.btn,.btn-primary,.btn-secondary,.btn-warning{padding:10px 16px;font-size:0.9rem;}
.kpi-grid{grid-template-columns:repeat(2,1fr);}
.stat-card .stat-number{font-size:1.2rem;}
}
