:root{--login-bg:linear-gradient(135deg, #0f172a 0%, #111827 45%, #1e293b 100%);--login-card-bg:#111827e0;--login-card-border:#94a3b82e;--login-card-shadow:0 24px 60px #0f172a61;--login-text:#e5e7eb;--login-text-muted:#94a3b8;--login-text-soft:#cbd5e1;--login-primary:#22c55e;--login-primary-hover:#16a34a;--login-primary-active:#15803d;--login-surface:#1e293bb8;--login-surface-strong:#1e293beb;--login-surface-hover:#334155eb;--login-border:#94a3b833;--login-border-strong:#94a3b852;--login-danger:#f87171;--login-danger-bg:#7f1d1d52;--login-focus:#38bdf8;--login-radius-xl:24px;--login-radius-lg:16px;--login-radius-md:12px;--login-radius-sm:10px;--login-transition:.18s ease}.login-page{background:radial-gradient(circle at top left, #22c55e24, transparent 28%), radial-gradient(circle at bottom right, #38bdf81f, transparent 30%), var(--login-bg);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--login-card-border);border-radius:var(--login-radius-xl);background:var(--login-card-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);width:min(100%,440px);box-shadow:var(--login-card-shadow);color:var(--login-text);flex-direction:column;gap:18px;padding:32px 28px 28px;display:flex}.login-avatar{color:#dcfce7;background:linear-gradient(135deg,#22c55e38,#38bdf82e);border:1px solid #ffffff14;border-radius:999px;place-items:center;width:72px;height:72px;margin:0 auto 4px;display:grid}.login-title{text-align:center;color:#fff;margin:0;font-size:clamp(1.8rem,1.4rem + 1vw,2.2rem);line-height:1.1}.login-subtitle{text-align:center;color:var(--login-text-muted);margin:-4px 0 0;font-size:.98rem;line-height:1.5}.login-presets{grid-template-columns:1fr 1fr;gap:12px;margin-top:6px;display:grid}.login-preset-btn{border:1px solid var(--login-border);border-radius:var(--login-radius-md);background:var(--login-surface);min-height:46px;color:var(--login-text);font:inherit;cursor:pointer;transition:transform var(--login-transition), background var(--login-transition), border-color var(--login-transition), box-shadow var(--login-transition);justify-content:center;align-items:center;gap:8px;padding:11px 14px;font-weight:600;display:inline-flex}.login-preset-btn:hover{background:var(--login-surface-hover);border-color:var(--login-border-strong);transform:translateY(-1px)}.login-preset-btn:active{transform:translateY(0)}.login-preset-btn:focus-visible{outline:2px solid var(--login-focus);outline-offset:2px}.login-alert{border-radius:var(--login-radius-md);background:var(--login-danger-bg);color:#fecaca;border:1px solid #f8717159;padding:12px 14px;font-size:.95rem;line-height:1.45}.login-fields{flex-direction:column;gap:16px;display:flex}.field{flex-direction:column;gap:8px;display:flex}.input-shell{border:1px solid var(--login-border);border-radius:var(--login-radius-md);background:var(--login-surface-strong);min-height:54px;transition:border-color var(--login-transition), box-shadow var(--login-transition), background var(--login-transition);align-items:center;display:flex;position:relative}.input-shell:focus-within{border-color:var(--login-focus);box-shadow:0 0 0 3px #38bdf824}.input-icon{color:var(--login-text-muted);flex-shrink:0;margin-left:14px}.input-shell input{width:100%;min-width:0;color:var(--login-text);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:15px 14px 15px 12px}.input-shell input::placeholder{color:var(--login-text-muted)}.password-toggle{width:44px;height:44px;color:var(--login-text-muted);cursor:pointer;transition:background var(--login-transition), color var(--login-transition);background:0 0;border:0;border-radius:999px;place-items:center;margin-right:6px;display:grid}.password-toggle:hover{color:var(--login-text);background:#94a3b81f}.password-toggle:focus-visible{outline:2px solid var(--login-focus);outline-offset:2px}.field-error{color:#fca5a5;margin:0;font-size:.9rem;line-height:1.35}.login-btn{border-radius:var(--login-radius-md);background:linear-gradient(135deg, var(--login-primary), var(--login-primary-hover));color:#f0fdf4;min-height:52px;font:inherit;letter-spacing:.01em;cursor:pointer;transition:transform var(--login-transition), filter var(--login-transition), box-shadow var(--login-transition);border:0;margin-top:4px;font-weight:700;box-shadow:0 14px 30px #22c55e38}.login-btn:hover:not(:disabled){filter:brightness(1.03);transform:translateY(-1px)}.login-btn:active:not(:disabled){background:var(--login-primary-active);transform:translateY(0)}.login-btn:disabled{opacity:.72;cursor:not-allowed;box-shadow:none}.login-btn:focus-visible{outline:2px solid var(--login-focus);outline-offset:3px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=640px){.login-page{padding:16px}.login-card{border-radius:20px;width:100%;padding:24px 18px 20px}.login-presets{grid-template-columns:1fr}.login-title{font-size:1.7rem}.input-shell{min-height:52px}.login-btn{min-height:50px}}@media (prefers-reduced-motion:reduce){.login-preset-btn,.password-toggle,.login-btn,.input-shell{transition:none}}:root{--bg:#081120;--panel:#0f172aeb;--panel-2:#090f1efa;--border:#94a3b829;--text:#f8fafc;--muted:#94a3b8;--accent:#5b8cff;--accent-2:#7c3aed;--accent-hover:#4f7df5;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--sidebar-width:250px;--topbar-height:72px;--radius-xl:20px;--radius-lg:16px;--radius-md:12px}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:var(--text);background:radial-gradient(circle at 0 0,#5b8cff24,#0000 28%),radial-gradient(circle at 100% 0,#7c3aed1a,#0000 22%),linear-gradient(#07111f 0%,#091224 100%);font-family:Inter,Arial,sans-serif;animation:12s ease-in-out infinite alternate pageGlow}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border:0;border-radius:12px;padding:10px 14px;transition:transform .2s,filter .2s,box-shadow .2s;box-shadow:0 8px 24px #5b8cff38}button:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 12px 28px #5b8cff47}button:active{transform:translateY(0)}input,select{color:#fff;border:1px solid var(--border);background:#0f172aeb;border-radius:12px;outline:none;padding:12px 14px;transition:border-color .2s,box-shadow .2s,transform .2s}input:focus,select:focus{border-color:#5b8cffa6;box-shadow:0 0 0 4px #5b8cff24}.page-center{place-items:center;min-height:100vh;display:grid}.card{border:1px solid var(--border);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#111827f5,#0c1220f5);padding:24px;animation:.35s both fadeInUp;box-shadow:0 18px 40px #00000038}.app-shell{grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);background:linear-gradient(#0a0f1cfa,#0e1424f5);height:100vh;padding:24px 18px;position:sticky;top:0}.sidebar h2{letter-spacing:1px;background:linear-gradient(135deg,#fff,#8bb3ff);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 20px;font-size:1.25rem}.sidebar nav{gap:10px;display:grid}.sidebar nav a{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:12px;padding:12px 14px;transition:transform .2s,background .2s,color .2s,border-color .2s}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:#5b8cff1f;border-color:#5b8cff2e;transform:translate(4px)}.main-shell{grid-template-rows:var(--topbar-height) 1fr;min-width:0;display:grid}.topbar{z-index:10;height:var(--topbar-height);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#0c1220d1;justify-content:space-between;align-items:center;padding:0 22px;display:flex;position:sticky;top:0}.content{min-width:0;padding:22px}.page-stack{gap:20px;display:grid}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;animation:.35s both fadeInUp;display:flex}.page-header h1{margin:0;font-size:1.9rem}.page-header p{color:var(--muted);margin:6px 0 0}.page-actions{flex-wrap:wrap;gap:12px;display:flex}.stats-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.stat-card{isolation:isolate;border:1px solid var(--border);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#111827f0,#0c1220f0);gap:8px;padding:18px;transition:transform .25s,border-color .25s,box-shadow .25s;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 40px #00000038}.stat-card:before{content:"";filter:blur(18px);opacity:.7;z-index:-1;background:linear-gradient(120deg,#5b8cff33,#7c3aed2e,#22c55e24,#ec489929) 0 0/300% 300%;animation:8s infinite cardGradientShift;position:absolute;inset:-35%;transform:translateZ(0)}.stat-card:hover{border-color:#5b8cff3d;transform:translateY(-4px);box-shadow:0 16px 30px #0000002e}.stat-card:hover:before{opacity:.95;animation-duration:4s}.stat-card span{color:var(--muted);font-size:.92rem}.stat-card strong{text-shadow:0 0 18px #ffffff14;font-size:1.9rem}.stat-icon{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;background:#ffffff14;border:1px solid #ffffff1a;border-radius:12px;place-items:center;width:40px;height:40px;margin-bottom:14px;display:grid}.stat-card.tone-blue{border-color:#5b8cff3d}.stat-card.tone-blue .stat-icon{background:#5b8cff2e}.stat-card.tone-purple{border-color:#7c3aed3d}.stat-card.tone-purple .stat-icon{background:#7c3aed2e}.stat-card.tone-green{border-color:#22c55e38}.stat-card.tone-green .stat-icon{background:#22c55e2e}.stat-card.tone-pink{border-color:#ec489938}.stat-card.tone-pink .stat-icon{background:#ec48992e}.table-card{overflow:hidden}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;border-bottom:1px solid #94a3b81f;padding:14px 12px}th{color:#cbd5e1;background:#ffffff05;font-size:.92rem}tbody tr{transition:background .2s,transform .2s}tbody tr:hover{background:#5b8cff0f}td{color:#e2e8f0}.grid-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.grid-form input,.grid-form select{width:100%}.form-buttons,.row-actions{flex-wrap:wrap;gap:10px;display:flex}.checkbox-row{color:var(--text);align-items:center;gap:8px;display:flex}.alert{border-radius:12px;padding:12px 14px}.alert-error{color:#fecaca;background:#ef444424;border:1px solid #ef44444d}.fancy-form{max-width:760px;margin:0 auto}.form-head h2{margin:0;font-size:1.5rem}.form-head p{color:var(--muted);margin:6px 0 0}.member-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;display:grid}.field{gap:8px;display:grid}.field label{color:#cbd5e1;font-size:.92rem}.field input,.field select{border-radius:12px;width:100%;padding:12px 14px}.upload-field{grid-column:span 2}.upload-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#5b8cff,#7c3aed);border-radius:12px;justify-content:center;align-items:center;width:fit-content;padding:12px 18px;font-weight:600;transition:transform .2s,filter .2s;display:inline-flex}.upload-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.upload-hint{color:var(--muted);font-size:.9rem}.secondary-btn{background:#1f2937}.secondary-btn:hover{background:#374151}.full-row{grid-column:span 2}.login-card{background:#0a101ef0;border:1px solid #94a3b829;border-radius:30px;grid-template-columns:minmax(320px,.95fr) minmax(420px,1.05fr);width:min(1120px,100% - 32px);min-height:580px;padding:0;display:grid;overflow:hidden;box-shadow:0 30px 90px #0000006b}.login-card:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#5b8cff0f,#7c3aed08);position:absolute;inset:1px}.login-card>*{z-index:1;position:relative}.login-visual{background:radial-gradient(circle at top,#5b8cff47,#0000 35%),linear-gradient(#0a0f1cf5,#070b16fa);border-right:1px solid #94a3b81f;flex-direction:column;justify-content:space-between;gap:24px;padding:56px 52px;display:flex}.login-visual h2{letter-spacing:-.05em;margin:0;font-size:2.2rem}.login-visual p{color:#aab6c9;max-width:34ch;margin:14px 0 0;line-height:1.7}.login-badge{color:#d8e3ff;background:#5b8cff24;border:1px solid #5b8cff33;border-radius:999px;width:fit-content;margin-bottom:16px;padding:8px 12px;font-size:.86rem;font-weight:600;display:inline-flex}.login-card-art{gap:14px;margin-top:28px;display:grid}.login-card-art .art-row{opacity:.9;background:linear-gradient(90deg,#5b8cfff2,#7c3aedf2);border-radius:999px;height:12px}.login-card-art .art-row:nth-child(2){opacity:.7;width:78%}.login-card-art .art-row:nth-child(3){opacity:.5;width:62%}.login-form-panel{flex-direction:column;justify-content:center;padding:56px 52px;display:flex}.login-form-panel .form-head p{margin-bottom:22px}.login-title{letter-spacing:-.05em;margin:0 0 10px;font-size:2.4rem}.form-head p{color:#aab6c9;margin:0 0 24px;font-size:.98rem;line-height:1.5}.login-fields{gap:20px;display:grid}.field{gap:8px;margin:0;display:grid}.field label{color:#d6deea;letter-spacing:.01em;font-size:.88rem;font-weight:600}.input-icon-wrap{position:relative}.input-icon{color:#8fa1bc;pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.input-icon-wrap input,.input-icon-wrap select{color:#f8fafc;background:#0a1222e0;border:1px solid #94a3b829;border-radius:16px;width:100%;min-height:54px;padding-left:46px;padding-right:52px;box-shadow:inset 0 1px #ffffff05}.input-icon-wrap input::placeholder{color:#6f7d93}.input-icon-wrap input:focus,.input-icon-wrap select:focus{border-color:#5b8cff99;box-shadow:0 0 0 4px #5b8cff1f}.password-wrap{position:relative}.password-wrap input{padding-right:52px}.password-toggle{width:34px;height:34px;box-shadow:none;color:#95a3b8;z-index:2;background:0 0;border-radius:10px;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.password-toggle:hover{box-shadow:none;background:#ffffff0f}.login-btn{background:linear-gradient(135deg,#5b8cff 0%,#7c3aed 100%);border-radius:16px;min-height:54px;margin-top:6px;font-weight:700;box-shadow:0 18px 30px #5b8cff2e}.login-btn:hover{filter:brightness(1.06)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pageGlow{0%{filter:saturate()}to{filter:saturate(1.12)}}@keyframes cardGradientShift{0%{background-position:0%;transform:scale(1)rotate(0)}50%{background-position:100%;transform:scale(1.08)rotate(8deg)}to{background-position:0%;transform:scale(1)rotate(0)}}@media (width<=1024px){.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.login-card{grid-template-columns:1fr;min-height:auto}.login-visual{border-bottom:1px solid #94a3b81f;border-right:0}}@media (width<=768px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border);height:auto;position:relative}.main-shell{grid-template-rows:auto 1fr}.topbar{position:relative}.content{padding:16px}.stats-row,.grid-form,.member-form{grid-template-columns:1fr}.upload-field,.full-row{grid-column:span 1}}@media (width<=480px){.login-card{border-radius:28px;width:100%;padding:28px 20px 22px}.login-title{font-size:1.8rem}.row-actions{flex-direction:row}}.alert-success{color:#bbf7d0;background:#22c55e24;border:1px solid #22c55e4d}.stat-note{color:var(--muted);font-size:.82rem}.dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px;display:grid}.dashboard-summary-card{gap:18px;display:grid}.section-head{align-items:flex-start;gap:12px;display:flex}.section-head h2{margin:0;font-size:1.2rem}.section-head p{color:var(--muted);margin:6px 0 0}.section-head-spaced{flex-wrap:wrap;justify-content:space-between;margin-bottom:16px}.summary-list{gap:12px;display:grid}.summary-item{border-radius:var(--radius-lg);background:#ffffff08;border:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.summary-item span{color:var(--muted);font-size:.95rem}.summary-item strong{font-size:1.05rem}.quick-links-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.quick-link-card{border-radius:var(--radius-lg);background:#ffffff08;border:1px solid #ffffff14;gap:12px;padding:16px;transition:transform .2s,border-color .2s,background .2s;display:grid}.quick-link-card:hover{background:#5b8cff14;border-color:#5b8cff3d;transform:translateY(-2px)}.quick-link-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.quick-link-icon{background:#5b8cff24;border:1px solid #5b8cff29;border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.quick-link-arrow{color:var(--muted)}.quick-link-card strong{font-size:1rem}.quick-link-card p{color:var(--muted);margin:0;font-size:.94rem;line-height:1.5}.inline-link{color:#cbd5e1;font-weight:600;transition:color .2s,opacity .2s}.inline-link:hover{color:#fff}.state-text{color:var(--muted);margin:0}.empty-state-lite{text-align:center;min-height:160px;color:var(--muted);place-items:center;gap:10px;display:grid}.empty-state-lite p{margin:0}.table-primary-cell strong{color:#f8fafc}.status-badge{text-transform:capitalize;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-warning{color:#fcd34d;background:#f59e0b24}.badge-success{color:#86efac;background:#22c55e24}.badge-neutral{color:#cbd5e1;background:#94a3b829}.inline-action-btn{align-items:center;gap:8px;display:inline-flex}.inline-action-btn:disabled{opacity:.7;cursor:not-allowed}@media (width<=1024px){.dashboard-grid{grid-template-columns:1fr}}@media (width<=768px){.quick-links-grid{grid-template-columns:1fr}.section-head,.section-head-spaced,.summary-item{flex-direction:column;align-items:flex-start}}.login-support-notice{text-align:center;border-top:1px solid #ffffff0f;flex-direction:column;gap:.6rem;margin-top:1.75rem;padding-top:1.25rem;display:flex}.support-text{color:#94a3b8bf;margin:0;font-size:.76rem;line-height:1.4}.support-row-inline{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;font-size:.78rem;display:flex}.support-link-item{color:#94a3b8b3;text-decoration:none;transition:opacity .2s}.support-link-item span{color:#22c55e;margin-left:.2rem;font-weight:500}.support-link-item:hover span{text-decoration:underline}.support-separator{color:#ffffff26;-webkit-user-select:none;user-select:none;font-weight:300}
