.histolab-login{--login-ink: #10283d;--login-muted: #486175;--login-accent: #086763;min-height:100vh;min-height:100svh;display:grid;align-items:center;padding:clamp(.75rem,4vw,2.5rem);background:var(--bg-app);color:var(--login-ink)}.histolab-login__layout{display:grid;gap:.75rem;width:min(100%,30rem);margin-inline:auto}.histolab-login__brand,.histolab-login__card{padding:clamp(1rem,4vw,1.75rem);border-radius:1.25rem;min-width:0}.histolab-login__brand{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(145deg,#102b42 10%,#153751 57%,#12534f);border:1px solid #315d66;color:#f6fffd}.histolab-login__specimen{position:absolute;z-index:-1;inset:auto -4.5rem -5.5rem auto;width:clamp(12rem,30vw,21rem);aspect-ratio:1;border:1px solid #82e7cb50;border-radius:50%;background:radial-gradient(circle at 35% 33%,#88e1ca38,transparent 47%),repeating-radial-gradient(circle at center,transparent 0 18px,#a7f3db22 19px 20px);box-shadow:0 0 0 .5rem #a7f3db12,0 0 0 1rem #a7f3db0b}.histolab-login__specimen span{position:absolute;width:30%;aspect-ratio:1.25;border:1px solid #a1ead461;border-radius:55% 45% 62% 38%;background:radial-gradient(ellipse,#b8e7b655 0 16%,#7cddbc25 19% 47%,transparent 70%)}.histolab-login__specimen span:nth-child(1){top:20%;left:18%;rotate:-35deg}.histolab-login__specimen span:nth-child(2){top:40%;left:52%;rotate:32deg}.histolab-login__specimen span:nth-child(3){top:62%;left:23%;rotate:12deg}.histolab-login__identity{display:flex;align-items:center;gap:.75rem}.histolab-login__identity img{flex:none;width:2.5rem;height:2.5rem;object-fit:contain;background:#fff;border:1px solid #d6e8e3;border-radius:.85rem;padding:.3rem}.histolab-login__eyebrow{color:#d0e9e6;font-size:.75rem;font-weight:700;letter-spacing:.035em;margin:0}.histolab-login h1,.histolab-login h2{margin:0;line-height:1.15}.histolab-login h1{color:inherit;margin-top:.7rem;font-size:clamp(1.8rem,6.8vw,4rem);letter-spacing:-.055em}.histolab-login h1 span{color:#b4e6d6;font-weight:500}.histolab-login__brand h1:after{content:"";display:block;width:2.25rem;height:2px;margin-top:.65rem;border-radius:1rem;background:linear-gradient(90deg,#8ce0c6,#8ce0c64d)}.histolab-login h2{font-size:1.45rem}.histolab-login__badge{display:inline-flex;align-items:center;gap:.4rem;margin:.75rem 0 0;padding:.3rem .65rem;border-radius:1rem;border:1px solid #91e7cf78;background:#173c4a;color:#dbf9ef;font-size:.75rem;font-weight:750}.histolab-login__badge:before{content:"";width:.35rem;height:.35rem;border-radius:50%;background:#a0ebd3}.histolab-login__card{background:#fff;border:1px solid #d8e5e7;box-shadow:0 6px 20px #10283d0d}.histolab-login__hint{margin:.3rem 0 .85rem;color:var(--login-muted);font-size:.9rem}.histolab-login__profiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem;padding:.25rem;border-radius:.85rem;background:#edf3f5;margin-bottom:.9rem}.histolab-login button{cursor:pointer;font:inherit;min-height:44px}.histolab-login button:disabled{cursor:wait;opacity:.7}.histolab-login__profiles button,.histolab-login__password button,.histolab-login__submit{display:flex;align-items:center;justify-content:center;gap:.4rem;border:0;border-radius:.65rem}.histolab-login__profiles button{color:var(--login-muted);background:transparent;padding:.25rem;font-size:.85rem;font-weight:700}.histolab-login__profiles button[aria-pressed=true]{background:#fff;color:var(--login-accent);box-shadow:0 1px 3px #10283d24}.histolab-login form{display:grid;gap:.75rem}.histolab-login__field{display:grid;gap:.3rem;min-width:0;font-size:.875rem;font-weight:650}.histolab-login__field input,.histolab-login__field select{width:100%;min-width:0;min-height:46px;padding:.55rem .7rem;border:1px solid #8da7b5;border-radius:.65rem;background:#fff;color:var(--login-ink);font:inherit;font-size:1rem;font-weight:450}.histolab-login__password{position:relative}.histolab-login__password input{padding-inline-end:3rem}.histolab-login__password button{position:absolute;inset:1px 1px 1px auto;width:44px;background:transparent;color:var(--login-muted)}.histolab-login__remember{display:flex;align-items:center;min-height:44px;gap:.55rem;color:var(--login-muted);font-size:.875rem;cursor:pointer}.histolab-login__remember input{width:1.1rem;height:1.1rem;margin:0;accent-color:var(--login-accent)}.histolab-login .histolab-login__submit{min-height:48px;padding:.5rem 1rem;background:var(--login-accent);color:#fff;font-weight:750}.histolab-login :focus-visible{outline:2px solid #007c78;outline-offset:2px}.histolab-login__error{display:flex;align-items:flex-start;gap:.5rem;margin:0;padding:.65rem;border-radius:.6rem;background:#fff1f2;color:#9f1239;font-size:.875rem;overflow-wrap:anywhere}.histolab-login svg{flex-shrink:0}.histolab-login__footer{color:var(--login-muted);text-align:center;font-size:.75rem}@media(min-width:720px){.histolab-login__layout{width:min(100%,58rem);grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:1rem}.histolab-login__brand{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.histolab-login h1{margin-top:1.5rem}.histolab-login h1 span{display:block;font-size:.58em;letter-spacing:-.025em}.histolab-login__specimen{bottom:-7rem}.histolab-login__footer{grid-column:1 / -1}}:root{--font-main: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", monospace;--bg-app: #EEEEEE;--bg-surface: #ffffff;--bg-surface-elevated: #f1f5f9;--bg-card: #ffffff;--bg-card-hover: #f8fafc;--border-subtle: #e2e8f0;--border-focus: #0284c7;--border-card: #e2e8f0;--primary: #075985;--primary-light: #0369a1;--primary-glow: rgba(7, 89, 133, .15);--primary-gradient: linear-gradient(135deg, #075985 0%, #0c4a6e 100%);--accent-gradient: linear-gradient(135deg, #075985 0%, #0369a1 100%);--text-main: #0f172a;--text-muted: #475569;--text-dim: #64748b;--success: #10b981;--success-bg: rgba(16, 185, 129, .12);--warning: #f59e0b;--warning-bg: rgba(245, 158, 11, .12);--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .12);--info: #0284c7;--info-bg: rgba(2, 132, 199, .12);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05), 0 1px 2px rgba(0, 0, 0, .03);--shadow-md: 0 4px 20px -2px rgba(0, 0, 0, .06), 0 2px 6px -1px rgba(0, 0, 0, .03);--shadow-lg: 0 20px 35px -10px rgba(0, 0, 0, .08), 0 0 25px rgba(2, 132, 199, .05);--transition-fast: .15s ease;--transition-normal: .25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{overflow-x:hidden;max-width:100vw;width:100%}body{font-family:var(--font-main);background-color:var(--bg-app);color:var(--text-main);line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden;max-width:100vw;width:100%}.main-content{flex:1;max-width:1380px;margin:0 auto;padding:1.75rem 1.25rem 4rem;width:100%}.glass-panel{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:all var(--transition-normal)}.glass-panel:hover{border-color:#cbd5e1;box-shadow:var(--shadow-lg)}h1,h2,h3,h4,h5{font-weight:700;letter-spacing:-.02em;color:var(--text-main)}.text-gradient{background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline-block}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-main);font-size:.9rem;font-weight:600;padding:.6rem 1.15rem;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);border:1px solid transparent;text-decoration:none;outline:none;-webkit-user-select:none;user-select:none;min-height:40px}.btn-primary{background:var(--primary-gradient);color:#fff;box-shadow:0 4px 12px #0284c740}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0284c759;filter:brightness(1.04)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:#fff;color:var(--text-main);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:var(--bg-surface-elevated);border-color:#cbd5e1;color:var(--text-main)}.btn-danger{background:var(--danger-bg);color:#dc2626;border:1px solid rgba(239,68,68,.25)}.btn-danger:hover{background:#dc2626;color:#fff}.btn-icon{padding:.5rem;min-width:38px;min-height:38px;border-radius:var(--radius-sm)}.form-group{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.1rem}.form-label{font-size:.825rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.form-control,.form-select,.form-textarea{font-family:var(--font-main);width:100%;padding:.75rem 1rem;background:#fff;border:1px solid #cbd5e1;border-radius:var(--radius-md);color:var(--text-main);font-size:.925rem;transition:all var(--transition-fast);outline:none;box-shadow:0 1px 2px #00000008}.form-control:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);background:#fff}.form-select{cursor:pointer}.form-select option{background-color:#fff;color:var(--text-main)}.form-textarea{resize:vertical;min-height:90px}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .7rem;border-radius:9999px;font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.badge-dot{width:6px;height:6px;border-radius:50%}.badge-success{background:var(--success-bg);color:#047857;border:1px solid rgba(16,185,129,.3)}.badge-success .badge-dot{background:#10b981}.badge-warning{background:var(--warning-bg);color:#b45309;border:1px solid rgba(245,158,11,.3)}.badge-warning .badge-dot{background:#f59e0b}.badge-danger{background:var(--danger-bg);color:#b91c1c;border:1px solid rgba(239,68,68,.3)}.badge-danger .badge-dot{background:#ef4444}.badge-info{background:var(--info-bg);color:#0369a1;border:1px solid rgba(2,132,199,.3)}.badge-info .badge-dot{background:#0284c7}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn .25s cubic-bezier(.16,1,.3,1) forwards}.animate-spin{animation:spin .85s linear infinite}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:999;padding:1rem}.modal-content{background:#fff;border:1px solid var(--border-card);border-radius:var(--radius-xl);max-width:650px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px -12px #0000002e;position:relative;color:var(--text-main)}@media(max-width:768px){.main-content{padding:1.25rem .85rem 3.5rem}h1{font-size:1.65rem!important}.stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:.85rem!important}.btn{padding:.55rem .95rem;font-size:.85rem}.filter-container{flex-direction:column;align-items:stretch!important}.filter-selectors{width:100%;justify-content:space-between}.modal-overlay{padding:.5rem}.modal-content{max-height:94vh;border-radius:var(--radius-lg)}}.navbar-brand-full{display:inline}.navbar-brand-short{display:none}@media(max-width:640px){.navbar-container{padding:.45rem .65rem!important;gap:.45rem!important;width:100%!important;box-sizing:border-box!important}.navbar-brand-group{gap:.45rem!important;min-width:0!important;flex-shrink:1!important}.navbar-logo-box{width:32px!important;height:32px!important;border-radius:var(--radius-sm)!important}.navbar-brand-full{display:none!important}.navbar-brand-short{display:inline!important}.navbar-logo-title{font-size:1.05rem!important;letter-spacing:-.02em!important;white-space:nowrap!important}.navbar-actions{gap:.35rem!important;flex-shrink:0!important}.navbar-user-chip{padding:.2rem .45rem .2rem .25rem!important;gap:.3rem!important;max-width:115px!important;flex-shrink:1!important;min-width:0!important}.navbar-user-avatar{width:26px!important;height:26px!important;font-size:.72rem!important}.navbar-user-name{font-size:.74rem!important;max-width:65px!important}.navbar-subinfo-badge,.navbar-logout-text{display:none!important}.navbar-logout-btn{padding:.4rem .55rem!important;min-height:32px!important;min-width:32px!important;height:32px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:var(--radius-sm)!important;flex-shrink:0!important}}@media(max-width:480px){.main-content{padding:.5rem .45rem 2.5rem!important}.stats-grid{grid-template-columns:1fr!important}.login-card-container{padding:.75rem!important}}@media(max-width:420px){.navbar-container{padding:.4rem .5rem!important;gap:.3rem!important}.navbar-logo-box{width:28px!important;height:28px!important}.navbar-logo-title{font-size:.95rem!important}.navbar-user-chip{padding:0!important;background:transparent!important;border:none!important;max-width:none!important}.navbar-user-details{display:none!important}.navbar-user-avatar{width:28px!important;height:28px!important;box-shadow:0 1px 3px #0000001f!important}.navbar-logout-btn{min-width:30px!important;height:30px!important;padding:0 .45rem!important}}.navbar-admin-slot:empty{display:none}.portal-skeleton{max-width:76rem;margin-inline:auto}.portal-skeleton__status{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.portal-skeleton__layout,.portal-skeleton__cards{display:grid;gap:.85rem}.portal-skeleton__hero,.portal-skeleton__card{padding:clamp(1rem,3vw,1.5rem);border:1px solid #cadde8;border-radius:1rem}.portal-skeleton__hero{display:flex;align-items:center;gap:.85rem;min-height:8.5rem;background:linear-gradient(115deg,#eaf6fa,#f8fbfd)}.portal-skeleton__card{min-height:6.75rem;background:#fff}.portal-skeleton__avatar,.portal-skeleton__lines span{display:block;border-radius:.45rem;background:#cddfe9}.portal-skeleton__avatar{width:44px;height:44px;flex:none;border-radius:.75rem}.portal-skeleton__lines{display:grid;gap:.65rem;min-width:0}.portal-skeleton__hero .portal-skeleton__lines{flex:1;max-width:30rem}.portal-skeleton__lines span{width:86%;height:.65rem}.portal-skeleton__lines .portal-skeleton__short{width:32%}.portal-skeleton__lines .portal-skeleton__title{width:64%;height:1.05rem}@media(min-width:36rem){.portal-skeleton__cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:58rem){.portal-skeleton__cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(prefers-reduced-motion:no-preference){.portal-skeleton__layout{animation:portal-skeleton-pulse 1.5s ease-in-out infinite alternate}}@keyframes portal-skeleton-pulse{0%{opacity:1}to{opacity:.68}}.app-container--student{--student-content-width: 1200px;--student-page-gutter: 1.25rem}.navbar-container.navbar-container--student{max-width:var(--student-content-width, 1200px)!important;width:calc(100% - 2 * var(--student-page-gutter, 1.25rem))!important;padding-inline:0!important}@media(max-width:768px){.app-container--student{--student-page-gutter: .85rem}}@media(max-width:480px){.app-container--student{--student-page-gutter: .45rem}}
