:root{--background: #000000;--surface: #18181b;--surface-alt: #1f2023;--border: #2a2b2e;--text: #ffffff;--text-muted: #9ca3af;--text-faint: #6b7280;--accent: #22d3ee;--accent-text: #001014;--amber: #f59e0b;--danger: #ef4444;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-pill: 999px}.swal-themed-popup{border:1px solid var(--border);border-radius:var(--radius-lg)!important;font-family:inherit}.swal-themed-popup .swal2-title,.swal-themed-popup .swal2-html-container{color:var(--text)}.swal-themed-confirm,.swal-themed-cancel{border-radius:var(--radius-pill)!important;font-weight:800!important;box-shadow:none!important}.swal-themed-confirm{color:var(--accent-text)!important}.swal-themed-cancel{color:var(--text-muted)!important;border:1px solid var(--border)!important}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--background);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:#0b0b0c;border-right:1px solid var(--border);padding:24px 16px;display:flex;flex-direction:column;gap:24px}.sidebar-brand{font-weight:800;font-size:18px;color:var(--text)}.sidebar-brand span{color:var(--accent)}.sidebar-nav{display:flex;flex-direction:column;gap:4px}.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--text-muted);text-decoration:none;font-weight:600;font-size:14px}.sidebar-link:hover{background:var(--surface);color:var(--text)}.sidebar-link.active{background:var(--surface);color:var(--accent)}.sidebar-footer{margin-top:auto}.content-area{--background: #f0f2f5;--surface: #ffffff;--surface-alt: #f4f5f9;--border: #e2e5ec;--text: #14161a;--text-muted: #4b5563;--text-faint: #8a93a8;flex:1;display:flex;flex-direction:column;min-height:100vh;background:var(--background);color:var(--text)}.topbar{height:64px;flex-shrink:0;display:flex;align-items:center;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border);font-weight:700}.main{flex:1;padding:32px 40px;max-width:960px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.page-title{font-size:26px;font-weight:800;margin:0}.page-subtitle{color:var(--text-muted);font-size:14px;margin:4px 0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px;margin-bottom:16px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-weight:800;font-size:16px;margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1 / -1}.form-field label{font-size:12px;font-weight:700;color:var(--text-muted);letter-spacing:.3px}input,select,textarea{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:10px 12px;font-size:14px;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--radius-pill);padding:10px 20px;font-weight:800;font-size:14px;cursor:pointer;font-family:inherit}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.btn-sm{padding:6px 12px;font-size:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:none}.row-title{font-weight:700;font-size:14px;margin:0}.row-meta{color:var(--text-faint);font-size:12px;margin:2px 0 0}.row-actions{display:flex;gap:8px;flex-shrink:0}.badge{display:inline-block;background:var(--surface-alt);color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.4px;padding:4px 10px;border-radius:var(--radius-pill)}.badge-muted{color:var(--text-faint)}.empty-state{color:var(--text-faint);font-size:14px;padding:24px 0;text-align:center}.error-text{color:var(--danger);font-size:13px}.login-shell{min-height:100vh;display:flex}.login-brand{flex:1;min-width:320px;background:var(--background);padding:48px;display:flex;flex-direction:column;border-right:1px solid var(--border)}.login-brand-logo{width:64px;height:64px;object-fit:contain;margin-bottom:20px}.login-brand h1{font-size:28px;margin:0 0 6px}.login-brand-tagline{color:var(--text-muted);font-size:14px;margin:0 0 40px}.login-feature{display:flex;align-items:flex-start;gap:14px;margin-bottom:24px}.login-feature-icon{width:38px;height:38px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);display:flex;align-items:center;justify-content:center}.login-feature-title{font-weight:700;font-size:14px;margin:0 0 2px}.login-feature-desc{color:var(--text-faint);font-size:12px;margin:0}.login-brand-footer{margin-top:auto;color:var(--text-faint);font-size:12px}.login-panel{flex:1;min-width:320px;background:var(--surface);display:flex;align-items:center;justify-content:center;padding:32px}.login-card{width:100%;max-width:380px}.login-card h2{font-size:24px;margin:0 0 6px}.login-card>p{color:var(--text-muted);font-size:14px;margin:0 0 28px}.login-card form{display:flex;flex-direction:column;gap:18px}.login-input-wrap{position:relative;display:flex;align-items:center}.login-input-wrap svg:first-child{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-faint);pointer-events:none}.login-input-wrap input{width:100%;padding-left:38px;padding-right:38px}.login-input-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;padding:0;line-height:0;color:var(--text-faint);cursor:pointer;display:flex;align-items:center;justify-content:center}.login-help{color:var(--text-faint);font-size:13px;text-align:center;margin-top:32px}.tabbar{display:flex;gap:8px;background:var(--surface);border-radius:var(--radius-pill);padding:4px;margin-bottom:20px;width:fit-content}.tabbar button{border:none;background:transparent;color:var(--text-muted);font-weight:700;font-size:13px;padding:8px 16px;border-radius:var(--radius-pill);cursor:pointer;font-family:inherit}.tabbar button.active{background:var(--surface-alt);color:var(--accent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0b0f99;display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.modal-box{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000059}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:16px;font-weight:800;color:var(--text)}.modal-close-btn{background:none;border:none;color:var(--text-faint);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex}.modal-close-btn:hover{background:var(--surface-alt);color:var(--text)}.modal-body{padding:20px 22px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--border)}.user-card{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-sm)}.user-avatar{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex-shrink:0}.user-info{flex:1;min-width:0}.user-name{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:11px;color:var(--text-faint)}.user-logout-btn{width:32px;height:32px;flex-shrink:0;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-faint);cursor:pointer;display:flex;align-items:center;justify-content:center}.user-logout-btn:hover{background:var(--surface-alt);color:var(--danger)}
