@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-main:145 25% 96%;--bg-card:0 0% 100%;--bg-popover:145 20% 98%;--primary:154 61% 21%;--primary-hover:147 55% 13%;--secondary:42 92% 50%;--accent:42 95% 55%;--text-main:145 40% 10%;--text-muted:145 12% 40%;--border:145 15% 85%;--success:142 76% 36%;--warning:38 95% 48%;--danger:350 89% 55%;--info:217 91% 55%;--radius:12px;--transition-smooth:all .25s cubic-bezier(.4, 0, .2, 1);--color-slate-50:#f8fafc;--color-slate-100:#f1f5f9;--color-slate-200:#e2e8f0;--color-slate-300:#cbd5e1;--color-slate-400:#94a3b8;--color-slate-500:#64748b;--color-slate-600:#475569;--color-slate-700:#334155;--color-slate-800:#1e293b;--color-slate-900:#0f172a;--color-sky-50:#f0f9ff;--color-sky-100:#e0f2fe;--color-sky-200:#bae6fd;--color-sky-300:#7dd3fc;--color-sky-600:#0284c7;--color-sky-700:#0369a1;--color-green-50:#f0fdf4;--color-green-100:#dcfce7;--color-green-300:#86efac;--color-green-600:#16a34a;--color-green-700:#15803d;--color-green-800:#166534;--color-emerald-500:#10b981;--color-amber-100:#fef3c7;--color-amber-200:#fde68a;--color-amber-600:#d97706;--color-amber-700:#b45309;--color-amber-800:#92400e;--color-yellow-500:#eab308;--color-orange-500:#f97316;--color-red-50:#fef2f2;--color-red-300:#fca5a5;--color-red-500:#ef4444;--color-red-600:#dc2626;--color-red-700:#b91c1c;--color-violet-500:#8b5cf6}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:hsl(var(--bg-main));background-image:radial-gradient(at 0% 0%, hsl(var(--primary) / .15) 0px, transparent 50%), radial-gradient(at 100% 0%, #3c83f61f 0px, transparent 50%), radial-gradient(at 100% 100%, hsl(var(--accent) / .12) 0px, transparent 50%), radial-gradient(at 0% 100%, #16a2491a 0px, transparent 50%), radial-gradient(at 50% 50%, hsl(var(--secondary) / .06) 0px, transparent 40%);color:hsl(var(--text-main));-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100vh;line-height:1.5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:hsl(var(--bg-main))}::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:4px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--primary) / .4)}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;color:hsl(var(--text-main));font-weight:700}a{color:hsl(var(--primary) / 1);transition:var(--transition-smooth);text-decoration:none}a:hover{color:hsl(var(--primary-hover) / 1)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px;border-radius:4px}.dashboard-layout{min-height:100vh;display:flex}.sidebar{z-index:100;flex-direction:column;width:280px;height:100vh;display:flex;position:fixed;top:0;left:0;box-shadow:1px 0 2px #0f172a08;background:hsl(var(--bg-card))!important;border-right:1px solid hsl(var(--border))!important}.main-content{box-sizing:border-box;flex:1;min-width:0;margin-left:280px;padding:40px;overflow-x:hidden}.mobile-app-header,.mobile-drawer-backdrop,.mobile-drawer-close-btn{display:none}@media (width<=1023.98px){.mobile-app-header{-webkit-backdrop-filter:blur(16px);border-bottom:1px solid hsl(var(--border));z-index:90;box-sizing:border-box;background:#fffffff5;justify-content:space-between;align-items:center;height:56px;padding:0 16px;display:flex;position:sticky;top:0;left:0;right:0;box-shadow:0 1px 3px #00000014}.mobile-menu-btn{border-radius:var(--radius);border:1px solid hsl(var(--border));background:hsl(var(--bg-card));width:38px;height:38px;color:hsl(var(--primary));cursor:pointer;transition:var(--transition-smooth);justify-content:center;align-items:center;display:inline-flex}.mobile-menu-btn:hover{background:hsl(var(--primary) / .1);border-color:hsl(var(--primary))}.mobile-drawer-close-btn{border-radius:var(--radius);border:1px solid hsl(var(--border));background:hsl(var(--bg-card));width:32px;height:32px;color:hsl(var(--text-muted));cursor:pointer;transition:var(--transition-smooth);justify-content:center;align-items:center;margin-left:auto;display:inline-flex}.mobile-drawer-close-btn:hover{color:#dc2626;background:#fee2e2;border-color:#fca5a5}.dashboard-layout{flex-direction:column;min-height:100vh;overflow-x:hidden}.sidebar{transition:transform .28s cubic-bezier(.4,0,.2,1),visibility .28s;z-index:1000!important;visibility:hidden!important;border-right:1px solid hsl(var(--border))!important;background:#fff!important;border-bottom:none!important;width:280px!important;max-width:85vw!important;height:100vh!important;max-height:100vh!important;position:fixed!important;top:0!important;left:0!important;overflow-y:auto!important;transform:translate(-100%)!important;box-shadow:0 25px 50px -12px #00000059!important}.sidebar.drawer-open{visibility:visible!important;transform:translate(0)!important}.mobile-drawer-backdrop{-webkit-backdrop-filter:blur(3px);z-index:999;background:#0f172a73;display:block;position:fixed;inset:0}.main-content{box-sizing:border-box;overflow-x:hidden;width:100%!important;max-width:100%!important;margin-left:0!important;padding:24px 20px!important}}@media (width<=639.98px){.main-content{padding:16px 12px!important}table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}header:not(.mobile-app-header){flex-direction:column;gap:12px;align-items:flex-start!important}.navbar-actions{flex-wrap:wrap;width:100%;gap:10px 12px!important}}.sidebar-icon-badge{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s,background .22s;display:inline-flex}.sidebar-nav-link:hover .sidebar-icon-badge,.sidebar-group-btn:hover .sidebar-icon-badge{transform:scale(1.12)}.sidebar-nav-link{transition:all .2s cubic-bezier(.4,0,.2,1)}.sidebar-nav-link:hover{background:hsl(var(--primary) / .07)!important;color:hsl(var(--text-main))!important}.sidebar-group-btn:hover{background:hsl(var(--primary) / .06)!important}.card,.liquid-glass-card{background:hsl(var(--bg-card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:24px;transition:border-color .2s,box-shadow .2s;box-shadow:0 1px 2px #0f172a0a}.card:hover,.liquid-glass-card:hover{border-color:hsl(var(--primary) / .3);box-shadow:0 8px 20px -6px #0f172a1a}.dash-stat-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.dash-label{color:hsl(var(--text-muted));text-transform:uppercase;letter-spacing:.04em;font-size:.76rem;font-weight:700}.portal-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:.76rem;font-weight:800;display:inline-flex;box-shadow:0 2px 8px #00000026;color:#fff!important}.portal-badge-faculty{background:linear-gradient(135deg,#059669,#10b981)}.portal-badge-hod{background:linear-gradient(135deg,#d97706,#f59e0b)}.portal-badge-admin{background:linear-gradient(135deg,#1e40af,#3b82f6)}@keyframes pulseDotAnim{0%{transform:scale(.95);box-shadow:0 0 #ef4444b3}70%{transform:scale(1.05);box-shadow:0 0 0 6px #ef444400}to{transform:scale(.95);box-shadow:0 0 #ef444400}}.pulse-dot{background:#ef4444;border-radius:50%;width:8px;height:8px;animation:1.8s infinite pulseDotAnim;display:inline-block}.form-group{margin-bottom:20px}.form-label{color:var(--color-slate-700);margin-bottom:8px;font-size:.875rem;font-weight:600;display:block}.form-required{color:hsl(var(--danger))}.form-hint,.form-error{margin-top:6px;font-size:.78rem;line-height:1.4;display:block}.form-hint{color:var(--color-slate-500)}.form-error{color:var(--color-red-600);font-weight:600}.form-control[readonly]:not(select){background:hsl(var(--bg-popover));cursor:default}.form-control{border:1.5px solid hsl(var(--border));border-radius:var(--radius);color:#111827;width:100%;font-family:var(--font-sans);transition:var(--transition-smooth);background:#fff;padding:12px 16px;font-size:.95rem;font-weight:500}.form-control::placeholder{color:#6b7280;opacity:1}.form-control:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 4px hsl(var(--primary) / .15);outline:none}.form-control:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}.btn{border-radius:var(--radius);cursor:pointer;font-size:.95rem;font-weight:700;font-family:var(--font-sans);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:12px 24px;transition:all .3s cubic-bezier(.16,1,.3,1);display:inline-flex}.btn-primary{background:hsl(var(--primary));color:#fff;box-shadow:0 1px 2px #0f172a14}.btn-primary:hover{background:hsl(var(--primary-hover));box-shadow:0 4px 12px -2px hsl(var(--primary) / .35);transform:translateY(-1px)}.btn-secondary{background:hsl(var(--bg-card));border:1px solid hsl(var(--border));color:hsl(var(--text-main));box-shadow:0 1px 2px #0f172a0a}.btn-secondary:hover{border-color:hsl(var(--primary) / .35);color:hsl(var(--primary));transform:translateY(-1px);box-shadow:0 4px 12px -4px #0f172a1a}.btn-success{background:hsl(var(--success));color:#fff;box-shadow:0 4px 12px hsl(var(--success) / .28)}.btn-success:hover{opacity:.9;box-shadow:0 8px 20px hsl(var(--success) / .4);transform:translateY(-2px)}.btn-danger{background:hsl(var(--danger));color:#fff;box-shadow:0 4px 12px hsl(var(--danger) / .28)}.btn-danger:hover{opacity:.9;box-shadow:0 8px 20px hsl(var(--danger) / .4);transform:translateY(-2px)}.btn:active{transition:transform .1s;transform:scale(.97)}.table-container{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--bg-card) / .4);overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}th,td{border-bottom:1px solid hsl(var(--border));padding:16px;font-size:.95rem}th{background:hsl(var(--bg-popover) / .8);color:hsl(var(--text-muted));text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}tr:last-child td{border-bottom:none}td{font-variant-numeric:tabular-nums;transition:background-color .15s}tr:hover td{background:hsl(var(--primary) / .07)}.badge{border-radius:9999px;align-items:center;padding:4px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-success{background:hsl(var(--success) / .15);color:hsl(var(--success))}.badge-warning{background:hsl(var(--warning) / .15);color:hsl(var(--warning))}.badge-danger{background:hsl(var(--danger) / .15);color:hsl(var(--danger))}.editable-container{align-items:center;gap:12px;display:flex}.editable-trigger{border-bottom:1px dashed hsl(var(--primary) / .6);cursor:pointer;transition:var(--transition-smooth);padding-bottom:2px}.editable-trigger:hover{color:hsl(var(--primary));border-bottom-style:solid}@keyframes versionGlowPulse{0%{transform:scale(1);box-shadow:0 0 5px #10b98166,0 0 10px #10b98133}50%{transform:scale(1.06);box-shadow:0 0 14px #f59e0b99,0 0 22px #f59e0b4d}to{transform:scale(1);box-shadow:0 0 5px #10b98166,0 0 10px #10b98133}}@keyframes shimmerGradient{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.version-badge-anim{letter-spacing:.06em;text-shadow:0 1px 2px #0006;vertical-align:middle;background:linear-gradient(135deg,#10b981,#d97706,#2563eb,#10b981) 0 0/300% 300%;border-radius:12px;justify-content:center;align-items:center;padding:2px 8px;font-size:.72rem;font-weight:800;line-height:1;animation:3s infinite shimmerGradient,2.2s ease-in-out infinite versionGlowPulse;display:inline-flex;color:#fff!important}.app-footer{text-align:center;color:hsl(var(--text-muted));border-top:1px solid hsl(var(--border));margin-top:40px;padding:20px 24px;font-size:.875rem;font-weight:500}html{scroll-behavior:smooth}::selection{background:hsl(var(--primary) / .18)}.form-control:hover:not(:disabled):not(:focus){border-color:hsl(var(--primary) / .4)}.form-control:disabled{background:hsl(var(--bg-popover));color:hsl(var(--text-muted));cursor:not-allowed;border-style:dashed}.btn:disabled,.btn[disabled]{opacity:.55;cursor:not-allowed;filter:saturate(.7)}.btn:disabled:hover,.btn[disabled]:hover{box-shadow:none;transform:none}.btn-primary:disabled:hover,.btn-primary[disabled]:hover{background:hsl(var(--primary))}.skeleton{background:linear-gradient(90deg, hsl(var(--border) / .45) 25%, hsl(var(--border) / .85) 37%, hsl(var(--border) / .45) 63%);background-size:400% 100%;border-radius:8px;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.spinner{border:2.5px solid hsl(var(--border));border-top-color:hsl(var(--primary));border-radius:50%;flex-shrink:0;width:1.5rem;height:1.5rem;animation:.75s linear infinite spinner-rotate}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.loading-state{text-align:center;color:hsl(var(--text-muted));flex-direction:column;align-items:center;gap:12px;padding:40px 20px;font-size:.9rem;display:flex}.loading-state-detail{opacity:.85;max-width:460px;font-size:.82rem}.form-skeleton-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px 24px;display:grid}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:44px 24px;display:flex}.empty-state-icon{width:56px;height:56px;color:hsl(var(--primary));background:hsl(var(--primary) / .1);border-radius:16px;justify-content:center;align-items:center;display:flex}.empty-state-title{color:var(--color-slate-800);font-size:1.05rem}.empty-state-text{max-width:420px;color:var(--color-slate-500);font-size:.9rem;line-height:1.5}.empty-state .btn{margin-top:6px}@media (width<=640px){.fpi-step-circle{border-width:2px!important;width:34px!important;height:34px!important;font-size:.95rem!important}.fpi-stepper-line{top:17px!important}.fpi-stepper{margin-left:-10px!important;margin-right:-10px!important}.fpi-step{padding:0 1px!important}.fpi-step-label{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;max-width:100%!important;margin-top:6px!important;font-size:.56rem!important}.fpi-step-sub{display:none!important}.fpi-step-badge{white-space:nowrap;padding:1px 3px!important;font-size:.5rem!important}}@media (width<=768px){.table-container:has(>table.table-stack){background:0 0;border:none;overflow:visible}table.table-stack,table.table-stack tbody,table.table-stack tr,table.table-stack td{width:100%;display:block}table.table-stack{overflow:visible}table.table-stack thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}table.table-stack tr{background:hsl(var(--bg-card));border:1px solid hsl(var(--border));border-radius:var(--radius);margin-bottom:12px;padding:6px 14px;box-shadow:0 1px 2px #0f172a0a}table.table-stack td{text-align:right;overflow-wrap:anywhere;border-bottom:1px dashed hsl(var(--border));flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:16px;padding:8px 0;display:flex}table.table-stack td:last-child{border-bottom:none}table.table-stack td:before{content:attr(data-label);text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--color-slate-500);flex:0 0 38%;margin-right:auto;font-size:.68rem;font-weight:700}table.table-stack td:empty{display:none}table.table-stack td[colspan]{text-align:left;display:block}table.table-stack td[colspan]:before{display:none}table.table-stack tr:hover td{background:0 0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{@page{size:A4 portrait;margin:15mm 12mm}html,body{color:#000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#fff!important;margin:0!important;padding:0!important;font-family:Arial,Helvetica Neue,Helvetica,sans-serif!important;font-size:10pt!important;line-height:1.3!important}header,nav,aside,.sidebar,.navbar,.btn,button,.no-print,.badge{display:none!important}.category-total-badge{background-color:var(--color-sky-100)!important;color:var(--color-sky-700)!important;border:1px solid var(--color-sky-300)!important;border-radius:4px!important;padding:2px 8px!important;font-size:8pt!important;font-weight:800!important;display:inline-block!important}.fpi-print-backdrop{background:0 0!important;padding:0!important;display:block!important;position:static!important}.fpi-print-document{width:100%!important;max-width:100%!important;height:auto!important;max-height:none!important;box-shadow:none!important;background:#fff!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important;position:static!important;overflow:visible!important}.main-content{margin-left:0!important;padding:0!important}.card{box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.table-container{width:100%!important;max-width:100%!important;overflow:visible!important}table,.table-container table{page-break-inside:auto;table-layout:fixed!important;white-space:normal!important;border-collapse:collapse!important;width:100%!important;max-width:100%!important;margin-bottom:12px!important;display:table!important;overflow:visible!important}tr{page-break-inside:avoid!important;break-inside:avoid!important}thead{display:table-header-group!important}th,td{word-wrap:break-word!important;word-break:break-word!important;overflow-wrap:break-word!important;white-space:normal!important}th{background-color:var(--color-slate-100)!important;color:var(--color-slate-900)!important;border:1px solid var(--color-slate-800)!important;text-align:left!important;padding:5px 6px!important;font-size:8.5pt!important;font-weight:700!important}td{border:1px solid var(--color-slate-700)!important;color:var(--color-slate-900)!important;vertical-align:top!important;padding:5px 6px!important;font-size:8.5pt!important}.signature-block{page-break-inside:avoid!important;break-inside:avoid!important;margin-top:40px!important}}@media (width<=1024px){.sidebar{width:250px}.main-content{margin-left:250px;padding:24px 20px}}@media (width<=768px){.dashboard-layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid hsl(var(--border));width:100%;height:auto;max-height:400px;position:relative;overflow-y:auto}.main-content{margin-left:0!important;padding:16px 12px!important}.card{border-radius:10px!important;padding:16px!important}table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}th,td{padding:10px 6px;font-size:.8rem}th{letter-spacing:0;font-size:.64rem}table .btn,table button{white-space:nowrap}.btn{padding:10px 14px;font-size:.88rem}header{flex-direction:column;gap:14px;align-items:flex-start!important}}@keyframes alertSlideIn{0%{opacity:0;transform:translateY(-20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes alertProgressBar{0%{width:100%}to{width:0%}}.modal-panel-enter{opacity:0;transform:scale(.96)translateY(10px)}.modal-panel-enter-active{opacity:1;transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1);transform:scale(1)translateY(0)}.modal-backdrop-enter{opacity:0}.modal-backdrop-enter-active{opacity:1;transition:opacity .2s ease-out}@media screen{.modal-backdrop{-webkit-backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important;background:#0f172a9e!important}}@media (width<=600px){.alert-box-container{width:auto!important;max-width:none!important;top:14px!important;left:14px!important;right:14px!important}}@page{size:A4 portrait;margin:10mm 12mm 12mm}@media print{html,body{color:#000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#fff!important;width:100%!important;min-width:100%!important;max-width:100%!important;height:auto!important;margin:0!important;padding:0!important}.no-print,nav,header,aside,.sidebar,.navbar,.portal-banner,footer,.footer,.pwa-banner,.pwa-prompt{visibility:hidden!important;display:none!important}.dashboard-layout,.app-layout{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;display:block!important}.main-content{width:100%!important;min-width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}.cv-generator-page,.cv-grid-container,.container{width:100%!important;min-width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;display:block!important}.cv-canvas-root,.report-print-area{width:100%!important;min-width:100%!important;max-width:100%!important;box-shadow:none!important;background:#fff!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important;display:block!important}table{page-break-inside:auto;width:100%!important}tr{page-break-inside:avoid;page-break-after:auto}thead{display:table-header-group}tfoot{display:table-footer-group}}
