.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--page-bg);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.login-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.login-logo{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:transparent;flex:0 0 auto}.login-logo img{width:100%;height:100%;object-fit:contain;display:block}.login-title{margin:0;font-size:22px;font-weight:600;letter-spacing:.02em;color:var(--text-primary)}.login-subtitle{margin:2px 0 0;font-size:13px;color:var(--text-muted)}.login-form{margin-top:8px;display:flex;flex-direction:column;gap:10px}.form-group{display:flex;flex-direction:column;gap:4px}.form-input{border-radius:10px;border:1px solid var(--border-subtle);background:var(--input-bg);padding:8px 10px;font-size:14px;color:var(--text-primary);outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary);background:var(--input-bg)}.form-error{margin:4px 0 0;font-size:13px;color:var(--text-error)}.login-button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 15px 35px #4f46e58c}.login-button:active:not(:disabled){transform:translateY(0);box-shadow:0 8px 20px #4f46e580}.login-button:disabled{opacity:.7;cursor:default}.login-helper{margin-top:10px;font-size:12px;text-align:center;color:var(--text-muted)}.login-link{color:var(--primary);text-decoration:underline;font-weight:600}.login-link:hover{color:var(--primary);filter:brightness(1.1)}@media(max-width:480px){.login-card{padding:22px 18px 18px}.login-title{font-size:20px}}.admin-btn{font-family:inherit;border-radius:999px;border:1px solid transparent;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .12s ease,box-shadow .12s ease,opacity .12s ease,filter .12s ease}.admin-btn-primary{width:100%;padding:9px 12px;font-size:14px;font-weight:600;border:none;background:var(--btn-gradient);color:#fff;box-shadow:0 12px 30px #4f46e573}.admin-btn-primary:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 16px 40px #4f46e599}.admin-btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 8px 22px #4f46e573}.admin-btn-primary:disabled{opacity:.6;cursor:default;box-shadow:none}.admin-btn-secondary{padding:4px 10px;font-size:12px;border-radius:999px;border:1px solid var(--admin-btn-secondary-border);background:var(--admin-btn-secondary-bg);color:var(--admin-btn-secondary-text);margin-right:6px}.admin-btn-secondary:hover:not(:disabled){background:var(--admin-btn-secondary-bg-hover);border-color:var(--admin-btn-secondary-border-hover);transform:translateY(-1px)}.admin-btn-small-primary{padding:4px 10px;font-size:12px;border-radius:999px;border:none;margin-right:6px;background:var(--btn-gradient);color:#fff;box-shadow:0 8px 18px #4f46e573}.admin-btn-small-primary:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 12px 26px #4f46e599}.admin-btn-ghost{padding:4px 10px;font-size:12px;border-radius:999px;border:1px solid var(--admin-btn-ghost-border);background:transparent;color:var(--admin-btn-ghost-text);margin-right:6px}.admin-btn-ghost:hover:not(:disabled){background:var(--admin-btn-ghost-hover-bg);border-color:var(--admin-btn-ghost-border-hover);transform:translateY(-1px)}.admin-btn-danger{padding:4px 10px;font-size:12px;border-radius:999px;border:1px solid var(--admin-btn-danger-border);background:var(--admin-btn-danger-bg);color:var(--admin-btn-danger-text)}.admin-btn-danger:hover:not(:disabled){background:var(--admin-btn-danger-bg-hover);border-color:var(--admin-btn-danger-border-hover);transform:translateY(-1px)}.admin-btn-disabled,.admin-btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important;box-shadow:none!important}:root{--mode: dark;--primary: #4f46e5;--page-bg: radial-gradient( circle at top left, #4f46e5 0, #1e293b 40%, #020617 100% );--card-bg: rgba(15, 23, 42, .95);--text-primary: #e5e7eb;--text-muted: #9ca3af;--border-subtle: rgba(148, 163, 184, .25);--input-bg: #020617;--btn-gradient: linear-gradient(135deg, #4f46e5, #22c55e);--card-shadow: 0 18px 45px rgba(0, 0, 0, .45);--header-blur-bg: rgba(15, 23, 42, .9);--admin-btn-secondary-bg: #0b1224;--admin-btn-secondary-bg-hover: #111827;--admin-btn-secondary-border: #4b5563;--admin-btn-secondary-border-hover: #6b7280;--admin-btn-secondary-text: #e5e7eb;--admin-btn-ghost-text: #e5e7eb;--admin-btn-ghost-border: #4b5563;--admin-btn-ghost-border-hover: #6b7280;--admin-btn-ghost-hover-bg: #0b1224;--table-header-bg: rgba(15, 23, 42, .85);--table-row-border: rgba(31, 41, 55, .9);--user-status-active-bg: rgba(22, 163, 74, .2);--user-status-active-text: #4ade80;--user-status-blocked-bg: rgba(239, 68, 68, .15);--user-status-blocked-text: #fca5a5;--admin-btn-danger-bg: #991b1b;--admin-btn-danger-bg-hover: #dc2626;--admin-btn-danger-border: #7f1d1d;--admin-btn-danger-border-hover: #ef4444;--admin-btn-danger-text: #fee2e2;--text-error: #fecaca;--text-success: #bbf7d0;--warning-bg: rgba(234, 179, 8, .12);--warning-border: rgba(234, 179, 8, .5);--warning-text: #facc15;--avatar-bg: #0b1224;--avatar-text: #e5e7eb;--profile-role-bg: rgba(59, 130, 246, .15);--profile-role-text: #bfdbfe;--profile-dept-bg: rgba(148, 163, 184, .2);--profile-dept-text: #e5e7eb}:root[data-mode=light]{--mode: light;--primary: #2563eb;--page-bg: radial-gradient( circle at top left, #eff6ff 0, #dbeafe 40%, #f9fafb 100% );--card-bg: rgba(255, 255, 255, .96);--text-primary: #0f172a;--text-muted: #6b7280;--border-subtle: rgba(148, 163, 184, .45);--input-bg: #f9fafb;--btn-gradient: linear-gradient(135deg, #2563eb, #22c55e);--card-shadow: 0 12px 30px rgba(15, 23, 42, .15);--header-blur-bg: rgba(255, 255, 255, .9);--admin-btn-secondary-bg: #eef2ff;--admin-btn-secondary-bg-hover: #e2e8f0;--admin-btn-secondary-border: #cbd5e1;--admin-btn-secondary-border-hover: #94a3b8;--admin-btn-secondary-text: #0f172a;--admin-btn-ghost-text: #0f172a;--admin-btn-ghost-border: #cbd5e1;--admin-btn-ghost-border-hover: #94a3b8;--admin-btn-ghost-hover-bg: #f1f5f9;--table-header-bg: rgba(241, 245, 249, .9);--table-row-border: rgba(148, 163, 184, .45);--user-status-active-bg: rgba(34, 197, 94, .14);--user-status-active-text: #15803d;--user-status-blocked-bg: rgba(239, 68, 68, .12);--user-status-blocked-text: #b91c1c;--admin-btn-danger-bg: #fef2f2;--admin-btn-danger-bg-hover: #fee2e2;--admin-btn-danger-border: #fecdd3;--admin-btn-danger-border-hover: #fca5a5;--admin-btn-danger-text: #7f1d1d;--text-error: #b91c1c;--text-success: #15803d;--warning-bg: rgba(234, 179, 8, .12);--warning-border: #facc15;--warning-text: #854d0e;--avatar-bg: #e2e8f0;--avatar-text: #0f172a;--profile-role-bg: rgba(37, 99, 235, .12);--profile-role-text: #1d4ed8;--profile-dept-bg: rgba(148, 163, 184, .2);--profile-dept-text: #374151}.pboard-modal{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.6) transparent}.pboard-modal::-webkit-scrollbar{width:10px}.pboard-modal::-webkit-scrollbar-track{background:transparent;border-radius:999px}.pboard-modal::-webkit-scrollbar-thumb{background:#94a3b899;border-radius:999px;border:2px solid transparent;background-clip:padding-box}body{margin:0;min-height:100vh;background:var(--page-bg);color:var(--text-primary);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app-loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--page-bg);z-index:9999}.app-spinner{width:44px;height:44px;border-radius:50%;border:3px solid rgba(148,163,184,.35);border-top-color:var(--primary);animation:spin .9s linear infinite;box-shadow:var(--card-shadow)}@keyframes spin{to{transform:rotate(360deg)}}input,select,textarea{max-width:100%;box-sizing:border-box}select{-webkit-appearance:none;appearance:none;background-image:none;box-shadow:none;background:var(--input-bg) url("data:image/svg+xml,%3Csvg width='14' height='9' viewBox='0 0 14 9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5 7 7.5 13 1.5' stroke='%2394a3b8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center;padding-right:32px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--page-bg);font-family:inherit}.login-card{width:100%;max-width:420px;background:var(--card-bg);border-radius:16px;padding:28px 24px 24px;box-shadow:var(--card-shadow);color:var(--text-primary);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.form-label{font-size:13px;color:var(--text-muted)}.form-input{width:100%;max-width:100%;border-radius:10px;border:1px solid var(--border-subtle);background:var(--input-bg);padding:8px 10px;font-size:14px;color:var(--text-primary);outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.form-input::placeholder{color:#6b7280}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 1px #818cf8cc}.login-button{margin-top:8px;border:none;border-radius:999px;padding:9px 12px;font-size:14px;font-weight:600;background:var(--btn-gradient);color:#fff;cursor:pointer;width:100%;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;box-shadow:0 12px 30px #4f46e566}.board-scroll::-webkit-scrollbar{height:10px;width:10px}.board-scroll::-webkit-scrollbar:horizontal{height:10px}.board-scroll::-webkit-scrollbar-track{background:var(--card-bg);border-radius:999px}.board-scroll::-webkit-scrollbar-track-piece{background:var(--card-bg);border-radius:999px}.board-scroll::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#4f46e5,#22c55e);background-color:#4f46e5;border-radius:999px;border:2px solid var(--card-bg);background-clip:padding-box}.board-scroll::-webkit-scrollbar-thumb:horizontal{background:linear-gradient(135deg,#4f46e5,#22c55e);background-color:#4f46e5;border-radius:999px;border:2px solid var(--card-bg);background-clip:padding-box}.board-scroll::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#4338ca,#16a34a)}.board-scroll{scrollbar-width:thin;scrollbar-color:#4f46e5 var(--card-bg)}
