@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-tertiary:#1e293b;--bg-elevated:#1a2332;--accent-primary:#3b82f6;--accent-secondary:#6366f1;--accent-hover:#2563eb;--accent-glow:#3b82f626;--accent-glow-strong:#3b82f64d;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--text-inverse:#0a0e1a;--status-success:#22c55e;--status-success-bg:#22c55e1f;--status-warning:#f59e0b;--status-warning-bg:#f59e0b1f;--status-error:#ef4444;--status-error-bg:#ef44441f;--status-info:#3b82f6;--status-info-bg:#3b82f61f;--border-subtle:#ffffff0f;--border-default:#ffffff1a;--border-focus:#3b82f680;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--shadow-sm:0 1px 3px #0000004d;--shadow-card:0 4px 24px #0000004d;--shadow-glow:0 0 20px #3b82f626;--shadow-modal:0 20px 60px #00000080;--transition-fast:.15s ease;--transition:.2s ease;--transition-slow:.3s ease;--sidebar-width:240px;--sidebar-collapsed:64px;--topbar-height:60px;--bottomnav-height:60px}html,body,#app{width:100%;height:100%;overflow:hidden}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5}.app-layout{height:100vh;display:flex;overflow:hidden}.app-sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-elevated);border-right:1px solid var(--border-subtle);transition:width var(--transition-slow), min-width var(--transition-slow);z-index:100;flex-direction:column;display:flex}.app-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-topbar{height:var(--topbar-height);min-height:var(--topbar-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:16px;padding:0 24px;display:flex}.app-content{flex:1;padding:24px;overflow-y:auto}.sidebar-logo{height:var(--topbar-height);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);white-space:nowrap;align-items:center;gap:12px;padding:0 20px;font-size:15px;font-weight:700;display:flex}.sidebar-logo-icon{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex}.sidebar-item{border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);white-space:nowrap;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.sidebar-item:hover{background:var(--accent-glow);color:var(--text-primary)}.sidebar-item.active{background:var(--accent-glow-strong);color:var(--accent-primary);border-left:3px solid var(--accent-primary)}.sidebar-item-icon{text-align:center;flex-shrink:0;width:24px;font-size:18px}.sidebar-footer{border-top:1px solid var(--border-subtle);padding:12px 8px}.card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px}.card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-title{color:var(--text-primary);font-size:16px;font-weight:600}.card-subtitle{color:var(--text-secondary);margin-top:2px;font-size:13px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:all var(--transition);padding:20px}.stat-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.stat-card-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:600}.stat-card-value{color:var(--text-primary);font-size:28px;font-weight:700;line-height:1.2}.stat-card-sub{color:var(--text-tertiary);margin-top:4px;font-size:13px}.progress-bar{background:var(--bg-tertiary);border-radius:3px;width:100%;height:6px;margin-top:12px;overflow:hidden}.progress-fill{height:100%;transition:width var(--transition-slow);background:linear-gradient(90deg, var(--accent-primary), var(--accent-secondary));border-radius:3px}.progress-fill.warning{background:linear-gradient(90deg, var(--status-warning), #d97706)}.progress-fill.danger{background:linear-gradient(90deg, var(--status-error), #dc2626)}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);white-space:nowrap;border:none;align-items:center;gap:8px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:500;display:inline-flex}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--shadow-glow)}.btn-secondary{color:var(--accent-primary);border:1px solid var(--accent-primary);background:0 0}.btn-secondary:hover{background:var(--accent-glow)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-danger{color:var(--status-error);border:1px solid var(--status-error);background:0 0}.btn-danger:hover{background:var(--status-error-bg)}.btn-sm{padding:6px 12px;font-size:13px}.btn-icon{border-radius:var(--radius-sm);padding:8px}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{color:var(--text-secondary);font-size:13px;font-weight:500}.form-input,.form-select{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);transition:border-color var(--transition);outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:14px}.form-input:focus,.form-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.form-input::placeholder{color:var(--text-tertiary)}.form-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='%2394a3b8' d='M6 8.5L1 3.5h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.table-wrapper{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}thead{background:var(--bg-tertiary)}th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;padding:12px 16px;font-size:12px;font-weight:600}td{border-top:1px solid var(--border-subtle);color:var(--text-primary);padding:12px 16px}tr:hover td{background:var(--accent-glow)}.badge{border-radius:99px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-success{background:var(--status-success-bg);color:var(--status-success)}.badge-warning{background:var(--status-warning-bg);color:var(--status-warning)}.badge-error{background:var(--status-error-bg);color:var(--status-error)}.badge-info{background:var(--status-info-bg);color:var(--status-info)}.badge-default{background:var(--bg-tertiary);color:var(--text-secondary)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:fadeIn var(--transition-fast) ease;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:500px;max-height:90vh;box-shadow:var(--shadow-modal);animation:slideUp var(--transition) ease;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.modal-title{font-size:18px;font-weight:600}.modal-close{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition);background:0 0;border:none;padding:4px;font-size:20px}.modal-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.modal-body{padding:20px 24px}.modal-footer{justify-content:flex-end;gap:8px;padding:0 24px 20px;display:flex}.toast-container{z-index:2000;flex-direction:column;gap:8px;display:flex;position:fixed;top:16px;right:16px}.toast{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-card);animation:slideIn var(--transition) ease;align-items:center;gap:8px;padding:12px 16px;font-size:14px;display:flex}.toast-success{border-left:3px solid var(--status-success)}.toast-error{border-left:3px solid var(--status-error)}.drag-handle{cursor:grab;color:var(--text-tertiary);-webkit-user-select:none;user-select:none;padding:4px;font-size:16px}.drag-handle:active{cursor:grabbing}.sortable-ghost{opacity:.4;background:var(--accent-glow)!important;border:1px dashed var(--accent-primary)!important}.bottom-nav{height:var(--bottomnav-height);background:var(--bg-elevated);border-top:1px solid var(--border-subtle);z-index:100;display:none;position:fixed;bottom:0;left:0;right:0}.bottom-nav-items{height:100%;display:flex}.bottom-nav-item{color:var(--text-secondary);transition:color var(--transition);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-family:inherit;font-size:10px;text-decoration:none;display:flex}.bottom-nav-item.active{color:var(--accent-primary)}.bottom-nav-item-icon{font-size:20px}@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(100px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--border-default);border-top-color:var(--accent-primary);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}@media (width<=1023px){.app-sidebar{display:none}.bottom-nav{display:block}.app-content{padding:16px;padding-bottom:calc(var(--bottomnav-height) + 16px)}}@media (width<=767px){.stat-grid{grid-template-columns:1fr 1fr;gap:8px}.modal-content{border-radius:var(--radius-lg);max-width:100%}.app-topbar{padding:0 16px}.app-content{padding:12px;padding-bottom:calc(var(--bottomnav-height) + 12px)}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.text-sm{font-size:13px}.text-muted{color:var(--text-secondary)}.text-right{text-align:right}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.w-full{width:100%}.cursor-pointer{cursor:pointer}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.page-title{font-size:22px;font-weight:700}.login-wrapper{background:var(--bg-primary);justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:400px;box-shadow:var(--shadow-modal);text-align:center;padding:40px}.login-icon{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));border-radius:var(--radius-lg);justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;font-size:24px;display:flex}.login-title{margin-bottom:8px;font-size:22px;font-weight:700}.login-subtitle{color:var(--text-secondary);margin-bottom:24px;font-size:14px}.login-error{background:var(--status-error-bg);color:var(--status-error);border-radius:var(--radius-md);margin-bottom:16px;padding:10px 14px;font-size:13px}
