.modal-overlay[data-v-efaa875d]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn-efaa875d;display:flex;position:fixed;inset:0}@keyframes fadeIn-efaa875d{0%{opacity:0}to{opacity:1}}.modal-card[data-v-efaa875d]{background:var(--card-bg);border-radius:20px;width:100%;max-width:420px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp-efaa875d;box-shadow:0 25px 60px #0003}@keyframes slideUp-efaa875d{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-efaa875d]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3[data-v-efaa875d]{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.modal-close[data-v-efaa875d]{background:var(--hover-bg,#0000000d);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);border:none;border-radius:8px;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.modal-close[data-v-efaa875d]:hover{color:#ef4444;background:#ef44441a}.modal-body[data-v-efaa875d]{padding:24px}.form-row[data-v-efaa875d]{margin-bottom:18px}.form-row label[data-v-efaa875d]{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.required[data-v-efaa875d]{color:#ef4444}.modal-input[data-v-efaa875d]{border:2px solid var(--border-color);background:var(--bg-primary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:10px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .2s}.modal-input[data-v-efaa875d]:focus{border-color:#22c55e}.modal-error[data-v-efaa875d]{color:#ef4444;background:#ef444414;border:1px solid #ef444433;border-radius:8px;padding:10px 14px;font-size:13px}.success-msg[data-v-efaa875d]{text-align:center;color:#22c55e;padding:30px 20px;font-size:16px;font-weight:600;animation:.3s cubic-bezier(.16,1,.3,1) popIn-efaa875d}@keyframes popIn-efaa875d{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.modal-footer[data-v-efaa875d]{border-top:1px solid var(--border-color);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.btn-cancel[data-v-efaa875d]{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:10px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .15s}.btn-cancel[data-v-efaa875d]:hover{background:var(--hover-bg,#00000008)}.btn-confirm[data-v-efaa875d]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:10px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .15s}.btn-confirm[data-v-efaa875d]:hover{box-shadow:0 4px 12px #22c55e4d}.app-layout[data-v-e089d42d]{background:var(--bg-primary);min-height:100vh;transition:background .3s;display:flex}.sidebar[data-v-e089d42d]{background:var(--sidebar-bg);border-right:1px solid var(--border-color);z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;width:260px;min-width:260px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.sidebar-collapsed .sidebar[data-v-e089d42d]{width:72px;min-width:72px}.sidebar-header[data-v-e089d42d]{border-bottom:1px solid var(--border-color);padding:20px}.logo[data-v-e089d42d]{align-items:center;gap:12px;display:flex}.logo-icon[data-v-e089d42d]{flex-shrink:0;font-size:28px}.logo-text[data-v-e089d42d]{color:var(--text-primary);white-space:nowrap;background:linear-gradient(135deg,#22c55e,#16a34a);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:20px;font-weight:700}.sidebar-nav[data-v-e089d42d]{flex-direction:column;flex:1;gap:4px;padding:12px 8px;display:flex;overflow-y:auto}.nav-item[data-v-e089d42d]{color:var(--text-secondary);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;width:100%;padding:12px 16px;font-size:15px;transition:all .2s;display:flex}.nav-item[data-v-e089d42d]:hover{background:var(--nav-hover-bg);color:var(--text-primary);transform:translate(2px)}.nav-item.active[data-v-e089d42d]{color:#22c55e;background:linear-gradient(135deg,#22c55e26,#16a34a1a);font-weight:600;box-shadow:0 0 0 1px #22c55e33}.nav-icon[data-v-e089d42d]{text-align:center;flex-shrink:0;width:28px;font-size:20px}.nav-label[data-v-e089d42d]{text-overflow:ellipsis;overflow:hidden}.sidebar-footer[data-v-e089d42d]{border-top:1px solid var(--border-color);padding:8px}.theme-toggle[data-v-e089d42d]{color:var(--text-secondary);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;width:100%;padding:12px 16px;font-size:14px;transition:all .2s;display:flex}.theme-toggle[data-v-e089d42d]:hover{background:var(--nav-hover-bg);color:var(--text-primary)}.theme-icon[data-v-e089d42d]{text-align:center;width:28px;font-size:18px}.main-content[data-v-e089d42d]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.top-bar[data-v-e089d42d]{background:var(--card-bg);border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:50;align-items:center;gap:16px;padding:16px 24px;display:flex;position:sticky;top:0}.menu-btn[data-v-e089d42d]{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;padding:8px;transition:all .2s;display:flex}.menu-btn[data-v-e089d42d]:hover{background:var(--nav-hover-bg);color:var(--text-primary)}.page-title[data-v-e089d42d]{color:var(--text-primary);margin:0;font-size:20px;font-weight:700}.top-bar-actions[data-v-e089d42d]{align-items:center;gap:12px;margin-left:auto;display:flex}.date-display[data-v-e089d42d]{color:var(--text-tertiary);font-size:14px;font-weight:500}.content-area[data-v-e089d42d]{flex:1;padding:24px;overflow-y:auto}.user-menu-area[data-v-e089d42d]{position:relative}.user-menu-btn[data-v-e089d42d]{background:var(--hover-bg,#00000008);cursor:pointer;border:none;border-radius:12px;align-items:center;gap:10px;padding:6px 12px 6px 6px;transition:all .2s;display:flex}.user-menu-btn[data-v-e089d42d]:hover{background:var(--nav-hover-bg)}.user-avatar[data-v-e089d42d]{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:700;display:flex}.user-info[data-v-e089d42d]{flex-direction:column;align-items:flex-start;line-height:1.3;display:flex}.user-name[data-v-e089d42d]{color:var(--text-primary);font-size:13px;font-weight:600}.user-role[data-v-e089d42d]{color:var(--text-tertiary);font-size:11px}.dropdown-arrow[data-v-e089d42d]{color:var(--text-tertiary);font-size:12px;transition:transform .2s}.user-dropdown[data-v-e089d42d]{background:var(--card-bg);border:1px solid var(--border-color);z-index:200;border-radius:16px;width:280px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 12px 40px #0000001f}.dropdown-header[data-v-e089d42d]{align-items:center;gap:12px;padding:16px;display:flex}.dropdown-avatar[data-v-e089d42d]{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:16px;font-weight:700;display:flex}.dropdown-name[data-v-e089d42d]{color:var(--text-primary);font-size:15px;font-weight:700}.dropdown-username[data-v-e089d42d]{color:var(--text-tertiary);font-size:12px}.dropdown-role[data-v-e089d42d]{color:#ca8a04;margin-top:2px;font-size:12px}.dropdown-divider[data-v-e089d42d]{background:var(--border-color);height:1px;margin:0 8px}.dropdown-item[data-v-e089d42d]{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:11px 16px;font-size:14px;transition:all .15s;display:flex}.dropdown-item[data-v-e089d42d]:hover{background:var(--hover-bg,#00000008);color:var(--text-primary)}.dropdown-item.logout[data-v-e089d42d]:hover{color:#ef4444;background:#ef44440f}.dropdown-enter-active[data-v-e089d42d]{transition:all .2s cubic-bezier(.16,1,.3,1)}.dropdown-leave-active[data-v-e089d42d]{transition:all .15s}.dropdown-enter-from[data-v-e089d42d]{opacity:0;transform:translateY(-8px)scale(.96)}.dropdown-leave-to[data-v-e089d42d]{opacity:0;transform:translateY(-4px)scale(.98)}.sidebar-overlay[data-v-e089d42d]{z-index:99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;display:none;position:fixed;inset:0}@media (width<=768px){.sidebar[data-v-e089d42d]{z-index:200;position:fixed;top:0;bottom:0;left:-280px;box-shadow:4px 0 24px #0003}.sidebar.mobile-open[data-v-e089d42d]{left:0}.sidebar-overlay[data-v-e089d42d]{display:block}.content-area[data-v-e089d42d]{padding:16px}.app-layout.sidebar-collapsed .sidebar[data-v-e089d42d]{width:260px;min-width:260px}.user-info[data-v-e089d42d],.date-display[data-v-e089d42d]{display:none}}:root,[data-theme=light]{--bg-primary:#f5f7f5;--bg-secondary:#edf2ed;--card-bg:#ffffffd9;--card-bg-solid:#fff;--sidebar-bg:#ffffffe6;--text-primary:#1a2e1a;--text-secondary:#4a6a4a;--text-tertiary:#7a9a7a;--border-color:#22c55e1f;--border-strong:#22c55e40;--accent:#22c55e;--accent-hover:#16a34a;--accent-light:#22c55e1a;--accent-medium:#22c55e33;--danger:#ef4444;--danger-light:#ef44441a;--warning:#f59e0b;--warning-light:#f59e0b1a;--info:#3b82f6;--info-light:#3b82f61a;--nav-hover-bg:#22c55e0f;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 30px #0000001a;--glass-bg:#fff9;--glass-border:#ffffff4d;--input-bg:#fff;--input-border:#d1e7d1;--input-focus:#22c55e4d;--table-stripe:#22c55e08;--modal-overlay:#0006}[data-theme=dark]{--bg-primary:#0d1a0d;--bg-secondary:#142014;--card-bg:#142814cc;--card-bg-solid:#1a2e1a;--sidebar-bg:#0f1e0ff2;--text-primary:#e8f5e8;--text-secondary:#a3c4a3;--text-tertiary:#6a8f6a;--border-color:#22c55e26;--border-strong:#22c55e4d;--accent:#4ade80;--accent-hover:#22c55e;--accent-light:#22c55e26;--accent-medium:#22c55e40;--danger:#f87171;--danger-light:#ef444426;--warning:#fbbf24;--warning-light:#f59e0b26;--info:#60a5fa;--info-light:#3b82f626;--nav-hover-bg:#22c55e1a;--shadow-sm:0 1px 3px #0003;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 8px 30px #0006;--glass-bg:#14281499;--glass-border:#22c55e26;--input-bg:#1a2e1a;--input-border:#2d4a2d;--input-focus:#22c55e66;--table-stripe:#22c55e0d;--modal-overlay:#0009}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;line-height:1.6;transition:background .3s,color .3s}.card{background:var(--card-bg);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(20px)saturate(150%);backdrop-filter:blur(20px)saturate(150%);box-shadow:var(--shadow-sm);border-radius:16px;padding:24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.card-flat{background:var(--card-bg);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;padding:24px}.stat-card{background:var(--card-bg);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(20px)saturate(150%);backdrop-filter:blur(20px)saturate(150%);box-shadow:var(--shadow-sm);border-radius:20px;padding:24px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.stat-card:before{content:"";background:linear-gradient(90deg, var(--accent), transparent);border-radius:20px 20px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.stat-icon{margin-bottom:12px;font-size:32px}.stat-value{color:var(--text-primary);font-size:32px;font-weight:800;line-height:1.2}.stat-label{color:var(--text-tertiary);margin-top:4px;font-size:14px;font-weight:500}.btn{cursor:pointer;white-space:nowrap;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 2px 8px #22c55e4d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #22c55e66}.btn-secondary{background:var(--accent-light);color:var(--accent);border:1px solid var(--border-strong)}.btn-secondary:hover{background:var(--accent-medium)}.btn-danger{background:var(--danger-light);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0}.btn-ghost:hover{background:var(--nav-hover-bg);color:var(--text-primary);border-color:var(--border-strong)}.btn-sm{border-radius:8px;padding:6px 14px;font-size:13px}.btn-icon{border-radius:10px;width:36px;height:36px;padding:8px}.form-group{margin-bottom:16px}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-input,.form-select,.form-textarea{background:var(--input-bg);border:1.5px solid var(--input-border);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:10px 14px;font-family:inherit;font-size:14px;transition:all .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--input-focus)}.form-input::placeholder{color:var(--text-tertiary)}.form-textarea{resize:vertical;min-height:80px}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.table-container{border:1px solid var(--border-color);border-radius:16px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table thead{background:var(--accent-light)}.data-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border-color);padding:12px 16px;font-size:12px;font-weight:600}.data-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:12px 16px}.data-table tbody tr{transition:background .15s}.data-table tbody tr:nth-child(2n){background:var(--table-stripe)}.data-table tbody tr:hover{background:var(--accent-light)}.modal-overlay{background:var(--modal-overlay);z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--card-bg-solid);width:100%;max-width:600px;max-height:90vh;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);border-radius:20px;padding:0;animation:.3s cubic-bezier(.4,0,.2,1) slideUp;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-color);background:var(--card-bg-solid);z-index:1;border-radius:20px 20px 0 0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex;position:sticky;top:0}.modal-title{color:var(--text-primary);font-size:18px;font-weight:700}.modal-close{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:4px 8px;font-size:24px;transition:all .2s}.modal-close:hover{background:var(--danger-light);color:var(--danger)}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.badge{border-radius:20px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-green{color:#22c55e;background:#22c55e1a}.badge-yellow{color:#f59e0b;background:#f59e0b1a}.badge-red{color:#ef4444;background:#ef44441a}.badge-blue{color:#3b82f6;background:#3b82f61a}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:24px;display:grid}.grid-2{grid-template-columns:1fr 1fr;gap:24px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:24px;display:grid}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.page-header h2{color:var(--text-primary);font-size:24px;font-weight:800}.page-header-actions{align-items:center;gap:12px;display:flex}.empty-state{text-align:center;color:var(--text-tertiary);padding:60px 20px}.empty-state-icon{opacity:.5;margin-bottom:16px;font-size:64px}.empty-state h3{color:var(--text-secondary);margin-bottom:8px;font-size:18px}.empty-state p{max-width:400px;margin:0 auto 20px;font-size:14px}.search-box{max-width:300px;position:relative}.search-box input{background:var(--input-bg);border:1.5px solid var(--input-border);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:8px 14px 8px 38px;font-size:14px;transition:all .2s}.search-box input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--input-focus)}.search-box:before{content:"🔍";font-size:14px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.fade-enter-active{animation:.3s fadeIn}.slide-enter-active{animation:.3s slideIn}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}@media (width<=768px){.stats-grid{grid-template-columns:1fr 1fr}.grid-2,.grid-3,.form-row{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start}.page-header-actions{width:100%}}@media (width<=480px){.stats-grid{grid-template-columns:1fr}}.text-green{color:var(--accent)}.text-red{color:var(--danger)}.text-yellow{color:var(--warning)}.text-blue{color:var(--info)}.text-muted{color:var(--text-tertiary)}.font-bold{font-weight:700}.font-mono{font-family:SF Mono,Monaco,Inconsolata,Fira Mono,monospace}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.gap-2{gap:8px}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}
