:root{--brand-50:#e8f0fb;--brand-100:#d3e1f7;--brand-200:#a9c4ef;--brand-300:#6ea8e0;--brand-400:#397ef0;--brand-500:#1d4f8c;--brand-600:#163a63;--brand-700:#2b3674;--brand-800:#15294a;--brand-900:#0f1f38;--brand-950:#0a1428;--brand-primary:#1d4f8c;--brand-primary-soft:rgba(29,79,140,0.12);--brand-accent:#397ef0;--brand-dark:#2b3674;--brand-surface:rgba(29,79,140,0.8);--violet-400:#8fb6ef;--violet-500:#6ea8e0;--violet-600:#4f8fd6;--sidebar-base:#0f2a4a;--sidebar-deep:#0a1f38;--sidebar-dark:#061225;--sidebar-glow:rgba(57,126,240,0.18);--sidebar-surface:rgba(255,255,255,0.04);--sidebar-surface-hover:rgba(255,255,255,0.08);--sidebar-surface-active:rgba(29,79,140,0.18);--sidebar-accent:linear-gradient(180deg,var(--brand-400),var(--violet-500));--sidebar-accent-glow:0 0 12px rgba(57,126,240,0.45);--sidebar-text:rgba(255,255,255,0.88);--sidebar-text-hover:rgba(255,255,255,0.98);--sidebar-text-active:#fff;--sidebar-text-muted:rgba(255,255,255,0.50);--sidebar-border:rgba(255,255,255,0.08);--sidebar-divider:rgba(255,255,255,0.05);--success-50:#ecfdf5;--success-100:#d1fae5;--success-500:#10b981;--success-600:#059669;--success-700:#047857;--warning-50:#fffbeb;--warning-100:#fef3c7;--warning-500:#f59e0b;--warning-600:#d97706;--warning-700:#b45309;--danger-50:#fef2f2;--danger-100:#fee2e2;--danger-500:#ef4444;--danger-600:#dc2626;--danger-700:#b91c1c;--info-50:#eff6ff;--info-500:#397ef0;--info-600:#1d4f8c;--neutral-50:#f8fafc;--neutral-100:#f1f5f9;--neutral-200:#e2e8f0;--neutral-300:#cbd5e1;--neutral-400:#94a3b8;--neutral-500:#64748b;--neutral-600:#475569;--neutral-700:#334155;--neutral-800:#1e293b;--neutral-900:#0f172a;--surface-bg:#f5f7fa;--surface-card:#fff;--surface-hover:#eef2f7;--surface-overlay:rgba(15,23,42,0.45);--surface-disabled:#f1f5f9;--bg-app:#f5f7fa;--bg-page:#f5f7fa;--bg-card:#fff;--bg-gradient-start:#eaf1fb;--bg-gradient-mid:#f5f7fa;--bg-gradient-end:#fff;--bg-accent-1:rgba(29,79,140,0.04);--bg-accent-2:rgba(57,126,240,0.03);--bg-decorative-dot:rgba(29,79,140,0.05);--bg-decorative-line:rgba(29,79,140,0.04);--text-primary:#1f2937;--text-secondary:#475569;--text-tertiary:#64748b;--text-inverse:#fff;--text-link:#1d4f8c;--text-link-hover:#397ef0;--border-light:#e5e7eb;--border-default:#cbd5e1;--border-focus:#397ef0;--border-subtle:#e5e7eb;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;--font-mono:"JetBrains Mono","Cascadia Code",Consolas,monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-2xl:22px;--radius-full:9999px;--shadow-xs:0 1px 2px rgba(15,23,42,0.04);--shadow-sm:0 1px 3px rgba(15,23,42,0.05),0 1px 2px rgba(15,23,42,0.03);--shadow-md:0 4px 12px -2px rgba(15,23,42,0.08),0 2px 6px -2px rgba(15,23,42,0.04);--shadow-lg:0 12px 24px -4px rgba(15,23,42,0.10),0 4px 8px -4px rgba(15,23,42,0.04);--shadow-xl:0 20px 40px -8px rgba(15,23,42,0.12),0 8px 16px -6px rgba(15,23,42,0.05);--shadow-2xl:0 32px 64px -12px rgba(15,23,42,0.18);--shadow-brand-sm:0 2px 8px rgba(29,79,140,0.20);--shadow-brand-md:0 4px 16px rgba(29,79,140,0.25);--shadow-brand-lg:0 8px 28px rgba(29,79,140,0.30);--radius-card:8px;--shadow-card:0 2px 8px rgba(15,23,42,0.06);--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-normal:250ms cubic-bezier(0.4,0,0.2,1);--transition-slow:400ms cubic-bezier(0.4,0,0.2,1);--transition-bounce:400ms cubic-bezier(0.34,1.56,0.64,1);--z-dropdown:100;--z-sidebar:200;--z-modal:1000;--z-toast:1100;--z-tooltip:1200;--sidebar-width:250px;--container-max:none;--content-padding-x:clamp(1.25rem,2.5vw,2.5rem);--content-padding-y:clamp(1rem,2vh,1.75rem);--grid-gap:clamp(1rem,1.5vw,2rem);--card-gap:clamp(0.75rem,1.2vw,1.5rem);--section-gap:clamp(1.5rem,2.5vw,3rem);--page-max-width:min(95vw,1920px);--glass-bg:rgba(255,255,255,0.7);--glass-border:rgba(255,255,255,0.2);--glass-blur:12px;--primary-color:var(--brand-500);--primary-dark:var(--brand-600);--primary-light:var(--brand-50);--secondary-color:var(--success-500);--secondary-dark:var(--success-600);--danger-color:var(--danger-500);--warning-color:var(--warning-500);--info-color:var(--info-500);--success-color:var(--success-500);--dark-color:var(--neutral-800);--light-color:var(--neutral-100);--border-color:var(--border-light);--text-color:var(--text-primary);--text-muted:var(--text-secondary);--bg-color:var(--surface-bg);--white:var(--surface-card);--color-primary:var(--brand-500);--color-primary-dark:var(--brand-600);--btn-height-sm:32px;--btn-height-md:40px;--btn-height-lg:48px;--btn-radius:var(--radius-md);--card-radius:var(--radius-lg);--card-top-line:linear-gradient(90deg,transparent,rgba(29,79,140,0.4),rgba(57,126,240,0.4),transparent);--card-hover-lift:-3px;--table-stripe-bg:rgba(29,79,140,0.03);--table-header-bg:linear-gradient(135deg,rgba(29,79,140,0.08),rgba(57,126,240,0.05));--form-input-height:42px;--form-input-focus-ring:0 0 0 3px rgba(29,79,140,0.14);--modal-width:500px;--modal-width-lg:800px;--modal-width-sm:360px;--badge-border-alpha:.25;--page-title-gradient:linear-gradient(135deg,#1d4f8c,#397ef0);--stat-number-gradient:linear-gradient(135deg,#1d4f8c,#397ef0);--sidebar-bg:linear-gradient(180deg,#0f2a4a,#0a1f38)}[data-theme="dark"]{--surface-bg:#0f172a;--surface-card:#1e293b;--surface-hover:#243044;--surface-overlay:rgba(0,0,0,0.7);--surface-disabled:#1b2536;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--text-tertiary:#64748b;--text-inverse:#0f172a;--text-link:#6ea8e0;--text-link-hover:#93c5fd;--border-light:#334155;--border-default:#475569;--border-subtle:#2a3647;--glass-bg:rgba(15,23,42,0.85);--glass-border:rgba(255,255,255,0.08);--glass-blur:16px;--bg-app:#0b1220;--bg-page:#0b1220;--bg-card:#1e293b;--bg-gradient-start:#0f1b30;--bg-gradient-mid:#0b1220;--bg-gradient-end:#0a1428;--bg-accent-1:rgba(57,126,240,0.05);--bg-accent-2:rgba(57,126,240,0.04);--table-header-bg:linear-gradient(135deg,rgba(29,79,140,0.25),rgba(57,126,240,0.12));--table-stripe-bg:rgba(57,126,240,0.05);--card-hover-shadow:0 12px 24px -4px rgba(0,0,0,0.40);--card-top-line:linear-gradient(90deg,transparent,rgba(57,126,240,0.5),rgba(29,79,140,0.4),transparent);--form-input-focus-ring:0 0 0 3px rgba(57,126,240,0.25);--shadow-card:0 2px 10px rgba(0,0,0,0.35);--sidebar-base:#0f2a4a;--sidebar-deep:#0a1f38;--sidebar-glow:rgba(57,126,240,0.20);--sidebar-text:rgba(255,255,255,0.88);--sidebar-surface-hover:rgba(255,255,255,0.10);--sidebar-surface-active:rgba(57,126,240,0.18);--sidebar-accent-glow:0 0 12px rgba(57,126,240,0.45)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{background:radial-gradient(ellipse 100% 70% at 10% 0,rgba(29,79,140,0.06) 0,transparent 60%),radial-gradient(ellipse 70% 50% at 90% 100%,rgba(57,126,240,0.05) 0,transparent 50%),radial-gradient(ellipse 50% 40% at 50% 30%,rgba(29,79,140,0.03) 0,transparent 50%),linear-gradient(180deg,var(--bg-gradient-start) 0,var(--bg-gradient-mid) 40%,var(--bg-gradient-end) 100%);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);min-height:100vh;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body::before{content:'';position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0;background-image:radial-gradient(circle,rgba(29,79,140,0.025) 1px,transparent 1px);background-size:28px 28px}.app-main,.app-sidebar,.site-footer,.ai-assistant{position:relative;z-index:1}img{max-width:100%;height:auto;display:block}a{color:var(--text-link);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--text-link-hover)}a:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-radius:var(--radius-xs)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--text-primary)}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h4{font-size:var(--text-md)}h5{font-size:var(--text-base)}h6{font-size:var(--text-sm)}p{margin-bottom:var(--space-3);color:var(--text-secondary)}ul,ol{margin-bottom:var(--space-3);padding-left:var(--space-5)}li{margin-bottom:var(--space-1);color:var(--text-secondary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--neutral-100);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:var(--radius-full);transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--brand-400)}*{scrollbar-width:thin;scrollbar-color:var(--neutral-300) var(--neutral-100)}::selection{background:rgba(29,79,140,0.15);color:var(--brand-900)}::-moz-selection{background:rgba(29,79,140,0.15);color:var(--brand-900)}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-header h1,.page-title{font-size:var(--text-2xl);font-weight:var(--font-extrabold);letter-spacing:-.03em;margin:0;line-height:1.3;background:var(--page-title-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--brand-900);filter:drop-shadow(0 1px 2px rgba(29,79,140,0.15));position:relative;display:inline-block}.page-header h1::before,.page-title::before{content:'';display:inline-block;width:5px;height:1.4em;vertical-align:middle;margin-right:var(--space-3);border-radius:var(--radius-xs);background:linear-gradient(180deg,var(--brand-500),var(--violet-500));box-shadow:0 0 8px rgba(29,79,140,0.4);-webkit-text-fill-color:initial}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid rgba(29,79,140,0.12);position:relative}.page-header::after{content:'';position:absolute;width:min(120px,30%);height:4px;background:linear-gradient(90deg,var(--brand-500),var(--violet-500),transparent);border-radius:var(--radius-xs);bottom:-2px;left:0}.page-actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.page-header h2,.card h2,.card-header h2,.section-header h2,h2.section-title,.modal-content h2,.content-box h2,.panel-header h2{color:var(--brand-950);font-weight:var(--font-bold)}.btn,.btn-primary,.btn-secondary,.btn-success,.btn-warning,.btn-danger,.btn-outline,.btn-cancel,.btn-sm,button[type="submit"],a.btn,input[type="submit"]{display:inline-flex;align-items:center;justify-content:center;text-align:center;vertical-align:middle;line-height:1.4;gap:var(--space-2);font-family:inherit;text-decoration:none;cursor:pointer;transition:all var(--transition-fast);user-select:none;white-space:nowrap}.btn{padding:var(--space-2) var(--space-5);border-radius:var(--btn-radius);font-size:var(--text-sm);font-weight:var(--font-medium);border:0;min-height:var(--btn-height-md)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);min-height:var(--btn-height-sm);border-radius:var(--radius-sm)}.btn-lg{padding:var(--space-3) var(--space-7);font-size:var(--text-md);min-height:var(--btn-height-lg);border-radius:var(--radius-lg)}.btn-primary{background:linear-gradient(135deg,var(--brand-500),var(--brand-600));color:var(--text-inverse);box-shadow:var(--shadow-brand-sm)}.btn-primary:hover{background:linear-gradient(135deg,var(--brand-600),var(--brand-700));color:var(--text-inverse);box-shadow:var(--shadow-brand-md);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0);box-shadow:var(--shadow-brand-sm)}.btn-success{background:linear-gradient(135deg,var(--success-500),var(--success-600));color:var(--text-inverse);box-shadow:0 2px 8px rgba(16,185,129,0.25)}.btn-success:hover{background:linear-gradient(135deg,var(--success-600),var(--success-700));box-shadow:0 4px 16px rgba(16,185,129,0.35);transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,var(--danger-500),var(--danger-600));color:var(--text-inverse);box-shadow:0 2px 8px rgba(239,68,68,0.25)}.btn-danger:hover{background:linear-gradient(135deg,var(--danger-600),var(--danger-700));box-shadow:0 4px 16px rgba(239,68,68,0.35);transform:translateY(-1px)}.btn-warning{background:linear-gradient(135deg,var(--warning-500),var(--warning-600));color:var(--text-inverse)}.btn-warning:hover{background:linear-gradient(135deg,var(--warning-600),var(--warning-700));transform:translateY(-1px)}.btn-info{background:linear-gradient(135deg,var(--info-500),var(--info-600));color:var(--text-inverse)}.btn-info:hover{background:linear-gradient(135deg,var(--info-600),var(--brand-700));transform:translateY(-1px)}.btn-secondary{background:linear-gradient(135deg,var(--neutral-500),var(--neutral-600));color:var(--text-inverse)}.btn-secondary:hover{background:linear-gradient(135deg,var(--neutral-600),var(--neutral-700));transform:translateY(-1px)}.btn-outline,.btn-outline-primary{background:var(--surface-card);border:1.5px solid var(--border-default);color:var(--text-secondary)}.btn-outline:hover,.btn-outline-primary:hover{background:var(--brand-50);border-color:var(--brand-400);color:var(--brand-600)}.btn-cancel{background:var(--surface-hover);border:1.5px solid var(--border-default);color:var(--text-secondary)}.btn-cancel:hover{background:var(--neutral-200);color:var(--text-primary)}.btn:disabled,.btn-primary:disabled,.btn-success:disabled,.btn-danger:disabled,.btn-warning:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;pointer-events:none}.btn i,.btn-sm i,.btn-lg i,.btn-primary i,.btn-outline i,.btn-success i,.btn-danger i{display:inline-flex;align-items:center;justify-content:center;line-height:1}.btn-group{display:inline-flex;gap:var(--space-2);flex-wrap:wrap}.application-detail .btn,.review-page .btn,.action-buttons .btn,.reg-request-actions .btn,.training-actions .btn{display:inline-flex;align-items:center;justify-content:center;text-align:center}.card,.stat-card,.growth-card,.info-card,.detail-card,.content-card,.section-card,.profile-card,.summary-card,.training-card,.observation-card,.mentorship-card,.practice-card,.form-card,.content-box,.evaluation-item,.stats-table-card,.journal-card,.review-form-card{padding:var(--space-6);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle);background:var(--surface-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));position:relative;transition:box-shadow var(--transition-normal),transform var(--transition-normal),border-color var(--transition-normal)}.card::before,.info-card::before,.training-card::before,.review-form-card::before,.form-card::before,.stat-card::before,.growth-card::before,.detail-card::before,.content-card::before,.section-card::before,.profile-card::before,.summary-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--card-top-line);border-radius:var(--card-radius) var(--card-radius) 0 0;pointer-events:none}.card:hover,.stat-card:hover,.growth-card:hover,.info-card:hover,.detail-card:hover,.content-card:hover,.section-card:hover,.profile-card:hover,.summary-card:hover,.training-card:hover,.observation-card:hover,.mentorship-card:hover,.practice-card:hover{box-shadow:0 8px 30px rgba(29,79,140,0.12),0 2px 8px rgba(15,23,42,0.06);transform:translateY(var(--card-hover-lift));border-color:rgba(29,79,140,0.2)}.card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);background:linear-gradient(135deg,rgba(29,79,140,0.03),rgba(57,126,240,0.02));border-radius:var(--card-radius) var(--card-radius) 0 0}.card-header h3,.card-header h4{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2);margin:0}.card-body{padding:var(--space-5)}.card-footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3)}.data-table,table.table,.table-responsive table,.list-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table th,table.table th,.list-table th{background:var(--table-header-bg);color:var(--text-primary);font-weight:var(--font-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-3) var(--space-4);text-align:center;border-bottom:2px solid rgba(29,79,140,0.15);white-space:nowrap}.data-table td,table.table td,.list-table td{padding:var(--space-3) var(--space-4);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:middle}.data-table tr:last-child td,table.table tr:last-child td,.list-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover,table.table tbody tr:hover,.list-table tbody tr:hover{background:rgba(29,79,140,0.04)}.table-striped tbody tr:nth-of-type(odd){background:var(--table-stripe-bg)}.table-striped tbody tr:nth-of-type(odd):hover{background:rgba(29,79,140,0.06)}.table-hover tbody tr:hover{background:rgba(29,79,140,0.04)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-md)}.table-responsive table{min-width:600px}.data-table td.text-center,table.table td.text-center{text-align:center}.data-table td.text-right,table.table td.text-right{text-align:right}.form-group input[type="text"],.form-group input[type="password"],.form-group input[type="email"],.form-group input[type="date"],.form-group input[type="datetime-local"],.form-group input[type="number"],.form-group input[type="tel"],.form-group input[type="url"],.form-group input[type="search"],.form-group select,.form-group textarea,.form-control{padding:var(--space-2) var(--space-3);border:1.5px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--surface-card);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);font-family:inherit;min-height:var(--form-input-height);width:100%;color:var(--text-primary)}.form-group textarea,textarea.form-control{min-height:80px;resize:vertical}.form-group select,select.form-control{cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvgxmlns='http://www.w3.org/2000/svg'width='12'height='12'viewBox='002424'fill='none'stroke='%2364748b'stroke-width='2'%3e%3cpolylinepoints='691215189'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-8)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.form-control:focus{outline:0;border-color:var(--brand-500);box-shadow:var(--form-input-focus-ring),0 0 12px rgba(29,79,140,0.06)}.form-group{margin-bottom:var(--space-4)}.form-group label,.form-label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);margin-bottom:var(--space-1)}.form-row{display:flex;gap:var(--space-4);flex-wrap:wrap}.form-row .form-group{flex:1;min-width:200px}.form-text{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.invalid-feedback{font-size:var(--text-xs);color:var(--danger-600);margin-top:var(--space-1);display:none}.form-group input.is-invalid ~ .invalid-feedback,.form-group select.is-invalid ~ .invalid-feedback,.form-group textarea.is-invalid ~ .invalid-feedback,.form-control.is-invalid ~ .invalid-feedback{display:block}.form-group input.is-invalid,.form-group select.is-invalid,.form-group textarea.is-invalid,.form-control.is-invalid{border-color:var(--danger-500)}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled,.form-control:disabled{background:var(--surface-disabled);cursor:not-allowed;opacity:.7}.form-group input[type="checkbox"],.form-group input[type="radio"]{min-height:auto;width:auto;margin-right:var(--space-2);cursor:pointer}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--surface-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-normal)}#changePasswordModal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none}#changePasswordModal.active{display:flex;opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s ease}#changePasswordModal.active .modal-overlay,.modal-overlay.show{opacity:1;visibility:visible}.modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none}.modal.active,.modal.show{display:flex;opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s ease}.modal-content{background:var(--surface-card);border-radius:var(--radius-xl);padding:0;max-width:var(--modal-width);width:90%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(15,23,42,0.15),0 0 0 1px rgba(29,79,140,0.05);border:1px solid rgba(29,79,140,0.08);position:relative;z-index:1;transform:scale(0.95);transition:transform var(--transition-normal)}.modal.active .modal-content,.modal.show .modal-content{transform:scale(1)}#changePasswordModal.active .modal-content{transform:scale(1)}.modal-lg .modal-content,.modal-large .modal-content{max-width:var(--modal-width-lg)}.modal-sm .modal-content{max-width:var(--modal-width-sm)}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:2px solid transparent;border-image:linear-gradient(90deg,transparent,rgba(29,79,140,0.2),transparent) 1;position:relative;display:flex;align-items:center;justify-content:space-between}.modal-header::after{content:'';position:absolute;bottom:0;left:var(--space-6);right:var(--space-6);height:2px;background:linear-gradient(90deg,transparent,rgba(29,79,140,0.15),transparent)}.modal-header h2,.modal-header h3{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);margin:0}.modal-body{padding:var(--space-6)}.modal-content>.form-group,.modal-content>p,.modal-content>div:not(.modal-header):not(.modal-body):not(.modal-footer){padding-left:var(--space-6);padding-right:var(--space-6)}.modal-content>.form-group:first-child,.modal-content>p:first-child{padding-top:var(--space-5)}.modal-content>.form-group:last-child,.modal-content>p:last-child{padding-bottom:var(--space-6)}.modal-footer{padding:var(--space-4) var(--space-6) var(--space-5);border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:var(--space-3)}.modal-close{background:0;border:0;font-size:var(--text-2xl);line-height:1;color:var(--text-tertiary);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.modal-close:hover{color:var(--text-primary);background:var(--surface-hover)}.modal-close:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}.badge{padding:3px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.4;vertical-align:middle;border:1px solid transparent}.badge-primary,.badge-active,.badge-published,.badge-ongoing{background:var(--brand-50);color:var(--brand-700);border-color:rgba(29,79,140,var(--badge-border-alpha))}.badge-success,.badge-completed,.badge-approved{background:var(--success-50);color:var(--success-700);border-color:rgba(16,185,129,var(--badge-border-alpha))}.badge-warning,.badge-pending{background:var(--warning-50);color:var(--warning-700);border-color:rgba(245,158,11,var(--badge-border-alpha))}.badge-danger,.badge-rejected,.badge-expired{background:var(--danger-50);color:var(--danger-700);border-color:rgba(239,68,68,var(--badge-border-alpha))}.badge-secondary,.badge-gray{background:var(--neutral-100);color:var(--neutral-700);border-color:rgba(100,116,139,var(--badge-border-alpha))}.badge-info{background:var(--info-50);color:var(--brand-700);border-color:rgba(29,79,140,var(--badge-border-alpha))}.badge-pill{border-radius:var(--radius-full);padding:var(--space-1) var(--space-3)}.filter-bar,.filters{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-5)}.filter-group{display:inline-flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.filter-btn{padding:var(--space-2) var(--space-4);border:1.5px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-card);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap}.filter-btn:hover{border-color:var(--brand-400);color:var(--brand-600);background:var(--brand-50)}.filter-btn.active{background:linear-gradient(135deg,var(--brand-500),var(--brand-600));color:var(--text-inverse);border-color:var(--brand-500);box-shadow:var(--shadow-brand-sm)}.filter-btn.active:hover{background:linear-gradient(135deg,var(--brand-600),var(--brand-700));box-shadow:var(--shadow-brand-md)}.pagination{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap;margin-top:var(--space-5);justify-content:center}.page-item{display:inline-flex;list-style:none}.pagination a,.pagination span,.page-link{min-width:38px;height:38px;padding:0 var(--space-3);border:1.5px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;cursor:pointer;transition:all var(--transition-fast)}.pagination a:hover,.page-link:hover{background:var(--brand-50);border-color:var(--brand-400);color:var(--brand-600);transform:translateY(-1px)}.page-link.active,.pagination span.active,.pagination a.active{background:linear-gradient(135deg,var(--brand-500),var(--brand-600));color:var(--text-inverse);border-color:var(--brand-500);box-shadow:var(--shadow-brand-sm);cursor:default}.page-item.disabled .page-link,.pagination .disabled a,.page-link.disabled{color:var(--text-tertiary);cursor:not-allowed;opacity:.5;pointer-events:none;background:var(--surface-disabled)}.pagination .ellipsis,.pagination span.ellipsis{border:0;background:transparent;cursor:default;min-width:auto}.stat-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-6);min-height:100px}.stat-icon{width:56px;height:56px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;background:linear-gradient(135deg,rgba(29,79,140,0.12),rgba(57,126,240,0.1));color:var(--brand-500)}.stat-info{flex:1;min-width:0}.stat-number,.stat-value,.metric-value,.kpi-value,.score-value,.credit-score,.growth-score-value{font-size:var(--text-3xl);font-weight:var(--font-bold);background:var(--stat-number-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;letter-spacing:-.02em;display:inline-block}.stat-label,.metric-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-top:var(--space-1)}.stat-trend{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:var(--font-medium);margin-top:var(--space-1)}.stat-trend.up{color:var(--success-600)}.stat-trend.down{color:var(--danger-600)}.kpi-card{padding:var(--space-5);border-radius:var(--card-radius);background:var(--surface-card);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.data-screen{background:var(--sidebar-base);color:var(--text-inverse);padding:var(--space-6);border-radius:var(--card-radius)}.stats-grid,.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-6);margin-bottom:var(--space-6)}.stats-grid{gap:var(--space-6)}.alert,.notice,.info-box{padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);border-left:4px solid transparent;display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);margin-bottom:var(--space-4);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.alert-success,.notice-success{background:rgba(16,185,129,0.08);border-left-color:var(--success-500);color:var(--success-700)}.alert-warning,.notice-warning{background:rgba(245,158,11,0.08);border-left-color:var(--warning-500);color:var(--warning-700)}.alert-danger,.alert-error,.notice-error{background:rgba(239,68,68,0.08);border-left-color:var(--danger-500);color:var(--danger-700)}.alert-info,.notice-info{background:rgba(29,79,140,0.08);border-left-color:var(--brand-500);color:var(--brand-700)}.alert-dismissible{padding-right:var(--space-10);position:relative}.alert-dismissible .close,.alert-dismissible .alert-close{position:absolute;top:var(--space-3);right:var(--space-3);background:0;border:0;font-size:var(--text-xl);line-height:1;color:inherit;opacity:.6;cursor:pointer;padding:var(--space-1);border-radius:var(--radius-xs);transition:opacity var(--transition-fast)}.alert-dismissible .close:hover,.alert-dismissible .alert-close:hover{opacity:1}.quick-tabs,.tab-nav,.nav-tabs,.tabs{display:flex;gap:var(--space-2);border-bottom:2px solid var(--border-subtle);margin-bottom:var(--space-5);flex-wrap:wrap}.quick-tab,.tab-link,.nav-tabs a,.nav-tabs li a,.tab-item{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm) var(--radius-sm) 0 0;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-normal);text-decoration:none;position:relative;bottom:-2px}.quick-tab:hover,.tab-link:hover,.nav-tabs a:hover,.tab-item:hover{color:var(--brand-500);background:rgba(29,79,140,0.06)}.quick-tab.active,.tab-link.active,.nav-tabs li.active a,.nav-tabs a.active,.tab-item.active{color:var(--brand-500);background:var(--surface-card);border:2px solid var(--border-subtle);border-bottom:2px solid var(--surface-card);font-weight:var(--font-semibold)}.tab-content,.quick-tab-content,.tab-pane{animation:tabFadeIn .2s ease-out}.tab-pane{display:none}.tab-pane.active{display:block}.progress,.progress-bar-wrap{width:100%;height:8px;background:var(--neutral-100);border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-bar,.progress-fill{height:100%;background:linear-gradient(135deg,var(--brand-500),var(--brand-600));border-radius:var(--radius-full);transition:width var(--transition-slow);position:relative;overflow:hidden}.progress-bar::after,.progress-fill::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,0.3) 50%,transparent 100%);animation:shimmer 2s infinite}.progress-bar-success,.progress-fill.success{background:linear-gradient(135deg,var(--success-500),var(--success-600))}.progress-bar-warning,.progress-fill.warning{background:linear-gradient(135deg,var(--warning-500),var(--warning-600))}.progress-bar-danger,.progress-fill.danger{background:linear-gradient(135deg,var(--danger-500),var(--danger-600))}.progress-striped .progress-bar,.progress-striped .progress-fill{background-image:linear-gradient(135deg,var(--brand-500),var(--brand-600)),repeating-linear-gradient(45deg,rgba(255,255,255,0.15) 0,rgba(255,255,255,0.15) 10px,transparent 10px,transparent 20px);background-blend-mode:overlay;animation:progressStripes 1s linear infinite}.timeline{position:relative;padding-left:var(--space-6);margin:var(--space-4) 0}.timeline::before{content:'';position:absolute;left:8px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--brand-400),var(--violet-500),transparent)}.timeline-item{position:relative;padding-bottom:var(--space-5)}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:calc(-1 * var(--space-6) + 4px);top:4px;width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,var(--brand-500),var(--violet-500));border:2px solid var(--surface-card);box-shadow:0 0 8px rgba(29,79,140,0.4);z-index:1}.timeline-date{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1)}.timeline-content{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-xs)}.timeline-content h4{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-1)}.timeline-content p{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:0}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-state i,.empty-state svg,.empty-state .empty-icon{color:var(--brand-400);opacity:.5;margin-bottom:var(--space-4);font-size:3rem;width:64px;height:64px;display:flex;align-items:center;justify-content:center}.empty-state h3,.empty-state .empty-text{color:var(--text-secondary);font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-2)}.empty-state p{color:var(--text-tertiary);font-size:var(--text-sm);margin-bottom:0}.empty-state .empty-action,.empty-state .btn{margin-top:var(--space-5)}.app-sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--sidebar-base);background-image:radial-gradient(ellipse 600px 400px at 30% 0,var(--sidebar-glow) 0,transparent 60%),linear-gradient(180deg,var(--sidebar-base) 0,var(--sidebar-deep) 100%);color:var(--sidebar-text);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:var(--z-sidebar);transition:width var(--transition-slow),min-width var(--transition-slow),transform var(--transition-slow);overflow:hidden;box-shadow:4px 0 32px rgba(0,0,0,0.18);border-right:1px solid var(--sidebar-border)}.app-sidebar::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0,rgba(29,79,140,0.36) 30%,rgba(57,126,240,0.24) 70%,transparent 100%);pointer-events:none;opacity:.6}.sidebar-logo{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-5) var(--space-4) var(--space-4);border-bottom:1px solid var(--sidebar-border);min-height:84px;flex-shrink:0}.sidebar-logo img{width:120px;height:auto;display:block;filter:drop-shadow(0 2px 8px rgba(29,79,140,0.3))}.sidebar-logo .logo-text{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--sidebar-text-muted);margin-top:var(--space-1);letter-spacing:1.5px;white-space:nowrap}.sidebar-user{padding:var(--space-4);border-bottom:1px solid var(--sidebar-border);flex-shrink:0}.sidebar-user .user-identity{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,rgba(29,79,140,0.25),rgba(57,126,240,0.2));border:1.5px solid var(--sidebar-border);display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.user-info,.sidebar-user .user-meta{flex:1;min-width:0}.sidebar-user .username{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-inverse);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.sidebar-user .role-tag,.sidebar-user .role-badge{font-size:11px;color:var(--sidebar-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.sidebar-actions{display:flex;gap:var(--space-1);padding:0 var(--space-4) var(--space-3);flex-shrink:0}.sidebar-actions .action-btn{flex:1;padding:var(--space-2) 0;border:1px solid var(--sidebar-border);border-radius:var(--radius-sm);background:var(--sidebar-surface);color:var(--sidebar-text);cursor:pointer;font-size:var(--text-sm);text-align:center;text-decoration:none;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:3px;white-space:nowrap;position:relative}.sidebar-actions .action-btn:hover{background:var(--sidebar-surface-hover);border-color:rgba(29,79,140,0.3);color:var(--brand-200);transform:translateY(-1px);box-shadow:var(--shadow-brand-sm)}.notif-badge{background:var(--danger-500);color:var(--text-inverse);font-size:10px;padding:1px 5px;border-radius:var(--radius-full);font-weight:var(--font-bold);line-height:1.4;position:absolute;top:2px;right:4px;box-shadow:0 0 8px rgba(239,68,68,0.5)}.sidebar-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--space-2) var(--space-3);scrollbar-width:thin;scrollbar-color:rgba(29,79,140,0.2) transparent}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:rgba(29,79,140,0.2);border-radius:2px}.sidebar-nav .nav-item,.sidebar-nav .nav-group-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--sidebar-text);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);margin-bottom:3px;position:relative;white-space:nowrap;overflow:hidden;width:100%;text-align:left;font-family:inherit;border:1px solid transparent}.sidebar-nav .nav-item:hover,.sidebar-nav .nav-group-header:hover{background:var(--sidebar-surface-hover);color:var(--sidebar-text-hover);padding-left:18px}.sidebar-nav .nav-item.active,.sidebar-nav .nav-group-header.active,.sidebar-nav .nav-group-header.open{background:var(--sidebar-surface-active);color:var(--sidebar-text-active);font-weight:var(--font-semibold);border-color:rgba(29,79,140,0.15)}.sidebar-nav .nav-item.active::before,.sidebar-nav .nav-group-header.active::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:65%;background:var(--sidebar-accent);border-radius:0 3px 3px 0;box-shadow:var(--sidebar-accent-glow)}.nav-icon{font-size:var(--text-lg);width:24px;text-align:center;flex-shrink:0;line-height:1}.nav-label{flex:1;min-width:0}.nav-arrow{font-size:10px;transition:transform .25s cubic-bezier(0.4,0,0.2,1),color var(--transition-fast);flex-shrink:0;color:var(--brand-300)}.sidebar-nav .nav-group-header.open .nav-arrow{transform:rotate(90deg);color:var(--brand-300)}.nav-submenu{overflow:hidden;max-height:0;transition:max-height .35s cubic-bezier(0.16,1,0.3,1);padding:0;margin:0}.nav-submenu.open{max-height:360px}.nav-sub-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4) var(--space-2) 46px;border-radius:var(--radius-sm);color:rgba(255,255,255,0.88);text-decoration:none;font-size:var(--text-sm);transition:all var(--transition-fast);white-space:nowrap;overflow:hidden;position:relative;margin:2px 0}.nav-sub-item:hover{background:var(--sidebar-surface-hover);color:var(--sidebar-text-hover);padding-left:50px}.nav-sub-item.active{color:#fff;background:var(--brand-primary-soft);font-weight:var(--font-semibold)}.nav-sub-item.active::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:60%;border-radius:2px;background:var(--brand-accent);box-shadow:var(--sidebar-accent-glow)}.sidebar-footer{padding:var(--space-2) var(--space-4);border-top:1px solid var(--sidebar-border);flex-shrink:0;background:rgba(0,0,0,0.15)}.sidebar-footer .nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);color:var(--sidebar-text-muted);text-decoration:none;font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast);background:0;border:0;width:100%;text-align:left;font-family:inherit;margin-bottom:2px}.sidebar-footer .nav-item:hover{background:rgba(239,68,68,0.08);color:rgba(252,165,165,0.9);padding-left:18px}.sidebar-overlay{display:none;position:fixed;inset:0;background:var(--surface-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:calc(var(--z-sidebar) - 1);opacity:0;transition:opacity var(--transition-normal)}.sidebar-overlay.show{display:block;opacity:1}.mobile-sidebar-toggle{display:none;position:fixed;top:var(--space-3);left:var(--space-3);z-index:calc(var(--z-sidebar) + 20);width:44px;height:44px;border-radius:var(--radius-md);border:0;background:var(--sidebar-base);color:var(--text-inverse);font-size:var(--text-xl);cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,0.3);align-items:center;justify-content:center;transition:all var(--transition-fast)}.app-layout{display:flex;min-height:100vh;position:relative}.app-main{flex:1;margin-left:var(--sidebar-width);min-width:0;display:flex;flex-direction:column;transition:margin-left var(--transition-slow);position:relative;padding-bottom:140px}.content-wrapper{flex:1;display:flex;flex-direction:column}.page-content,.main-content{padding:var(--space-6)}.app-main .container{padding:var(--content-padding-y) var(--content-padding-x)}.content-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-5)}.breadcrumb{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--text-tertiary);margin-bottom:var(--space-3);list-style:none;padding:0;flex-wrap:wrap}.breadcrumb-item{display:inline-flex;align-items:center;color:var(--text-secondary);text-decoration:none;transition:color var(--transition-fast)}.breadcrumb-item:hover{color:var(--brand-500)}.breadcrumb-item::after{content:'/';margin:0 var(--space-1);color:var(--text-tertiary)}.breadcrumb-item:last-child::after{content:'';display:none}.breadcrumb-item.active{color:var(--text-primary);font-weight:var(--font-medium);pointer-events:none}.detail-list,.desc-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-3);padding:var(--space-4) 0}.detail-item,.desc-item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--surface-hover);transition:background var(--transition-fast)}.detail-item:hover,.desc-item:hover{background:rgba(29,79,140,0.04)}.detail-label,.desc-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-medium)}.detail-value,.desc-value{font-size:var(--text-sm);color:var(--text-primary);font-weight:var(--font-medium);word-break:break-word}.detail-list.inline,.desc-list.inline{grid-template-columns:1fr}.detail-list.inline .detail-item,.desc-list.inline .desc-item{flex-direction:row;align-items:center;justify-content:space-between;background:0;padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle);border-radius:0}.detail-list.inline .detail-item:last-child,.desc-list.inline .desc-item:last-child{border-bottom:0}.search-input,input[type="search"],.filter-input{background:var(--surface-card);border:1.5px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);min-width:200px;font-family:inherit;line-height:var(--leading-normal)}.search-input:focus,input[type="search"]:focus,.filter-input:focus{outline:0;border-color:var(--brand-500);box-shadow:var(--form-input-focus-ring)}.search-input::placeholder,.filter-input::placeholder{color:var(--text-tertiary)}.info-grid,.detail-grid,.training-cards,.observations-grid,.mentorship-grid,.mentorships-grid,.trainings-grid,.reg-approval-stats,.rating-grid,.teachers-grid{gap:var(--space-5)}.card-header,.section-header,.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);background:linear-gradient(135deg,rgba(29,79,140,0.03),rgba(57,126,240,0.02));border-radius:var(--card-radius) var(--card-radius) 0 0}.card-header h3,.card-header h4,.section-header h3,.panel-header h3{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2);margin:0}.card-body,.panel-body{padding:var(--space-5)}.ai-assistant{position:fixed;bottom:24px;right:24px;z-index:calc(var(--z-toast) + 1);font-family:var(--font-sans)}.ai-fab{width:56px;height:56px;border-radius:var(--radius-full);border:0;background:linear-gradient(135deg,var(--brand-500),var(--violet-500));color:var(--text-inverse);font-size:24px;cursor:pointer;box-shadow:var(--shadow-brand-md),0 2px 6px rgba(0,0,0,0.1);transition:transform var(--transition-bounce),box-shadow var(--transition-normal);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.ai-fab:hover{transform:scale(1.1);box-shadow:var(--shadow-brand-lg),0 3px 10px rgba(0,0,0,0.15)}.ai-fab:active{transform:scale(0.95)}.ai-fab.active{background:linear-gradient(135deg,var(--danger-500),var(--danger-600));box-shadow:0 4px 15px rgba(239,68,68,0.4)}.ai-fab-pulse{position:absolute;width:100%;height:100%;border-radius:var(--radius-full);border:2px solid rgba(29,79,140,0.5);animation:ai-pulse 2.5s ease-out infinite;pointer-events:none}.ai-fab.active .ai-fab-pulse{display:none}.ai-panel{position:absolute;bottom:70px;right:0;width:380px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 120px);background:var(--surface-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl),0 2px 10px rgba(0,0,0,0.08);display:none;flex-direction:column;overflow:hidden;transform:scale(0.9) translateY(20px);opacity:0;transition:transform var(--transition-bounce),opacity var(--transition-normal)}.ai-panel.show{display:flex;transform:scale(1) translateY(0);opacity:1}.ai-panel.hiding{display:flex;transform:scale(0.9) translateY(20px);opacity:0}.ai-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:linear-gradient(135deg,var(--brand-500),var(--violet-500));color:var(--text-inverse);flex-shrink:0}.ai-panel-title{display:flex;align-items:center;gap:var(--space-2);font-size:15px;font-weight:var(--font-semibold)}.ai-header-icon{font-size:20px}.ai-panel-close{background:0;border:0;color:rgba(255,255,255,0.8);font-size:22px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);transition:background var(--transition-fast),color var(--transition-fast)}.ai-panel-close:hover{background:rgba(255,255,255,0.2);color:var(--text-inverse)}.ai-panel-body{flex:1;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:12px;background:var(--neutral-50)}.ai-panel-body::-webkit-scrollbar{width:4px}.ai-panel-body::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:var(--radius-xs)}.ai-msg{display:flex;gap:var(--space-2);max-width:90%;animation:ai-msg-in .3s ease-out}.ai-msg-bot{align-self:flex-start}.ai-msg-user{align-self:flex-end;flex-direction:row-reverse}.ai-msg-avatar{width:30px;height:30px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;background:var(--brand-100)}.ai-msg-user .ai-msg-avatar{background:var(--brand-100)}.ai-msg-bubble{padding:10px 14px;border-radius:var(--radius-lg);font-size:13.5px;line-height:var(--leading-relaxed);word-break:break-word}.ai-msg-bot .ai-msg-bubble{background:var(--surface-card);color:var(--neutral-800);border:1px solid var(--border-light);border-top-left-radius:var(--radius-xs);box-shadow:var(--shadow-xs)}.ai-msg-user .ai-msg-bubble{background:linear-gradient(135deg,var(--brand-500),var(--violet-500));color:var(--text-inverse);border-top-right-radius:var(--radius-xs)}.ai-welcome-list{margin:var(--space-2) 0 var(--space-1);padding-left:0;list-style:none}.ai-welcome-list li{padding:2px 0;font-size:13px}.ai-quick-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-1)}.ai-quick-btn{padding:6px 12px;border:1px solid var(--brand-200);border-radius:var(--radius-full);background:var(--brand-50);color:var(--brand-600);font-size:12px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);white-space:nowrap;font-family:inherit}.ai-quick-btn:hover{background:var(--brand-100);border-color:var(--brand-400);transform:translateY(-1px)}.ai-typing{display:flex;gap:var(--space-2);align-self:flex-start;max-width:90%}.ai-typing .ai-msg-avatar{width:30px;height:30px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;background:var(--brand-100)}.ai-typing-dots{display:flex;align-items:center;gap:4px;padding:12px 16px;background:var(--surface-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);border-top-left-radius:var(--radius-xs)}.ai-typing-dots span{width:7px;height:7px;border-radius:var(--radius-full);background:var(--neutral-400);animation:ai-dot-bounce 1.4s infinite ease-in-out}.ai-typing-dots span:nth-child(2){animation-delay:.2s}.ai-typing-dots span:nth-child(3){animation-delay:.4s}.ai-panel-footer{padding:12px 14px;background:var(--surface-card);border-top:1px solid var(--border-light);flex-shrink:0}.ai-input-form{display:flex;gap:var(--space-2);align-items:flex-end}.ai-input{flex:1;border:1.5px solid var(--neutral-300);border-radius:var(--radius-md);padding:9px 14px;font-size:13.5px;resize:none;outline:0;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);max-height:80px;line-height:var(--leading-normal);font-family:inherit;background:var(--surface-card);color:var(--text-primary)}.ai-input:focus{border-color:var(--brand-500);box-shadow:var(--form-input-focus-ring)}.ai-input::placeholder{color:var(--text-tertiary)}.ai-send-btn{width:38px;height:38px;border-radius:var(--radius-full);border:0;background:linear-gradient(135deg,var(--brand-500),var(--violet-500));color:var(--text-inverse);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast);font-size:16px}.ai-send-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-brand-sm)}.ai-send-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.site-footer{background:linear-gradient(135deg,var(--sidebar-base) 0,var(--brand-950) 100%);color:var(--neutral-200);padding:10px 0 8px;margin-top:auto;border-top:3px solid var(--brand-500);position:fixed;bottom:0;left:var(--sidebar-width);right:0;flex-shrink:0;z-index:50;box-shadow:0 -4px 20px rgba(0,0,0,0.15);animation:footer-fade-in-up .6s ease-out}.footer-container{max-width:1200px;margin:0 auto;padding:0 20px;position:relative}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;margin-bottom:20px}.footer-section{text-align:center;padding:15px}.copyright-section{border-right:1px solid rgba(255,255,255,0.1)}.icp-section{border-right:1px solid rgba(255,255,255,0.1)}.copyright{font-size:var(--text-md);margin-bottom:var(--space-2);font-weight:var(--font-medium)}.version{font-size:var(--text-sm);color:var(--neutral-400)}.icp-info{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-2)}.icp-icon{filter:brightness(0) invert(1)}.icp-link{color:var(--brand-400);text-decoration:none;font-weight:var(--font-medium);transition:color var(--transition-normal);position:relative}.icp-link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:currentColor;transition:width var(--transition-normal)}.icp-link:hover{color:var(--brand-300);text-decoration:underline}.icp-link:hover::after{width:100%}.organization{font-size:var(--text-sm);color:var(--neutral-100);margin:5px 0}.creator{font-size:var(--text-md);margin-bottom:var(--space-2);font-weight:var(--font-medium)}.contact-info{display:flex;align-items:center;justify-content:center;gap:5px;font-size:var(--text-sm)}.contact-label{color:var(--neutral-400)}.contact-link{color:var(--brand-400);text-decoration:none;transition:color var(--transition-normal);position:relative}.contact-link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:currentColor;transition:width var(--transition-normal)}.contact-link:hover{color:var(--brand-300);text-decoration:underline}.contact-link:hover::after{width:100%}.footer-decoration{position:relative;margin-top:20px}.decoration-line{height:1px;background:linear-gradient(90deg,transparent 0,rgba(29,79,140,0.5) 50%,transparent 100%);margin:20px 0}.footer-badge{text-align:center;margin-top:15px}.badge-text{display:inline-block;background:rgba(29,79,140,0.15);color:var(--brand-300);padding:8px 20px;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-medium);border:1px solid rgba(29,79,140,0.3)}.td-reveal{opacity:0;transform:translateY(24px);transition:opacity var(--transition-slow),transform var(--transition-slow)}.td-reveal.is-visible{opacity:1;transform:translateY(0)}.td-counter{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}.td-cursor-glow{position:fixed;top:0;left:0;width:400px;height:400px;border-radius:var(--radius-full);background:radial-gradient(circle,rgba(29,79,140,0.08) 0,transparent 70%);pointer-events:none;z-index:9999;transform:translate(calc(var(--cursor-x, -1000px) - 200px),calc(var(--cursor-y, -1000px) - 200px));transition:opacity var(--transition-normal);mix-blend-mode:screen}.stat-number{font-size:var(--text-2xl);font-weight:var(--font-bold);background:var(--stat-number-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-variant-numeric:tabular-nums}.stat-value{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--text-primary);font-variant-numeric:tabular-nums}.growth-score-value{font-size:var(--text-3xl);font-weight:var(--font-extrabold);background:var(--stat-number-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-variant-numeric:tabular-nums}.metric-value{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--text-primary);font-variant-numeric:tabular-nums}.kpi-value{font-size:var(--text-2xl);font-weight:var(--font-bold);background:var(--stat-number-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-variant-numeric:tabular-nums}@keyframes ai-pulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.8);opacity:0}}@keyframes ai-msg-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes ai-dot-bounce{0%,80%,100%{transform:scale(0.6);opacity:.4}40%{transform:scale(1);opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}@keyframes footer-fade-in-up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes fade-in-up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-down{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;white-space:nowrap !important;border:0 !important}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-muted{color:var(--text-tertiary)}.text-success{color:var(--success-600)}.text-warning{color:var(--warning-600)}.text-danger{color:var(--danger-600)}.text-info{color:var(--brand-600)}.d-none{display:none}.d-block{display:block}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-grid{display:grid}.align-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.mt-0{margin-top:0}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-0{margin-bottom:0}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.p-0{padding:0}.p-2{padding:var(--space-2)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.w-full{width:100%}.w-auto{width:auto}.toast-container{position:fixed;top:20px;right:20px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none;max-width:360px}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-card);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border-left:4px solid var(--brand-500);pointer-events:auto;animation:toast-slide-in .3s ease-out;min-width:280px}.toast.removing{animation:toast-slide-out .3s ease-in forwards}.toast-icon{font-size:18px;flex-shrink:0;line-height:1}.toast-body{flex:1;min-width:0}.toast-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:2px}.toast-message{font-size:var(--text-xs);color:var(--text-secondary);line-height:var(--leading-normal)}.toast-close{background:0;border:0;color:var(--text-tertiary);cursor:pointer;font-size:16px;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);transition:color var(--transition-fast),background var(--transition-fast);flex-shrink:0}.toast-close:hover{color:var(--text-primary);background:var(--surface-hover)}.toast-success{border-left-color:var(--success-500)}.toast-success .toast-icon{color:var(--success-500)}.toast-warning{border-left-color:var(--warning-500)}.toast-warning .toast-icon{color:var(--warning-500)}.toast-danger{border-left-color:var(--danger-500)}.toast-danger .toast-icon{color:var(--danger-500)}.toast-info{border-left-color:var(--brand-500)}.toast-info .toast-icon{color:var(--brand-500)}@keyframes toast-slide-in{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes toast-slide-out{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}.grid{display:grid;gap:var(--space-6)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.main-content{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:var(--space-6);align-items:start}.card-mb{margin-bottom:var(--space-6)}.flex-center{display:flex;align-items:center}.card-tight{padding:var(--space-3) var(--space-4)}.card-header-plain{border-bottom:0;padding-bottom:0}.growth-score-circle{width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--brand-500) calc(var(--score) * 3.6deg),var(--neutral-200) calc(var(--score) * 3.6deg));display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-4);position:relative}.growth-score-inner{width:120px;height:120px;border-radius:50%;background:var(--surface-card);display:flex;flex-direction:column;align-items:center;justify-content:center}.growth-score-value{font-size:2.5rem;font-weight:var(--font-bold);color:var(--brand-500);line-height:1}.growth-score-label{font-size:var(--text-sm);color:var(--text-secondary)}.chart-container{position:relative;width:100%;min-height:200px;padding:var(--space-2)}.chart-container canvas{max-height:300px;width:100%}.calendar-wrapper{overflow-y:auto;overflow-x:hidden;position:relative;min-height:300px;max-height:500px;transition:max-height .3s ease;scrollbar-width:thin;scrollbar-color:rgba(29,79,140,0.3) transparent}.calendar-wrapper::-webkit-scrollbar{width:6px}.calendar-wrapper::-webkit-scrollbar-thumb{background:rgba(29,79,140,0.3);border-radius:3px}.calendar-wrapper::-webkit-scrollbar-track{background:transparent}.calendar-wrapper.resizable{resize:vertical;min-height:200px;max-height:600px}.calendar-wrapper::after{content:'';display:block;position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:40px;height:6px;background:rgba(29,79,140,0.2);border-radius:3px;opacity:0;transition:opacity .3s ease}.calendar-wrapper:hover::after{opacity:1}.calendar-nav{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm)}.calendar-resize-handle{display:flex;align-items:center;justify-content:center;padding:4px 0;cursor:ns-resize;color:var(--text-tertiary);opacity:.4;transition:opacity .3s ease}.calendar-resize-handle:hover{opacity:1;color:var(--brand-500)}.calendar{width:100%;border-radius:var(--radius-md);overflow:hidden}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:rgba(29,79,140,0.06);border:1px solid rgba(29,79,140,0.08);border-radius:var(--radius-md);overflow:hidden}.calendar-day-header{background:var(--brand-50,#eef2ff);color:var(--brand-700,#4338ca);font-weight:var(--font-semibold);font-size:var(--text-sm);text-align:center;padding:var(--space-2) var(--space-1);text-transform:uppercase;letter-spacing:.05em}.calendar-day{background:var(--surface-card);min-height:100px;padding:4px;display:flex;flex-direction:column;gap:2px;transition:background var(--transition-fast);cursor:pointer;overflow:hidden}.calendar-day:hover{background:var(--brand-50,#eef2ff)}.calendar-day.other-month{background:var(--neutral-50,#f8fafc);opacity:.5}.calendar-day.other-month:hover{background:var(--neutral-100,#f1f5f9)}.calendar-day.today{background:rgba(29,79,140,0.08);box-shadow:inset 0 0 0 2px var(--brand-400,#818cf8)}.calendar-day.today .calendar-day-number{color:var(--brand-600,#4f46e5);font-weight:var(--font-bold)}.calendar-day-number{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);line-height:1}.calendar-day-header-inner{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.calendar-task{font-size:11px;padding:2px 6px;border-radius:var(--radius-xs,4px);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all var(--transition-fast);line-height:1.4;font-weight:500}.calendar-task:hover{transform:translateX(2px);box-shadow:0 2px 8px rgba(0,0,0,0.12)}.calendar-task.completed{background:rgba(16,185,129,0.15);color:#059669;border-left:3px solid #10b981}.calendar-task.observation{background:rgba(245,158,11,0.15);color:#d97706;border-left:3px solid #f59e0b}.calendar-task.training{background:rgba(29,79,140,0.15);color:#4f46e5;border-left:3px solid var(--brand-primary)}.calendar-task.practice{background:rgba(249,115,22,0.15);color:#ea580c;border-left:3px solid #f97316}.calendar-task.pdf_task{background:rgba(239,68,68,0.15);color:#dc2626;border-left:3px solid #ef4444}.calendar-task.plan{background:rgba(57,126,240,0.15);color:#7c3aed;border-left:3px solid var(--brand-accent)}.calendar-task.task-continuation{opacity:.7;border-left-style:dashed}
@media(max-width:1023px){.app-sidebar{width:64px;min-width:64px}.app-sidebar .sidebar-logo .logo-text,.app-sidebar .sidebar-user .user-info,.app-sidebar .sidebar-user .user-meta,.app-sidebar .nav-label,.app-sidebar .nav-arrow,.app-sidebar .nav-group-header .nav-label,.app-sidebar .sidebar-footer .nav-label{display:none}.app-sidebar .sidebar-logo{padding:var(--space-3) var(--space-1);min-height:64px}.app-sidebar .sidebar-logo img{width:36px}.app-sidebar .sidebar-user{padding:var(--space-2);display:flex;justify-content:center}.app-sidebar .sidebar-user .user-identity{justify-content:center;margin-bottom:0}.app-sidebar .nav-item{justify-content:center;padding:var(--space-3) var(--space-1)}.app-sidebar .nav-icon{margin-right:0;font-size:18px}.app-sidebar .sidebar-actions{justify-content:center;padding:var(--space-2)}.app-sidebar .action-btn .nav-label,.app-sidebar .action-btn .notif-badge-text{display:none}.app-sidebar .nav-submenu{position:absolute;left:64px;top:0;min-width:180px;background:var(--sidebar-deep);border-radius:0 var(--radius-md) var(--radius-md) 0;box-shadow:var(--shadow-lg);padding:var(--space-2);display:none;z-index:var(--z-sidebar)}.app-sidebar .nav-item:hover .nav-submenu{display:block}.app-main{margin-left:64px}.app-main .container,.container{padding:var(--space-4) var(--space-4)}.page-header{flex-wrap:wrap;gap:var(--space-3)}.page-header h1,.page-title{font-size:var(--text-xl)}.stats-grid,.dashboard-grid{grid-template-columns:repeat(2,1fr)}.main-content{grid-template-columns:1fr}.filter-bar,.filters{flex-wrap:wrap}.modal-content{width:90%}.modal-lg .modal-content{width:95%}.btn-group{flex-wrap:wrap;gap:var(--space-2)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.card,.modal-content,.ai-panel{backdrop-filter:none;background:var(--surface-card)}}@media(max-width:767px){.app-sidebar{transform:translateX(-100%);width:var(--sidebar-width);min-width:var(--sidebar-width);box-shadow:var(--shadow-2xl)}.app-sidebar .sidebar-logo .logo-text,.app-sidebar .sidebar-user .user-info,.app-sidebar .sidebar-user .user-meta,.app-sidebar .nav-label,.app-sidebar .nav-arrow,.app-sidebar .sidebar-footer .nav-label{display:block}.app-sidebar .sidebar-logo{padding:var(--space-5) var(--space-4) var(--space-4);min-height:84px}.app-sidebar .sidebar-logo img{width:120px}.app-sidebar .sidebar-user{padding:var(--space-4);display:block}.app-sidebar .sidebar-user .user-identity{justify-content:flex-start;margin-bottom:var(--space-2)}.app-sidebar .nav-item{justify-content:flex-start;padding:var(--space-3) var(--space-4)}.app-sidebar .nav-icon{margin-right:var(--space-3);font-size:16px}.app-sidebar .nav-submenu{position:static;display:block;box-shadow:none;padding-left:var(--space-8)}.app-sidebar.mobile-open{transform:translateX(0)}.sidebar-overlay{position:fixed;inset:0;background:var(--surface-overlay);z-index:calc(var(--z-sidebar) - 1);opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.sidebar-overlay.show{opacity:1;visibility:visible}.mobile-sidebar-toggle{position:fixed;top:calc(12px + env(safe-area-inset-top, 0px));left:12px;z-index:calc(var(--z-sidebar) + 1);width:40px;height:40px;border-radius:var(--radius-md);border:0;background:var(--surface-card);color:var(--text-primary);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:background var(--transition-fast),box-shadow var(--transition-fast)}.mobile-sidebar-toggle:hover{background:var(--surface-hover);box-shadow:var(--shadow-md)}.mobile-sidebar-toggle:active{transform:scale(0.95)}.app-main{margin-left:0;min-height:100vh}.app-main .container,.container{padding:var(--space-4) var(--space-3)}.page-header h1,.page-title{font-size:var(--text-lg)}.page-header h1::before,.page-title::before{height:1.2em;margin-right:var(--space-2);width:4px}.page-header{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.page-header .btn,.page-header .filter-btn{width:100%;text-align:center}.info-grid,.detail-grid,.training-cards,.observations-grid,.mentorship-grid,.mentorships-grid,.trainings-grid,.reg-approval-stats,.rating-grid,.teachers-grid,.stats-grid,.dashboard-grid{grid-template-columns:1fr;gap:var(--space-3)}.card,.info-card,.training-card,.observation-card,.mentorship-card,.practice-card{padding:var(--space-4)}.filters{flex-direction:column;gap:var(--space-2)}.filter-btn,.filter-group{width:100%}.form-row{grid-template-columns:1fr}.form-group{margin-bottom:var(--space-3)}.modal-content{width:95%;max-height:90vh;margin:0 auto}.modal-header,.modal-body,.modal-footer{padding:var(--space-3)}.modal-header h3{font-size:var(--text-base)}.data-table,table.table,.list-table{font-size:var(--text-xs)}.data-table th,table.table th,.list-table th,.data-table td,table.table td,.list-table td{padding:var(--space-2) var(--space-1)}.stat-number,.stat-value,.metric-value,.kpi-value,.growth-score-value,.score-value{font-size:var(--text-2xl)}.search-input,input[type="search"],.filter-input{width:100%;min-width:unset}.alert,.notice,.info-box{padding:var(--space-3)}.page-header .btn-group{width:100%;flex-direction:column}.page-header .btn-group .btn{width:100%}.pagination{gap:var(--space-1)}.page-item .page-link{min-width:32px;height:32px;padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.quick-tabs,.tab-nav,.nav-tabs,.tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.quick-tabs::-webkit-scrollbar,.tab-nav::-webkit-scrollbar,.nav-tabs::-webkit-scrollbar,.tabs::-webkit-scrollbar{display:none}.quick-tab,.tab-link,.tab-item{white-space:nowrap;flex-shrink:0}.timeline::before{left:8px}.timeline-item{padding-left:32px}.timeline-dot{left:0}.detail-list.inline,.desc-list.inline{grid-template-columns:1fr}.detail-list.inline .detail-item,.desc-list.inline .desc-item{flex-direction:column;align-items:flex-start}.progress,.progress-bar-wrap{height:6px}.card,.modal-content,.ai-panel,.toast{backdrop-filter:none;background:var(--surface-card)}.td-cursor-glow{display:none}.td-reveal{transform:translateY(12px)}.app-main{margin-left:0}}@media(max-width:479px){.app-main .container,.container{padding:var(--space-3) var(--space-2)}.page-header h1,.page-title{font-size:var(--text-md)}.page-header h1::before,.page-title::before{height:1.1em;margin-right:var(--space-2)}.page-header h2{font-size:var(--text-sm)}.card,.info-card,.training-card,.observation-card,.mentorship-card,.practice-card{padding:var(--space-3)}.card-body,.panel-body{padding:var(--space-3)}.card-header,.section-header,.panel-header{padding:var(--space-2) var(--space-3)}.btn{padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.btn-sm{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.stat-card{padding:var(--space-3)}.stat-number,.stat-value,.metric-value,.kpi-value,.growth-score-value,.score-value{font-size:var(--text-xl)}.stat-label{font-size:var(--text-xs)}.modal-content{width:calc(100% - 16px);max-height:94vh;border-radius:var(--radius-md)}.modal-lg .modal-content{width:calc(100% - 16px)}.data-table th,table.table th,.list-table th,.data-table td,table.table td,.list-table td{padding:var(--space-1) var(--space-1);font-size:11px}.page-item .page-link{min-width:28px;height:28px;padding:2px var(--space-1);font-size:11px}.pagination .page-item .page-link{border-radius:var(--radius-xs)}.badge{padding:2px var(--space-1);font-size:10px}.filter-btn{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.form-control,.form-group input,.form-group select,.form-group textarea,input[type="text"],input[type="email"],input[type="password"],input[type="number"],select,textarea{font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.alert{padding:var(--space-2);font-size:var(--text-xs)}.timeline::before{display:none}.timeline-item{padding-left:0;padding-bottom:var(--space-3)}.timeline-dot{position:relative;left:auto;display:inline-block;margin-bottom:var(--space-2)}.mobile-sidebar-toggle{top:calc(8px + env(safe-area-inset-top, 0px));left:8px;width:36px;height:36px;font-size:18px}}@media(max-width:767px){.ai-assistant{bottom:16px;right:16px}.ai-fab{width:48px;height:48px;font-size:20px}.ai-panel{position:fixed;bottom:0;right:0;left:0;width:100%;max-width:100%;height:70vh;max-height:70vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.ai-panel-header{padding:var(--space-3) var(--space-4)}.ai-panel-title{font-size:var(--text-sm)}.ai-panel-body{padding:var(--space-3)}.ai-msg{max-width:95%}.ai-msg-bubble{font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.ai-input{font-size:var(--text-sm)}.ai-quick-btn{font-size:11px;padding:var(--space-1) var(--space-2)}}@media(max-width:479px){.ai-assistant{bottom:12px;right:12px}.ai-fab{width:44px;height:44px;font-size:18px}.ai-panel{height:75vh;max-height:75vh}.ai-msg-avatar{width:26px;height:26px;font-size:14px}.ai-typing .ai-msg-avatar{width:26px;height:26px;font-size:14px}.ai-panel-footer{padding:var(--space-2) var(--space-3)}.ai-send-btn{width:34px;height:34px;font-size:14px}}@media(max-width:767px){.site-footer{padding:20px 0 15px;padding-bottom:max(15px,env(safe-area-inset-bottom,15px));left:0}.footer-container{max-width:100%;padding:0 12px}.footer-content{grid-template-columns:1fr;gap:12px;text-align:center}.footer-section{padding:8px 10px;border-right:0;border-bottom:1px solid rgba(255,255,255,0.1)}.footer-section:last-child{border-bottom:0}.copyright,.creator{font-size:var(--text-sm)}.organization,.version{font-size:var(--text-xs)}.contact-info{flex-direction:column;gap:2px}.icp-info{flex-direction:column;gap:4px}.footer-badge{margin-top:10px}.badge-text{font-size:var(--text-xs);padding:5px 12px}.decoration-line{margin:12px 0}}@media(max-width:479px){.site-footer{padding:15px 0 12px;padding-bottom:max(12px,env(safe-area-inset-bottom,12px))}.footer-container{padding:0 10px;max-width:100%}.footer-content{gap:10px}.footer-section{padding:6px 8px}.copyright,.creator{font-size:var(--text-xs)}.organization,.version{font-size:11px}.badge-text{font-size:11px;padding:4px 10px}.decoration-line{margin:10px 0}}@media print{.app-sidebar,.ai-assistant,.mobile-sidebar-toggle,.sidebar-overlay,.toast-container,.td-cursor-glow,.footer-decoration{display:none}.app-main{margin-left:0}.card,.modal-content{box-shadow:none;backdrop-filter:none;background:white}.site-footer{border-top:1px solid #ccc;background:white;color:#333}body{background:white}.td-reveal{opacity:1;transform:none}}@media(max-width:1023px){.hidden-md{display:none}.visible-md{display:block}.text-center-md{text-align:center}.full-width-md{width:100%}}@media(max-width:767px){.hidden-sm{display:none}.visible-sm{display:block}.text-center-sm{text-align:center}.full-width-sm{width:100%}.stack-sm{flex-direction:column;align-items:stretch}.stack-sm>*{width:100%}}@media(max-width:479px){.hidden-xs{display:none}.visible-xs{display:block}.text-center-xs{text-align:center}.full-width-xs{width:100%}.no-margin-xs{margin:0}.compact-xs{padding:var(--space-1);margin:0}}
.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:38px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:0;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:38px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:36px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:0;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container{width:100% !important}.select2-selection{height:38px !important;padding:6px 12px !important;border:1px solid #ced4da !important;border-radius:4px !important}.select2-selection__arrow{height:36px !important}.select2-dropdown{border:1px solid #ced4da !important;border-radius:4px !important}input[type="text"],input[type="date"],input[type="number"],input[type="email"],input[type="password"],select,textarea{border:1.5px solid var(--border-default,#d1d5db);border-radius:8px;padding:10px 14px;font-size:.95rem;color:var(--text-primary,#1f2937);background:#fff;transition:border-color .2s ease,box-shadow .2s ease;width:100%;box-sizing:border-box}input[type="text"]:focus,input[type="date"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="password"]:focus,select:focus,textarea:focus{border-color:var(--brand-500,var(--brand-primary));box-shadow:0 0 0 3px rgba(29,79,140,0.12);outline:0}select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvgxmlns='http://www.w3.org/2000/svg'width='12'height='12'viewBox='001212'%3E%3Cpathd='M34.5l333-3'stroke='%236b7280'stroke-width='1.5'fill='none'stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}textarea{min-height:100px;resize:vertical;line-height:1.6}.practice-form h2,.card h2,.card h3{color:var(--brand-600,#4f46e5) !important;font-weight:700 !important;letter-spacing:-.01em}table tbody tr:hover td{background:rgba(29,79,140,0.03) !important}.card{transition:transform .15s ease,box-shadow .15s ease}.card:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(29,79,140,0.08)}.practice-form .form-row{margin-bottom:.2rem}.practice-form .form-group{margin-bottom:.6rem}.credit-table td,.credit-table th{vertical-align:middle !important}.sharing-card{border-left:3px solid var(--brand-400,#818cf8) !important}.view-toggle{display:inline-flex;align-items:center;gap:4px;padding:3px;background:rgba(29,79,140,0.06);border:1px solid rgba(29,79,140,0.15);border-radius:10px}.view-toggle-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border:0;border-radius:7px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(0.4,0,0.2,1);background:transparent;color:var(--text-secondary,#94a3b8)}.view-toggle-btn.active{background:var(--brand-color,var(--brand-primary));color:#fff;box-shadow:0 2px 8px rgba(29,79,140,0.25)}.view-toggle-btn:not(.active){background:transparent;color:var(--text-secondary,#94a3b8)}.view-toggle-btn:hover:not(.active){background:rgba(29,79,140,0.08);color:var(--brand-color,var(--brand-primary))}.view-toggle-btn svg{width:15px;height:15px;flex-shrink:0}@media(max-width:479px){.modal-content{border-radius:16px 16px 0 0 !important;margin:auto 0 0 0 !important;max-height:85vh;overflow-y:auto}input[type="text"],input[type="date"],select,textarea{font-size:16px !important}}.admin-card{background:white;border-radius:12px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,0.1);border:1px solid #e1e5e9;transition:transform .2s,box-shadow .2s}.admin-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,0.15)}.admin-card h2{margin:0 0 20px 0;font-size:1.5rem;color:var(--text-primary,#0f172a);border-bottom:2px solid var(--brand-500);padding-bottom:12px;display:flex;align-items:center;gap:10px}.admin-card h2 i{color:var(--brand-primary)}@media(max-width:767px){.admin-card{padding:16px !important;border-radius:10px !important}.admin-card h2{font-size:1.15rem !important;margin-bottom:14px !important;padding-bottom:8px !important}}@media(max-width:479px){.admin-card{padding:12px !important}}.notification-item{padding:.75rem 0;border-bottom:1px solid #f3f4f6}.notification-item:last-child{border-bottom:0}.notification-item.unread{background:#f0f9ff;margin:0 -1rem;padding:.75rem 1rem;border-radius:6px}.notification-title{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.notification-content{font-size:.9rem;color:#6b7280;margin-bottom:.25rem}.notification-time{font-size:.8rem;color:#9ca3af}.weight-input-group{display:flex;align-items:center;gap:12px;margin-bottom:20px}.weight-input{flex:1;position:relative}.weight-input input{width:100%;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:14px;transition:border-color .3s}.weight-input input:focus{border-color:var(--brand-primary)}.weight-label{display:block;margin-bottom:6px;font-weight:600;color:var(--text-primary,#0f172a)}.weight-percentage{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#7f8c8d}
:root{--pro-glass-bg:rgba(255,255,255,0.72);--pro-glass-border:rgba(29,79,140,0.12);--pro-glass-blur:blur(20px) saturate(180%);--pro-gradient-brand:linear-gradient(135deg,var(--brand-primary) 0,var(--brand-accent) 100%);--pro-gradient-brand-soft:linear-gradient(135deg,rgba(29,79,140,0.08) 0,rgba(57,126,240,0.05) 100%);--pro-gradient-card-top:linear-gradient(180deg,rgba(29,79,140,0.03) 0,transparent 30%);--pro-shadow-card:0 1px 3px rgba(15,23,42,0.04),0 8px 24px -8px rgba(29,79,140,0.08);--pro-shadow-hover:0 4px 12px rgba(15,23,42,0.06),0 12px 32px -8px rgba(29,79,140,0.15);--pro-shadow-input-focus:0 0 0 3px rgba(29,79,140,0.12);--pro-ease:cubic-bezier(0.16,1,0.3,1);--pro-ease-spring:cubic-bezier(0.34,1.56,0.64,1);--pro-radius-card:16px;--pro-radius-input:10px;--pro-radius-badge:8px}.system-settings-page .page-header h1,.sso-config-page .page-header h1,.dept-admin-page .page-header h1,.plans-page .page-header h1,.logs-page .page-header h1,.notifications-page .page-header h1{background:var(--pro-gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.system-settings-page,.sso-config-page,.dept-admin-page,.plans-page,.logs-page,.notifications-page{max-width:1200px;margin:0 auto;padding:var(--space-6) var(--space-6) var(--space-10)}.page-header .header-actions,.page-header .btn{transition:all .3s var(--pro-ease)}.page-header .btn-primary{background:var(--pro-gradient-brand);box-shadow:var(--pro-shadow-card);border:0}.page-header .btn-primary:hover{transform:translateY(-1px);box-shadow:var(--pro-shadow-hover)}.system-settings-page .admin-card,.sso-config-page .admin-card,.dept-admin-page .admin-card,.dept-admin-page .form-section,.dept-admin-page .admin-list>div,.reg-approval-page .admin-card{background:var(--pro-glass-bg);backdrop-filter:var(--pro-glass-blur);-webkit-backdrop-filter:var(--pro-glass-blur);border:1px solid var(--pro-glass-border);border-radius:var(--pro-radius-card) !important;box-shadow:var(--pro-shadow-card);padding:var(--space-6) var(--space-6) var(--space-5) !important;margin-bottom:var(--space-5);position:relative;overflow:hidden;transition:box-shadow .4s var(--pro-ease),transform .3s var(--pro-ease)}.system-settings-page .admin-card::before,.sso-config-page .admin-card::before,.dept-admin-page .admin-card::before,.dept-admin-page .form-section::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--pro-gradient-brand);opacity:0;transition:opacity .4s var(--pro-ease)}.system-settings-page .admin-card:hover,.sso-config-page .admin-card:hover,.dept-admin-page .admin-card:hover,.dept-admin-page .form-section:hover{box-shadow:var(--pro-shadow-hover);transform:translateY(-2px)}.system-settings-page .admin-card:hover::before,.sso-config-page .admin-card:hover::before,.dept-admin-page .admin-card:hover::before,.dept-admin-page .form-section:hover::before{opacity:1}.system-settings-page .admin-card h2,.sso-config-page .admin-card h2,.dept-admin-page .admin-card h2,.dept-admin-page .form-section h3,.dept-admin-page .admin-list h2{font-weight:var(--font-bold);color:var(--text-primary);letter-spacing:-.01em;margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:2px solid var(--brand-50);display:flex;align-items:center;gap:var(--space-2)}.system-settings-page .stats-grid,.sso-config-page .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.system-settings-page .stat-card{background:var(--pro-glass-bg);backdrop-filter:var(--pro-glass-blur);-webkit-backdrop-filter:var(--pro-glass-blur);border:1px solid var(--pro-glass-border);border-radius:var(--pro-radius-card);padding:var(--space-5) var(--space-5);text-align:center;position:relative;overflow:hidden;transition:all .4s var(--pro-ease);box-shadow:var(--pro-shadow-card)}.system-settings-page .stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:80px;background:var(--pro-gradient-card-top);pointer-events:none}.system-settings-page .stat-card:hover{transform:translateY(-4px);box-shadow:var(--pro-shadow-hover);border-color:rgba(29,79,140,0.25)}.system-settings-page .stat-card .stat-number{font-size:var(--text-3xl);font-weight:var(--font-extrabold);background:var(--pro-gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2;position:relative;z-index:1}.system-settings-page .stat-card .stat-label{color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);margin-top:var(--space-1);position:relative;z-index:1}.system-settings-page input[type="text"],.system-settings-page input[type="number"],.system-settings-page input[type="password"],.system-settings-page input[type="url"],.system-settings-page input[type="email"],.system-settings-page select,.sso-config-page input[type="text"],.sso-config-page input[type="password"],.sso-config-page input[type="url"],.dept-admin-page input[type="text"],.dept-admin-page input[type="password"],.plans-page input[type="text"],.plans-page input[type="number"],.plans-page select{border:1.5px solid var(--border-light);border-radius:var(--pro-radius-input);padding:10px 14px;font-size:var(--text-base);color:var(--text-primary);background:rgba(255,255,255,0.6);transition:all .3s var(--pro-ease);width:100%;outline:0}.system-settings-page input:focus,.system-settings-page select:focus,.sso-config-page input:focus,.dept-admin-page input:focus,.plans-page input:focus,.plans-page select:focus{border-color:var(--brand-400);box-shadow:var(--pro-shadow-input-focus);background:rgba(255,255,255,0.9);transform:translateY(-1px)}.system-settings-page input::placeholder,.sso-config-page input::placeholder,.dept-admin-page input::placeholder,.plans-page input::placeholder{color:var(--text-tertiary);font-size:var(--text-sm)}.system-settings-page label,.sso-config-page label,.dept-admin-page label,.plans-page label{font-weight:var(--font-semibold);color:var(--text-primary);font-size:var(--text-sm);margin-bottom:var(--space-1);display:block}.system-settings-page select,.plans-page select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvgxmlns='http://www.w3.org/2000/svg'width='12'height='12'viewBox='001212'%3E%3Cpathfill='%236366f1'd='M68.825L1.17542.053.12567.0759.953.12510.8254z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.system-settings-page .weight-input-group{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-4)}.system-settings-page .weight-input{flex:1 1 200px;background:var(--pro-gradient-brand-soft);border:1px solid rgba(29,79,140,0.08);border-radius:12px;padding:var(--space-4);transition:all .3s var(--pro-ease)}.system-settings-page .weight-input:hover{border-color:rgba(29,79,140,0.20);box-shadow:0 2px 8px rgba(29,79,140,0.06)}.system-settings-page .weight-label{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-2)}.system-settings-page .weight-percentage{display:inline-block;margin-top:var(--space-1);font-size:var(--text-xs);font-weight:var(--font-bold);color:var(--brand-600);background:var(--brand-50);padding:2px 8px;border-radius:var(--radius-full)}.system-settings-page .total-weight{background:var(--pro-gradient-brand-soft);border:1px solid rgba(29,79,140,0.12);border-radius:12px;padding:var(--space-4) var(--space-5);font-size:var(--text-md);font-weight:var(--font-bold);margin:var(--space-4) 0;text-align:center}.system-settings-page .form-inline-enhanced{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.system-settings-page .form-inline-enhanced input{flex:1}.system-settings-page .items-list-enhanced{display:flex;flex-direction:column;gap:var(--space-2);max-height:300px;overflow-y:auto}.system-settings-page .items-list-enhanced::-webkit-scrollbar,.dept-admin-page .admin-list::-webkit-scrollbar{width:6px}.system-settings-page .items-list-enhanced::-webkit-scrollbar-thumb,.dept-admin-page .admin-list::-webkit-scrollbar-thumb{background:rgba(29,79,140,0.2);border-radius:3px}.system-settings-page .items-list-enhanced::-webkit-scrollbar-thumb:hover,.dept-admin-page .admin-list::-webkit-scrollbar-thumb:hover{background:rgba(29,79,140,0.4)}.system-settings-page .item-enhanced{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:rgba(255,255,255,0.5);border:1px solid var(--border-light);border-radius:10px;transition:all .3s var(--pro-ease);font-size:var(--text-sm)}.system-settings-page .item-enhanced:hover{background:var(--brand-50);border-color:var(--brand-200);transform:translateX(4px)}.system-settings-page .btn,.sso-config-page .btn,.dept-admin-page .btn,.reg-approval-page .btn,.plans-page .btn,.logs-page .btn,.notifications-page .btn{border-radius:var(--pro-radius-input);font-weight:var(--font-semibold);font-size:var(--text-sm);padding:9px 20px;transition:all .3s var(--pro-ease);cursor:pointer;border:0;display:inline-flex;align-items:center;gap:6px}.system-settings-page .btn-primary,.sso-config-page .btn-primary,.dept-admin-page .btn-primary,.reg-approval-page .btn-primary,.plans-page .btn-primary,.logs-page .btn-primary,.notifications-page .btn-primary{background:var(--pro-gradient-brand);color:#fff;box-shadow:var(--shadow-brand-sm)}.system-settings-page .btn-primary:hover,.sso-config-page .btn-primary:hover,.dept-admin-page .btn-primary:hover,.reg-approval-page .btn-primary:hover,.plans-page .btn-primary:hover,.logs-page .btn-primary:hover,.notifications-page .btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-brand-md)}.system-settings-page .btn-primary:active,.sso-config-page .btn-primary:active{transform:translateY(0)}.system-settings-page .btn-outline,.sso-config-page .btn-outline,.dept-admin-page .btn-outline,.reg-approval-page .btn-outline,.plans-page .btn-outline,.logs-page .btn-outline,.notifications-page .btn-outline{background:rgba(255,255,255,0.6);color:var(--brand-600);border:1.5px solid var(--brand-200)}.system-settings-page .btn-outline:hover,.sso-config-page .btn-outline:hover,.dept-admin-page .btn-outline:hover,.reg-approval-page .btn-outline:hover,.plans-page .btn-outline:hover,.logs-page .btn-outline:hover,.notifications-page .btn-outline:hover{background:var(--brand-50);border-color:var(--brand-400);color:var(--brand-700)}.system-settings-page .btn-secondary{background:var(--neutral-100);color:var(--text-secondary)}.system-settings-page .btn-secondary:hover{background:var(--neutral-200)}.system-settings-page .btn-sm,.sso-config-page .btn-sm,.dept-admin-page .btn-sm,.reg-approval-page .btn-sm,.plans-page .btn-sm,.logs-page .btn-sm,.notifications-page .btn-sm{padding:6px 14px;font-size:var(--text-xs)}.system-settings-page .form-actions,.sso-config-page .form-actions,.dept-admin-page .form-actions,.logs-page .form-actions{display:flex;gap:var(--space-3);align-items:center;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.system-settings-page .info-grid-enhanced{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-3)}.system-settings-page .info-item-enhanced{display:flex;flex-direction:column;gap:4px;padding:var(--space-3) var(--space-4);background:var(--pro-gradient-brand-soft);border:1px solid rgba(29,79,140,0.06);border-radius:10px;transition:all .3s var(--pro-ease)}.system-settings-page .info-item-enhanced:hover{border-color:rgba(29,79,140,0.15);background:rgba(29,79,140,0.06)}.system-settings-page .info-item-enhanced label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.system-settings-page .info-item-enhanced span{font-size:var(--text-md);color:var(--text-primary);font-weight:var(--font-semibold);font-family:var(--font-mono)}.system-settings-page .empty-state,.dept-admin-page .empty-state,.reg-approval-page .empty-state,.plans-page .empty-state,.logs-page .empty-state,.notifications-page .empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-tertiary)}.system-settings-page .empty-state>div:first-child,.plans-page .empty-state .icon{font-size:48px;opacity:.4;margin-bottom:var(--space-3)}.system-settings-page .alert,.sso-config-page .alert,.dept-admin-page .alert,.reg-approval-page .alert,.logs-page .alert,.notifications-page .alert{border-radius:12px;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);display:flex;align-items:center;gap:var(--space-2);border:1px solid transparent;animation:alertSlideIn .4s var(--pro-ease)}@keyframes alertSlideIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.system-settings-page .alert-success,.dept-admin-page .alert-success,.reg-approval-page .alert-success,.logs-page .alert-success{background:var(--success-50);color:var(--success-700);border-color:var(--success-100)}.system-settings-page .alert-error,.dept-admin-page .alert-error,.reg-approval-page .alert-error,.logs-page .alert-error{background:var(--danger-50);color:var(--danger-700);border-color:var(--danger-100)}.sso-config-page .data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}.sso-config-page .data-table thead th{background:var(--pro-gradient-brand-soft);color:var(--brand-700);font-weight:var(--font-bold);text-transform:uppercase;font-size:var(--text-xs);letter-spacing:.05em;padding:12px 14px;border-bottom:2px solid var(--brand-100);text-align:left;white-space:nowrap}.sso-config-page .data-table thead th:first-child{border-top-left-radius:12px}.sso-config-page .data-table thead th:last-child{border-top-right-radius:12px}.sso-config-page .data-table tbody td{padding:10px 14px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);transition:background .2s ease}.sso-config-page .data-table tbody tr{transition:all .3s var(--pro-ease)}.sso-config-page .data-table tbody tr:hover{background:var(--brand-50)}.sso-config-page .data-table tbody tr:hover td{color:var(--text-primary)}.sso-config-page .modal-overlay{background:rgba(15,23,42,0.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.sso-config-page .modal-dialog{background:var(--pro-glass-bg);backdrop-filter:var(--pro-glass-blur);-webkit-backdrop-filter:var(--pro-glass-blur);border:1px solid var(--pro-glass-border);border-radius:var(--pro-radius-card);box-shadow:var(--shadow-xl);overflow:hidden}.sso-config-page .modal-header{background:var(--pro-gradient-brand-soft);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.sso-config-page .modal-header h2{color:var(--brand-700);font-size:var(--text-lg);font-weight:var(--font-bold)}.sso-config-page .modal-body{padding:var(--space-5)}.sso-config-page .hint{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:4px}.sso-config-page .form-row{display:flex;gap:var(--space-3)}.sso-config-page .form-row .form-group{flex:1}.dept-admin-page .form-section{background:var(--pro-glass-bg);backdrop-filter:var(--pro-glass-blur);-webkit-backdrop-filter:var(--pro-glass-blur);border:1px solid var(--pro-glass-border);border-radius:var(--pro-radius-card);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-5)}.dept-admin-page .checkbox-group{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.dept-admin-page .checkbox-group label{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--neutral-50);border:1px solid var(--border-light);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-normal);cursor:pointer;transition:all .3s var(--pro-ease)}.dept-admin-page .checkbox-group label:hover{background:var(--brand-50);border-color:var(--brand-200)}.dept-admin-page .checkbox-group input[type="checkbox"]{accent-color:var(--brand-500);width:16px;height:16px;cursor:pointer}.dept-admin-page .checkbox-group label:has(input:checked){background:var(--brand-50);border-color:var(--brand-400);color:var(--brand-700);font-weight:var(--font-semibold)}.dept-admin-page .admin-list .admin-card{padding:var(--space-4) var(--space-5) !important;margin-bottom:var(--space-3)}.dept-admin-page .admin-list .admin-card .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.dept-admin-page .admin-list .admin-card .header strong{color:var(--text-primary);font-size:var(--text-md)}.notifications-page .filters{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--pro-glass-bg);backdrop-filter:var(--pro-glass-blur);-webkit-backdrop-filter:var(--pro-glass-blur);border:1px solid var(--pro-glass-border);border-radius:12px;align-items:center}.filter-btn{padding:6px 14px;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);background:transparent;border:1px solid transparent;text-decoration:none;transition:all .3s var(--pro-ease);cursor:pointer}.filter-btn:hover{background:var(--brand-50);color:var(--brand-600)}.filter-btn.active{background:var(--pro-gradient-brand);color:#fff;box-shadow:var(--shadow-brand-sm)}.filter-divider{width:1px;height:24px;background:var(--border-light);margin:0 var(--space-1)}.notifications-list{display:flex;flex-direction:column;gap:var(--space-3)}.notification-item{background:var(--pro-glass-bg);backdrop-filter:var(--pro-glass-blur);-webkit-backdrop-filter:var(--pro-glass-blur);border:1px solid var(--pro-glass-border);border-radius:14px;padding:var(--space-4) var(--space-5);transition:all .3s var(--pro-ease);position:relative;overflow:hidden}.notification-item.unread{border-left:3px solid var(--brand-500);background:linear-gradient(90deg,rgba(29,79,140,0.04) 0,var(--pro-glass-bg) 30%)}.notification-item:hover{transform:translateX(4px);box-shadow:var(--pro-shadow-hover);border-color:rgba(29,79,140,0.2)}.notification-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.notification-time{font-size:var(--text-xs);color:var(--text-tertiary);font-family:var(--font-mono)}.notification-title{font-size:var(--text-md);font-weight:var(--font-bold);color:var(--text-primary);margin-bottom:4px}.notification-content{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed)}.notification-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.plans-page .plans-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:var(--space-5);margin-top:var(--space-4)}.plans-page .calendar-card{background:var(--pro-glass-bg);backdrop-filter:var(--pro-glass-blur);-webkit-backdrop-filter:var(--pro-glass-blur);border:1px solid var(--pro-glass-border);border-radius:var(--pro-radius-card);padding:var(--space-5);box-shadow:var(--pro-shadow-card)}.plans-page .calendar-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.plans-page .cal-nav-btn{width:36px;height:36px;border-radius:var(--radius-full);border:1px solid var(--border-light);background:rgba(255,255,255,0.6);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all .3s var(--pro-ease);display:flex;align-items:center;justify-content:center}.plans-page .cal-nav-btn:hover{background:var(--brand-50);border-color:var(--brand-300);color:var(--brand-600);transform:scale(1.08)}.plans-page .cal-month-label{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--text-primary);flex:1;text-align:center}.plans-page .cal-today-btn{padding:6px 16px;border-radius:var(--radius-full);border:1px solid var(--brand-200);background:var(--brand-50);color:var(--brand-600);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:all .3s var(--pro-ease)}.plans-page .cal-today-btn:hover{background:var(--pro-gradient-brand);color:#fff;border-color:transparent}.plans-page .plans-list-card{background:var(--pro-glass-bg);backdrop-filter:var(--pro-glass-blur);-webkit-backdrop-filter:var(--pro-glass-blur);border:1px solid var(--pro-glass-border);border-radius:var(--pro-radius-card);padding:var(--space-5);box-shadow:var(--pro-shadow-card);height:fit-content;position:sticky;top:var(--space-4)}.plans-page .plans-list-header h2{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--text-primary);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:2px solid var(--brand-50)}.plans-page .plans-list-body{max-height:500px;overflow-y:auto}.file-management-container .file-management-header{background:var(--pro-glass-bg);backdrop-filter:var(--pro-glass-blur);-webkit-backdrop-filter:var(--pro-glass-blur);border:1px solid var(--pro-glass-border);border-radius:var(--pro-radius-card);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);box-shadow:var(--pro-shadow-card)}.file-management-container .breadcrumb a{color:var(--brand-600);text-decoration:none;font-weight:var(--font-medium);transition:color .2s ease}.file-management-container .breadcrumb a:hover{color:var(--brand-700);text-decoration:underline}.file-management-container .file-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin-top:var(--space-3)}.file-management-container .search-container{position:relative;flex:1;min-width:200px}.file-management-container .search-container input{width:100%;padding:9px 14px 9px 38px;border:1.5px solid var(--border-light);border-radius:var(--pro-radius-input);font-size:var(--text-sm);background:rgba(255,255,255,0.6);transition:all .3s var(--pro-ease);outline:0}.file-management-container .search-container input:focus{border-color:var(--brand-400);box-shadow:var(--pro-shadow-input-focus);background:rgba(255,255,255,0.9)}.file-management-container .search-container .fa-search{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);font-size:14px}.file-management-container .files-container{background:var(--pro-glass-bg);backdrop-filter:var(--pro-glass-blur);-webkit-backdrop-filter:var(--pro-glass-blur);border:1px solid var(--pro-glass-border);border-radius:var(--pro-radius-card);padding:var(--space-4);min-height:400px;box-shadow:var(--pro-shadow-card)}.file-management-container .drag-overlay{position:absolute;inset:0;background:rgba(29,79,140,0.08);backdrop-filter:blur(4px);border:3px dashed var(--brand-400);border-radius:var(--pro-radius-card);display:none;align-items:center;justify-content:center;flex-direction:column;color:var(--brand-600);font-size:var(--text-lg);font-weight:var(--font-bold);z-index:10;pointer-events:none}.file-management-container .drag-overlay i{font-size:48px;margin-bottom:var(--space-3)}.reg-approval-page .admin-card{background:var(--pro-glass-bg);backdrop-filter:var(--pro-glass-blur);-webkit-backdrop-filter:var(--pro-glass-blur);border:1px solid var(--pro-glass-border);border-radius:var(--pro-radius-card);padding:var(--space-5);margin-bottom:var(--space-4);box-shadow:var(--pro-shadow-card);transition:all .3s var(--pro-ease)}.reg-approval-page .admin-card:hover{box-shadow:var(--pro-shadow-hover);transform:translateY(-2px)}.reg-approval-page .data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}.reg-approval-page .data-table thead th{background:var(--pro-gradient-brand-soft);color:var(--brand-700);font-weight:var(--font-bold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;padding:12px 14px;border-bottom:2px solid var(--brand-100);text-align:left}.reg-approval-page .data-table tbody td{padding:10px 14px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.reg-approval-page .data-table tbody tr{transition:all .3s var(--pro-ease)}.reg-approval-page .data-table tbody tr:hover{background:var(--brand-50)}.reg-approval-page .data-table tbody tr:hover td{color:var(--text-primary)}.logs-page .log-tabs{display:flex;gap:0;margin-bottom:var(--space-4);border-bottom:2px solid var(--border-light)}.logs-page .log-tab{padding:var(--space-3) var(--space-5);background:transparent;border:0;cursor:pointer;font-weight:var(--font-semibold);color:var(--text-tertiary);transition:all .3s var(--pro-ease);border-bottom:2px solid transparent;margin-bottom:-2px;font-size:var(--text-sm)}.logs-page .log-tab:hover{color:var(--brand-600)}.logs-page .log-tab.active{color:var(--brand-600);border-bottom-color:var(--brand-500)}.logs-page .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3);margin-bottom:var(--space-5)}.logs-page .stat-card{background:var(--pro-glass-bg);backdrop-filter:var(--pro-glass-blur);-webkit-backdrop-filter:var(--pro-glass-blur);border:1px solid var(--pro-glass-border);border-radius:14px;padding:var(--space-4);text-align:center;box-shadow:var(--pro-shadow-card);transition:all .3s var(--pro-ease)}.logs-page .stat-card:hover{transform:translateY(-2px);box-shadow:var(--pro-shadow-hover)}.logs-page .stat-card .stat-number{font-size:var(--text-2xl);font-weight:var(--font-extrabold);background:var(--pro-gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logs-page .stat-card .stat-label{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:4px}.logs-page .data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}.logs-page .data-table thead th{background:var(--pro-gradient-brand-soft);color:var(--brand-700);font-weight:var(--font-bold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;padding:10px 12px;border-bottom:2px solid var(--brand-100);text-align:left;white-space:nowrap}.logs-page .data-table tbody td{padding:8px 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.logs-page .data-table tbody tr{transition:all .2s ease}.logs-page .data-table tbody tr:hover{background:var(--brand-50)}.logs-page .data-table tbody tr:hover td{color:var(--text-primary)}.system-settings-page .badge,.sso-config-page .badge,.dept-admin-page .badge,.reg-approval-page .badge,.notifications-page .badge,.plans-page .badge,.logs-page .badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--pro-radius-badge);font-size:var(--text-xs);font-weight:var(--font-bold);letter-spacing:.02em;transition:all .2s ease}.badge-primary{background:var(--brand-50);color:var(--brand-700)}.badge-success,.badge-active{background:var(--success-50);color:var(--success-700)}.badge-warning,.badge-pending{background:var(--warning-50);color:var(--warning-700)}.badge-danger,.badge-rejected,.badge-inactive{background:var(--danger-50);color:var(--danger-700)}.badge-info{background:var(--info-50);color:var(--info-600)}.notification-type.badge-system{background:var(--neutral-100);color:var(--neutral-700)}.notification-type.badge-training{background:var(--brand-50);color:var(--brand-700)}.notification-type.badge-observation{background:#ede9fe;color:#6d28d9}.notification-type.badge-approval{background:var(--warning-50);color:var(--warning-700)}.notification-type.badge-certificate{background:var(--success-50);color:var(--success-700)}.notification-type.badge-announcement{background:#fef3c7;color:#92400e}.notification-type.badge-reminder{background:var(--info-50);color:var(--info-600)}.notification-type.badge-alert{background:var(--danger-50);color:var(--danger-700)}.container .pagination,.notifications-page .pagination{display:flex;gap:var(--space-2);justify-content:center;margin-top:var(--space-5);padding:var(--space-3)}.pagination .btn{padding:8px 14px;border-radius:var(--pro-radius-input);font-size:var(--text-sm);font-weight:var(--font-medium);border:1px solid var(--border-light);background:rgba(255,255,255,0.6);color:var(--text-secondary);cursor:pointer;transition:all .3s var(--pro-ease);text-decoration:none}.pagination .btn:hover{background:var(--brand-50);border-color:var(--brand-300);color:var(--brand-600)}.pagination .btn.active,.pagination .btn[aria-current="page"]{background:var(--pro-gradient-brand);color:#fff;border-color:transparent;box-shadow:var(--shadow-brand-sm)}.system-settings-page .admin-dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:var(--space-5);margin-bottom:var(--space-5)}.system-settings-page .admin-dashboard .admin-card{margin-bottom:0}.system-settings-page .admin-card,.sso-config-page .admin-card,.dept-admin-page .admin-card,.dept-admin-page .form-section{animation:proCardIn .5s var(--pro-ease) backwards}.system-settings-page .admin-card:nth-child(2),.sso-config-page .admin-card:nth-child(2),.dept-admin-page .form-section:nth-child(2){animation-delay:.08s}.system-settings-page .admin-card:nth-child(3),.dept-admin-page .admin-card:nth-child(3){animation-delay:.16s}.system-settings-page .admin-card:nth-child(4){animation-delay:.24s}@keyframes proCardIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.system-settings-page .stat-card{animation:proStatIn .4s var(--pro-ease-spring) backwards}.system-settings-page .stat-card:nth-child(1){animation-delay:.05s}.system-settings-page .stat-card:nth-child(2){animation-delay:.10s}.system-settings-page .stat-card:nth-child(3){animation-delay:.15s}.system-settings-page .stat-card:nth-child(4){animation-delay:.20s}@keyframes proStatIn{from{opacity:0;transform:scale(0.92) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(max-width:1023px){.plans-page .plans-layout{grid-template-columns:1fr}.plans-page .plans-list-card{position:static}.system-settings-page .admin-dashboard{grid-template-columns:1fr}}@media(max-width:767px){.system-settings-page,.sso-config-page,.dept-admin-page,.plans-page,.logs-page,.notifications-page{padding:var(--space-4) var(--space-3) var(--space-8)}.system-settings-page .admin-card,.sso-config-page .admin-card,.dept-admin-page .admin-card,.dept-admin-page .form-section,.logs-page .stat-card{padding:var(--space-4) var(--space-4) var(--space-3) !important}.system-settings-page .stats-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.system-settings-page .stat-card .stat-number{font-size:var(--text-2xl)}.system-settings-page .weight-input{flex:1 1 100%}.file-management-container .file-actions{flex-direction:column;align-items:stretch}.file-management-container .search-container{min-width:100%}.sso-config-page .data-table{font-size:var(--text-xs)}.sso-config-page .data-table thead th,.sso-config-page .data-table tbody td{padding:8px 10px}.filter-divider{display:none}}@media(max-width:479px){.system-settings-page .stats-grid{grid-template-columns:1fr}.system-settings-page .form-inline-enhanced{flex-direction:column}.system-settings-page .form-actions,.dept-admin-page .form-actions{flex-direction:column;align-items:stretch}.system-settings-page .form-actions .btn,.dept-admin-page .form-actions .btn{width:100%;justify-content:center}}[data-theme="dark"]{--pro-glass-bg:rgba(30,27,75,0.45);--pro-glass-border:rgba(129,140,248,0.15);--pro-gradient-brand-soft:linear-gradient(135deg,rgba(29,79,140,0.12) 0,rgba(57,126,240,0.08) 100%);--pro-gradient-card-top:linear-gradient(180deg,rgba(129,140,248,0.06) 0,transparent 30%);--pro-shadow-card:0 1px 3px rgba(0,0,0,0.2),0 8px 24px -8px rgba(29,79,140,0.15);--pro-shadow-hover:0 4px 12px rgba(0,0,0,0.25),0 12px 32px -8px rgba(29,79,140,0.25)}[data-theme="dark"] .system-settings-page input,[data-theme="dark"] .sso-config-page input,[data-theme="dark"] .dept-admin-page input,[data-theme="dark"] .plans-page input,[data-theme="dark"] .logs-page input,[data-theme="dark"] .notifications-page input,[data-theme="dark"] .system-settings-page select,[data-theme="dark"] .plans-page select,[data-theme="dark"] .logs-page select{background:rgba(30,27,75,0.3);color:#e2e8f0;border-color:rgba(129,140,248,0.15)}[data-theme="dark"] .system-settings-page input:focus,[data-theme="dark"] .sso-config-page input:focus,[data-theme="dark"] .dept-admin-page input:focus,[data-theme="dark"] .plans-page input:focus,[data-theme="dark"] .logs-page input:focus,[data-theme="dark"] .notifications-page input:focus,[data-theme="dark"] .system-settings-page select:focus,[data-theme="dark"] .plans-page select:focus,[data-theme="dark"] .logs-page select:focus{background:rgba(30,27,75,0.5);border-color:var(--brand-400)}[data-theme="dark"] .system-settings-page input::placeholder,[data-theme="dark"] .sso-config-page input::placeholder,[data-theme="dark"] .dept-admin-page input::placeholder,[data-theme="dark"] .plans-page input::placeholder,[data-theme="dark"] .logs-page input::placeholder,[data-theme="dark"] .notifications-page input::placeholder{color:rgba(148,163,184,0.5)}[data-theme="dark"] .system-settings-page .item-enhanced,[data-theme="dark"] .dept-admin-page .checkbox-group label{background:rgba(30,27,75,0.2);border-color:rgba(129,140,248,0.1)}[data-theme="dark"] .system-settings-page .item-enhanced:hover{background:rgba(29,79,140,0.1);border-color:rgba(129,140,248,0.25)}[data-theme="dark"] .filter-btn{color:rgba(203,213,225,0.7)}[data-theme="dark"] .filter-btn:hover{background:rgba(29,79,140,0.1);color:var(--brand-300)}[data-theme="dark"] .sso-config-page .data-table thead th,[data-theme="dark"] .reg-approval-page .data-table thead th,[data-theme="dark"] .logs-page .data-table thead th{background:rgba(29,79,140,0.08);color:var(--brand-300);border-bottom-color:rgba(129,140,248,0.2)}[data-theme="dark"] .sso-config-page .data-table tbody tr:hover,[data-theme="dark"] .reg-approval-page .data-table tbody tr:hover,[data-theme="dark"] .logs-page .data-table tbody tr:hover{background:rgba(29,79,140,0.06)}[data-theme="dark"] .pagination .btn{background:rgba(30,27,75,0.3);border-color:rgba(129,140,248,0.1);color:rgba(203,213,225,0.7)}[data-theme="dark"] .pagination .btn:hover{background:rgba(29,79,140,0.1);border-color:rgba(129,140,248,0.3);color:var(--brand-300)}@media print{.system-settings-page .admin-card,.sso-config-page .admin-card,.dept-admin-page .admin-card,.logs-page .stat-card{backdrop-filter:none;background:#fff;border:1px solid #ccc;box-shadow:none;break-inside:avoid}.system-settings-page .admin-card::before,.sso-config-page .admin-card::before,.dept-admin-page .admin-card::before{display:none}.system-settings-page .stat-card .stat-number,.logs-page .stat-card .stat-number{-webkit-text-fill-color:var(--brand-primary)}}/**
 * ============================================================
 *  侧边栏全新设计 — Aurora 3.0
 *  教师成长管理系统 2026-07-07 v2
 * ============================================================
 *  覆盖策略：重定义 --sidebar-* CSS 变量 + 独立重写关键属性
 *  确保在 aurora-bundle.min.css 之后加载即可生效
 * ============================================================
 */

/* ═══════ 核心策略：覆盖 CSS 变量（最可靠） ═══════ */
.app-sidebar {
  /* 新品牌色：石墨灰 + 靛紫 */
  --sidebar-base:        #111827 !important;
  --sidebar-deep:        #0a0f1a !important;
  --sidebar-dark:        #080d14 !important;
  --sidebar-glow:        rgba(99, 102, 241, 0.15) !important;
  --sidebar-surface:        rgba(99, 102, 241, 0.04) !important;
  --sidebar-surface-hover:  rgba(99, 102, 241, 0.1) !important;
  --sidebar-surface-active: rgba(99, 102, 241, 0.15) !important;
  --sidebar-accent:         linear-gradient(180deg, #818cf8, #a78bfa) !important;
  --sidebar-accent-glow:    0 0 16px rgba(129, 140, 248, 0.5) !important;
  --sidebar-text:           rgba(203, 213, 225, 0.85) !important;
  --sidebar-text-hover:     #e2e8f0 !important;
  --sidebar-text-active:    #ffffff !important;
  --sidebar-text-muted:     rgba(148, 163, 184, 0.55) !important;
  --sidebar-border:         rgba(99, 102, 241, 0.08) !important;
  --sidebar-divider:        rgba(99, 102, 241, 0.05) !important;
  --brand-300:              #818cf8 !important;
  --brand-400:              #6366f1 !important;
  --brand-accent:           #818cf8 !important;

  /* 重新直接覆盖关键视觉属性 */
  background: linear-gradient(175deg, #111827 0%, #0f172a 35%, #0a0f1a 100%) !important;
  background-image:
    radial-gradient(ellipse 120% 50% at 10% 0%, rgba(99, 102, 241, 0.12) 0%, transparent 60%),
    radial-gradient(ellipse 80% 40% at 90% 100%, rgba(139, 92, 246, 0.07) 0%, transparent 50%),
    linear-gradient(175deg, #111827 0%, #0f172a 35%, #0a0f1a 100%) !important;
  border-right: 1px solid rgba(99, 102, 241, 0.08) !important;
  box-shadow: 4px 0 40px rgba(0, 0, 0, 0.3) !important;
  color: #cbd5e1 !important;
}

/* 顶部装饰线 — 靛紫色 */
.app-sidebar::before {
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(99, 102, 241, 0.5) 15%,
    rgba(139, 92, 246, 0.35) 40%,
    rgba(99, 102, 241, 0.25) 70%,
    transparent 100%) !important;
  opacity: 0.7 !important;
}

/* ═══════ 导航项 — 重写 ═══════ */
.sidebar-nav .nav-item,
.sidebar-nav .nav-group-header {
  color: rgba(203, 213, 225, 0.75) !important;
  border-radius: 10px !important;
  gap: 12px !important;
  padding: 10px 14px !important;
  letter-spacing: 0.01em !important;
}

.sidebar-nav .nav-item:hover,
.sidebar-nav .nav-group-header:hover {
  background: rgba(99, 102, 241, 0.1) !important;
  color: #e2e8f0 !important;
  transform: translateX(3px) !important;
  border-color: rgba(99, 102, 241, 0.12) !important;
}

.sidebar-nav .nav-item.active,
.sidebar-nav .nav-group-header.active,
.sidebar-nav .nav-group-header.open {
  background: linear-gradient(135deg,
    rgba(99, 102, 241, 0.18) 0%,
    rgba(139, 92, 246, 0.1) 100%) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  border-color: rgba(99, 102, 241, 0.2) !important;
  box-shadow: 0 2px 16px rgba(99, 102, 241, 0.1) !important;
}

/* 激活态左侧渐变竖条 */
.sidebar-nav .nav-item.active::before,
.sidebar-nav .nav-group-header.active::before {
  background: linear-gradient(180deg, #818cf8 0%, #a78bfa 100%) !important;
  box-shadow: 0 0 14px rgba(129, 140, 248, 0.5),
              0 0 28px rgba(139, 92, 246, 0.25) !important;
  width: 3px !important;
  border-radius: 0 3px 3px 0 !important;
}

/* 箭头 */
.nav-arrow {
  color: rgba(129, 140, 248, 0.6) !important;
}
.sidebar-nav .nav-group-header.open .nav-arrow {
  transform: rotate(90deg) !important;
  color: #a78bfa !important;
}

/* 子菜单 */
.nav-submenu {
  margin-left: 12px !important;
  border-left: 1px solid rgba(99, 102, 241, 0.08) !important;
}

.nav-sub-item {
  color: rgba(148, 163, 184, 0.7) !important;
  border-radius: 8px !important;
}

.nav-sub-item:hover {
  background: rgba(99, 102, 241, 0.07) !important;
  color: #cbd5e1 !important;
}

.nav-sub-item.active {
  color: #f1f5f9 !important;
  background: rgba(99, 102, 241, 0.12) !important;
  font-weight: 600 !important;
  border: 1px solid rgba(99, 102, 241, 0.15) !important;
}

/* ═══════ Logo ═══════ */
.sidebar-logo {
  border-bottom-color: rgba(99, 102, 241, 0.08) !important;
}

.sidebar-logo img {
  filter: drop-shadow(0 2px 12px rgba(99, 102, 241, 0.3)) !important;
}

/* ═══════ 用户区 ═══════ */
.sidebar-user {
  border-bottom-color: rgba(99, 102, 241, 0.06) !important;
}

.sidebar-user .username {
  color: #f1f5f9 !important;
  font-weight: 600 !important;
}

.user-avatar {
  border-color: rgba(99, 102, 241, 0.25) !important;
  box-shadow: 0 0 16px rgba(99, 102, 241, 0.12) !important;
}

/* ═══════ 操作按钮 ═══════ */
.sidebar-actions .action-btn {
  background: rgba(99, 102, 241, 0.05) !important;
  border-color: rgba(99, 102, 241, 0.1) !important;
  border-radius: 8px !important;
}

.sidebar-actions .action-btn:hover {
  background: rgba(99, 102, 241, 0.12) !important;
  transform: translateY(-2px) !important;
}

/* ═══════ 底部 ═══════ */
.sidebar-footer {
  border-top-color: rgba(99, 102, 241, 0.08) !important;
}

.sidebar-footer .nav-item {
  color: rgba(148, 163, 184, 0.55) !important;
}

.sidebar-footer .nav-item:hover {
  background: rgba(99, 102, 241, 0.06) !important;
  color: rgba(203, 213, 225, 0.85) !important;
}


/* ═══════ 响应式 ═══════ */
/* 注意：必须用 !important 覆盖 bundle 中 @media 内的规则 */
/* ═══════ 浅色主题 ═══════ */
[data-theme="light"] .app-sidebar {
  --sidebar-base:        #ffffff !important;
  --sidebar-deep:        #f8fafc !important;
  --sidebar-glow:        rgba(99, 102, 241, 0.06) !important;
  --sidebar-text:        rgba(71, 85, 105, 0.75) !important;
  --sidebar-text-hover:  #334155 !important;
  --sidebar-text-active: #1e293b !important;
  --sidebar-text-muted:  rgba(100, 116, 139, 0.55) !important;
  --sidebar-border:      rgba(99, 102, 241, 0.08) !important;
  --sidebar-surface-hover:  rgba(99, 102, 241, 0.06) !important;
  --sidebar-surface-active: rgba(99, 102, 241, 0.08) !important;

  background: linear-gradient(175deg, #ffffff 0%, #f8fafc 50%, #f1f5f9 100%) !important;
  background-image:
    radial-gradient(ellipse 120% 50% at 10% 0%, rgba(99, 102, 241, 0.05) 0%, transparent 60%),
    linear-gradient(175deg, #ffffff 0%, #f8fafc 50%, #f1f5f9 100%) !important;
  color: #475569 !important;
  border-right: 1px solid rgba(99, 102, 241, 0.08) !important;
  box-shadow: 2px 0 24px rgba(0, 0, 0, 0.04) !important;
}

[data-theme="light"] .sidebar-nav .nav-item,
[data-theme="light"] .sidebar-nav .nav-group-header {
  color: rgba(71, 85, 105, 0.65) !important;
}

[data-theme="light"] .sidebar-nav .nav-item.active,
[data-theme="light"] .sidebar-nav .nav-group-header.active {
  background: rgba(99, 102, 241, 0.08) !important;
  color: #1e293b !important;
  border-color: rgba(99, 102, 241, 0.12) !important;
}

[data-theme="light"] .nav-sub-item {
  color: rgba(100, 116, 139, 0.55) !important;
}

[data-theme="light"] .nav-sub-item.active {
  color: #1e293b !important;
  background: rgba(99, 102, 241, 0.06) !important;
}

[data-theme="light"] .sidebar-user .username { color: #1e293b !important; }
[data-theme="light"] .sidebar-footer .nav-item { color: rgba(100, 116, 139, 0.45) !important; }

/* 右键菜单（系统管理页等可能用到） */
.tree-context-menu,
.context-menu {
  background: #1e293b !important;
  border: 1px solid rgba(99, 102, 241, 0.15) !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}
/* =========================================================================
   全局主题增强（P4-b）
   确保 <body> 背景跟随 design-tokens：浅色 -> 浅灰蓝，深色 -> 深蓝。
   aurora-bundle 已通过渐变令牌主题化 body；此处用 --bg-page 显式兜底，
   使普通页面在切换 data-theme 时背景明显变化，且不覆盖渐变背景图。
   工作台（body.dashboard-page）与数据大屏（html body）使用更高优先级规则，
   不会被此处影响。
   ========================================================================= */

body {
    background-color: var(--bg-page, #f5f7fa);
    color: var(--text-primary, #334155);
}

/* =========================================================================
   B3 兜底：未使用 .modal-body 包裹的旧模态框，标题与表单沿用 .modal-body 内边距
   （20px 24px），避免出现 0 内边距。仅作用于 .modal-content 的直接子元素，
   已正确使用 .modal-header/.modal-body 的模态框不会重复受影响。
   ========================================================================= */
.modal-content > h2:first-child {
    margin: 0;
    padding: 20px 24px 0;
}
.modal-content > form {
    padding: 16px 24px 24px;
}

/* B7b：侧边栏用户头像图片渲染 */
.user-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.user-avatar .avatar-img {
    width: 100% !important;
    height: 100% !important;
    max-width: 40px !important;
    max-height: 40px !important;
    object-fit: cover !important;
    border-radius: 50% !important;
    display: block;
}
.user-avatar .avatar-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
}
html body.data-dashboard{background:radial-gradient(ellipse 1200px 800px at 15% 40%,rgba(0,120,255,0.12) 0,transparent 70%),radial-gradient(ellipse 900px 600px at 75% 20%,rgba(0,200,200,0.10) 0,transparent 65%),radial-gradient(ellipse 700px 500px at 60% 80%,rgba(80,0,180,0.09) 0,transparent 60%),radial-gradient(ellipse 1000px 700px at 30% 70%,rgba(0,80,160,0.08) 0,transparent 70%),linear-gradient(180deg,#030b1f 0%,#051030 30%,#020d22 60%,#030b1f 100%) !important;background-color:#030b1f !important;background-attachment:fixed !important;background-size:cover !important;color:#d0e8ff !important;animation:dash-bgShift 15s ease-in-out infinite alternate !important;min-height:100vh !important;}@keyframes dash-bgShift{0%{background-position:0 0,0 0,0 0,0 0,0 0;}50%{background-position:3% 2%,-2% -3%,1% -1%,-1% 2%,0 0;}100%{background-position:-2% -1%,2% 1%,-1% 2%,1% -1%,0 0;}}html body .app-sidebar,html body div.app-sidebar{background:#0f2a4a !important;background-image:radial-gradient(ellipse 120% 50% at 10% 0%,rgba(57,126,240,0.12) 0%,transparent 60%),radial-gradient(ellipse 80% 40% at 90% 100%,rgba(29,79,140,0.08) 0%,transparent 50%),linear-gradient(175deg,#0f2a4a 0%,#0c2340 35%,#081d35 100%) !important;color:rgba(203,213,225,0.88) !important;border-right:1px solid rgba(57,126,240,0.10) !important;box-shadow:4px 0 40px rgba(0,0,0,0.35) !important;}html body .app-sidebar::before{background:linear-gradient(90deg,transparent 0%,rgba(57,126,240,0.6) 12%,rgba(29,79,140,0.4) 50%,rgba(57,126,240,0.15) 88%,transparent 100%) !important;opacity:0.75 !important;}html body .sidebar-nav .nav-item,html body .sidebar-nav .nav-group-header,.sidebar-nav button.nav-group-header,.sidebar-nav .nav-group-header{color:rgba(148,163,184,0.55) !important;background:transparent !important;font-weight:500 !important;}html body .sidebar-nav .nav-item:hover,html body .sidebar-nav .nav-group-header:hover,.sidebar-nav button.nav-group-header:hover{color:rgba(226,232,240,0.93) !important;background:rgba(57,126,240,0.10) !important;}html body .sidebar-nav .nav-item.active,html body .sidebar-nav .nav-group-header.active,html body .sidebar-nav .nav-group-header.open,.sidebar-nav button.nav-group-header.active,.sidebar-nav button.nav-group-header.open{color:#ffffff !important;background:linear-gradient(135deg,rgba(29,79,140,0.25) 0%,rgba(57,126,240,0.12) 100%) !important;font-weight:600 !important;border-color:rgba(57,126,240,0.20) !important;}html body .sidebar-nav .nav-item.active::before,html body .sidebar-nav .nav-group-header.active::before{background:linear-gradient(180deg,#397EF0 0%,#6ea8e0 100%) !important;box-shadow:0 0 12px rgba(57,126,240,0.5) !important;}html body .nav-sub-item{color:rgba(148,163,184,0.45) !important;}html body .nav-sub-item:hover{color:rgba(180,193,205,0.82) !important;background:rgba(57,126,240,0.08) !important;}html body .nav-sub-item.active{color:rgba(241,245,249,0.95) !important;background:rgba(29,79,140,0.18) !important;}html body .sidebar-actions .action-btn{color:rgba(148,163,184,0.55) !important;background:rgba(57,126,240,0.08) !important;border-color:rgba(57,126,240,0.12) !important;}html body .sidebar-actions .action-btn:hover{color:#ffffff !important;background:rgba(57,126,240,0.16) !important;border-color:rgba(57,126,240,0.30) !important;}html body .nav-arrow{color:rgba(57,126,240,0.55) !important;}html body .sidebar-nav .nav-group-header.open .nav-arrow{color:#6ea8e0 !important;}html body .app-sidebar::after{content:'' !important;position:absolute !important;bottom:0 !important;left:0 !important;right:0 !important;height:200px !important;background:url('../images/school-gate.jpg') center bottom / cover no-repeat !important;-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,0.70) 0%,rgba(0,0,0,0.25) 45%,transparent 100%) !important;mask-image:linear-gradient(to top,rgba(0,0,0,0.70) 0%,rgba(0,0,0,0.25) 45%,transparent 100%) !important;opacity:0.35 !important;pointer-events:none !important;z-index:0 !important;}html body .sidebar-nav,html body .sidebar-footer{position:relative !important;z-index:1 !important;}@media (max-width:1023px){html body .app-sidebar::after{display:none !important;}html body .app-sidebar.mobile-open::after{display:none !important;}}:root{--brand-500:#1d4f8c !important;--brand-600:#163a63 !important;--brand-700:#1a3270 !important;--brand-400:#397EF0 !important;--brand-300:#6ea8e0 !important;--brand-primary:#1d4f8c !important;--brand-accent:#397EF0 !important;--brand-primary-soft:rgba(29,79,140,0.12) !important;--shadow-brand-sm:0 2px 8px rgba(29,79,140,0.25) !important;--shadow-brand-md:0 4px 16px rgba(29,79,140,0.30) !important;--info-500:#397EF0 !important;--info-600:#1d4f8c !important;--violet-400:#6ea8e0 !important;--violet-500:#4f8fd6 !important;--violet-600:#397EF0 !important;--text-link:#1d4f8c !important;--text-link-hover:#397EF0 !important;}@media (max-width:1599px){}@media (max-width:1199px){}html body .sort-indicator,html body span.sort-indicator,html body .sort-indicator[class]{display:inline-flex !important;align-items:center !important;gap:6px !important;padding:8px 14px !important;background:#1d4f8c !important;background-image:linear-gradient(135deg,#1d4f8c 0%,#2563eb 100%) !important;border:0 !important;border-radius:8px !important;font-size:14px !important;font-weight:600 !important;color:#ffffff !important;margin-left:10px !important;box-shadow:0 2px 8px rgba(29,79,140,0.30) !important;text-shadow:0 1px 1px rgba(0,0,0,0.2) !important;letter-spacing:0.02em !important;background-color:#1d4f8c !important;}html body .sort-indicator *,html body span.sort-indicator *{color:#ffffff !important;font-weight:600 !important;text-shadow:0 1px 1px rgba(0,0,0,0.2) !important;}html body .sort-indicator:hover{background:#163a63 !important;background-image:linear-gradient(135deg,#163a63 0%,#1d4f8c 100%) !important;box-shadow:0 4px 12px rgba(29,79,140,0.40) !important;transform:translateY(-1px) !important;}html body select,html body .form-group select,html body .form-control,html body input[type="time"],html body input[type="date"]{color:#1e293b !important;background-color:#ffffff !important;}html body select option{color:#1e293b !important;background:#ffffff !important;padding:8px !important;}html body select:disabled,html body select option:disabled{color:#94a3b8 !important;background:#f1f5f9 !important;}html body input[type="time"]::-webkit-calendar-picker-indicator,html body input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(0.4) !important;cursor:pointer !important;}html body .filter-btn,html body a.filter-btn{color:#1e293b !important;background:transparent !important;border:1px solid #e2e8f0 !important;border-radius:999px !important;padding:6px 16px !important;font-weight:600 !important;transition:all 0.2s ease !important;}html body .filter-btn:hover,html body a.filter-btn:hover{color:#1d4f8c !important;background:rgba(29,79,140,0.08) !important;border-color:rgba(29,79,140,0.25) !important;}html body .filter-btn.active,html body a.filter-btn.active,html body .filter-btn.active:hover,html body a.filter-btn.active:hover{color:#ffffff !important;background:linear-gradient(135deg,#1d4f8c 0%,#397EF0 100%) !important;border-color:transparent !important;box-shadow:0 2px 8px rgba(29,79,140,0.30) !important;font-weight:600 !important;}html body .btn-primary,html body .page-header .btn-primary,html body button[type="submit"].btn-primary{background:linear-gradient(135deg,#1d4f8c 0%,#163a63 100%) !important;color:#ffffff !important;border:0 !important;box-shadow:0 2px 8px rgba(29,79,140,0.25) !important;}html body .btn-primary:hover{background:linear-gradient(135deg,#163a63 0%,#0f2a4a 100%) !important;box-shadow:0 4px 16px rgba(29,79,140,0.35) !important;transform:translateY(-1px) !important;}html body .modal-content{margin:4vh auto !important;}html body .app-main{padding-bottom:80px !important;}html body .pdf-main,html body .file-management-container{width:100% !important;min-height:calc(100vh - 80px) !important;}html body .btn-info{background:linear-gradient(135deg,#397EF0 0%,#1d4f8c 100%) !important;color:#ffffff !important;border:0 !important;}html body .btn-secondary{background:#f1f5f9 !important;color:#1e293b !important;border:1px solid #e2e8f0 !important;}html body .btn-secondary:hover{background:#e2e8f0 !important;color:#334155 !important;}html body a{color:#1d4f8c !important;}html body a:hover{color:#397EF0 !important;}html body{background:radial-gradient(ellipse 100% 70% at 10% 0,rgba(29,79,140,0.06) 0,transparent 60%),radial-gradient(ellipse 70% 50% at 90% 100%,rgba(57,126,240,0.05) 0,transparent 50%),linear-gradient(180deg,#eaf1fb 0%,#f5f7fa 40%,#ffffff 100%) !important;color:#1e293b !important;transition:background 0.3s ease,color 0.3s ease !important;}html body.dashboard-page{background:radial-gradient(ellipse 100% 70% at 10% 0,rgba(29,79,140,0.06) 0,transparent 60%),radial-gradient(ellipse 70% 50% at 90% 100%,rgba(57,126,240,0.05) 0,transparent 50%),linear-gradient(180deg,#eaf1fb 0%,#f5f7fa 40%,#ffffff 100%) !important;color:#1e293b !important;}html[data-theme="dark"] body{background:radial-gradient(ellipse 100% 70% at 10% 0,rgba(57,126,240,0.10) 0,transparent 60%),radial-gradient(ellipse 70% 50% at 90% 100%,rgba(29,79,140,0.08) 0,transparent 50%),linear-gradient(180deg,#0f172a 0%,#1e293b 50%,#0f172a 100%) !important;background-color:#0f172a !important;color:#e2e8f0 !important;}html[data-theme="dark"] body .card,html[data-theme="dark"] body .panel,html[data-theme="dark"] body .info-card,html[data-theme="dark"] body .training-card,html[data-theme="dark"] body .observation-card,html[data-theme="dark"] body .mentorship-card,html[data-theme="dark"] body .practice-card,html[data-theme="dark"] body .stats-table-card,html[data-theme="dark"] body .journal-card,html[data-theme="dark"] body .review-form-card,html[data-theme="dark"] body .form-card,html[data-theme="dark"] body .content-box,html[data-theme="dark"] body .evaluation-item,html[data-theme="dark"] body .filters-container,html[data-theme="dark"] body .request-item,html[data-theme="dark"] body .modal-content{background:rgba(15,23,42,0.85) !important;color:#e2e8f0 !important;border-color:rgba(57,126,240,0.20) !important;}html[data-theme="dark"] body .page-header h1,html[data-theme="dark"] body .page-title,html[data-theme="dark"] body h1,html[data-theme="dark"] body h2,html[data-theme="dark"] body h3,html[data-theme="dark"] body h4{color:#e2e8f0 !important;}html[data-theme="dark"] body .form-group label,html[data-theme="dark"] body label,html[data-theme="dark"] body .form-label{color:#cbd5e1 !important;}html[data-theme="dark"] body .form-group input,html[data-theme="dark"] body .form-group select,html[data-theme="dark"] body .form-group textarea,html[data-theme="dark"] body .form-control{background:rgba(15,23,42,0.6) !important;color:#e2e8f0 !important;border-color:rgba(57,126,240,0.25) !important;}html[data-theme="dark"] body .data-table,html[data-theme="dark"] body table{color:#e2e8f0 !important;}html[data-theme="dark"] body .data-table th,html[data-theme="dark"] body table th,html[data-theme="dark"] body .dept-table th{background:rgba(57,126,240,0.15) !important;color:#e2e8f0 !important;}html[data-theme="dark"] body .data-table td,html[data-theme="dark"] body table td,html[data-theme="dark"] body .dept-table td{color:#cbd5e1 !important;border-color:rgba(57,126,240,0.10) !important;}html[data-theme="dark"] body .metric-row,html[data-theme="dark"] body .metric-row span:not(.metric-num){color:#cbd5e1 !important;}html[data-theme="dark"] body .stat-label,html[data-theme="dark"] body .kpi-lab,html[data-theme="dark"] body .dept-table th,html[data-theme="dark"] body .empty-state-text,html[data-theme="dark"] body .empty-state-subtext{color:rgba(203,213,225,0.7) !important;}html[data-theme="dark"] body.data-dashboard{background:radial-gradient(ellipse 1200px 800px at 15% 40%,rgba(0,120,255,0.12) 0,transparent 70%),radial-gradient(ellipse 900px 600px at 75% 20%,rgba(0,200,200,0.10) 0,transparent 65%),radial-gradient(ellipse 700px 500px at 60% 80%,rgba(80,0,180,0.09) 0,transparent 60%),radial-gradient(ellipse 1000px 700px at 30% 70%,rgba(0,80,160,0.08) 0,transparent 70%),linear-gradient(180deg,#030b1f 0%,#051030 30%,#020d22 60%,#030b1f 100%) !important;background-color:#030b1f !important;animation:dash-bgShift 15s ease-in-out infinite alternate !important;}html[data-theme="light"] body.data-dashboard{background:radial-gradient(ellipse 1000px 600px at 80% 0%,rgba(29,79,140,0.10) 0,transparent 60%),radial-gradient(ellipse 800px 500px at 0% 100%,rgba(57,126,240,0.08) 0,transparent 55%),linear-gradient(180deg,#f8fafc 0%,#e0e7ff 100%) !important;background-color:#f8fafc !important;}::selection{background:rgba(29,79,140,0.15) !important;color:#0f1f38 !important;}@media (max-width:1023px){html body .site-footer,html body footer.site-footer,html body div.site-footer,html body .site-footer[style]{left:0 !important;right:0 !important;width:100% !important;max-width:100% !important;margin-left:0 !important;margin-right:0 !important;transform:none !important;}}@media (max-width:767px){html body .site-footer,html body footer.site-footer,html body div.site-footer{left:0 !important;right:0 !important;width:100% !important;max-width:100% !important;margin-left:0 !important;margin-right:0 !important;}}@media (max-width:479px){html body .site-footer,html body footer.site-footer{left:0 !important;right:0 !important;width:100% !important;}}@media (max-width:1023px){html body .app-main{padding-bottom:120px !important;}}@media (max-width:767px){html body .app-main{padding-bottom:140px !important;}}/* 性能：尊重"减少动态效果"偏好，停用常驻无限动画（M3） */@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}}/* ============================================================
   教师成长管理系统 — 移动端兜底样式 (mobile.css)
   加载位置: includes/header.php 中 aurora-global.min.css 之后
   定位: 仅兜底 aurora-global.min.css 未覆盖的「页面级布局」窄屏化缺口
         （审计发现 .detail-row / .stat-grid / .kpi-grid / 通用 grid / .form-row / .tab-bar 未单列化）
   不重复 aurora-global 已覆盖的抽屉/卡片/按钮/表格滚动规则。
   打印样式沿用（此处不含，避免与 aurora-global 冲突）。
   ============================================================ */

/* ══════════════════════════════════════════════════════════
   手机端 (≤767px)
   ══════════════════════════════════════════════════════════ */
@media (max-width: 767px) {

  /* ---- 网格全部单列（aurora-global 仅堆叠了 .dashboard-grid/.filters，此处补通用网格） ---- */
  .grid-auto,
  .grid-auto-sm,
  .grid-auto-lg,
  .grid-cols-2,
  .grid-cols-3,
  .grid-cols-4 {
    grid-template-columns: 1fr;
  }

  /* ---- 统计 / KPI 网格降到 2 列（479 档再降到 1 列，见下） ---- */
  .stat-grid,
  .kpi-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3, 12px);
  }

  /* ---- 详情行单列（原多列溢出） ---- */
  .detail-row {
    grid-template-columns: 1fr;
  }

  .detail-header {
    flex-direction: column;
    align-items: flex-start;
  }

  /* ---- 表单行纵向 ---- */
  .form-row {
    flex-direction: column;
    gap: var(--space-3, 12px);
  }

  .form-row .form-group,
  .form-group {
    min-width: 100%;
  }

  /* ---- 筛选器纵向（部分页面用 .filters-row） ---- */
  .filters-container,
  .filters-row,
  .search-filter-panel {
    flex-direction: column;
  }

  .search-filter-panel .form-control {
    max-width: 100%;
  }

  /* ---- 标签页横向滚动，避免挤压 ---- */
  .tab-bar {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }

  /* ---- 分页紧凑 ---- */
  .pagination {
    gap: 0;
  }

  .page-link {
    min-width: 32px;
    height: 32px;
    padding: 0 var(--space-2, 8px);
  }

  /* ---- 刘海屏：侧边栏顶部安全区（viewport-fit=cover 已启用，env() 生效） ---- */
  .app-sidebar {
    padding-top: env(safe-area-inset-top, 0px);
  }

  /* ---- 全局搜索浮层：窄屏全屏化（B2） ----
     桌面端是居中弹窗，手机上留白会挤掉本就有限的结果行数，故铺满视口。 */
  .gs-overlay {
    padding: 0;
    align-items: stretch;
  }

  .gs-panel {
    max-width: none;
    max-height: none;
    height: 100%;
    border: 0;
    border-radius: 0;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  /* 结果条在窄屏允许摘要换行，避免关键信息被省略号吃掉 */
  .gs-item-snippet {
    white-space: normal;
  }

  /* ---- 搜索结果页：表单竖排、筛选标签可横滚 ---- */
  .search-page-form {
    flex-direction: column;
  }

  .search-page-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .search-tab {
    flex-shrink: 0;
  }
}

/* ══════════════════════════════════════════════════════════
   小屏手机 (≤479px)
   ══════════════════════════════════════════════════════════ */
@media (max-width: 479px) {

  /* ---- 统计 / KPI 网格再降到 1 列 ---- */
  .stat-grid,
  .kpi-grid {
    grid-template-columns: 1fr;
    gap: var(--space-2, 8px);
  }

  .kpi-value {
    font-size: var(--text-2xl, 28px);
  }

  /* ---- 内容区内边距进一步缩小 ---- */
  .content-wrapper {
    padding: var(--space-2, 8px);
  }

  /* ---- 页面标题缩小 ---- */
  .page-title {
    font-size: var(--text-xl, 22px);
  }

  /* ---- 刘海屏：主内容底部安全区（home indicator） ---- */
  .app-main {
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
}

/* ══════════════════════════════════════════════════════════
   2026-08-31 修复：移动端汉堡菜单可点击 + footer 紧凑化
   ══════════════════════════════════════════════════════════ */
@media (max-width: 767px) {
  /* 菜单：确保汉堡按钮在最上层、全屏遮罩不拦截点击 */
  .mobile-sidebar-toggle { z-index: 1200 !important; pointer-events: auto !important; }
  .sidebar-overlay { pointer-events: none !important; }
  .sidebar-overlay.show { pointer-events: auto !important; }

  /* footer：压缩为单行紧凑（保留版权 + ICP 备案），隐藏次要区块 */
  .site-footer { padding: 6px 0 calc(6px + env(safe-area-inset-bottom, 0px)) !important; }
  .footer-content { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 4px 16px !important; margin: 0 !important; }
  .footer-section { padding: 0 !important; border: none !important; }
  .copyright { font-size: 0.72rem !important; margin: 0 !important; }
  .icp-info { flex-direction: row !important; gap: 4px !important; margin: 0 !important; font-size: 0.72rem !important; }
  .version, .organization, .creator-section, .contact-info, .footer-decoration, .footer-badge { display: none !important; }
}
/*
 * aurora-responsive.css — 统一响应式断点层
 * ----------------------------------------------------------------------------
 * 规范断点（全站新增响应式规则请沿用此标尺，避免 640/700/900/1100/1200 等
 * 零散取值导致的断点漂移）：
 *   --bp-sm  480px   小屏手机
 *   --bp-md  768px   手机 / 竖屏平板
 *   --bp-lg  1024px  平板 / 小笔记本
 *   --bp-xl  1280px  桌面
 * 约定：移动优先，使用 max-width 向下覆盖；桌面默认样式写在最外层。
 * 历史散落的 @media（如 640/1024/479/1100…）在后续重构时统一收敛到上述标尺。
 */

:root {
    --bp-sm: 480px;
    --bp-md: 768px;
    --bp-lg: 1024px;
    --bp-xl: 1280px;
}

/* 全局媒体安全：防止任意元素撑破移动端视口产生横向滚动 */
img,
video,
canvas,
svg { max-width: 100%; height: auto; }
/* UI Kit — 统一组件样式 (assets/css/core/ui-kit.css)
 * 自包含，配合 includes/ui_components.php 与 assets/js/core/ui-kit.js。
 * 仅定义 ui-* 组件所需样式，不覆盖业务页面既有样式。
 */

/* ---------- 按钮 ---------- */
.ui-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 18px; border-radius: 8px; border: 1px solid transparent;
    font-size: 14px; font-weight: 600; line-height: 1.2; cursor: pointer;
    text-decoration: none; transition: background .15s, box-shadow .15s, transform .05s;
    white-space: nowrap;
}
.ui-btn:active { transform: translateY(1px); }
.ui-btn-primary { background: #1d4f8c; color: #fff; }
.ui-btn-primary:hover { background: #17406f; }
.ui-btn-success { background: #2e9e5b; color: #fff; }
.ui-btn-success:hover { background: #268a4e; }
.ui-btn-warning { background: #e0a106; color: #1b1b1b; }
.ui-btn-warning:hover { background: #c98f05; }
.ui-btn-danger { background: #d6453d; color: #fff; }
.ui-btn-danger:hover { background: #bd3a33; }
.ui-btn-ghost { background: transparent; border-color: #cbd5e1; color: #334155; }
.ui-btn-ghost:hover { background: #f1f5f9; }

/* ---------- 徽章 ---------- */
.ui-badge {
    display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 999px;
    font-size: 12px; font-weight: 600; line-height: 1.6;
}
.ui-badge-default { background: #eef2f7; color: #475569; }
.ui-badge-primary { background: #e4eefb; color: #1d4f8c; }
.ui-badge-success { background: #e3f6ea; color: #1f7a44; }
.ui-badge-warning { background: #fdf3d8; color: #8a5a00; }
.ui-badge-danger  { background: #fbe4e2; color: #b23a32; }
.ui-badge-info    { background: #e4f1f7; color: #1d6a8c; }

/* ---------- 卡片 ---------- */
.ui-card {
    background: #fff; border: 1px solid #e6ecf3; border-radius: 12px;
    padding: 20px 24px; box-shadow: 0 1px 2px rgba(16,42,74,.05);
}

/* ---------- 页标题 ---------- */
.ui-page-title {
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: 16px; margin-bottom: 20px; flex-wrap: wrap;
}
.ui-page-title-text { font-size: 22px; font-weight: 700; margin: 0; color: #0f2a4a; }
.ui-page-title-sub { font-size: 13px; color: #64748b; margin-top: 4px; }
.ui-page-title-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* ---------- 空状态 ---------- */
.ui-empty {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 48px 20px; color: #94a3b8; text-align: center;
}
.ui-empty-icon { color: #cbd5e1; margin-bottom: 12px; }
.ui-empty-text { font-size: 15px; font-weight: 600; color: #64748b; }
.ui-empty-hint { font-size: 13px; margin-top: 4px; }

/* ---------- 提示条 ---------- */
.ui-alert {
    padding: 12px 16px; border-radius: 10px; font-size: 14px; margin-bottom: 16px;
    border: 1px solid transparent;
}
.ui-alert-info    { background: #e4f1f7; color: #1d6a8c; border-color: #bfe0ef; }
.ui-alert-success { background: #e3f6ea; color: #1f7a44; border-color: #bfe9cd; }
.ui-alert-warning { background: #fdf3d8; color: #8a5a00; border-color: #f3e2a8; }
.ui-alert-danger  { background: #fbe4e2; color: #b23a32; border-color: #f3c4c0; }

/* ---------- 筛选条 ---------- */
.ui-filter-bar {
    display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin-bottom: 18px;
}
.ui-filter-item { display: flex; flex-direction: column; gap: 4px; }
.ui-filter-label { font-size: 12px; color: #64748b; font-weight: 600; }
.ui-filter-input {
    height: 38px; padding: 0 12px; border: 1px solid #d6dee8; border-radius: 8px;
    font-size: 14px; background: #fff; min-width: 160px;
}
.ui-filter-input:focus { outline: none; border-color: #1d4f8c; box-shadow: 0 0 0 3px rgba(29,79,140,.12); }
.ui-filter-actions { justify-content: flex-end; }

/* ---------- 分页 ---------- */
.ui-pagination { margin: 20px 0; }
.ui-pagination ul { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 0; }
.ui-pagination a, .ui-pagination span {
    display: inline-flex; align-items: center; min-width: 36px; height: 36px; padding: 0 10px;
    border: 1px solid #d6dee8; border-radius: 8px; font-size: 14px; color: #334155;
    text-decoration: none; justify-content: center; transition: background .12s;
}
.ui-pagination a:hover { background: #f1f5f9; }
.ui-pagination .ui-page-current { background: #1d4f8c; color: #fff; border-color: #1d4f8c; }
.ui-pagination .ui-page-disabled { color: #cbd5e1; border-color: #eef2f7; }
.ui-pagination .ui-page-ellipsis { border: none; }

/* ---------- 模态框（沿用 .active 切换约定） ---------- */
.ui-modal {
    position: fixed; inset: 0; z-index: 1000; display: none;
    align-items: center; justify-content: center;
}
.ui-modal.active { display: flex; }
.ui-modal-backdrop { position: absolute; inset: 0; background: rgba(15,42,74,.45); }
.ui-modal-dialog {
    position: relative; z-index: 1; width: min(560px, 92vw); max-height: 88vh; overflow: auto;
    background: #fff; border-radius: 14px; box-shadow: 0 20px 60px rgba(15,42,74,.3);
}
.ui-modal-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 20px; border-bottom: 1px solid #eef2f7;
}
.ui-modal-title { margin: 0; font-size: 17px; font-weight: 700; color: #0f2a4a; }
.ui-modal-close {
    border: none; background: transparent; font-size: 22px; line-height: 1; cursor: pointer; color: #94a3b8;
}
.ui-modal-close:hover { color: #334155; }
.ui-modal-body { padding: 20px; }
.ui-modal-footer { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 20px; border-top: 1px solid #eef2f7; }
.ui-confirm-dialog { width: min(420px, 92vw); }
.ui-confirm-text { margin: 0; color: #334155; font-size: 14px; line-height: 1.6; }
body.ui-modal-open { overflow: hidden; }

/* ---------- toast ---------- */
.ui-toast-container {
    position: fixed; top: 20px; right: 20px; z-index: 2000;
    display: flex; flex-direction: column; gap: 10px; pointer-events: none;
}
.ui-toast {
    min-width: 220px; max-width: 360px; padding: 12px 16px; border-radius: 10px;
    font-size: 14px; color: #fff; box-shadow: 0 8px 24px rgba(15,42,74,.25);
    opacity: 0; transform: translateX(20px); transition: opacity .2s, transform .2s; pointer-events: auto;
}
.ui-toast-show { opacity: 1; transform: translateX(0); }
.ui-toast-info { background: #1d4f8c; }
.ui-toast-success { background: #2e9e5b; }
.ui-toast-warning { background: #e0a106; }
.ui-toast-danger { background: #d6453d; }

/* ---------- spinner ---------- */
.ui-spinner {
    display: inline-block; width: 14px; height: 14px; margin-left: 6px;
    border: 2px solid rgba(255,255,255,.5); border-top-color: #fff; border-radius: 50%;
    animation: ui-spin .6s linear infinite; vertical-align: middle;
}
@keyframes ui-spin { to { transform: rotate(360deg); } }

/* a11y: 链接型按钮（.btn-xs）强制白色文字，避免被全局 a 链接色覆盖导致对比度不达标 */
a.btn-xs, a.btn-xs:hover, a.btn-xs:visited, a.btn-xs:focus, a.btn-xs:active {
    color: #fff !important;
}

/* ---------- 通知铃铛下拉 ---------- */
.notif-bell-wrap { position: relative; }
.notif-dropdown {
    position: absolute; top: calc(100% + 8px); right: 0; z-index: 1200;
    width: 320px; max-width: calc(100vw - 24px);
    background: #fff; border: 1px solid #e3e8ef; border-radius: 12px;
    box-shadow: 0 16px 40px rgba(15,42,74,.18); overflow: hidden;
}
.notif-dropdown-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 14px; border-bottom: 1px solid #eef2f7; font-weight: 600; color: #0f2a4a;
}
.notif-dropdown-header a { color: #1d4f8c; font-weight: 600; text-decoration: none; font-size: 13px; }
.notif-dropdown-list { max-height: 380px; overflow-y: auto; }
.notif-dropdown-empty { padding: 28px 14px; text-align: center; color: #94a3b8; font-size: 13px; }
.notif-item {
    display: block; padding: 12px 14px; border-bottom: 1px solid #f1f5f9;
    text-decoration: none; color: #334155;
}
.notif-item:hover { background: #f8fafc; }
.notif-item.unread { background: #f0f6ff; }
.notif-item.unread:hover { background: #e7f0ff; }
.notif-item-title { font-size: 14px; font-weight: 600; color: #1e293b; margin-bottom: 2px; }
.notif-item-content {
    font-size: 13px; color: #64748b; line-height: 1.5; margin-bottom: 4px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.notif-item-time { font-size: 12px; color: #94a3b8; }
@media (max-width: 767px) {
    .notif-dropdown { position: fixed; top: 56px; right: 8px; left: 8px; width: auto; }
}
body{background:radial-gradient(ellipse 100% 70% at 10% 0,rgba(29,79,140,0.06) 0,transparent 60%),radial-gradient(ellipse 70% 50% at 90% 100%,rgba(57,126,240,0.05) 0,transparent 50%),radial-gradient(ellipse 50% 40% at 50% 30%,rgba(29,79,140,0.03) 0,transparent 50%),linear-gradient(180deg,var(--bg-gradient-start) 0,var(--bg-gradient-mid) 40%,var(--bg-gradient-end) 100%) !important;position:relative}.app-main,.ai-assistant{position:relative;z-index:1}.page-header h1,.page-title{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;margin:0;line-height:1.3;background:linear-gradient(135deg,var(--brand-900) 0,var(--brand-700) 40%,var(--violet-600) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--brand-900);filter:drop-shadow(0 1px 2px rgba(29,79,140,0.15));position:relative;display:inline-block}.page-header h1::before,.page-title::before{content:'';display:inline-block;width:5px;height:1.4em;vertical-align:middle;margin-right:14px;border-radius:3px;background:linear-gradient(180deg,var(--brand-500),var(--violet-500));box-shadow:0 0 8px rgba(29,79,140,0.4);-webkit-text-fill-color:initial}.page-header{padding-bottom:18px;margin-bottom:24px;border-bottom:1px solid rgba(29,79,140,0.12)}.page-header::after{width:80px;height:4px;background:linear-gradient(90deg,var(--brand-500),var(--violet-500),transparent);border-radius:4px;bottom:-2px}.page-header h2,.card h2,.card-header h2,.section-header h2,h2.section-title,.modal-content h2,.content-box h2,.panel-header h2{color:var(--brand-950);font-weight:700}.card,.info-card,.training-card,.observation-card,.mentorship-card,.practice-card,.stats-table-card,.journal-card,.review-form-card,.form-card,.content-box,.evaluation-item{padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle);background:var(--surface-card);position:relative;transition:box-shadow var(--transition-normal),transform var(--transition-normal),border-color var(--transition-normal)}.card::before,.info-card::before,.training-card::before,.review-form-card::before,.form-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0,rgba(29,79,140,0.4) 30%,rgba(57,126,240,0.4) 70%,transparent 100%);border-radius:var(--radius-lg) var(--radius-lg) 0 0;pointer-events:none}.card:hover,.training-card:hover,.observation-card:hover,.mentorship-card:hover,.practice-card:hover{box-shadow:0 8px 30px rgba(29,79,140,0.12),0 2px 8px rgba(15,23,42,0.06);transform:translateY(-3px);border-color:rgba(29,79,140,0.2)}.btn{padding:10px 22px;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);border:0;min-height:40px}.btn-sm{padding:6px 14px;font-size:var(--text-xs);min-height:32px;border-radius:var(--radius-sm)}.btn-primary{background:linear-gradient(135deg,var(--brand-500),var(--brand-600));color:#fff;box-shadow:0 2px 8px rgba(29,79,140,0.25)}.btn-primary:hover{background:linear-gradient(135deg,var(--brand-600),var(--brand-700));color:#fff;box-shadow:0 4px 16px rgba(29,79,140,0.35);transform:translateY(-1px)}.btn-success{background:linear-gradient(135deg,var(--success-500),var(--success-600));color:#fff;box-shadow:0 2px 8px rgba(16,185,129,0.25)}.btn-danger{background:linear-gradient(135deg,var(--danger-500),var(--danger-600));color:#fff;box-shadow:0 2px 8px rgba(239,68,68,0.25)}.btn-warning{background:linear-gradient(135deg,var(--warning-500),var(--warning-600));color:#fff}.btn-secondary{background:linear-gradient(135deg,var(--neutral-500),var(--neutral-600));color:#fff}.btn-outline{background:var(--surface-card);border:1.5px solid var(--border-default);color:var(--text-secondary)}.btn-outline:hover{background:var(--brand-50);border-color:var(--brand-400);color:var(--brand-600)}.btn i,.btn-sm i,.btn-primary i,.btn-outline i,.btn-success i,.btn-danger i{display:inline-flex;align-items:center;justify-content:center;line-height:1}.application-detail .btn,.review-page .btn,.action-buttons .btn,.reg-request-actions .btn,.reg-btn-approve,.reg-btn-reject,.training-actions .btn,.form-actions .btn{display:inline-flex;align-items:center;justify-content:center;text-align:center}.badge{padding:3px 10px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.4;vertical-align:middle}.badge-primary,.badge-active,.badge-published,.badge-ongoing{background:var(--brand-50);color:var(--brand-700)}.badge-success,.badge-completed,.badge-approved{background:var(--success-50);color:var(--success-700)}.badge-danger,.badge-rejected,.badge-expired{background:var(--danger-50);color:var(--danger-700)}.filter-btn{padding:8px 18px;border:1.5px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-card);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;text-align:center}.filter-btn:hover,.filter-btn.active{background:linear-gradient(135deg,var(--brand-500),var(--brand-600));color:#fff;border-color:var(--brand-500);box-shadow:0 2px 10px rgba(29,79,140,0.3)}.info-grid,.detail-grid,.training-cards,.observations-grid,.mentorship-grid,.mentorships-grid,.trainings-grid,.reg-approval-stats,.rating-grid,.teachers-grid,.stats-grid,.dashboard-grid{gap:var(--space-5)}.stats-grid,.dashboard-grid{gap:var(--space-6)}.modal-content{background:var(--surface-card);border-radius:var(--radius-xl);padding:0;max-width:560px;width:90%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(15,23,42,0.15),0 0 0 1px rgba(29,79,140,0.05);border:1px solid rgba(29,79,140,0.08);position:relative}.modal.active .modal-content,.modal.show .modal-content,#changePasswordModal.active .modal-content{opacity:1 !important;visibility:visible !important}.modal-large .modal-content{max-width:960px}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:2px solid transparent;border-image:linear-gradient(90deg,transparent,rgba(29,79,140,0.2),transparent) 1;position:relative}.modal-header h2,.modal-header h3{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary)}.form-group input[type="text"],.form-group input[type="password"],.form-group input[type="email"],.form-group input[type="date"],.form-group input[type="datetime-local"],.form-group input[type="number"],.form-group input[type="tel"],.form-group select,.form-group textarea,.form-control{padding:10px 15px;border:1.5px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--surface-card);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.form-control:focus{outline:0;border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(29,79,140,0.12),0 0 12px rgba(29,79,140,0.06)}.pagination a,.pagination span,.page-link{min-width:38px;height:38px;padding:0 12px;border:1.5px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);display:inline-flex;align-items:center;justify-content:center;text-align:center}.pagination a:hover,.page-link:hover,.page-link.active{background:linear-gradient(135deg,var(--brand-500),var(--brand-600));color:#fff;border-color:var(--brand-500)}.empty-state{text-align:center;padding:60px var(--space-6);color:var(--text-secondary)}.empty-state i,.empty-state svg,.empty-state .empty-icon{color:var(--brand-400);opacity:.5;margin-bottom:var(--space-4)}.empty-state h3,.empty-state p{color:var(--text-tertiary)}.container,.app-main .container,.page-content,.main-content,.import-container,.file-management-container,.leader-container,.leaders-container,.learning-center,.video-management,.preview-container,.pdf-detail-main,.pdf-email-config-main{max-width:none;width:100%;padding:var(--content-padding-y) var(--content-padding-x)}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle)}.card-header,.section-header,.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);background:linear-gradient(135deg,rgba(29,79,140,0.03),rgba(57,126,240,0.02))}.quick-tabs,.tab-nav,.nav-tabs{display:flex;gap:var(--space-2);border-bottom:2px solid var(--border-subtle);margin-bottom:var(--space-5);flex-wrap:wrap}.quick-tab,.tab-link,.nav-tabs a,.nav-tabs li a{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm) var(--radius-sm) 0 0;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);border:0;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-normal);text-decoration:none;position:relative;bottom:-2px}.quick-tab:hover,.tab-link:hover,.nav-tabs a:hover{color:var(--brand-500);background:rgba(29,79,140,0.06)}.quick-tab.active,.tab-link.active,.nav-tabs li.active a,.nav-tabs a.active{color:var(--brand-500);background:var(--surface-card);border:2px solid var(--border-subtle);border-bottom:2px solid var(--surface-card);font-weight:var(--font-semibold)}.alert,.notice,.info-box{padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);border-left:4px solid transparent;display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);margin-bottom:var(--space-4)}.alert-success,.notice-success{background:rgba(16,185,129,0.08);border-left-color:var(--success-500);color:#065f46}.alert-warning,.notice-warning{background:rgba(245,158,11,0.08);border-left-color:var(--warning-500);color:#78350f}.alert-danger,.alert-error,.notice-error{background:rgba(239,68,68,0.08);border-left-color:var(--danger-500);color:#7f1d1d}.alert-info,.notice-info{background:rgba(29,79,140,0.08);border-left-color:var(--brand-500);color:var(--brand-900)}.tab-content,.quick-tab-content{animation:tabFadeIn .2s ease-out}@keyframes tabFadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.data-table th,table.table th,.list-table th{background:linear-gradient(135deg,rgba(29,79,140,0.08),rgba(57,126,240,0.05));color:var(--text-primary);font-weight:var(--font-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-3) var(--space-4);text-align:center;border-bottom:2px solid rgba(29,79,140,0.15);white-space:nowrap}.stat-number,.metric-value,.score-value,.credit-score{font-size:2rem;font-weight:var(--font-bold);background:linear-gradient(135deg,var(--brand-500),var(--brand-600));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;letter-spacing:-.02em}.search-input,input[type="search"],.filter-input{background:var(--surface-card);border:1.5px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--text-primary);transition:all var(--transition-fast);min-width:200px}.search-input:focus,input[type="search"]:focus,.filter-input:focus{outline:0;border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(29,79,140,0.12)}.badge-primary,.badge-blue{background:rgba(29,79,140,0.12);color:var(--brand-900);border:1px solid rgba(29,79,140,0.25)}.badge-success,.badge-green{background:rgba(16,185,129,0.12);color:#064e3b;border:1px solid rgba(16,185,129,0.25)}.badge-warning,.badge-yellow{background:rgba(245,158,11,0.12);color:#78350f;border:1px solid rgba(245,158,11,0.25)}.badge-danger,.badge-red{background:rgba(239,68,68,0.12);color:#7f1d1d;border:1px solid rgba(239,68,68,0.25)}.badge-gray,.badge-secondary{background:rgba(100,116,139,0.1);color:var(--neutral-700);border:1px solid rgba(100,116,139,0.2)}.progress,.progress-bar-wrap{background:var(--border-subtle);border-radius:var(--radius-full);height:8px;overflow:hidden;position:relative}.progress-bar,.progress-fill{background:linear-gradient(90deg,var(--brand-500),var(--brand-400));border-radius:var(--radius-full);height:100%;position:relative;transition:width .6s cubic-bezier(0.34,1.56,0.64,1)}.progress-bar::after,.progress-fill::after{content:'';position:absolute;top:0;right:0;width:20px;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.5));border-radius:var(--radius-full)}@media(max-width:767px){.app-main{margin-left:0;min-height:100vh}.app-main .container,.container{padding:15px 12px}.page-header h1,.page-title{font-size:22px}.page-header h1::before,.page-title::before{height:1.2em;margin-right:10px;width:4px}.info-grid,.detail-grid,.training-cards,.observations-grid,.mentorship-grid,.mentorships-grid,.trainings-grid,.reg-approval-stats,.rating-grid,.teachers-grid,.stats-grid,.dashboard-grid{grid-template-columns:1fr;gap:12px}.card,.info-card,.training-card,.observation-card,.mentorship-card,.practice-card{padding:16px}.page-header .btn,.page-header .filter-btn{width:100%;text-align:center}.filters{flex-direction:column;gap:10px}.filter-btn,.filter-group{width:100%}.form-row{grid-template-columns:1fr}.modal-content{width:95%;max-height:90vh}.site-footer{padding:15px 0 12px}.footer-content{grid-template-columns:1fr;gap:10px}.footer-section{border-right:0;border-bottom:1px solid rgba(255,255,255,0.08);padding:8px 10px}.footer-section:last-child{border-bottom:0}.data-table,table.table,.list-table{font-size:12px}.data-table th,table.table th,.list-table th,.data-table td,table.table td,.list-table td{padding:8px 6px}.stat-number,.metric-value,.score-value{font-size:1.5rem}.search-input,input[type="search"],.filter-input{width:100%;min-width:unset}.alert,.notice,.info-box{padding:var(--space-3)}}@media(max-width:479px){.app-main .container,.container{padding:10px 8px}.page-header h1,.page-title{font-size:20px}.page-header h1::before,.page-title::before{height:1.1em;margin-right:8px}.card,.info-card,.training-card,.observation-card,.mentorship-card,.practice-card{padding:12px}.btn{padding:10px 16px;font-size:13px}.site-footer{left:0!important;right:0!important;width:100%!important;max-width:100%!important;margin:0!important}}

/* 移动端 footer 全宽强制修复 — 最高优先级 */
@media(max-width:1023px){.site-footer,.site-footer[style]{left:0!important;right:0!important;width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;transform:none!important}}
@media(max-width:767px){.site-footer,.site-footer[style]{left:0!important;right:0!important;width:100%!important;max-width:100%!important;margin:0!important}}.ai-assistant{position:fixed;bottom:24px;right:24px;z-index:10000;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;}.ai-fab{width:56px;height:56px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--brand-primary,#1d4f8c),var(--brand-accent,#397EF0));color:#fff;font-size:24px;cursor:pointer;box-shadow:0 4px 15px rgba(29,79,140,0.4),0 2px 6px rgba(0,0,0,0.1);transition:all 0.3s cubic-bezier(0.16,1,0.3,1);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}.ai-fab:hover{transform:scale(1.1);box-shadow:0 6px 25px rgba(29,79,140,0.5),0 3px 10px rgba(0,0,0,0.15);}.ai-fab:active{transform:scale(0.95);}.ai-fab.active{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 15px rgba(239,68,68,0.4);}.ai-fab-pulse{position:absolute;width:100%;height:100%;border-radius:50%;border:2px solid rgba(29,79,140,0.5);animation:ai-pulse 2.5s ease-out infinite;pointer-events:none;}@keyframes ai-pulse{0%{transform:scale(1);opacity:0.6;}100%{transform:scale(1.8);opacity:0;}}.ai-fab.active .ai-fab-pulse{display:none;}.ai-panel{position:absolute;bottom:70px;right:0;width:380px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 120px);background:#fff;border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,0.15),0 2px 10px rgba(0,0,0,0.08);display:none;flex-direction:column;overflow:hidden;transform:scale(0.9) translateY(20px);opacity:0;transition:all 0.3s cubic-bezier(0.16,1,0.3,1);}.ai-panel.show{display:flex;transform:scale(1) translateY(0);opacity:1;}.ai-panel.hiding{display:flex;transform:scale(0.9) translateY(20px);opacity:0;}.ai-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:linear-gradient(135deg,var(--brand-primary,#1d4f8c),var(--brand-accent,#397EF0));color:#fff;flex-shrink:0;}.ai-panel-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;}.ai-header-icon{font-size:20px;}.ai-panel-close{background:none;border:none;color:rgba(255,255,255,0.8);font-size:22px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all 0.2s;}.ai-panel-close:hover{background:rgba(255,255,255,0.2);color:#fff;}.ai-panel-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:#f8fafc;}.ai-panel-body::-webkit-scrollbar{width:4px;}.ai-panel-body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px;}.ai-msg{display:flex;gap:8px;max-width:90%;animation:ai-msg-in 0.3s ease-out;}@keyframes ai-msg-in{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}.ai-msg-bot{align-self:flex-start;}.ai-msg-user{align-self:flex-end;flex-direction:row-reverse;}.ai-msg-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;background:#e0e7ff;}.ai-msg-user .ai-msg-avatar{background:#e0e7ff;}.ai-msg-bubble{padding:10px 14px;border-radius:14px;font-size:13.5px;line-height:1.6;word-break:break-word;}.ai-msg-bot .ai-msg-bubble{background:#fff;color:#1e293b;border:1px solid #e2e8f0;border-top-left-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,0.05);}.ai-msg-user .ai-msg-bubble{background:linear-gradient(135deg,var(--brand-primary,#1d4f8c),var(--brand-accent,#397EF0));color:#fff;border-top-right-radius:4px;}.ai-welcome-list{margin:8px 0 4px;padding-left:0;list-style:none;}.ai-welcome-list li{padding:2px 0;font-size:13px;}.ai-quick-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;}.ai-quick-btn{padding:6px 12px;border:1px solid #c7d2fe;border-radius:16px;background:#eef2ff;color:var(--brand-600,var(--brand-primary,#4f46e5));font-size:12px;cursor:pointer;transition:all 0.2s;white-space:nowrap;}.ai-quick-btn:hover{background:#e0e7ff;border-color:var(--brand-accent,#397EF0);transform:translateY(-1px);}.ai-typing{display:flex;gap:8px;align-self:flex-start;max-width:90%;}.ai-typing .ai-msg-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;background:#e0e7ff;}.ai-typing-dots{display:flex;align-items:center;gap:4px;padding:12px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;border-top-left-radius:4px;}.ai-typing-dots span{width:7px;height:7px;border-radius:50%;background:#94a3b8;animation:ai-dot-bounce 1.4s infinite ease-in-out;}.ai-typing-dots span:nth-child(2){animation-delay:0.2s;}.ai-typing-dots span:nth-child(3){animation-delay:0.4s;}@keyframes ai-dot-bounce{0%,80%,100%{transform:scale(0.6);opacity:0.4;}40%{transform:scale(1);opacity:1;}}.ai-panel-footer{padding:12px 14px;background:#fff;border-top:1px solid #e2e8f0;flex-shrink:0;}.ai-input-form{display:flex;gap:8px;align-items:flex-end;}.ai-input{flex:1;border:1.5px solid #d1d5db;border-radius:12px;padding:9px 14px;font-size:13.5px;resize:none;outline:none;transition:border-color 0.2s;max-height:80px;line-height:1.5;font-family:inherit;}.ai-input:focus{border-color:var(--brand-400,var(--brand-primary,#6366f1));box-shadow:0 0 0 3px rgba(29,79,140,0.1);}.ai-send-btn{width:38px;height:38px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--brand-primary,#1d4f8c),var(--brand-accent,#397EF0));color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.2s;}.ai-send-btn:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(99,102,241,0.4);}.ai-send-btn:disabled{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:none;}@media (max-width:479px){.ai-assistant{bottom:16px;right:16px;}.ai-fab{width:48px;height:48px;font-size:20px;}.ai-panel{position:fixed;bottom:0;right:0;left:0;width:100%;max-width:100%;height:70vh;max-height:70vh;border-radius:16px 16px 0 0;}}.site-footer{background:linear-gradient(135deg,#0f2a4a 0%,#1e293b 100%) !important;color:#e2e8f0 !important;padding:10px 0 8px;margin-top:auto;border-top:3px solid var(--brand-primary,#1d4f8c);position:fixed !important;bottom:0 !important;left:var(--sidebar-width,250px);right:0;width:auto;flex-shrink:0;z-index:50;box-shadow:0 -4px 20px rgba(0,0,0,0.15);}@media (max-width:1023px){.site-footer{left:0 !important;right:0 !important;width:100% !important;max-width:100% !important;margin:0 !important;}}.footer-container{max-width:1200px;margin:0 auto;padding:0 20px;position:relative;}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-bottom:6px;}.footer-section{text-align:center;padding:4px 8px;}.copyright-section{border-right:1px solid rgba(255,255,255,0.1);}.icp-section{border-right:1px solid rgba(255,255,255,0.1);}.copyright{font-size:0.85rem;margin-bottom:2px;font-weight:500;}.version{font-size:0.75rem;color:#94a3b8;}.icp-info{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px;}.icp-icon{filter:brightness(0) invert(1);}.icp-link{color:var(--brand-accent,#397EF0);text-decoration:none;font-weight:500;transition:color 0.3s ease;}.icp-link:hover{color:var(--brand-300,#6ea8e0);text-decoration:underline;}.organization{font-size:0.95rem;color:#ecf0f1;margin:5px 0;}.creator{font-size:1rem;margin-bottom:8px;font-weight:500;}.contact-info{display:flex;align-items:center;justify-content:center;gap:5px;font-size:0.9rem;}.contact-label{color:#94a3b8;}.contact-link{color:var(--brand-accent,#397EF0);text-decoration:none;transition:color 0.3s ease;}.contact-link:hover{color:var(--brand-300,#6ea8e0);text-decoration:underline;}.footer-decoration{position:relative;margin-top:4px;}.decoration-line{height:1px;background:linear-gradient(90deg,transparent 0%,var(--brand-primary,#1d4f8c) 50%,transparent 100%);margin:4px 0;}.footer-badge{text-align:center;margin-top:4px;}.badge-text{display:inline-block;background:var(--brand-primary-soft,rgba(29,79,140,0.12));color:var(--brand-accent,#397EF0);padding:3px 14px;border-radius:16px;font-size:0.75rem;font-weight:500;border:1px solid var(--brand-primary-soft,rgba(29,79,140,0.25));}@media (max-width:767px){.site-footer{left:0 !important;right:0 !important;width:100% !important;max-width:100% !important;padding:20px 0 15px;margin-top:auto;margin-left:0 !important;margin-right:0 !important;padding-bottom:max(15px,env(safe-area-inset-bottom,15px));}.footer-container{max-width:100%;padding:0 12px;}.footer-content{grid-template-columns:1fr;gap:12px;text-align:center;}.footer-section{padding:8px 10px;border-right:none;border-bottom:1px solid rgba(255,255,255,0.1);}.footer-section:last-child{border-bottom:none;}.copyright,.creator{font-size:0.9rem;}.organization,.version{font-size:0.8rem;}.contact-info{flex-direction:column;gap:2px;}.icp-info{flex-direction:column;gap:4px;}.footer-badge{margin-top:10px;}.badge-text{font-size:0.75rem;padding:5px 12px;}.decoration-line{margin:12px 0;}}@media (max-width:479px){.site-footer{left:0 !important;right:0 !important;width:100% !important;max-width:100% !important;margin-left:0 !important;margin-right:0 !important;padding:15px 0 12px;margin-top:auto;padding-bottom:max(12px,env(safe-area-inset-bottom,12px));}.footer-container{padding:0 10px;max-width:100%;}.footer-content{gap:10px;}.footer-section{padding:6px 8px;}.copyright,.creator{font-size:0.82rem;}.organization,.version{font-size:0.75rem;}.badge-text{font-size:0.7rem;padding:4px 10px;}.decoration-line{margin:10px 0;}}.site-footer{animation:fadeInUp 0.6s ease-out;}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:translateY(0);}}.icp-link,.contact-link{position:relative;transition:all 0.3s ease;}.icp-link::after,.contact-link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:currentColor;transition:width 0.3s ease;}.icp-link:hover::after,.contact-link:hover::after{width:100%;}/**
 * 全局搜索样式（B2）
 * 三部分：① 侧栏搜索入口  ② 搜索浮层  ③ pages/search.php 结果页
 *
 * 约定：全部走 aurora-global 已定义的设计变量，不硬编码色值（P0-3）；
 *       不使用紫→粉渐变（P0-2）。
 * 独立成文件而非并入 ui-kit.css，避免后者继续膨胀。
 */

/* ============================================================
   ① 侧栏搜索入口
   ============================================================ */

.sidebar-search {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: var(--space-3) var(--space-4) var(--space-2);
    padding: 0 var(--space-3);
    height: 38px;
    border-radius: var(--radius-md);
    background: var(--sidebar-surface-hover);
    border: 1px solid transparent;
    transition: border-color .15s ease, background .15s ease;
}

.sidebar-search:focus-within {
    border-color: var(--border-focus);
    background: var(--sidebar-surface-active);
}

.sidebar-search-icon {
    display: inline-flex;
    align-items: center;
    color: var(--sidebar-text);
    opacity: .7;
    flex-shrink: 0;
}

.sidebar-search-icon .icon {
    width: 16px;
    height: 16px;
}

.sidebar-search-input {
    flex: 1;
    min-width: 0;
    height: 100%;
    border: 0;
    background: transparent;
    color: var(--sidebar-text);
    font-size: var(--text-sm);
    font-family: inherit;
    outline: none;
    cursor: pointer;
}

.sidebar-search-input::placeholder {
    color: var(--sidebar-text);
    opacity: .55;
}

.sidebar-search-kbd {
    flex-shrink: 0;
    padding: 2px 6px;
    border-radius: var(--radius-xs);
    border: 1px solid var(--border-subtle);
    background: var(--sidebar-surface);
    color: var(--sidebar-text);
    opacity: .65;
    font-size: 11px;
    font-family: var(--font-mono);
    line-height: 1.4;
    white-space: nowrap;
}

/* ============================================================
   ② 搜索浮层
   ============================================================ */

body.gs-lock {
    overflow: hidden;
}

.gs-overlay {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: none;
    justify-content: center;
    align-items: flex-start;
    padding: 10vh var(--space-4) var(--space-4);
    background: rgba(15, 23, 42, .45);
    backdrop-filter: blur(2px);
}

.gs-overlay.is-open {
    display: flex;
}

.gs-panel {
    width: 100%;
    max-width: 640px;
    max-height: 72vh;
    display: flex;
    flex-direction: column;
    background: var(--bg-card);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-2xl);
    overflow: hidden;
}

/* 头部输入区 */
.gs-head {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4);
    border-bottom: 1px solid var(--border-light);
    flex-shrink: 0;
}

.gs-head-icon {
    display: inline-flex;
    color: var(--text-muted);
}

.gs-head-icon .icon {
    width: 18px;
    height: 18px;
}

.gs-input {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: none;
    background: transparent;
    color: var(--text-primary);
    font-size: var(--text-base);
    font-family: inherit;
}

.gs-input::placeholder {
    color: var(--text-muted);
}

.gs-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}

.gs-close:hover {
    background: var(--neutral-100);
    color: var(--text-primary);
}

.gs-close .icon {
    width: 16px;
    height: 16px;
}

/* 结果区 */
.gs-results {
    flex: 1;
    overflow-y: auto;
    padding: var(--space-2) 0;
}

.gs-group + .gs-group {
    border-top: 1px solid var(--border-subtle);
    margin-top: var(--space-2);
    padding-top: var(--space-2);
}

.gs-group-head {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
}

.gs-group-icon {
    display: inline-flex;
    color: var(--brand-primary);
}

.gs-group-icon .icon {
    width: 14px;
    height: 14px;
}

.gs-group-label {
    font-size: var(--text-xs);
    font-weight: var(--font-semibold);
    color: var(--text-secondary);
    letter-spacing: .02em;
}

.gs-group-count {
    padding: 1px 7px;
    border-radius: var(--radius-full);
    background: var(--brand-50);
    color: var(--brand-700);
    font-size: 11px;
    font-weight: var(--font-medium);
}

.gs-list {
    display: flex;
    flex-direction: column;
}

.gs-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--space-2) var(--space-4);
    text-decoration: none;
    border-left: 2px solid transparent;
}

.gs-item.is-active {
    background: var(--brand-50);
    border-left-color: var(--brand-primary);
}

.gs-item-title {
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    color: var(--text-primary);
    line-height: 1.4;
}

.gs-item-snippet {
    font-size: var(--text-xs);
    color: var(--text-secondary);
    line-height: 1.5;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gs-item-meta {
    font-size: 11px;
    color: var(--text-muted);
    line-height: 1.4;
}

.gs-item mark,
.search-result-item mark {
    padding: 0 1px;
    border-radius: 2px;
    background: var(--warning-100, var(--brand-100));
    color: inherit;
    font-weight: var(--font-semibold);
}

.gs-more {
    display: inline-block;
    margin: var(--space-1) var(--space-4) var(--space-2);
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    color: var(--text-link);
    text-decoration: none;
    border-left: 2px solid transparent;
}

.gs-more.is-active {
    background: var(--brand-50);
    border-left-color: var(--brand-primary);
}

/* 空态 / 提示 */
.gs-message {
    padding: var(--space-8) var(--space-4);
    text-align: center;
}

.gs-message-main {
    margin: 0 0 var(--space-2);
    font-size: var(--text-sm);
    color: var(--text-primary);
}

.gs-message-sub {
    margin: 0;
    font-size: var(--text-xs);
    color: var(--text-muted);
}

/* 骨架条（避免 spinner 造成高度跳动） */
.gs-skeleton {
    padding: var(--space-3) var(--space-4);
}

.gs-skeleton-row {
    height: 14px;
    margin-bottom: var(--space-3);
    border-radius: var(--radius-xs);
    background: linear-gradient(90deg, var(--neutral-100) 25%, var(--neutral-200) 37%, var(--neutral-100) 63%);
    background-size: 400% 100%;
    animation: gs-shimmer 1.2s ease-in-out infinite;
}

.gs-skeleton-row:nth-child(2) { width: 78%; }
.gs-skeleton-row:nth-child(3) { width: 62%; }
.gs-skeleton-row:nth-child(4) { width: 84%; }

@keyframes gs-shimmer {
    0%   { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

@media (prefers-reduced-motion: reduce) {
    .gs-skeleton-row { animation: none; }
}

/* 底部快捷键说明 */
.gs-foot {
    flex-shrink: 0;
    padding: var(--space-2) var(--space-4);
    border-top: 1px solid var(--border-light);
    background: var(--neutral-50);
    color: var(--text-muted);
    font-size: 11px;
}

/* ============================================================
   ③ pages/search.php 结果页
   ============================================================ */

.search-page-form {
    display: flex;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.search-page-input-wrap {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 0 var(--space-3);
    height: 42px;
    background: var(--bg-card);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
}

.search-page-input-wrap:focus-within {
    border-color: var(--border-focus);
    box-shadow: var(--pro-shadow-input-focus);
}

.search-page-input-icon {
    display: inline-flex;
    color: var(--text-muted);
}

.search-page-input-icon .icon {
    width: 16px;
    height: 16px;
}

.search-page-input {
    flex: 1;
    min-width: 0;
    height: 100%;
    border: 0;
    outline: none;
    background: transparent;
    color: var(--text-primary);
    font-size: var(--text-sm);
    font-family: inherit;
}

.search-page-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
}

.search-tab {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-3);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-full);
    background: var(--bg-card);
    color: var(--text-secondary);
    font-size: var(--text-xs);
    text-decoration: none;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}

.search-tab .icon {
    width: 14px;
    height: 14px;
}

.search-tab:hover {
    border-color: var(--brand-300);
    color: var(--text-primary);
}

.search-tab.active {
    background: var(--brand-50);
    border-color: var(--brand-primary);
    color: var(--brand-700);
    font-weight: var(--font-medium);
}

.search-page-summary {
    margin-bottom: var(--space-4);
    font-size: var(--text-sm);
    color: var(--text-secondary);
}

.search-page-hint,
.search-page-empty {
    padding: var(--space-8) var(--space-4);
    background: var(--bg-card);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    text-align: center;
}

.search-page-hint p,
.search-page-empty p {
    margin: 0 0 var(--space-2);
    font-size: var(--text-sm);
    color: var(--text-primary);
}

.search-page-hint p:last-child,
.search-page-empty p:last-child {
    margin-bottom: 0;
}

.search-group {
    margin-bottom: var(--space-5);
    background: var(--bg-card);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.search-group-head {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--border-subtle);
}

.search-group-icon {
    display: inline-flex;
    color: var(--brand-primary);
}

.search-group-icon .icon {
    width: 16px;
    height: 16px;
}

.search-group-title {
    margin: 0;
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
}

.search-group-count {
    padding: 1px 8px;
    border-radius: var(--radius-full);
    background: var(--brand-50);
    color: var(--brand-700);
    font-size: var(--text-xs);
}

.search-group-more {
    margin-left: auto;
    font-size: var(--text-xs);
    color: var(--text-link);
    text-decoration: none;
}

.search-group-more:hover {
    color: var(--text-link-hover);
    text-decoration: underline;
}

.search-result-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.search-result-item + .search-result-item {
    border-top: 1px solid var(--border-subtle);
}

.search-result-link {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: var(--space-3) var(--space-4);
    text-decoration: none;
    transition: background .15s ease;
}

.search-result-link:hover {
    background: var(--brand-50);
}

.search-result-title {
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    color: var(--text-primary);
}

.search-result-snippet {
    font-size: var(--text-xs);
    color: var(--text-secondary);
    line-height: 1.6;
}

.search-result-meta {
    font-size: 11px;
    color: var(--text-muted);
}

.search-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    margin: var(--space-5) 0;
}

.search-pagination-info {
    font-size: var(--text-sm);
    color: var(--text-secondary);
}

/* ===== 移动端抽屉菜单修复（2026-09-01）：汉堡显示 + 侧栏离屏 + 展开，收敛分散失效样式 ===== */
@media (max-width: 1023px) {
  .mobile-sidebar-toggle { display: flex !important; position: fixed !important; top: 10px !important; left: 10px !important; width: 40px !important; height: 40px !important; align-items: center !important; justify-content: center !important; z-index: 1200 !important; background: rgba(29,79,140,0.92) !important; color: #fff !important; border-radius: 8px !important; }
  .app-sidebar { position: fixed !important; top: 0 !important; left: 0 !important; bottom: 0 !important; transform: translateX(-100%) !important; width: 260px !important; min-width: 260px !important; max-width: 84vw !important; z-index: 1150 !important; transition: transform .25s ease !important; overflow-y: auto !important; }
  .app-sidebar.mobile-open { transform: translateX(0) !important; box-shadow: 4px 0 40px rgba(0,0,0,0.4) !important; }
  .sidebar-overlay { display: none !important; position: fixed !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; background: rgba(0,0,0,0.45) !important; z-index: 1140 !important; }
  .sidebar-overlay.show { display: block !important; }
}

/* ===== 教师注册审批界面排版统一（2026-09-01）：reg-* 组件对齐全局设计令牌 ===== */
.reg-approval-page { font-family: var(--font-sans); color: var(--text-primary); }
.reg-stats { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important; gap: var(--space-4) !important; margin-bottom: var(--space-5) !important; }
.reg-stat-card { background: var(--surface-card) !important; border: 1px solid var(--border-subtle) !important; border-radius: var(--radius-lg) !important; padding: var(--space-5) !important; box-shadow: var(--shadow-sm) !important; text-align: center !important; }
.reg-number { font-size: var(--text-2xl) !important; font-weight: var(--font-bold) !important; color: var(--brand-600) !important; line-height: 1.2 !important; }
.reg-label { font-size: var(--text-xs) !important; color: var(--text-secondary) !important; margin-top: var(--space-1) !important; }
.reg-tabs { display: flex !important; gap: var(--space-2) !important; border-bottom: 2px solid var(--border-subtle) !important; margin-bottom: var(--space-4) !important; flex-wrap: wrap !important; }
.reg-tabs .tab-btn, .reg-tabs .reg-tab { padding: var(--space-2) var(--space-4) !important; border-radius: var(--radius-sm) var(--radius-sm) 0 0 !important; font-size: var(--text-sm) !important; color: var(--text-secondary) !important; cursor: pointer !important; border: 0 !important; background: transparent !important; }
.reg-tabs .tab-btn.active, .reg-tabs .reg-tab.active { color: var(--brand-600) !important; border-bottom: 2px solid var(--brand-500) !important; font-weight: var(--font-semibold) !important; }
.reg-request-list { display: flex !important; flex-direction: column !important; gap: var(--space-3) !important; }
.reg-alert { padding: var(--space-3) var(--space-4) !important; border-radius: var(--radius-md) !important; font-size: var(--text-sm) !important; margin-bottom: var(--space-4) !important; }
.reg-alert-success { background: var(--success-50, #e3f6ea) !important; color: #1f7a44 !important; }
.reg-alert-error { background: var(--danger-50, #fbe4e2) !important; color: #b23a32 !important; }

/* 通知面板：fixed + JS 自适应边界定位（2026-09-01 修复面板溢出视口）。原 absolute+right:0 相对窄铃铛包裹层定位导致左溢出 284px；现由 JS 按视口空间设 left/top/width/maxHeight，列表内部滚动。 */
.notif-dropdown{position:fixed!important;right:auto!important}
.notif-dropdown-list{overflow-y:auto}
