/* NEXORA DASHBOARD — v2 visual system */

.auth-page .site-header{max-width:1244px}.auth-main{max-width:520px;margin:0 auto;padding:80px 24px 120px}.auth-card{background:#fff;border:1px solid var(--line);padding:48px 40px;box-shadow:0 18px 60px rgba(12,35,40,.06)}.auth-card h1{font:700 36px/1.05 var(--serif);letter-spacing:-.04em;margin:0 0 12px}.auth-card .lede{margin:0 0 32px;font-size:16px}.auth-form{display:grid;gap:18px}.auth-form label{display:grid;gap:6px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.auth-form input{background:transparent;border:0;border-bottom:1px solid var(--ink);padding:10px 0;font:16px var(--sans);color:var(--ink);outline:none}.auth-form input:focus{border-color:var(--coral)}.auth-form .button{justify-content:space-between;margin-top:8px}.auth-footer{margin-top:28px;font-size:14px;color:#587074}.auth-footer a{color:var(--ink);font-weight:600}

/* ===== DASHBOARD SHELL ===== */
html:has(.dash-body),body.dash-body{min-height:100%;overflow-x:hidden;overflow-y:auto}
.dash-body{min-height:100vh;background:linear-gradient(135deg,#f8f4ea 0%,var(--paper) 48%,#eef5f2 100%)}
.dash-header{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20;box-shadow:0 4px 24px rgba(12,35,40,.05)}
.dash-header .brand{font-size:0}.dash-header .brand-mark{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:50%;background:var(--ink);color:#fff;font:700 18px var(--serif)}
.dash-user{display:flex;align-items:center;gap:12px;font-size:14px}.dash-user #user-name{font-weight:600}.dash-user .role-badge{font:11px var(--mono);text-transform:uppercase;letter-spacing:.06em;background:var(--ink);color:#fff;padding:6px 10px;border-radius:999px}.dash-user .role-badge.teacher{background:var(--teal)}.dash-user .role-badge.admin{background:#061d45}
.dash-layout{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - 78px);align-items:start}
.dash-nav{background:rgba(255,255,255,.82);border-right:1px solid var(--line);padding:28px 14px;position:sticky;top:78px;height:calc(100vh - 78px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.dash-nav a{display:flex;align-items:center;gap:10px;padding:12px 14px;margin:3px 0;color:var(--ink);text-decoration:none;font-size:14px;font-weight:600;border:1px solid transparent;border-radius:10px;transition:.18s ease}.dash-nav a:hover{background:#fff;border-color:var(--line);transform:translateX(2px)}.dash-nav a.active{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 8px 20px rgba(12,35,40,.12)}.dash-nav .nav-section{font:10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#7b6b50;padding:10px 14px 12px}
.dash-content{padding:48px clamp(24px,5vw,64px) 90px;max-width:1250px;width:100%;min-width:0;min-height:calc(100vh - 78px)}.dash-content h1{font:700 clamp(34px,4vw,48px)/1.02 var(--serif);letter-spacing:-.05em;margin:0 0 10px}.dash-content .page-intro{color:#587074;margin:0 0 34px;max-width:650px;font-size:15px;line-height:1.65}

/* cards / stats */
.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:20px}.dash-card{background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:10px;box-shadow:0 10px 35px rgba(12,35,40,.045);transition:transform .18s ease,box-shadow .18s ease}.dash-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(12,35,40,.09)}.dash-card h3{font:600 21px/1.2 var(--serif);margin:0}.dash-card p{font-size:14px;color:#587074;margin:0;flex:1;line-height:1.55}.dash-card .meta{font:11px var(--mono);color:#8b5637;margin-top:10px;text-transform:uppercase;letter-spacing:.04em}.dash-card .card-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}

.btn-sm{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 14px;font:600 13px var(--sans);border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;text-decoration:none;border-radius:8px;transition:.18s ease}.btn-sm:hover{opacity:1;transform:translateY(-1px)}.btn-sm.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn-sm.teal{background:var(--teal);color:#fff;border-color:var(--teal)}.btn-sm:disabled{opacity:.55;cursor:not-allowed;transform:none}

/* forms */
.dash-form{display:grid;gap:20px;max-width:720px;background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:0 12px 40px rgba(12,35,40,.06)}.dash-form label{display:grid;gap:7px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.dash-form input,.dash-form select,.dash-form textarea{background:#fbfaf6;border:1px solid var(--line);border-radius:8px;padding:12px 13px;font:15px var(--sans);color:var(--ink);outline:none;width:100%;box-sizing:border-box}.dash-form textarea{min-height:120px;resize:vertical}.dash-form input:focus,.dash-form select:focus,.dash-form textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(38,104,103,.09)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.progress-bar{height:7px;background:var(--cream);border-radius:99px;overflow:hidden;margin-top:8px}.progress-bar>span{display:block;height:100%;background:var(--teal);border-radius:99px}

/* tables */
.dash-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;font-size:14px}.dash-table th,.dash-table td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line)}.dash-table th{font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#7b6b50;background:var(--cream)}.dash-table tr:last-child td{border-bottom:0}
.empty-state{text-align:center;padding:70px 24px;color:#587074;background:rgba(255,255,255,.8);border:1px dashed var(--line);border-radius:16px}.empty-state h3{font:600 24px var(--serif);margin:0 0 8px;color:var(--ink)}

/* public gallery */
.public-gallery{max-width:1244px;margin:0 auto;padding:80px 24px 120px}.public-gallery h2{font:700 clamp(32px,4vw,48px)/1.05 var(--serif);letter-spacing:-.04em;margin:0 0 12px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:40px}.gallery-item{background:#fff;border:1px solid var(--line);overflow:hidden;border-radius:12px}.gallery-item img{width:100%;height:200px;object-fit:cover;display:block}.gallery-item .caption{padding:14px 16px;font-size:14px}.gallery-item .caption strong{display:block;font-weight:600;margin-bottom:4px}

/* course player */
.course-player{display:grid;grid-template-columns:290px 1fr;gap:0;min-height:70vh;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 12px 40px rgba(12,35,40,.06)}.course-sidebar{border-right:1px solid var(--line);padding:24px 0;overflow-y:auto;max-height:80vh}.course-sidebar h3{font:600 16px var(--serif);padding:0 20px 12px;margin:0}.module-title{font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#7b6b50;padding:16px 20px 6px}.lesson-link{display:block;padding:10px 20px;font-size:14px;color:var(--ink);text-decoration:none;border-left:3px solid transparent}.lesson-link:hover,.lesson-link.active{background:var(--cream);border-left-color:var(--teal)}.lesson-link.completed::after{content:' ✓';color:var(--teal)}.lesson-content{padding:40px}.lesson-content h2{font:700 30px/1.15 var(--serif);margin:0 0 16px}.material-list{margin-top:28px;display:grid;gap:10px}.material-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid var(--line);font-size:14px;border-radius:8px}.video-embed{position:relative;padding-bottom:56.25%;height:0;margin:24px 0;background:#000;border-radius:10px;overflow:hidden}.video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}

@media(max-width:900px){.dash-header{padding:0 18px}.dash-layout{grid-template-columns:1fr}.dash-nav{display:none;position:absolute;top:78px;left:0;right:0;z-index:19;height:auto;max-height:calc(100vh - 78px)}.dash-nav.mobile-open{display:block;border-bottom:1px solid var(--line)}.dash-content{padding:34px 20px 70px}.course-player{grid-template-columns:1fr}.course-sidebar{max-height:240px}.form-row{grid-template-columns:1fr}.auth-card{padding:32px 24px}}
@media(max-width:560px){.dash-user{gap:7px}.dash-user #user-name{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-user .role-badge{display:none}.dash-grid{grid-template-columns:1fr}.dash-form{padding:22px}.lesson-content{padding:26px 20px}}

/* ===== NEXORA HOMEPAGE VISUAL LAYER ===== */
.announcement{padding:12px 28px;background:#102c30}.site-header{height:92px;padding-left:42px;padding-right:42px;max-width:1380px}.nav-links{gap:24px}.nav-links .nav-cta{background:#102c30;color:#fff;padding:12px 17px;border-color:#102c30}.hero{max-width:1380px;min-height:690px;padding:72px 42px 84px;grid-template-columns:1.04fr .96fr;gap:55px}.hero-copy{max-width:700px}.hero .eyebrow{color:#b05a47;font-weight:500}.hero h1{font-size:clamp(58px,7.3vw,104px);line-height:.9;letter-spacing:-.07em;max-width:760px}.hero h1 em{color:#d4614c}.hero .lede{font-size:20px;max-width:610px;margin-top:31px}.hero-actions{margin-top:4px}.button-primary{padding:17px 21px;box-shadow:8px 8px 0 #d6ac57}.hero-proof{margin-top:48px}.hero-art{height:560px;border-radius:0;background:#d8c49b;box-shadow:22px 22px 0 #2e7873}.hero-art:after{content:'NEXORA / PREPARE FIRST';position:absolute;right:28px;top:28px;color:#102c30;font:11px var(--mono);letter-spacing:.12em;z-index:4}.orb-one{width:390px;height:390px;right:-110px;top:-120px;background:#d6ac57}.orb-two{width:290px;height:290px;left:-105px;bottom:-130px;background:#2e7873}.grid-lines{background-size:70px 70px;opacity:.4}.hero-card{font-size:14px;padding:15px 18px}.card-top{top:70px;left:34px}.card-bottom{right:30px;bottom:28px;max-width:205px}.abstract-person{bottom:75px}.person-a{height:255px;width:115px}.person-b{height:325px;width:145px}.abstract-table{bottom:48px}.stats-band{padding-top:30px;padding-bottom:30px;grid-template-columns:repeat(3,1fr) 1.2fr;gap:28px}.stats-band strong{font-size:32px}.stats-band p{font-size:19px}.section{max-width:1320px;padding-left:38px;padding-right:38px}.programmes{padding-top:120px;padding-bottom:105px;grid-template-columns:30% 1fr;gap:70px}.section h2{font-size:clamp(42px,4.4vw,66px)}.programme-list{border:0;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.programme-card,.programme-card.featured{display:flex;flex-direction:column;justify-content:space-between;min-height:360px;margin:0;padding:28px;background:#ece5d8;border:1px solid rgba(20,47,51,.14)}.programme-card.featured{background:#d6ac57;border-color:#d6ac57;transform:translateY(-18px)}.programme-card:hover{transform:translateY(-7px);box-shadow:0 18px 36px rgba(20,47,51,.11)}.programme-card.featured:hover{transform:translateY(-25px)}.programme-number{font-size:11px}.programme-card h3{font-size:30px;margin-top:28px}.programme-card p:not(.card-kicker){font-size:14px}.destination-section{padding-top:92px;padding-bottom:125px;background:#e5ddd0;max-width:none;padding-left:max(38px,calc((100vw - 1320px)/2));padding-right:max(38px,calc((100vw - 1320px)/2))}.destination-section .section-intro{display:grid;grid-template-columns:1fr 1fr;align-items:end;margin-bottom:38px}.destination-section .section-intro>p:last-child{justify-self:end;max-width:430px}.destination-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:15px}.destination-card{min-height:320px;padding:31px;background:#f3eee5;border:1px solid rgba(20,47,51,.13)}.destination-card.italy{background:#102c30;color:#fff}.destination-card.italy p:not(.card-kicker),.destination-card.italy small{color:#d2dfdc}.destination-card.italy .card-kicker{color:#d6ac57}.destination-card .flag{background:#d6ac57;color:#102c30}.destination-card h3{font-size:42px;margin-top:32px}.destination-card p:not(.card-kicker){font-size:14px}.destination-card small{display:block;margin-top:28px}.how{padding-top:120px;padding-bottom:120px}.pathway-heading{display:grid;grid-template-columns:.65fr 1fr;align-items:end;margin-bottom:55px}.pathway-heading h2{max-width:700px}.pathway ol{gap:15px}.pathway li{background:#ede6d9;border:1px solid var(--line);border-top:3px solid var(--ink);padding:23px;min-height:215px}.pathway h3{font-size:27px;margin-top:55px}.why{margin:0 0 0;max-width:none;background:#d6ac57}.why-visual{min-height:610px}.why-copy{padding-top:110px;padding-bottom:105px}.why-copy h2{font-size:clamp(44px,5vw,68px)}.content-section{max-width:none;margin:0;padding:125px max(38px,calc((100vw - 1320px)/2));background:#102c30;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.content-section .eyebrow{color:#d6ac57}.content-section h2{font:700 clamp(44px,5vw,70px)/.98 var(--serif);letter-spacing:-.06em;max-width:650px;margin:0}.content-section>div:first-child>p:last-child{max-width:590px;color:#cbd8d7;margin-top:25px}.content-prompts{display:grid;gap:0;border-top:1px solid rgba(255,255,255,.22)}.content-prompts span{padding:22px 0;border-bottom:1px solid rgba(255,255,255,.22);font:600 20px var(--serif);color:#f3eee5}.cefp-banner{max-width:1320px;margin:95px auto 120px;padding:65px 75px;min-height:340px;background:#2e7873}.cefp-banner h2{font-size:44px;max-width:700px}.public-gallery{padding-top:20px;padding-bottom:115px}.public-gallery .section-intro{display:flex;justify-content:space-between;align-items:end;gap:40px}.public-gallery .section-intro>p:last-child{max-width:400px}.public-gallery .gallery-grid{margin-top:34px}.contact{padding-top:110px;padding-bottom:125px;grid-template-columns:1fr .8fr;gap:100px}.contact h2{font-size:clamp(44px,5vw,70px)}.contact-form{padding:32px;background:#e7dfd1;border:1px solid var(--line)}footer{max-width:1320px;padding-left:38px;padding-right:38px}
@media(max-width:1000px){.hero{grid-template-columns:1fr;padding-top:55px}.hero-art{height:470px}.programme-list{grid-template-columns:1fr}.programme-card.featured{transform:none}.programme-card.featured:hover{transform:translateY(-7px)}.destination-grid{grid-template-columns:1fr}.destination-card{min-height:250px}.destination-section .section-intro{display:block}.destination-section .section-intro>p:last-child{justify-self:auto}.content-section{grid-template-columns:1fr;gap:50px}.pathway-heading{display:block}.pathway-heading h2{margin-top:10px}.contact{grid-template-columns:1fr;gap:50px}}
@media(max-width:640px){.site-header{padding-left:22px;padding-right:22px}.hero{padding:42px 22px 70px}.hero h1{font-size:clamp(54px,16vw,78px)}.hero-art{height:380px;box-shadow:12px 12px 0 #2e7873}.stats-band{grid-template-columns:1fr;padding-left:24px;padding-right:24px}.stats-band div{border-right:0}.programmes{padding-top:85px;padding-left:22px;padding-right:22px}.programme-card,.programme-card.featured{min-height:310px}.destination-section{padding-left:22px;padding-right:22px}.how{padding-left:22px;padding-right:22px}.pathway ol{grid-template-columns:1fr}.why-copy{padding-left:25px;padding-right:25px}.content-section{padding:85px 22px}.cefp-banner{margin:60px 22px 80px;padding:42px 28px;display:block}.cefp-seal{margin-top:35px}.public-gallery{padding-left:22px;padding-right:22px}.public-gallery .section-intro{display:block}.contact{padding-left:22px;padding-right:22px}.contact-form{padding:24px}footer{padding-left:22px;padding-right:22px;display:block}footer div{margin-top:18px;flex-wrap:wrap}}
