:root{--color-bg:#fff;--color-bg-elevated:#f6f7fb;--color-surface:#fff;--color-surface-hover:#f9faff;--color-text:#12162b;--color-text-muted:#5b6178;--color-border:#e6e8f2;--color-primary:#4f46e5;--color-primary-dark:#4338ca;--color-accent:#0891b2;--gradient-brand:linear-gradient(90deg,#4f46e5,#9333ea 50%,#0891b2);--shadow-sm:0 1px 2px rgba(16,24,40,.05);--shadow-md:0 4px 16px rgba(16,24,40,.07);--shadow-lg:0 20px 45px rgba(16,24,40,.14);--radius:14px;--radius-sm:8px;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--font-serif:Georgia,"Times New Roman",serif;--danger:#dc2626;--success:#059669}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);line-height:1.6;overflow-x:hidden}a{color:var(--color-primary);text-decoration:none}h1,h2,h3{font-family:var(--font-serif);line-height:1.25}.eyebrow{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);background:rgba(8,145,178,.08);border:1px solid rgba(8,145,178,.2);border-radius:999px;padding:.3rem .8rem;margin-bottom:.75rem}.button,.eyebrow{display:inline-flex;align-items:center;gap:.4rem}.button{background:var(--gradient-brand);color:#fff;padding:.75rem 1.5rem;border-radius:var(--radius-sm);font-weight:600;border:none;cursor:pointer;font-size:.95rem}.button.secondary{color:var(--color-text);border:1px solid var(--color-border)}.badge,.button.secondary{background:var(--color-bg-elevated)}.badge{display:inline-flex;align-items:center;padding:.25rem .65rem;border-radius:999px;font-size:.75rem;font-weight:600;color:var(--color-text-muted);border:1px solid var(--color-border)}.badge.ongoing,.badge.published{background:rgba(5,150,105,.1);color:var(--success);border-color:rgba(5,150,105,.25)}.badge.draft,.badge.upcoming{background:rgba(79,70,229,.08);color:var(--color-primary);border-color:rgba(79,70,229,.2)}.badge.completed{background:var(--color-bg-elevated);color:var(--color-text-muted)}.badge.pending{background:rgba(220,38,38,.08);color:var(--danger);border-color:rgba(220,38,38,.22)}.survey-options{display:flex;flex-wrap:wrap;gap:.5rem}.survey-option-pill{display:inline-block;padding:.3rem .8rem;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg);font-size:.85rem;color:var(--color-text-muted)}.survey-option-pill.selected{background:#d1fae5;border-color:#065f46;color:#065f46;font-weight:700}.tech-pill{display:inline-block;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:999px;padding:.3rem .85rem;font-family:var(--font-mono);font-size:.82rem;color:var(--color-text-muted)}.form-field{margin-bottom:1.1rem}.form-field label{display:block;font-weight:600;font-size:.88rem;margin-bottom:.4rem}.form-field input,.form-field textarea{width:100%;padding:.65rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);font-size:.95rem;font-family:inherit;resize:vertical}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(79,70,229,.12)}.char-counter{display:block;margin-top:.3rem;font-size:.78rem;color:var(--color-text-muted);text-align:right}.password-input-wrap{position:relative;display:block}.password-input-wrap input{display:block;width:100%;padding-right:2.6rem}.password-toggle{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);background:none;border:none;padding:.25rem;display:flex;align-items:center;color:var(--color-text-muted);cursor:pointer}.password-toggle:hover{color:var(--color-text)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm)}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}@media (max-width:860px){.login-shell{grid-template-columns:1fr}}.login-visual{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:2rem;padding:clamp(2rem,5vw,4rem);background:#0d1128;color:#fff}@media (max-width:860px){.login-visual{display:none}}.login-visual:before{inset:-25%;background:radial-gradient(circle at 18% 22%,rgba(37,99,235,.55),transparent 42%),radial-gradient(circle at 82% 12%,rgba(5,150,105,.45),transparent 42%),radial-gradient(circle at 55% 92%,rgba(8,145,178,.4),transparent 45%);filter:blur(70px)}.login-visual:after,.login-visual:before{content:"";position:absolute;pointer-events:none}.login-visual:after{inset:0;background-image:linear-gradient(hsla(0,0%,100%,.055) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.055) 1px,transparent 0);background-size:44px 44px;mask-image:radial-gradient(circle at 30% 35%,#000 0,transparent 72%);-webkit-mask-image:radial-gradient(circle at 30% 35%,#000 0,transparent 72%)}.login-visual-content{position:relative;z-index:1}.login-visual-brand{display:flex;align-items:center;gap:.5rem;font-weight:800;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;color:#fff}.login-visual-badge{display:inline-block;margin-top:1rem;padding:.28rem .75rem;border-radius:999px;border:1px solid hsla(0,0%,100%,.18);background:hsla(0,0%,100%,.06);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:hsla(0,0%,100%,.85)}.login-visual-title{margin:1.5rem 0 1rem;max-width:30rem;font-size:clamp(1.7rem,2.6vw,2.4rem);font-weight:800;line-height:1.18}.login-visual-subtitle{max-width:27rem;color:hsla(0,0%,100%,.68);line-height:1.65}.login-visual-points{list-style:none;margin:2.25rem 0 0;padding:0;display:flex;flex-direction:column;gap:.85rem;max-width:27rem}.login-visual-points li{display:flex;align-items:flex-start;gap:.65rem;color:hsla(0,0%,100%,.82);font-size:.92rem;line-height:1.5}.login-visual-points li:before{content:"\2713";flex-shrink:0;width:1.15rem;height:1.15rem;display:flex;align-items:center;justify-content:center;border-radius:999px;background:linear-gradient(135deg,#2563eb,#059669 55%,#0891b2);color:#0d1128;font-size:.68rem;font-weight:800;margin-top:.1rem}.login-visual-footer{position:relative;z-index:1;font-size:.78rem;color:hsla(0,0%,100%,.4)}.login-form-panel{position:relative;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--color-bg)}.login-form-panel .login-locale-switcher{position:absolute;top:1.5rem;right:1.5rem;margin:0}.login-wrap{width:100%;max-width:380px;text-align:center}.login-locale-switcher{display:flex;justify-content:center;margin-bottom:1.5rem}.login-logo{display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:2rem}.login-logo-text{background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.login-tagline{color:var(--color-text-muted);margin:.4rem 0 2rem}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:1.75rem;text-align:left}.login-error{color:var(--danger);font-size:.88rem;margin:-.5rem 0 1rem}.locale-switcher{display:inline-flex;border:1px solid var(--color-border);border-radius:999px;padding:.15rem;gap:.15rem}.locale-switcher-option{background:none;border:none;padding:.3rem .7rem;border-radius:999px;font-size:.78rem;font-weight:700;color:var(--color-text-muted);cursor:pointer}.locale-switcher-option.active{background:var(--gradient-brand);color:#fff}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:#f3f6fb;isolation:isolate}.app-shell:before{background:radial-gradient(ellipse 60% 50% at 12% 8%,rgba(37,99,235,.1),transparent 70%),radial-gradient(ellipse 50% 45% at 92% 18%,rgba(5,150,105,.08),transparent 70%),radial-gradient(ellipse 65% 55% at 55% 105%,rgba(8,145,178,.08),transparent 70%)}.app-shell:after,.app-shell:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none}.app-shell:after{background-image:linear-gradient(rgba(37,99,235,.05) 1px,transparent 0),linear-gradient(90deg,rgba(37,99,235,.05) 1px,transparent 0);background-size:44px 44px;mask-image:radial-gradient(circle at 15% 10%,#000 0,transparent 45%);-webkit-mask-image:radial-gradient(circle at 15% 10%,#000 0,transparent 45%)}.app-header{background:var(--color-surface);position:-webkit-sticky;position:sticky;top:0;z-index:50}.app-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gradient-brand);opacity:.55}.app-header-inner{max-width:72rem;margin:0 auto;padding:.9rem 1.5rem;gap:1.75rem}.app-brand,.app-header-inner{display:flex;align-items:center}.app-brand{gap:.5rem;flex-shrink:0;margin-right:3.5rem}.app-brand-text{display:flex;flex-direction:column;line-height:1.1}.app-brand-name{font-weight:800;font-size:1.05rem;background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.app-brand-sub{font-size:.68rem;color:var(--color-text-muted);letter-spacing:.04em}.app-nav-row{flex:1 1;min-width:0}.app-header-top-right{position:relative;gap:1rem;flex-shrink:0}.app-header-top-right,.app-nav{display:flex;align-items:center}.app-nav{gap:.15rem;flex-wrap:nowrap}.app-nav-link{position:relative;padding:.5rem .85rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:600;color:var(--color-text-muted);white-space:nowrap;transition:background .18s ease,color .18s ease}.app-nav-link:after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:.15rem;height:2px;border-radius:2px;background:var(--gradient-brand);transform:scaleX(0);transform-origin:center;transition:transform .2s ease}.app-nav-link:hover{background:var(--color-bg-elevated);color:var(--color-text)}.app-nav-link.active{background:rgba(79,70,229,.1);color:var(--color-primary)}.app-nav-link.active:after{transform:scaleX(1)}.app-nav-dropdown{position:relative}.app-nav-dropdown-trigger{display:inline-flex;align-items:center;gap:.3rem;background:none;border:none;font:inherit;cursor:pointer;transition:background .18s ease,color .18s ease}.app-nav-dropdown-trigger svg{transition:transform .2s ease}.app-nav-dropdown-trigger svg.flipped{transform:rotate(180deg)}.app-nav-dropdown-menu{position:absolute;top:calc(100% + .4rem);left:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);min-width:12rem;max-width:calc(100vw - 2rem);padding:.4rem;z-index:60;animation:nav-dropdown-in .16s ease;transform-origin:top center}@keyframes nav-dropdown-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.app-nav-dropdown-menu a{display:block;padding:.55rem .7rem;border-radius:6px;font-size:.88rem;font-weight:600;color:var(--color-text);transition:background .15s ease,padding-left .15s ease}.app-nav-dropdown-menu a:hover{background:var(--color-bg-elevated);padding-left:.9rem}.app-nav-dropdown-menu a.active{color:var(--color-primary);background:rgba(79,70,229,.08)}.app-greeting{font-size:.88rem;white-space:nowrap}.app-greeting,.logout-button{font-weight:600;color:var(--color-text-muted)}.logout-button{background:none;border:none;cursor:pointer;font-size:.85rem}.logout-button:hover{color:var(--danger)}.mobile-menu-toggle{display:none;background:none;border:none;color:var(--color-text);cursor:pointer;padding:.4rem;border-radius:var(--radius-sm);transition:background .15s ease}.mobile-menu-toggle:hover{background:var(--color-bg-elevated)}.app-main{flex:1 1;max-width:72rem;width:100%;margin:0 auto;padding:2rem 1.5rem 4rem}.mobile-nav-backdrop,.mobile-nav-drawer{display:none}@media (max-width:900px){.app-header-inner{padding:.75rem 1.25rem}.app-brand{margin-right:0}.mobile-menu-toggle{display:flex}.app-nav-row{display:none}.app-header-top-right{gap:.6rem;margin-left:auto}.mobile-nav-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:90;opacity:0;pointer-events:none;transition:opacity .25s ease}.mobile-nav-backdrop.open{opacity:1;pointer-events:auto}.mobile-nav-drawer{display:flex;flex-direction:column;position:fixed;top:0;right:0;bottom:0;width:min(85vw,360px);background:var(--color-surface);box-shadow:var(--shadow-lg);z-index:91;padding:1.1rem 1.25rem 2rem;overflow-y:auto;transform:translateX(100%);transition:transform .28s ease}.mobile-nav-drawer.open{transform:translateX(0)}.mobile-nav-drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.9rem;margin-bottom:.4rem;border-bottom:1px solid var(--color-border)}.mobile-nav-drawer-brand{font-weight:800;font-size:1.1rem;background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.mobile-nav-close{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;border:none;background:var(--color-bg-elevated);color:var(--color-text);cursor:pointer}.mobile-nav-drawer .app-nav{flex-direction:column;align-items:stretch;gap:0}.mobile-nav-drawer .app-nav-link{width:100%;padding:.9rem .15rem;border-bottom:1px solid var(--color-border);border-radius:0}.mobile-nav-drawer .app-nav-link:after{display:none}.mobile-nav-drawer .app-nav-dropdown{border-bottom:1px solid var(--color-border)}.mobile-nav-drawer .app-nav-dropdown-trigger{width:100%;justify-content:space-between;padding:.9rem .15rem}.mobile-nav-drawer .app-nav-dropdown-menu{position:static;box-shadow:none;border:none;padding:0 0 .6rem .75rem;margin-top:0;animation:none}}@media (max-width:480px){.app-greeting{display:none}}@media (max-width:640px){.app-header-inner{padding:.7rem 1rem}.app-main{padding:1.5rem 1rem 3rem}}.dashboard-hero{text-align:center;padding:2rem 0 1rem}.dashboard-hero h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:.4rem 0}.dashboard-subtitle{color:var(--color-text-muted);font-size:1.05rem;max-width:34rem;margin:0 auto}.dashboard-stats{display:grid;grid-gap:1.25rem;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));margin:2rem 0}.stat-card{background:linear-gradient(165deg,rgba(79,70,229,.06),var(--color-surface) 55%);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.75rem;text-align:center;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.stat-number{display:block;font-family:var(--font-serif);font-size:2.6rem;font-weight:700;background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.stat-label{color:var(--color-text);font-weight:600}.stat-hint,.stat-label{display:block;margin-top:.3rem}.stat-hint{color:var(--color-text-muted);font-size:.8rem}.stat-hint-warning{color:var(--danger);font-weight:700}.coach-summary-widget{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.1rem 1.5rem;box-shadow:var(--shadow-sm);color:var(--color-text)}.coach-summary-widget:hover{border-color:var(--color-primary);color:var(--color-text)}.coach-summary-label{font-weight:700}.coach-summary-chips{display:flex;gap:.5rem;flex-wrap:wrap}.coach-chip{display:inline-block;padding:.3rem .8rem;border-radius:999px;font-size:.82rem;font-weight:600}.coach-chip.done{background:rgba(5,150,105,.1);color:var(--success,#059669)}.coach-chip.pending{background:rgba(79,70,229,.08);color:var(--color-primary)}.dashboard-empty{text-align:center;color:var(--color-text-muted);padding:2rem}.course-grid{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.5rem}.course-card{background:linear-gradient(165deg,rgba(79,70,229,.06),var(--color-surface) 55%);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.course-card:hover{border-color:rgba(79,70,229,.4);box-shadow:var(--shadow-md);transform:translateY(-3px)}.course-card h3{margin:0;font-size:1.15rem}.course-card p{margin:.25rem 0;font-size:.88rem;color:var(--color-text-muted)}.course-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.course-card-top-right{display:flex;align-items:center;gap:.85rem;flex-shrink:0}.course-card-progress{display:flex;align-items:center;gap:.5rem;min-width:8rem}.course-card-progress .progress-bar{width:6rem}.course-card-progress-value{font-size:.78rem;font-weight:700;color:var(--color-text-muted);white-space:nowrap}.progress-bar{height:6px;border-radius:999px;background:var(--color-bg-elevated,rgba(0,0,0,.06));overflow:hidden}.progress-bar-fill{height:100%;background:var(--gradient-brand);border-radius:999px;transition:width .2s ease}.course-card-meta-row{font-size:.88rem;margin-top:.5rem}.course-card-meta-row,.course-card-task-counts{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;color:var(--color-text-muted)}.course-card-task-counts{font-size:.82rem;margin-top:.4rem}.course-status-pill{display:inline-flex;align-items:center;padding:.3rem .75rem;border-radius:999px;font-size:.78rem;font-weight:700}.course-status-pill.ongoing{background:rgba(5,150,105,.1);color:var(--success)}.course-status-pill.upcoming{background:rgba(79,70,229,.08);color:var(--color-primary)}.course-status-pill.completed{background:rgba(71,85,105,.12);color:#475569}.course-card-note{margin-top:.6rem;font-style:italic}.diploma-page{max-width:50rem;margin:0 auto}.diploma{position:relative;margin-bottom:1.5rem;padding:1.6rem 1.6rem 1.85rem;background:radial-gradient(circle at 12% 12%,rgba(79,70,229,.07),transparent 45%),radial-gradient(circle at 88% 88%,rgba(8,145,178,.07),transparent 45%),var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);text-align:center}.diploma:before{content:"";position:absolute;inset:.85rem;border:1px solid rgba(79,70,229,.22);border-radius:calc(var(--radius) - 4px);pointer-events:none}.diploma-seal{width:52px;height:52px;margin:0 auto .9rem;border-radius:999px;display:flex;align-items:center;justify-content:center;background:var(--gradient-brand);color:#fff;box-shadow:var(--shadow-md)}.diploma-kicker{font-family:var(--font-serif);text-transform:uppercase;letter-spacing:.25em;font-size:.72rem;color:var(--color-text-muted);margin-bottom:.5rem}.diploma-heading{font-family:var(--font-serif);font-size:clamp(1.3rem,3vw,1.8rem);font-weight:700;margin:0 0 1.5rem;background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.diploma-label{font-size:.8rem;color:var(--color-text-muted);margin-bottom:.3rem}.diploma-name{font-family:var(--font-serif);font-size:clamp(1.4rem,3.2vw,1.9rem);font-weight:600;margin:0 0 1.4rem;padding-bottom:.6rem;border-bottom:2px solid rgba(79,70,229,.25);display:inline-block}.diploma-dates{color:var(--color-text-muted);font-size:.88rem;margin-bottom:1.5rem}.diploma-footer{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-top:1.75rem;text-align:left}.diploma-footer:has(>.diploma-footer-block:only-child){justify-content:center;text-align:center;margin-top:0}.diploma-footer:has(>.diploma-footer-block:only-child) .diploma-footer-block{flex:0 1 220px;border-top:none;padding-top:0;padding-bottom:.6rem;border-bottom:1px solid var(--color-border)}.diploma-footer-block{flex:1 1 160px;padding-top:.55rem;border-top:1px solid var(--color-border)}.diploma-footer-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-bottom:.3rem}.diploma-footer-value{font-weight:600}.diploma-projects-inline{margin-top:1rem;padding-top:.7rem;border-top:1px solid var(--color-border);text-align:left}.diploma-projects-inline .diploma-footer-label{margin-bottom:.4rem}.diploma-project-row{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-bottom:.35rem;font-size:.85rem}.diploma-project-row:last-child{margin-bottom:0}.diploma-project-name{font-weight:600}.diploma-project-name a{color:var(--color-text)}.diploma-project-name a:hover{color:var(--color-primary)}.diploma-project-keywords{display:flex;flex-wrap:wrap;gap:.3rem}.diploma-project-keywords .tech-pill{padding:.1rem .45rem;font-size:.64rem}.diploma-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1rem;margin-top:1.1rem}.diploma-actions .button{gap:.5rem}.diploma-view-public{display:inline-block;font-size:.85rem;font-weight:600}@media print{body *{visibility:hidden}#print-diploma,#print-diploma *{visibility:visible}#print-diploma{position:fixed;inset:0;margin:1.5rem auto;max-width:90%;box-shadow:none;border:2px solid #333}}@media (max-width:640px){.diploma{padding:1.25rem 1.1rem 1.5rem}.diploma-footer{flex-direction:column}}.instructor-trigger{display:inline-flex;align-items:center;gap:.4rem;background:none;border:none;padding:0;font:inherit;color:var(--color-primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.instructor-trigger:hover{color:var(--color-primary-dark)}.instructor-badge-trigger{display:inline-flex;align-items:center;gap:.4rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.25rem .7rem .25rem .25rem;font-size:.8rem;font-weight:600;color:var(--color-text);cursor:pointer}.instructor-badge-trigger:hover{border-color:var(--color-primary)}.instructor-badge-avatar{width:22px;height:22px;border-radius:50%;background:var(--gradient-brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0;text-transform:uppercase}.instructor-modal-slogan{font-size:1rem;font-style:italic;color:var(--color-text);border-left:3px solid var(--color-primary);padding-left:.75rem;margin:0 0 1.25rem}.instructor-photo{width:88px;height:88px;border-radius:50%;object-fit:cover;margin-bottom:1rem}.instructor-socials{display:flex;gap:.6rem;margin-top:1.25rem}.instructor-socials-top{margin-top:0;margin-bottom:1.1rem}.instructor-socials a{width:36px;height:36px;border-radius:8px;border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-text)}.instructor-socials a:hover{border-color:var(--color-primary);color:var(--color-primary)}.modal-overlay{position:fixed;inset:0;background:rgba(15,18,35,.6);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:100}.modal-shell{background:var(--color-surface);border-radius:var(--radius);max-width:32rem;width:100%;max-height:85vh;overflow:hidden;box-shadow:var(--shadow-lg);position:relative;display:flex;flex-direction:column}.modal-shell-diploma{max-width:44rem;width:92vw;max-height:94vh}.instructor-modal-shell{max-width:40rem;width:94vw}.instructor-modal-links{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;margin-top:.6rem}.instructor-modal-links a{font-size:.82rem;font-weight:600;color:var(--color-primary)}.instructor-modal-links a:hover{text-decoration:underline}.modal-close{position:absolute;top:1rem;right:1rem;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:999px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text);z-index:3;flex-shrink:0}.modal-header-fixed{padding:2rem 2rem .9rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.modal-body-scroll{padding:.9rem 2rem 2rem;overflow-y:auto;flex:1 1}.diploma-modal-body{padding:1.5rem;overflow-y:auto;flex:1 1}@media (max-width:480px){.modal-body-scroll,.modal-header-fixed{padding-left:1.25rem;padding-right:1.25rem}}.dashboard-panel-title{font-size:1.1rem;margin:2rem 0 1rem}.activity-list{display:flex;flex-direction:column;gap:.6rem}.activity-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.85rem 1.1rem}.activity-row-title{font-weight:600;font-size:.92rem}.activity-row-meta{color:var(--color-text-muted);font-size:.82rem;margin-top:.15rem}.activity-row-date{color:var(--color-text-muted);font-size:.8rem;white-space:nowrap;flex-shrink:0}@media (max-width:480px){.activity-row{flex-direction:column;align-items:flex-start;gap:.3rem}}.cert-list{display:flex;flex-direction:column;gap:.9rem;margin-top:1.5rem}.cert-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.1rem 1.4rem;box-shadow:var(--shadow-sm)}.cert-row-title{font-family:var(--font-serif);font-weight:600;font-size:1.05rem}.cert-row-meta{color:var(--color-text-muted);font-size:.85rem;margin-top:.2rem}@media (max-width:480px){.cert-row{flex-direction:column;align-items:stretch}}.profile-card{gap:1.1rem;background:linear-gradient(165deg,rgba(79,70,229,.06),var(--color-surface) 55%);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.4rem 1.6rem;margin-top:1.5rem;box-shadow:var(--shadow-sm)}.profile-avatar,.profile-card{display:flex;align-items:center}.profile-avatar{width:56px;height:56px;border-radius:50%;background:var(--gradient-brand);color:#fff;justify-content:center;font-family:var(--font-serif);font-size:1.5rem;font-weight:700;flex-shrink:0}.profile-name{font-family:var(--font-serif);font-size:1.3rem;font-weight:600}.profile-meta{color:var(--color-text-muted);font-size:.88rem;margin-top:.2rem;display:flex;flex-wrap:wrap;gap:.4rem}.profile-meta-sep{opacity:.6}@media (max-width:480px){.profile-card{flex-direction:column;text-align:center;padding:1.5rem 1.2rem}.profile-meta{justify-content:center}}.user-menu-trigger{display:flex;align-items:center;gap:.5rem;background:none;border:none;cursor:pointer;padding:.3rem .4rem .3rem .3rem;border-radius:999px;color:var(--color-text)}.user-menu-trigger:hover{background:var(--color-bg-elevated)}.user-menu-avatar{width:28px;height:28px;border-radius:50%;background:var(--gradient-brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.user-menu-dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);min-width:12rem;max-width:calc(100vw - 2rem);padding:.4rem;z-index:60}[dir=rtl] .user-menu-dropdown{right:auto;left:0}.user-menu-item{display:block;width:100%;text-align:left;background:none;border:none;padding:.6rem .7rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:600;color:var(--color-text);cursor:pointer}.user-menu-item:hover{background:var(--color-bg-elevated)}.user-menu-locale-row{padding:.3rem .7rem .4rem}.user-menu-divider{height:1px;background:var(--color-border);margin:.35rem .2rem}.user-menu-logout{color:var(--danger)}.project-grid{display:grid;grid-gap:1.25rem;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));margin-top:1.5rem}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.project-card-image{width:100%;height:160px;object-fit:cover}.project-card-body{padding:1.25rem}.project-card-body h3{margin:0 0 .4rem;font-size:1.1rem}.project-card-desc{color:var(--color-text-muted);font-size:.88rem;margin:0}.project-title-trigger{display:block;background:none;border:none;padding:0;margin:0 0 .4rem;font-size:1.1rem;font-weight:700;font-family:inherit;color:var(--color-text);cursor:pointer;text-align:left}.project-title-trigger:hover{color:var(--color-primary);text-decoration:underline}.project-modal-image{width:100%;max-height:240px;object-fit:cover;border-radius:var(--radius-sm);margin-bottom:1rem}.task-list{display:flex;flex-direction:column;gap:.8rem;margin-top:1.5rem}.task-card{display:flex;align-items:flex-start;gap:.9rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.1rem 1.3rem;box-shadow:var(--shadow-sm)}.task-checkbox{width:22px;height:22px;border-radius:6px;border:2px solid var(--color-border);background:var(--color-bg);display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;flex-shrink:0;margin-top:.15rem}.task-card.task-done .task-checkbox{background:var(--gradient-brand);border-color:transparent}.task-done-toggle{display:inline-flex;align-items:center;gap:.6rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.5rem 1.1rem .5rem .6rem;font-size:.88rem;font-weight:600;color:var(--color-text);cursor:pointer}.task-done-toggle:hover{border-color:var(--color-primary)}.task-done-toggle .task-checkbox{margin-top:0;cursor:pointer}.task-done-toggle.done{color:var(--success,#059669)}.task-done-toggle.done .task-checkbox{background:var(--gradient-brand);border-color:transparent}.task-done-toggle:disabled{cursor:not-allowed;opacity:.75}.career-progress-header{display:flex;align-items:baseline;gap:1rem}.career-progress-percentage{font-family:var(--font-serif);font-size:2.6rem;font-weight:700;background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.career-checklist-section-title{font-family:var(--font-serif);font-size:1.3rem;margin-bottom:.3rem}.task-card-body{flex:1 1;min-width:0}.task-text{margin:0;font-weight:600}.task-card.task-done .task-text{color:var(--color-text-muted);text-decoration:line-through}.task-meta{color:var(--color-text-muted);font-size:.8rem;margin-top:.4rem}.task-detail-link{display:inline-block;margin-top:.5rem}.back-link,.task-detail-link{font-size:.85rem;font-weight:600}.back-link{display:block;width:-moz-fit-content;width:fit-content;margin-bottom:1.25rem;color:var(--color-text-muted)}.back-link:hover{color:var(--color-primary)}.announcement-list{display:flex;flex-direction:column;gap:.8rem;margin-top:1.5rem}.announcement-card{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.1rem 1.3rem;box-shadow:var(--shadow-sm);color:var(--color-text)}.announcement-card:hover{border-color:var(--color-primary);color:var(--color-text)}.announcement-card-head{display:flex;align-items:center;gap:.6rem}.announcement-card-head h3{margin:0;font-size:1.05rem}.announcement-badge-new{display:inline-block;background:var(--gradient-brand);color:#fff;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .5rem;border-radius:999px;flex-shrink:0}:root{--tabbar-h:3.9rem}.mobile-tabbar{display:none}@media (max-width:900px){.mobile-nav-drawer:not(.open){visibility:hidden;transition:transform .28s ease,visibility 0s linear .28s}}@media (max-width:640px){.mobile-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:80;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:hsla(0,0%,100%,.95);backdrop-filter:saturate(1.6) blur(12px);-webkit-backdrop-filter:saturate(1.6) blur(12px);border-top:1px solid var(--color-border);box-shadow:0 -4px 18px rgba(18,22,43,.06)}.mobile-tabbar-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-width:0;padding:.3rem .15rem;border:none;background:none;font:inherit;font-size:.68rem;font-weight:600;line-height:1.15;color:var(--color-text-muted);text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.mobile-tabbar-item:hover{text-decoration:none;color:var(--color-text)}.mobile-tabbar-item.active{color:var(--color-primary)}.mobile-tabbar-icon{position:relative;display:flex;transition:transform .15s}.mobile-tabbar-item.active .mobile-tabbar-icon{transform:translateY(-1px) scale(1.08)}.mobile-tabbar-item:active .mobile-tabbar-icon{transform:scale(.9)}.mobile-tabbar-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-tabbar-badge{position:absolute;top:-.4rem;left:calc(100% - .55rem);min-width:1.1rem;height:1.1rem;padding:0 .3rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.64rem;font-weight:700;line-height:1.1rem;text-align:center;box-shadow:0 0 0 2px #fff}.app-main{padding-bottom:calc(2.5rem + var(--tabbar-h) + env(safe-area-inset-bottom))}.app-main .button:not(.back-button){width:100%;justify-content:center;text-align:center}.button{min-height:44px}input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}.confirm-modal-overlay,.modal-overlay{align-items:flex-end;padding:0}.confirm-modal,.modal-shell{width:100%;max-width:none;max-height:92vh;max-height:92dvh;border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom);animation:sheet-up .26s cubic-bezier(.2,.8,.2,1)}.confirm-modal .button,.modal-shell .button{width:100%;justify-content:center;min-height:44px}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@media (prefers-reduced-motion:reduce){.confirm-modal,.modal-shell{animation:none}}@media (hover:none){.button:active{transform:scale(.97)}.button{-webkit-tap-highlight-color:transparent}}.preferences-card{max-width:40rem;margin-top:1.5rem}.preferences-card h3{margin-top:0}.preferences-intro{margin-top:0;color:var(--color-text-muted);font-size:.9rem}.quick-access-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:0 1rem;gap:0 1rem}.quick-access-slots select{width:100%}.quick-access-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.5rem}.quick-access-status{margin:.8rem 0 0;color:var(--success,#15803d);font-weight:600;font-size:.9rem}.quick-access-status.is-error{color:var(--danger,#dc2626)}@media (max-width:640px){.quick-access-slots{grid-template-columns:1fr}.quick-access-actions .button{flex:1 1 100%;justify-content:center}.mobile-menu-toggle{display:none!important}}.quick-access-slots select{padding:.65rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:.95rem;font-family:inherit}.quick-access-slots select:focus{outline:none;border-color:var(--color-primary)}@media (max-width:640px){.mobile-tabbar-item .mobile-tabbar-label,.mobile-tabbar-item>span:not(.mobile-tabbar-icon){white-space:normal;text-overflow:clip;text-align:center;line-height:1.1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}@media (max-width:360px){.mobile-tabbar-item{font-size:.62rem;padding-left:.05rem;padding-right:.05rem}}.header-back{display:none}@media (max-width:640px){.header-back{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:44px;-webkit-margin-start:-.5rem;margin-inline-start:-.5rem;color:var(--color-text);border-radius:var(--radius-sm);-webkit-tap-highlight-color:transparent}.header-back:active{background:var(--color-surface-hover)}.app-header-inner{gap:.4rem}}.app-brand-page{display:none}@media (max-width:640px){.app-header-inner:has(.app-brand-page) .app-header-top-right{margin-left:0}.app-brand-page{display:block;margin-left:auto;min-width:0;max-width:38vw;padding:.3rem .65rem;border-radius:999px;background:var(--color-surface-hover);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:700;letter-spacing:.02em;color:var(--color-primary)}}.login-logo{justify-content:center}@media (max-width:640px){.login-logo{flex-direction:column;gap:.55rem;text-align:center}.login-logo svg{width:44px;height:44px}}