:root{--ink:#14213d;--ink-light:#1e2e52;--bg:#f7f8fa;--card:#fff;--border:#e4e7ee;--text:#1a1f36;--muted:#6b7280;--muted-light:#9ca3af;--success:#1e8e5a;--success-bg:#e5f7ed;--danger:#c0392b;--danger-bg:#fdecea;--amber:#b8860b;--amber-bg:#fff4e0;--blue:#1565c0;--blue-bg:#e6f4ff;--role-superadmin:#4338ca;--role-superadmin-bg:#eeecfb;--role-admin:#0369a1;--role-admin-bg:#e0f2fe;--role-counselor:#0d9488;--role-counselor-bg:#e1f5f2;--role-operations:#c2760c;--role-operations-bg:#fdf0de;--role-seo:#15803d;--role-seo-bg:#e7f7ec;--role-trainer:#7c3aed;--role-trainer-bg:#f1e9fe;--role-student:#2563eb;--role-student-bg:#e8effd;--accent:var(--role-superadmin);--accent-bg:var(--role-superadmin-bg);--font-display:"Sora", -apple-system, BlinkMacSystemFont, sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"IBM Plex Mono", "SF Mono", Consolas, monospace;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px #14213d0f;--shadow-md:0 4px 16px #14213d14}*{box-sizing:border-box}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{background:linear-gradient(180deg, var(--ink) 0%, var(--ink-light) 100%);color:#fff;flex-direction:column;flex-shrink:0;width:252px;padding:22px 0 16px;display:flex;position:relative}.sidebar-brand{border-bottom:1px solid #ffffff1f;align-items:center;gap:10px;margin-bottom:14px;padding:0 22px 20px;display:flex}.sidebar-brand-mark{object-fit:cover;border-radius:9px;flex-shrink:0;width:34px;height:34px;box-shadow:0 0 0 1px #ffffff26}.sidebar-brand-text{font-family:var(--font-display);font-size:15.5px;font-weight:700;line-height:1.2}.sidebar-role-chip{letter-spacing:.02em;background:var(--accent);color:#fff;text-transform:uppercase;border-radius:20px;align-items:center;gap:5px;margin-top:3px;padding:2px 8px;font-size:10.5px;font-weight:600;display:inline-flex}.sidebar-user{color:#ffffff8c;padding:0 22px 16px;font-size:12.5px}.sidebar nav{flex:1;padding:0 12px}.sidebar-link{color:#ffffffbf;cursor:pointer;border-radius:8px;align-items:center;gap:11px;margin-bottom:2px;padding:10px 12px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar-link:hover{color:#fff;background:#ffffff14}.sidebar-link.active{background:var(--accent);color:#fff;font-weight:600}.sidebar-link svg{flex-shrink:0;width:17px;height:17px}.sidebar-footer{border-top:1px solid #ffffff1f;margin-top:8px;padding:14px 22px 0}.sidebar-footer button{color:#fff;cursor:pointer;width:100%;font-size:13px;font-weight:500;font-family:var(--font-body);background:#ffffff14;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px;display:flex}.sidebar-footer button:hover{background:#ffffff29}.main{flex:1;width:100%;max-width:1180px;padding:32px 40px 60px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:26px;display:flex}h1.page-title{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;margin:0 0 5px;font-size:24px;font-weight:700}p.page-sub{color:var(--muted);margin:0;font-size:13.5px}.btn-cta{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;font-size:13.5px;font-weight:600;font-family:var(--font-body);white-space:nowrap;box-shadow:var(--shadow-sm);border:none;align-items:center;gap:7px;padding:10px 18px;display:inline-flex}.btn-cta:hover{filter:brightness(1.08)}.stat-grid{flex-wrap:wrap;gap:16px;margin-bottom:24px;display:flex}.stat-card{background:var(--card);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--radius);min-width:150px;box-shadow:var(--shadow-sm);flex:1;padding:18px 20px}.stat-card-top{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.stat-card .icon-badge{background:var(--accent-bg);width:30px;height:30px;color:var(--accent);border-radius:8px;justify-content:center;align-items:center;display:flex}.stat-card .icon-badge svg{width:16px;height:16px}.stat-card .num{font-family:var(--font-mono);color:var(--ink);font-size:26px;font-weight:600;line-height:1}.stat-card .label{color:var(--muted);margin-top:6px;font-size:12px;font-weight:500}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:22px}.card h3{font-family:var(--font-display);color:var(--ink);align-items:center;gap:8px;margin:0 0 16px;font-size:15px;font-weight:600;display:flex}.card h3 svg{width:17px;height:17px;color:var(--accent)}.card-grid-2{grid-template-columns:1.3fr 1fr;align-items:start;gap:20px;display:grid}@media (width<=900px){.card-grid-2{grid-template-columns:1fr}}table{border-collapse:collapse;width:100%;font-size:13.5px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:600}tbody tr:hover{background:#fafbfc}tbody tr:last-child td{border-bottom:none}.num-cell{font-family:var(--font-mono);font-weight:500}.empty-state{text-align:center;color:var(--muted);padding:28px 16px;font-size:13.5px}.empty-state svg{width:28px;height:28px;color:var(--muted-light);margin-bottom:8px}.badge{letter-spacing:.01em;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block}.badge.new{background:var(--role-superadmin-bg);color:var(--role-superadmin)}.badge.contacted{background:var(--amber-bg);color:var(--amber)}.badge.interested{background:var(--blue-bg);color:var(--blue)}.badge.positive{background:var(--success-bg);color:var(--success)}.badge.call_not_received{background:var(--amber-bg);color:var(--amber)}.badge.follow_up{background:var(--blue-bg);color:var(--blue)}.badge.demo_workshop{background:var(--role-counselor-bg);color:var(--role-counselor)}.badge.negotiation{background:var(--role-seo-bg);color:var(--role-seo)}.badge.not_interested{background:var(--danger-bg);color:var(--danger)}.badge.enrolled{background:var(--success-bg);color:var(--success)}.badge.lost{background:var(--danger-bg);color:var(--danger)}.badge.present{background:var(--success-bg);color:var(--success)}.badge.absent{background:var(--danger-bg);color:var(--danger)}.badge.late{background:var(--amber-bg);color:var(--amber)}.badge.ongoing{background:var(--success-bg);color:var(--success)}.badge.upcoming{background:var(--blue-bg);color:var(--blue)}.badge.completed{color:var(--muted);background:#eef0f3}.badge.online{background:var(--blue-bg);color:var(--blue)}.badge.offline{background:var(--role-operations-bg);color:var(--role-operations)}.badge.hybrid{background:var(--role-trainer-bg);color:var(--role-trainer)}.badge.active{background:var(--success-bg);color:var(--success)}.badge.inactive{color:var(--muted);background:#eef0f3}.badge.exam_announcement{background:var(--blue-bg);color:var(--blue)}.badge.batch_update{background:var(--role-operations-bg);color:var(--role-operations)}.badge.placement_update{background:var(--success-bg);color:var(--success)}.badge.trainer_update{background:var(--role-trainer-bg);color:var(--role-trainer)}.badge.sent{background:var(--success-bg);color:var(--success)}form.inline-form{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:4px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--muted);text-transform:uppercase;letter-spacing:.02em;font-size:11.5px;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:var(--radius-sm);min-width:160px;font-size:13.5px;font-family:var(--font-body);color:var(--text);background:#fff;padding:9px 11px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.field textarea{min-width:260px;font-family:var(--font-body)}.admission-form{align-items:stretch}.admission-form .field{flex:220px}.admission-form .wide-field{flex-basis:420px}.form-section-title{border-top:1px solid var(--border);color:var(--ink);font-family:var(--font-display);flex:1 0 100%;margin-top:8px;padding-top:14px;font-size:13px;font-weight:700}.form-section-title:first-child{border-top:none;margin-top:0;padding-top:0}.admission-form .field input,.admission-form .field select,.admission-form .field textarea{width:100%;min-width:0}.admission-lead-summary{flex:1 0 100%;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.admission-lead-summary div{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:11px 12px}.admission-lead-summary span{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.admission-lead-summary strong{color:var(--ink);overflow-wrap:anywhere;font-size:13px}.form-actions{flex:1 0 100%;justify-content:flex-end;gap:10px;padding-top:10px;display:flex}.password-input-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;align-items:center;min-width:160px;display:flex}.password-input-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.password-input-wrap input{background:0 0;border:none;flex:1;min-width:0}.password-input-wrap input:focus{box-shadow:none}.password-eye-btn,.icon-edit-btn,.icon-view-btn,.icon-danger-btn{cursor:pointer;font-family:var(--font-body);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.password-eye-btn{width:36px;height:36px;color:var(--muted);border-radius:7px;margin-right:4px}.password-eye-btn:hover{background:var(--accent-bg);color:var(--accent)}.password-eye-btn svg,.icon-edit-btn svg,.icon-view-btn svg,.icon-danger-btn svg{width:16px;height:16px}.btn{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;font-size:13.5px;font-weight:600;font-family:var(--font-body);border:none;justify-content:center;align-items:center;padding:10px 18px;text-decoration:none;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:var(--accent-bg);color:var(--accent)}.btn.secondary:hover{filter:brightness(.97)}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover{filter:brightness(1.06)}.btn.small{padding:6px 12px;font-size:12px}.btn svg{vertical-align:middle;width:16px;height:16px}.icon-edit-btn,.icon-view-btn,.icon-danger-btn{width:30px;height:30px;color:var(--danger);border-radius:7px}.icon-edit-btn{color:var(--accent);border-radius:7px;margin-right:6px}.icon-view-btn{color:var(--blue);border-radius:7px}.icon-edit-btn:hover{background:var(--accent-bg)}.icon-view-btn:hover{background:var(--blue-bg)}.icon-danger-btn:hover{background:var(--danger-bg)}.icon-edit-btn:disabled,.icon-view-btn:disabled,.icon-danger-btn:disabled{color:var(--muted-light);cursor:not-allowed;opacity:.55}.icon-edit-btn:disabled:hover,.icon-view-btn:disabled:hover,.icon-danger-btn:disabled:hover{background:0 0}.msg{border-radius:var(--radius-sm);align-items:center;gap:8px;margin-bottom:16px;padding:11px 15px;font-size:13.5px;display:flex}.msg.error{background:var(--danger-bg);color:var(--danger)}.msg.success{background:var(--success-bg);color:var(--success)}.msg svg{flex-shrink:0;width:16px;height:16px}.table-actions{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.login-page{background:linear-gradient(135deg, var(--ink) 0%, #2a3d6b 55%, #3b4e82 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:#fff;border-radius:18px;width:380px;padding:40px 42px;box-shadow:0 20px 60px #00000059}.login-brand{align-items:center;gap:10px;margin-bottom:22px;display:flex}.login-brand-mark{object-fit:cover;border-radius:11px;width:44px;height:44px;box-shadow:0 1px 4px #14213d26}.login-card h2{font-family:var(--font-display);color:var(--ink);margin:0;font-size:19px;font-weight:700}.login-card p.tagline{color:var(--muted);margin:1px 0 0;font-size:12.5px}.login-card .field{width:100%;margin-bottom:16px}.login-card .field input{width:100%}.login-card button.btn{width:100%;margin-top:4px;padding:11px;font-size:14px}.demo-hint{background:var(--bg);color:var(--muted);border:1px solid var(--border);border-radius:10px;margin-top:20px;padding:14px;font-size:11.5px;line-height:1.8}.demo-hint strong{color:var(--ink);font-family:var(--font-display);font-size:11.5px}.demo-hint code{font-family:var(--font-mono);background:#fff;border-radius:4px;padding:1px 5px}.progress-track{background:var(--border);border-radius:20px;height:8px;overflow:hidden}.progress-fill{border-radius:20px;height:100%}.funnel-row{align-items:center;gap:12px;margin-bottom:12px;display:flex}.funnel-label{width:90px;color:var(--muted);flex-shrink:0;font-size:12.5px;font-weight:600}.funnel-bar-track{background:var(--bg);border-radius:6px;flex:1;height:22px;overflow:hidden}.funnel-bar-fill{border-radius:6px;justify-content:flex-end;align-items:center;height:100%;padding-right:8px;display:flex}.funnel-bar-fill span{font-family:var(--font-mono);color:#fff;font-size:11px;font-weight:600}.alert-banner{border-radius:var(--radius);border:1px solid;align-items:center;gap:12px;margin-bottom:20px;padding:14px 18px;display:flex}.alert-banner.warn{background:var(--amber-bg);color:#8a6410;border-color:#f0d9a8}.alert-banner svg{flex-shrink:0;width:20px;height:20px}.alert-banner-text{font-size:13.5px}.alert-banner-text strong{font-family:var(--font-mono)}.pill-list{flex-wrap:wrap;gap:8px;display:flex}.pill{background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:6px 12px;font-size:12px;font-weight:500}.section-divider{border:none;border-top:1px solid var(--border);margin:22px 0}.entity-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm);margin-bottom:14px;padding:18px 20px}.entity-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.entity-card-title{font-family:var(--font-display);color:var(--ink);font-size:15px;font-weight:700}.entity-card-meta{color:var(--muted);margin-top:3px;font-size:12.5px}.list-item-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.list-item-row:last-child{border-bottom:none}.list-item-icon{background:var(--accent-bg);width:34px;height:34px;color:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.list-item-icon svg{width:16px;height:16px}.list-item-title{color:var(--text);font-size:13.5px;font-weight:600}.list-item-sub{color:var(--muted);margin-top:1px;font-size:12px}.update-message{white-space:pre-line;line-height:1.55}.module-link-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.module-link{border:1px solid var(--border);border-radius:var(--radius-sm);min-height:78px;color:inherit;background:var(--card);align-items:center;gap:12px;padding:12px;text-decoration:none;display:flex}.module-link:hover{border-color:var(--accent);background:var(--accent-bg)}.announcement-form{align-items:stretch}.announcement-form .field{flex:220px}.announcement-form .wide-field{flex:1 0 100%}.announcement-form .field input,.announcement-form .field select,.announcement-form .field textarea{width:100%;min-width:0}.announcement-audience{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--muted);flex:1 0 100%;align-items:center;gap:8px;padding:11px 12px;font-size:12.5px;font-weight:600;display:flex}.announcement-audience svg{width:16px;height:16px;color:var(--accent)}.crm-filter-panel{background:var(--card);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:20px;padding:18px;display:flex}.crm-table-card{padding:0;overflow:hidden}.crm-table-card table th,.crm-table-card table td{padding:14px 16px}.crm-table-card table th:last-child,.crm-table-card table td:last-child{width:230px}.receipt-table-card table{table-layout:fixed}.receipt-table-card table th,.receipt-table-card table td{vertical-align:middle}.receipt-table-card table th:last-child,.receipt-table-card table td:last-child{width:92px}.receipt-table-card table th:first-child,.receipt-table-card table td:first-child{width:150px}.receipt-table-card table th:nth-child(2),.receipt-table-card table td:nth-child(2){width:105px}.receipt-table-card table th:nth-child(3),.receipt-table-card table td:nth-child(3){width:190px}.receipt-table-card table th:nth-child(6),.receipt-table-card table td:nth-child(6){width:105px}.receipt-table-card .action-icons{flex-wrap:nowrap;justify-content:flex-start}.receipt-money-row{justify-content:space-between;align-items:center;gap:10px;max-width:150px;font-size:12.5px;display:flex}.receipt-money-row span{color:var(--muted)}.receipt-money-row strong{font-family:var(--font-mono);color:var(--ink)}.receipt-mail-status{border-radius:20px;justify-content:center;align-items:center;min-width:68px;padding:4px 8px;font-size:11px;font-weight:700;display:inline-flex}.receipt-mail-status.sent{background:var(--success-bg);color:var(--success)}.receipt-mail-status.pending{background:var(--amber-bg);color:var(--amber)}.action-icons{align-items:center;gap:10px;display:flex}.action-icons button,.action-icons a{width:26px;height:26px;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.action-icons button:hover,.action-icons a:hover{background:var(--accent-bg);color:var(--accent)}.action-icons svg{width:16px;height:16px}.lead-action-row{flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:8px;display:flex}.lead-action-row .action-icons,.lead-action-row .btn{flex:none}.lead-action-row .pickup-btn{min-width:70px}.expanded-row td{background:#fafbfc}.expanded-content{color:var(--muted);gap:8px;padding:8px 0;font-size:13px;display:grid}.expanded-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.expanded-actions a.btn{text-decoration:none}.modal-backdrop{z-index:50;background:#1118279e;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{border-radius:var(--radius);background:#fff;width:min(420px,100%);padding:22px;position:relative;box-shadow:0 20px 60px #00000047}.modal-card h3{font-family:var(--font-display);color:var(--ink);align-items:center;gap:8px;margin:0 0 18px;display:flex}.modal-card .field{margin-bottom:14px}.modal-card .field input,.modal-card .field select,.modal-card .field textarea{width:100%;min-width:0}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:20px;position:absolute;top:12px;right:12px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.lead-view-modal{width:min(620px,100%)}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.detail-grid div{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:12px}.detail-grid span{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:5px;font-size:11px;font-weight:700;display:block}.detail-grid strong{color:var(--ink);overflow-wrap:anywhere;font-size:13.5px;font-weight:600}.detail-grid .detail-full{grid-column:1/-1}.public-lead-page{background:#f7f8fa;grid-template-columns:minmax(320px,.9fr) minmax(360px,1.1fr);min-height:100vh;display:grid}.public-lead-panel{color:#fff;background:radial-gradient(circle at 22% 18%,#ffffff2e,#0000 25%),linear-gradient(140deg,#14213d 0%,#0d9488 100%);flex-direction:column;justify-content:space-between;min-height:100vh;padding:44px;display:flex}.public-lead-logo{background:#fffffff0;border-radius:10px;width:150px;height:auto;padding:8px}.public-lead-kicker{color:#ffffffbd;text-transform:uppercase;letter-spacing:.08em;margin:0 0 14px;font-size:12px;font-weight:800}.public-lead-panel h1{max-width:520px;font-family:var(--font-display);letter-spacing:0;margin:0;font-size:clamp(34px,4vw,54px);line-height:1.08}.public-lead-copy{color:#ffffffc7;max-width:480px;margin:18px 0 0;line-height:1.7}.public-lead-card{border:1px solid var(--border);border-radius:var(--radius);width:min(520px,100% - 40px);box-shadow:var(--shadow-md);background:#fff;place-self:center;padding:34px}.public-lead-card h2{color:var(--ink);font-family:var(--font-display);align-items:center;gap:9px;margin:0 0 22px;font-size:22px;display:flex}.public-lead-card h2 svg{color:var(--accent)}.public-lead-card .field{margin-bottom:16px}.public-lead-card .field input,.public-lead-card .field select,.public-lead-card .field textarea{width:100%}.public-lead-submit{justify-content:center;align-items:center;gap:8px;width:100%;margin-top:4px;display:inline-flex}@media (width<=620px){.detail-grid,.admission-lead-summary{grid-template-columns:1fr}}@media (width<=860px){.app-shell{display:block}.sidebar{width:100%;min-height:auto;padding-bottom:12px}.sidebar nav{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.sidebar-link{white-space:nowrap;flex:none;margin-bottom:0}.sidebar-footer{display:none}.main{max-width:none;padding:24px 16px 48px}.page-header{flex-direction:column;align-items:stretch}.btn-cta{width:fit-content}.card,.crm-table-card{overflow-x:auto}table{min-width:720px}.module-link-grid{grid-template-columns:1fr}.crm-filter-panel,form.inline-form{align-items:stretch}.field,.admission-form .field,.admission-form .wide-field{flex:100%}.field input,.field select,.field textarea{width:100%;min-width:0}.form-actions,.modal-actions{justify-content:stretch}.form-actions .btn,.modal-actions .btn{flex:1}.public-lead-page{grid-template-columns:1fr}.public-lead-panel{gap:48px;min-height:auto;padding:30px 22px}.public-lead-card{margin:26px 0}}
