:root{
  --novotecna-blue:#000047;
  --novotecna-blue-2:#10106d;
  --novotecna-red:#e80916;
  --background:#f5f6f8;
  --surface:#ffffff;
  --text-primary:#202124;
  --text-secondary:#667085;
  --border:#e3e7ee;
  --border-strong:#cfd6e1;
  --hover:#f0f2f7;
  --muted:#98a2b3;
  --success:#1f7a4f;
  --success-bg:#eef8f2;
  --warning:#946200;
  --warning-bg:#fff8e8;
  --danger:#b42318;
  --danger-bg:#fff2f1;
  --info:#315b9a;
  --info-bg:#eef4ff;
  --focus:#7a7aff;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:24px;
  --space-6:32px;
  --space-7:40px;
  --space-8:48px;
  --space-9:64px;
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:14px;
  --shadow-xs:0 1px 2px rgba(16,24,40,.04);
  --shadow-sm:0 6px 18px rgba(16,24,40,.05);
  --shadow-md:0 14px 36px rgba(16,24,40,.08);
  --transition:180ms ease;
  --control-h:44px;
  --content-max:1240px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--text-primary);background:var(--background);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--novotecna-blue);text-decoration:none}
a:hover{text-decoration:none}
button,input,select,textarea{font:inherit}
img{max-width:100%;height:auto}
svg.icon{width:18px;height:18px;flex:0 0 auto}.icon-xs{width:13px!important;height:13px!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:16px;top:10px;z-index:1000;background:var(--novotecna-blue);color:#fff;padding:10px 14px;border-radius:var(--radius-md);transform:translateY(-150%);transition:transform var(--transition)}
.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:3px solid rgba(122,122,255,.34);outline-offset:2px}

h1,h2,h3{color:var(--text-primary);line-height:1.2;margin:0 0 var(--space-3);letter-spacing:-.02em}
h1{font-size:clamp(2rem,3vw,2.5rem);font-weight:760}h2{font-size:clamp(1.5rem,2.2vw,1.875rem);font-weight:730}h3{font-size:clamp(1.08rem,1.6vw,1.35rem);font-weight:700}
p{margin:0 0 var(--space-4)}
.muted{color:var(--text-secondary)}
.eyebrow{display:block;text-transform:uppercase;letter-spacing:.13em;font-size:.76rem;font-weight:800;color:var(--novotecna-red);margin-bottom:var(--space-2)}
.meta-label{display:block;color:var(--text-secondary);font-size:.82rem;font-weight:650;margin-bottom:4px}

/* Header */
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--border);backdrop-filter:saturate(140%) blur(10px)}
.topbar-inner{max-width:var(--content-max);margin:0 auto;min-height:78px;padding:0 var(--space-5);display:flex;align-items:center;justify-content:space-between;gap:var(--space-5)}
.brand{display:flex;align-items:center;gap:18px;min-width:0}.brand img{width:184px}.brand-course{display:flex;flex-direction:column;border-left:1px solid var(--border);padding-left:18px;min-width:0}.brand-course strong{color:var(--novotecna-blue);font-size:1rem}.brand-course small{color:var(--text-secondary);font-size:.8rem;white-space:nowrap}
.topnav,.nav-links,.account-area{display:flex;align-items:center}.topnav{gap:var(--space-5)}.nav-links{gap:4px}.account-area{gap:var(--space-3)}
.nav-link{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 12px;border-radius:var(--radius-md);font-size:.88rem;font-weight:650;color:var(--text-secondary);transition:background var(--transition),color var(--transition)}
.nav-link:hover,.nav-link.active{background:var(--hover);color:var(--novotecna-blue)}
.user-chip{display:inline-flex;align-items:center;gap:8px;background:var(--hover);padding:8px 11px;border-radius:999px;color:var(--text-primary);font-size:.85rem;white-space:nowrap}
.link-button{border:0;background:transparent;color:var(--novotecna-red);padding:9px 4px;font:inherit;font-size:.86rem;font-weight:650;cursor:pointer;border-radius:var(--radius-sm)}.link-button:hover{background:var(--danger-bg)}

/* Global layout */
.page{width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-9);flex:1}
.footer{margin-top:auto;border-top:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:.8rem}.footer-inner{max-width:var(--content-max);margin:0 auto;padding:20px var(--space-5);display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap}.footer a{display:inline-flex;align-items:center;gap:4px;color:var(--novotecna-blue);font-weight:650}.footer-separator{color:var(--muted)}
.breadcrumb{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:.8rem;margin-bottom:var(--space-4);flex-wrap:wrap}.breadcrumb .icon{width:14px;height:14px;color:var(--muted)}.breadcrumb a{color:var(--text-secondary)}.breadcrumb a:hover{color:var(--novotecna-blue)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-5)}.section-head-spaced{margin-top:var(--space-7)}.section-head p{margin-bottom:0}.section-inline{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5)}

/* Buttons */
.btn{min-height:var(--control-h);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 17px;border:1px solid transparent;border-radius:var(--radius-md);font-weight:720;font-size:.9rem;cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition),transform var(--transition),box-shadow var(--transition);white-space:nowrap}
.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn.primary{background:var(--novotecna-blue);color:#fff;box-shadow:0 5px 14px rgba(0,0,71,.12)}.btn.primary:hover{background:var(--novotecna-blue-2)}
.btn.secondary{background:#fff;color:var(--novotecna-blue);border-color:var(--border-strong)}.btn.secondary:hover,.btn.ghost:hover{background:var(--hover);border-color:#bbc3d0}
.btn.ghost{background:transparent;color:var(--novotecna-blue);border-color:transparent}.btn.success{background:var(--success);color:#fff}.btn.warning{background:var(--warning-bg);color:var(--warning);border-color:#ead59d}.btn.danger{background:var(--danger);color:#fff}.btn.small{min-height:36px;padding:0 12px;font-size:.8rem}.btn-block{width:100%}

/* Forms */
.stack{display:grid;gap:var(--space-4)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
label{display:grid;gap:7px;font-size:.86rem;font-weight:650;color:var(--text-primary)}
input,select,textarea{width:100%;min-height:var(--control-h);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:#fff;color:var(--text-primary);padding:10px 12px;transition:border-color var(--transition),box-shadow var(--transition)}
textarea{min-height:120px;resize:vertical}input:hover,select:hover,textarea:hover{border-color:#aeb7c5}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--novotecna-blue);box-shadow:0 0 0 3px rgba(0,0,71,.09)}
input[type="checkbox"],input[type="radio"]{width:18px;height:18px;min-height:auto;accent-color:var(--novotecna-blue)}
.field-help{color:var(--text-secondary);font-size:.76rem;font-weight:450}.form-actions{display:flex;justify-content:flex-start;padding-top:4px}

/* Cards, panels, alerts, badges */
.panel,.content-block,.module-card,.stat,.empty-state,.progress-summary-card,.module-progress-card,.stage-action-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}
.panel{padding:var(--space-5);margin-top:var(--space-5)}.no-margin{margin-top:0}.panel-heading{display:flex;align-items:flex-start;gap:14px;margin-bottom:var(--space-5)}.panel-heading.compact{margin-bottom:12px}.panel-heading h2,.panel-heading h3{margin-bottom:4px}.panel-heading p{margin-bottom:0}.panel-icon,.stat-icon,.login-mark,.error-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--info-bg);color:var(--novotecna-blue);flex:0 0 auto}.danger-icon{background:var(--danger-bg);color:var(--danger)}
.alert{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border-radius:var(--radius-md);margin-bottom:var(--space-4);border:1px solid}.alert.success{background:var(--success-bg);border-color:#c6e5d2;color:#155f3c}.alert.error{background:var(--danger-bg);border-color:#efc9c5;color:#8d1b14}.alert.info{background:var(--info-bg);border-color:#cfddf5;color:#264f8a}.alert.warning{background:var(--warning-bg);border-color:#ead59d;color:#805700}
.badge,.status-badge,.content-type{display:inline-flex;align-items:center;gap:5px;width:max-content;max-width:100%;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:700;line-height:1.2;border:1px solid transparent}.badge{background:#f2f4f7;color:#475467}.badge.optional{background:#f6f0fb;color:#704697;border-color:#e9d8f5}.badge.manual{background:#eef4ff;color:#315b9a;border-color:#d7e4fb}.badge.essential{background:#edf3ff;color:#263c78}.content-type{padding:0;background:transparent;color:var(--text-secondary);font-weight:650}.content-type .icon{width:15px;height:15px}
.status-badge.progress-locked{background:#f2f4f7;color:#667085}.status-badge.progress-available{background:#eef2ff;color:#303f8f}.status-badge.progress-in_progress{background:#e9ebff;color:var(--novotecna-blue);border-color:#ced2ff}.status-badge.progress-completed{background:var(--success-bg);color:var(--success);border-color:#cfe8d9}.status-badge.user-active{background:var(--success-bg);color:var(--success)}.status-badge.user-suspended{background:var(--warning-bg);color:var(--warning)}.status-badge.user-inactive{background:#f2f4f7;color:#667085}

/* Progress */
.bar{height:7px;background:#edf0f4;border-radius:99px;overflow:hidden}.bar.big{height:10px}.bar span{display:block;height:100%;background:var(--novotecna-blue);border-radius:inherit;transition:width .25s ease}.progress-label{display:flex;justify-content:space-between;align-items:center;color:var(--text-secondary);font-size:.78rem;margin-bottom:7px}.progress-label strong{color:var(--text-primary)}

/* Login */
.login-wrap{min-height:calc(100vh - 190px);display:grid;place-items:center;padding:var(--space-7) 0}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--border);border-radius:18px;padding:36px;box-shadow:var(--shadow-md)}.login-card .login-mark{margin-bottom:18px}.login-card h1{font-size:2rem;margin-bottom:8px}.login-card p{margin-bottom:0}

/* Student dashboard */
.student-welcome{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.55fr);gap:var(--space-5);align-items:stretch}.welcome-copy{padding:28px 4px}.welcome-copy h1{margin-bottom:8px}.welcome-copy p{color:var(--text-secondary);max-width:440px}
.progress-summary-card{padding:var(--space-5);box-shadow:var(--shadow-sm)}.progress-summary-main{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);margin-bottom:16px}.progress-value{display:block;color:var(--novotecna-blue);font-size:2.2rem;line-height:1}.progress-count{text-align:right}.progress-count strong{display:block;font-size:1.1rem}.progress-count span{color:var(--text-secondary);font-size:.8rem}.next-learning{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);border-top:1px solid var(--border);padding-top:18px;margin-top:18px}.next-learning>div{min-width:0}.next-learning strong,.next-learning small{display:block}.next-learning strong{font-size:.94rem;color:var(--text-primary)}.next-learning small{font-size:.78rem;color:var(--text-secondary);margin-top:3px}.completed-message{justify-content:flex-start;color:var(--success)}.completed-message .icon{width:24px;height:24px}.completed-message small{color:var(--text-secondary)}
.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.module-card{padding:18px;display:flex;flex-direction:column;min-height:285px;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}.module-card:not(.locked):hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:#d4d9e4}.module-card.locked{background:#fafbfc;color:#7c8490}.module-card.in_progress{border-color:#bfc4ef;box-shadow:inset 0 3px 0 var(--novotecna-blue)}.module-card.completed{border-color:#d5e7dc}.module-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.module-number{font-size:.78rem;font-weight:800;letter-spacing:.08em;color:var(--novotecna-blue)}.module-body{flex:1}.module-body h3{font-size:1.08rem;margin-bottom:9px}.module-desc{font-size:.84rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.module-progress{margin-top:14px}.card-footer{min-height:30px;margin-top:14px;display:flex;align-items:center}.card-action,.stage-open{display:inline-flex;align-items:center;gap:7px;color:var(--novotecna-blue);font-size:.82rem;font-weight:750}.card-action:hover,.stage-open:hover{gap:10px}.locked-label{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:.74rem;line-height:1.35}.locked-label .icon{width:14px;height:14px}

/* Module */
.module-hero{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:var(--space-6);display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:var(--space-6);align-items:center;box-shadow:var(--shadow-xs)}.module-hero-copy p{color:var(--text-secondary);max-width:760px}.module-meta-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.module-meta-row>span{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-secondary)}.module-progress-card{padding:20px}.module-progress-card strong{display:block;color:var(--novotecna-blue);font-size:2rem;line-height:1;margin:8px 0 14px}
.stage-list{display:grid;gap:10px}.stage-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:17px 18px;display:grid;grid-template-columns:70px minmax(0,1fr) 160px;gap:18px;align-items:center;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)}.stage-card:not(.locked):hover{border-color:#d2d8e2;box-shadow:var(--shadow-xs)}.stage-card.in_progress{border-color:#bec4ef;background:#fdfdff}.stage-card.completed{border-color:#d9e9df}.stage-card.locked{background:#fafbfc}.stage-index{font-size:.82rem;font-weight:800;color:var(--novotecna-blue)}.stage-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.stage-main h3{font-size:1rem;margin:7px 0 5px}.stage-main p{font-size:.82rem;color:var(--text-secondary);margin:0;line-height:1.45}.stage-state{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.stage-state .locked-label{justify-content:flex-end}

/* Stage */
.learning-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-5);align-items:start}.learning-main{min-width:0}.stage-title-block{padding:6px 0 var(--space-5)}.stage-title-block p{color:var(--text-secondary);max-width:820px}.stage-title-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.content-stack{display:grid;gap:var(--space-4)}.content-block{padding:var(--space-5);box-shadow:none}.content-block-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:14px}.content-block h2{font-size:1.35rem}.content-copy{color:#374151;line-height:1.7;overflow-wrap:anywhere}.content-youtube{padding:0;overflow:hidden}.content-youtube .content-block-head,.content-youtube h2,.content-youtube .content-copy{margin-left:var(--space-5);margin-right:var(--space-5)}.video-frame{position:relative;aspect-ratio:16/9;width:100%;background:#0b0b16}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.stage-action-panel{margin-top:var(--space-5);padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.stage-action-panel strong{display:block}.stage-actions{display:flex;align-items:center;gap:10px}.stage-actions form{margin:0}.completion-check{display:inline-flex;align-items:center;gap:7px;color:var(--success);font-weight:700}.stage-pagination{display:flex;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-5)}
.module-context{position:sticky;top:102px}.module-context-details{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xs)}.module-context-details summary{list-style:none;cursor:pointer;padding:16px 17px;font-size:.9rem;font-weight:750;color:var(--text-primary);display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border)}.module-context-details summary::-webkit-details-marker{display:none}.module-context-details summary span{font-size:.72rem;color:var(--text-secondary);font-weight:600}.module-context-list{padding:7px}.context-item{display:flex;align-items:flex-start;gap:10px;padding:10px 9px;border-radius:9px;color:var(--text-primary);transition:background var(--transition)}a.context-item:hover{background:var(--hover)}.context-item.current{background:#eef0ff;color:var(--novotecna-blue)}.context-item.locked{opacity:.58}.context-icon{display:grid;place-items:center;margin-top:1px}.context-icon .icon{width:16px;height:16px}.context-copy{min-width:0}.context-copy strong,.context-copy small{display:block}.context-copy strong{font-size:.76rem;line-height:1.35}.context-copy small{font-size:.68rem;color:var(--text-secondary);margin-top:2px}.content-empty{margin-top:0}

/* Trainer */
.admin-hero{background:#fff;border:1px solid var(--border);border-radius:18px;padding:var(--space-6);display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);box-shadow:var(--shadow-xs)}.admin-hero p{color:var(--text-secondary);margin-bottom:0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin:var(--space-5) 0}.stat{padding:18px;display:flex;align-items:center;gap:13px}.stat>div{min-width:0}.stat span:not(.stat-icon){display:block;color:var(--text-secondary);font-size:.78rem}.stat strong{display:block;color:var(--novotecna-blue);font-size:1.8rem;line-height:1.1;margin-top:3px}.dashboard-panels{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.action-panel{margin:0;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.action-panel h2{font-size:1.15rem;margin-bottom:5px}.action-panel p{margin-bottom:0;font-size:.83rem}
.two-col{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.75fr);gap:var(--space-5)}.side-stack{display:grid;gap:var(--space-4);align-content:start}.form-panel{padding:var(--space-6)}.participant-layout{align-items:start}.danger-zone{border-color:#efd1ce;background:#fffdfd}.danger-zone h3{color:var(--danger)}.progress-panel,.stage-progress-panel{margin-top:var(--space-5)}
.progress-list{display:grid;gap:12px}.progress-row{display:grid;grid-template-columns:minmax(220px,1.15fr) minmax(180px,2fr) 55px auto;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}.progress-row:last-child{border-bottom:0}.progress-row small{display:block;margin-top:5px}.inline-form{display:inline}.trainer-module-block{margin-top:20px}.trainer-module-block>h3{font-size:1rem;padding-bottom:9px;border-bottom:1px solid var(--border)}.trainer-stage-list{display:grid}.trainer-stage-row{display:grid;grid-template-columns:minmax(250px,1.5fr) 135px 55px auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--border)}.trainer-stage-title{display:flex;align-items:flex-start;gap:10px}.trainer-stage-title strong,.trainer-stage-title small{display:block}.trainer-stage-title small{font-size:.72rem;color:var(--text-secondary);margin-top:2px}.stage-number{min-width:42px;font-size:.75rem;font-weight:800;color:var(--novotecna-blue)}.trainer-stage-percent{text-align:right;font-weight:700}

/* Tables */
.table-wrap{overflow:hidden;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 15px;border-bottom:1px solid var(--border);font-size:.82rem;vertical-align:middle}th{background:#fafbfc;color:#4b5565;font-size:.74rem;text-transform:uppercase;letter-spacing:.045em;font-weight:750}tbody tr{transition:background var(--transition)}tbody tr:hover{background:#fbfcfe}tbody tr:last-child td{border-bottom:0}.table-actions{text-align:right}.table-progress{display:grid;grid-template-columns:minmax(80px,140px) 36px;align-items:center;gap:8px}.table-progress strong{font-size:.78rem}

/* Empty and errors */
.empty-state{padding:var(--space-6);display:flex;align-items:flex-start;gap:16px;color:var(--text-secondary)}.empty-state>.icon{width:28px;height:28px;color:var(--novotecna-blue)}.empty-state h2,.empty-state h3{color:var(--text-primary);margin-bottom:6px}.empty-state p{margin-bottom:12px}.error-page{text-align:center;max-width:560px;margin:50px auto;padding:40px 20px}.error-page .error-icon{margin:0 auto 16px}.error-page h1{font-size:3.5rem;color:var(--novotecna-blue);margin-bottom:0}.error-page h2{margin-bottom:10px}.error-page p{color:var(--text-secondary);margin-bottom:20px}

@media (max-width:1100px){
  .module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .brand img{width:165px}.brand-course small{max-width:235px;overflow:hidden;text-overflow:ellipsis}
  .learning-layout{grid-template-columns:minmax(0,1fr) 280px}.stage-card{grid-template-columns:60px minmax(0,1fr) 145px}
  .trainer-stage-row{grid-template-columns:minmax(220px,1.4fr) 120px 50px auto}
}

@media (max-width:900px){
  .topbar-inner{align-items:flex-start;padding-top:12px;padding-bottom:12px;min-height:0;flex-wrap:wrap}.topnav{width:100%;justify-content:space-between}.brand-course small{white-space:normal}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-welcome{grid-template-columns:1fr}.welcome-copy{padding:8px 2px}.learning-layout{grid-template-columns:1fr}.module-context{position:static;order:-1}.module-context-details:not([open]) .module-context-list{display:none}.module-hero{grid-template-columns:1fr}.module-progress-card{max-width:none}.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-panels{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}.stage-card{grid-template-columns:60px minmax(0,1fr) 145px}.progress-row{grid-template-columns:1fr 2fr 50px}.progress-row>div:last-child{grid-column:1/-1}.trainer-stage-row{grid-template-columns:minmax(0,1fr) 120px 50px}.trainer-stage-row>div:last-child{grid-column:1/-1}.action-panel{grid-template-columns:auto 1fr}.action-panel>:last-child{grid-column:2}
}

@media (max-width:700px){
  .page{padding:24px 16px 48px}.topbar-inner{padding-left:16px;padding-right:16px}.brand{gap:12px}.brand img{width:145px}.brand-course{padding-left:12px}.brand-course small{display:none}.nav-links{gap:2px}.nav-link{padding:0 8px}.nav-link span{display:none}.account-area{gap:8px}.user-chip span{display:none}.user-chip{padding:9px}.topnav{width:auto;margin-left:auto}.module-grid{grid-template-columns:1fr}.module-card{min-height:0}.section-head,.admin-hero,.next-learning{align-items:flex-start;flex-direction:column}.section-head>.btn,.admin-hero>.btn,.next-learning>.btn{width:100%}.progress-summary-main{flex-direction:column;gap:12px}.progress-count{text-align:left}.module-hero{padding:22px}.stage-card{grid-template-columns:48px minmax(0,1fr)}.stage-state{grid-column:2;align-items:flex-start;flex-direction:row;justify-content:space-between;flex-wrap:wrap}.stage-index{align-self:start}.stage-action-panel{align-items:flex-start;flex-direction:column}.stage-actions,.stage-actions form,.stage-actions .btn{width:100%}.stage-pagination{flex-direction:column}.stage-pagination>div,.stage-pagination .btn{width:100%}.form-grid{grid-template-columns:1fr}.form-panel{padding:22px}.stats-grid{grid-template-columns:1fr 1fr}.action-panel{grid-template-columns:auto 1fr}.progress-row{grid-template-columns:1fr 55px}.progress-row>.bar{grid-column:1/-1;grid-row:2}.progress-row>div:last-child{grid-column:1/-1}.trainer-stage-row{grid-template-columns:1fr 90px}.trainer-stage-percent{display:none}.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%}.responsive-table tr{padding:12px 14px;border-bottom:1px solid var(--border)}.responsive-table tr:last-child{border-bottom:0}.responsive-table td{border:0;padding:7px 0;display:grid;grid-template-columns:115px minmax(0,1fr);gap:10px;align-items:center}.responsive-table td::before{content:attr(data-label);color:var(--text-secondary);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.responsive-table .table-actions{text-align:left}.responsive-table .table-actions .btn{width:max-content}.table-progress{max-width:190px}.footer-inner{padding-left:16px;padding-right:16px}
}

@media (max-width:430px){
  .brand img{width:132px}.brand-course{display:none}.topnav{gap:6px}.stats-grid{grid-template-columns:1fr}.login-card{padding:26px 20px}.module-hero,.progress-summary-card,.panel,.empty-state{padding:20px}.module-card{padding:16px}.stage-card{padding:15px;grid-template-columns:42px minmax(0,1fr);gap:12px}.stage-state{grid-column:1/-1;padding-left:54px}.trainer-stage-row{grid-template-columns:1fr}.trainer-stage-row>div:nth-child(2){justify-self:start}.responsive-table td{grid-template-columns:96px minmax(0,1fr)}
}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.btn:hover,.module-card:hover{transform:none!important}}


/* v0.5.0 — conteúdos, vídeo e recursos */
.stage-content-progress{margin-top:16px;max-width:520px;display:grid;gap:7px;color:var(--text-secondary);font-size:.78rem}.stage-content-progress .bar{height:7px}
.content-badges{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.badge.completed{background:#edf8f2;color:#24724a;border-color:#d3eadc}.content-completed{border-color:#d9e9df}.video-meta{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:.78rem;margin:12px var(--space-5) 0}.video-meta .icon{width:15px}.content-complete-form{margin:18px var(--space-5) var(--space-5)}.content-block:not(.content-youtube) .content-complete-form{margin-left:0;margin-right:0;margin-bottom:0}.code-block{margin:0;background:#121826;color:#f7f8fa;border-radius:var(--radius-md);padding:18px;overflow:auto;font:500 .84rem/1.65 ui-monospace,SFMono-Regular,Consolas,monospace}.resource-panel{margin-top:var(--space-5);padding:var(--space-5)}.resource-list{display:grid;gap:9px}.resource-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary)}.resource-item:hover{border-color:#c6cae7;background:var(--hover)}.resource-item .icon{color:var(--novotecna-blue)}.resource-item strong,.resource-item small{display:block}.resource-item small{margin-top:3px;color:var(--text-secondary);font-size:.76rem}
.content-admin-summary{padding:16px 18px;margin-bottom:20px;display:flex;gap:16px;align-items:center}.content-admin-summary span{color:var(--text-secondary);font-size:.85rem}.content-admin-list{display:grid}.content-admin-row{display:grid;grid-template-columns:65px minmax(0,1fr) 90px 80px 22px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border);color:var(--text-primary)}.content-admin-row:last-child{border-bottom:0}.content-admin-row:hover .content-admin-copy strong{color:var(--novotecna-blue)}.content-admin-copy strong,.content-admin-copy small,.content-admin-count strong,.content-admin-count small{display:block}.content-admin-copy small,.content-admin-count small{color:var(--text-secondary);font-size:.7rem;margin-top:3px}.content-admin-count{text-align:center}.content-manager-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--space-5);align-items:start}.content-manager-main .panel,.content-manager-side .panel{padding:var(--space-5)}.content-manager-side{display:grid;gap:var(--space-4);position:sticky;top:102px}.managed-block-list{display:grid;gap:10px}.managed-block{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;overflow:hidden}.managed-block summary{cursor:pointer;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 15px}.managed-block summary::marker{color:var(--text-secondary)}.managed-block-body{padding:16px;border-top:1px solid var(--border);background:#fbfcfe}.stack-form{display:grid;gap:12px}.check-field{display:flex;align-items:center;gap:9px;font-size:.82rem;color:var(--text-secondary)}.check-field input{width:18px;height:18px}.managed-resources{margin-top:20px;border-top:1px solid var(--border);padding-top:16px}.managed-resources h3{font-size:.9rem}.managed-resource{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}.managed-resource:last-child{border-bottom:0}.managed-resource strong,.managed-resource small{display:block}.managed-resource small{font-size:.68rem;color:var(--text-secondary);margin-top:2px}
@media(max-width:1024px){.content-manager-layout{grid-template-columns:1fr}.content-manager-side{position:static;grid-template-columns:1fr 1fr}.content-admin-row{grid-template-columns:55px minmax(0,1fr) 80px 70px 20px}}
@media(max-width:768px){.content-manager-side{grid-template-columns:1fr}.content-admin-summary{align-items:flex-start;flex-direction:column}.content-admin-row{grid-template-columns:50px minmax(0,1fr) 20px}.content-admin-count{grid-row:2;text-align:left}.content-admin-count:nth-of-type(1){grid-column:2}.content-admin-count:nth-of-type(2){display:none}.managed-block summary{grid-template-columns:auto minmax(0,1fr)}.managed-block summary .badge{grid-column:2;width:max-content}.video-meta,.content-youtube .content-complete-form{margin-left:16px;margin-right:16px}}

/* v0.6.0 — segurança, atividades, auditoria e reset de percurso */
.login-help{margin-top:-4px;text-align:right;font-size:.82rem}.login-help a{color:var(--novotecna-blue);font-weight:700}.profile-details{display:grid;gap:14px}.profile-details div{padding:12px 0;border-bottom:1px solid var(--border)}.profile-details div:last-child{border-bottom:0}.profile-details dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-weight:750}.profile-details dd{margin:4px 0 0;font-weight:700;color:var(--text-primary)}
.filter-grid{display:grid;grid-template-columns:1.4fr 1fr 160px 160px;gap:14px;align-items:end}.filter-actions,.report-actions{display:flex;gap:10px;flex-wrap:wrap}.filter-actions{grid-column:1/-1}.report-actions{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.activity-table small{display:block;color:var(--text-secondary);margin-top:3px}.activity-table td{font-size:.78rem}
.reset-panel{border-color:#f2c7cb;background:#fff}.reset-panel .eyebrow{color:var(--novotecna-red)}
.activity-list{display:grid;gap:10px}.activity-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px;border:1px solid var(--border);border-radius:var(--radius-md);background:#fff}.activity-row-main{min-width:0}.activity-row h3{font-size:1rem;margin:5px 0}.activity-row-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--text-secondary);font-size:.76rem}.stage-activities{margin-top:var(--space-5)}
.activity-form{display:grid;gap:16px;margin:var(--space-5) 0}.question-card{margin:0}.question-card legend{font-weight:800;color:var(--text-primary);padding:0 6px}.question-card legend span{font-size:.72rem;color:var(--text-secondary);font-weight:600}.answer-option{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:8px;cursor:pointer;transition:var(--transition)}.answer-option:hover{border-color:#c7cae5;background:var(--hover)}.answer-option input{margin-top:3px}.match-row,.order-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,260px);gap:12px;align-items:center;margin-top:10px}.activity-result{text-align:center}.result-score{font-size:2.4rem;line-height:1;font-weight:850;margin:12px 0}.success-text{color:var(--success)}.danger-text{color:var(--danger)}.attempt-list{display:grid;gap:8px}.attempt-list>div{display:grid;grid-template-columns:1fr 80px 120px;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.attempt-list>div:last-child{border-bottom:0}
.question-list{display:grid;gap:10px}.question-admin{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-md)}.question-admin>div{display:grid;gap:5px}.question-admin small{color:var(--text-secondary)}.question-options{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:#fbfcfe}.option-row{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:10px;align-items:center}
.alert.info{background:#eef4ff;border-color:#cfddff;color:#1f4f8c}
@media(max-width:1024px){.filter-grid{grid-template-columns:1fr 1fr}.filter-grid .field:nth-of-type(3),.filter-grid .field:nth-of-type(4){min-width:0}}
@media(max-width:700px){.filter-grid{grid-template-columns:1fr}.filter-actions{grid-column:auto}.activity-row{align-items:flex-start;flex-direction:column}.activity-row .btn{width:100%}.match-row,.order-row{grid-template-columns:1fr}.attempt-list>div{grid-template-columns:1fr 70px}.attempt-list .badge{grid-column:1/-1;width:max-content}.question-admin{align-items:flex-start;flex-direction:column}.question-admin form,.question-admin .btn{width:100%}.option-row{grid-template-columns:1fr}}
.answer-feedback-list{display:grid;gap:8px;margin-top:18px;text-align:left}.answer-feedback{padding:10px 12px;border-left:3px solid var(--border);background:#fafbfc;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.answer-feedback.correct{border-left-color:var(--success)}.answer-feedback.incorrect{border-left-color:var(--danger)}.answer-feedback p{margin:5px 0 0;color:var(--text-secondary);font-size:.82rem}

/* v0.7.0 — trabalhos, submissões, reentregas e avaliação */
.assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.assignment-card{padding:var(--space-5);display:grid;gap:14px}.assignment-card h2{font-size:1.15rem;margin:0}.assignment-card-top,.assignment-card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.assignment-card-meta{justify-content:flex-start;color:var(--text-secondary);font-size:.78rem}.assignment-card-meta>span{display:inline-flex;align-items:center;gap:6px}.assignment-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5)}.assignment-hero-meta{display:flex;flex-direction:column;align-items:flex-end;gap:10px;color:var(--text-secondary);font-size:.82rem}.assignment-layout,.evaluation-layout,.assignment-admin-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-5);align-items:start}.assignment-main,.evaluation-main,.assignment-admin-main{display:grid;gap:var(--space-4)}.assignment-side,.evaluation-side,.assignment-admin-side{display:grid;gap:var(--space-4)}.assignment-side .panel,.evaluation-side .panel,.assignment-admin-side .panel{padding:var(--space-5)}.submission-summary{padding:var(--space-5)}.submission-text{padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:12px 0}.submission-text p{margin:6px 0 0}.submission-assets{display:grid;gap:8px;margin-top:18px}.submission-assets h3{font-size:.9rem;margin-bottom:4px}.evaluation-feedback{margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.rubric-result-list{display:grid;gap:8px;margin-top:14px}.rubric-result-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.rubric-result-list>div:last-child{border-bottom:0}.rubric-result-list span small{display:block;color:var(--text-secondary);font-size:.72rem}.rubric-result-list p{grid-column:1/-1;margin:0;color:var(--text-secondary);font-size:.82rem}.submission-type-list{display:grid;gap:10px}.submission-type-list>div{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.submission-type-list>div:last-child{border-bottom:0}.submission-type-list span strong,.submission-type-list span small{display:block}.submission-type-list span small{color:var(--text-secondary);font-size:.72rem}.criteria-list{display:grid;gap:9px}.criteria-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.criteria-list>div:last-child{border-bottom:0}.checklist-box{border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;display:grid;gap:10px}.checklist-box legend{padding:0 6px;font-weight:800}.field-help{display:block;color:var(--text-secondary);font-size:.75rem;font-weight:500;margin-top:3px}.submission-history{margin-top:var(--space-4);padding:var(--space-5)}
.assignment-admin-layout{grid-template-columns:minmax(0,1fr) 280px}.assignment-admin-main>.panel{padding:var(--space-5)}.sticky-card{position:sticky;top:102px}.inline-checks{display:flex;gap:18px;flex-wrap:wrap}.submission-type-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.submission-type-editor>div{border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;background:#fbfcfe}.compact-check{margin-top:7px;color:var(--text-secondary);font-size:.75rem}.evaluation-criteria{display:grid;gap:12px}.evaluation-criteria fieldset{border:1px solid var(--border);border-radius:var(--radius-md);padding:16px}.evaluation-criteria legend{padding:0 6px}.evaluation-criteria legend span,.evaluation-criteria legend small{display:block}.evaluation-criteria legend span{font-weight:800}.evaluation-criteria legend small{font-size:.7rem;color:var(--text-secondary);font-weight:600}.checklist-review{margin-top:18px}.checklist-review>div{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--border)}.checklist-review>div:last-child{border-bottom:0}.checklist-review .icon{color:var(--success)}.submission-filters{grid-template-columns:1.5fr 1fr}.assignment-row{border-left:3px solid var(--novotecna-blue)}
.badge.warning{background:var(--warning-bg);color:var(--warning);border-color:#ead59d}
@media(max-width:1024px){.assignment-layout,.evaluation-layout,.assignment-admin-layout{grid-template-columns:1fr}.assignment-side,.evaluation-side{grid-template-columns:1fr 1fr}.sticky-card{position:static}.assignment-admin-side{order:-1}.assignment-admin-side .panel{display:flex;align-items:center;justify-content:space-between;gap:16px}.assignment-admin-side .btn-block{width:auto}.assignment-grid{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.assignment-grid{grid-template-columns:1fr}.assignment-hero{flex-direction:column}.assignment-hero-meta{align-items:flex-start}.assignment-side,.evaluation-side{grid-template-columns:1fr}.submission-type-editor{grid-template-columns:1fr}.assignment-admin-side .panel{display:grid}.assignment-admin-side .btn-block{width:100%}.submission-filters{grid-template-columns:1fr}}

/* v0.8.0 — avaliação global, conclusão e relatórios pedagógicos */
.assessment-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:var(--space-5);align-items:start}.assessment-main{min-width:0}.assessment-side{display:grid;gap:var(--space-4)}.assessment-table td small{display:block;color:var(--text-secondary);font-size:.72rem;margin-top:3px}.assessment-table td{vertical-align:middle}.assessment-table th{white-space:nowrap}.assessment-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:18px 0}.assessment-summary-grid>div{padding:15px;border:1px solid var(--border);border-radius:var(--radius-md);background:#fbfcfe;display:grid;gap:4px}.assessment-summary-grid span{font-size:.74rem;color:var(--text-secondary);font-weight:700}.assessment-summary-grid strong{font-size:1.35rem;color:var(--novotecna-blue)}.assessment-summary-grid small{font-size:.72rem;color:var(--text-secondary)}.assessment-summary-grid .assessment-final{background:var(--info-bg);border-color:#cfddff}.assessment-participant{margin-top:var(--space-5)}.completion-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.7fr) auto;gap:14px;align-items:end;margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.completion-form .check-row{grid-column:1/-1}.compact-list{margin:8px 0 0;padding-left:20px}.grade-distribution{margin-top:var(--space-5)}.distribution-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:18px}.distribution-item{display:grid;gap:8px}.distribution-item>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text-secondary);font-size:.82rem}.distribution-item strong{color:var(--text-primary);font-size:1rem}.assessment-stats .stat strong{font-size:1.85rem}.badge.info{background:var(--info-bg);color:var(--info);border-color:#cfddff}
@media(max-width:1100px){.assessment-layout{grid-template-columns:1fr}.assessment-side .sticky-card{position:static}.assessment-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.completion-form{grid-template-columns:1fr 1fr}.completion-form button{grid-column:1/-1;width:max-content}.distribution-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.assessment-summary-grid{grid-template-columns:1fr 1fr}.completion-form{grid-template-columns:1fr}.completion-form button{grid-column:auto;width:100%}.distribution-grid{grid-template-columns:1fr}.assessment-table{min-width:860px}.assessment-participant .section-head{align-items:flex-start}.assessment-participant .section-head .btn{width:100%}}
@media(max-width:430px){.assessment-summary-grid{grid-template-columns:1fr}}

/* v0.9.0 — preenchimento pedagógico do Módulo 1 */
.content-info{background:#f7f8ff;border-color:#dfe2f4;border-left:4px solid var(--novotecna-blue)}
.content-warning{background:#fff8f1;border-color:#f2dfcd;border-left:4px solid #b96a18}
.content-info .content-type,.content-warning .content-type{font-weight:700}
.content-info .content-copy,.content-warning .content-copy{color:var(--text-primary)}
.content-block h2{line-height:1.3}
.content-block .content-copy{white-space:normal}
.content-block .content-copy br+br{content:"";display:block;margin-top:.45rem}
.stage-activities{margin-top:var(--space-5)}
@media (max-width:640px){.content-info,.content-warning{border-left-width:3px}.content-block{padding:20px}.content-block h2{font-size:1.18rem}}

/* v0.9.1 — afinações de progressão, checkpoints e auditoria */
.learning-legend{display:grid;gap:12px;margin-bottom:var(--space-5);padding:18px 20px}.learning-legend>div:first-child{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.legend-badges{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap}.legend-copy{font-size:.82rem;color:var(--text-secondary);margin-right:8px}.badge.complementary{background:#f4f3ff;color:#5940a7;border-color:#ded8ff}.inline-success{display:inline-flex;align-items:center;min-height:40px;padding:8px 12px;border-radius:var(--radius-md);background:var(--success-bg);color:var(--success);font-weight:700;font-size:.88rem}.activity-result .result-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:20px}.activity-result-exhausted{border-left:4px solid var(--warning)}.warning-text{color:var(--warning)}.answer-comparison{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}.answer-comparison>div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px}.answer-comparison span{display:block;color:var(--text-secondary);font-size:.78rem;margin-bottom:4px}.answer-comparison strong{font-size:.9rem}.pagination{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:18px;padding:14px 0}.pagination-summary{color:var(--text-secondary);font-size:.86rem}.pagination-actions{display:flex;gap:8px}.stage-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.content-block:target,.activity-row:target{scroll-margin-top:110px;box-shadow:0 0 0 3px rgba(0,0,71,.10),var(--shadow-sm)}
@media(max-width:640px){.answer-comparison{grid-template-columns:1fr}.pagination{align-items:flex-start;flex-direction:column}.pagination-actions{width:100%}.pagination-actions .btn{flex:1}.learning-legend>div:first-child{display:grid;gap:2px}}

/* v0.9.3 — cabeçalho do formador, modo de teste e vídeos */
.preview-banner{margin-top:0;margin-bottom:var(--space-5)}
.trainer-topbar .topbar-inner{gap:12px}
.trainer-topbar .brand{flex:0 0 auto}
.trainer-topbar .brand img{width:150px}
.trainer-topbar .brand-course{display:none}
.trainer-topbar .topnav{flex:1;min-width:0;justify-content:flex-end;gap:12px}
.trainer-topbar .nav-links{min-width:0;gap:2px}
.trainer-topbar .nav-link{padding:0 9px;font-size:.84rem}
.trainer-topbar .account-area{flex:0 0 auto;gap:8px}
@media(max-width:1120px){
  .trainer-topbar .nav-link{width:40px;padding:0;justify-content:center}
  .trainer-topbar .nav-link span{display:none}
  .trainer-topbar .brand img{width:142px}
}
@media(max-width:760px){
  .trainer-topbar .brand img{width:132px}
  .trainer-topbar .nav-links{overflow-x:auto;max-width:calc(100vw - 230px);scrollbar-width:none}
  .trainer-topbar .nav-links::-webkit-scrollbar{display:none}
}

/* v0.9.5 — remodelação visual do ecrã de login */
.login-page{background:#0b1020}
.login-page .login-topbar{position:absolute;top:0;left:0;right:0;z-index:20;background:transparent;border-bottom:0;backdrop-filter:none}
.login-page .login-topbar .topbar-inner{max-width:none;padding:24px 36px;min-height:auto}
.login-page .login-topbar .brand{padding:10px 14px;border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 8px 28px rgba(3,8,30,.14)}
.login-page .login-topbar .brand img{width:176px}
.login-page .login-topbar .brand-course{border-left-color:#dfe3eb}
.login-page-main{max-width:none!important;padding:0!important;min-height:100vh;display:block}
.login-page .login-footer{position:absolute;z-index:25;bottom:0;left:0;right:0;background:transparent;border-top:0;pointer-events:none}
.login-page .login-footer .footer-inner{color:rgba(255,255,255,.72);justify-content:flex-start;max-width:none;padding:14px 36px;font-size:.76rem}
.login-page .login-footer a{color:#fff;pointer-events:auto}
.login-experience{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.22fr) minmax(470px,.78fr);background:#f7f8fb}
.login-visual{position:relative;min-height:100vh;background-image:url('/assets/img/login-code-background.jpg');background-size:cover;background-position:center;overflow:hidden}
.login-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(0,0,71,.90) 4%,rgba(0,0,71,.72) 45%,rgba(10,16,42,.38) 100%)}
.login-visual-overlay{position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 20% 68%,rgba(232,9,22,.16),transparent 28%),radial-gradient(circle at 78% 16%,rgba(77,120,255,.20),transparent 30%)}
.login-visual-content{position:absolute;z-index:2;left:clamp(42px,7vw,112px);right:clamp(38px,7vw,104px);bottom:clamp(82px,12vh,150px);max-width:680px;color:#fff}
.login-kicker{display:inline-block;margin-bottom:18px;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;padding:8px 11px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(255,255,255,.08);backdrop-filter:blur(8px)}
.login-visual-content h2{color:#fff;font-size:clamp(2.45rem,4.4vw,4.4rem);line-height:1.02;letter-spacing:-.045em;margin-bottom:22px;max-width:760px}
.login-visual-content p{max-width:610px;font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.7;color:rgba(255,255,255,.84);margin-bottom:26px}
.login-visual-tags{display:flex;gap:9px;flex-wrap:wrap}.login-visual-tags span{font-size:.78rem;font-weight:700;color:#fff;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);padding:7px 10px;border-radius:999px}
.login-panel{display:grid;place-items:center;padding:120px clamp(34px,4vw,72px) 80px;background:linear-gradient(180deg,#fff 0%,#f7f8fb 100%)}
.login-panel-inner{width:min(460px,100%)}
.login-brand-mobile{display:none}
.login-card-premium{width:100%;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}
.login-card-premium .login-mark{width:48px;height:48px;margin-bottom:24px;border-radius:14px;background:#edf1ff;color:var(--novotecna-blue)}
.login-card-premium .eyebrow{font-size:.72rem;margin-bottom:9px}
.login-card-premium h1{font-size:clamp(2.15rem,3vw,2.85rem);margin-bottom:10px;color:#111827}
.login-card-premium .login-lead{font-size:1rem;line-height:1.65;color:#667085;margin-bottom:28px;max-width:390px}
.login-form{gap:18px}.login-form label{font-size:.84rem;color:#344054;font-weight:700}.login-form input{margin-top:7px;min-height:50px;border-radius:12px;border-color:#d6dce7;background:#fff;padding:0 15px;box-shadow:0 1px 2px rgba(16,24,40,.02);transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)}
.login-form input::placeholder{color:#a2aabd;font-weight:400}.login-form input:hover{border-color:#b8c1d1}.login-form input:focus{border-color:#7373bb;box-shadow:0 0 0 4px rgba(0,0,71,.08);outline:0}
.login-submit{min-height:50px;border-radius:12px;margin-top:2px;box-shadow:0 10px 22px rgba(0,0,71,.18)}
.login-help{margin-top:-4px;text-align:center;font-size:.82rem}.login-help a{display:inline-block;padding:4px;color:var(--novotecna-blue);font-weight:750}
.login-support-note{display:flex;align-items:flex-start;gap:9px;margin-top:30px;padding-top:22px;border-top:1px solid #e5e9f0;color:#667085}.login-support-note>span{display:grid;place-items:center;color:var(--success);padding-top:2px}.login-support-note p{font-size:.79rem;line-height:1.55;margin:0}

@media(max-width:1050px){
  .login-experience{grid-template-columns:minmax(0,1fr) minmax(430px,.9fr)}
  .login-visual-content{left:44px;right:44px}.login-visual-content h2{font-size:clamp(2.2rem,4vw,3.4rem)}
  .login-page .login-topbar .brand-course{display:none}
}
@media(max-width:820px){
  .login-page .login-topbar{display:none}
  .login-page .login-footer{position:static;background:#0b1020}.login-page .login-footer .footer-inner{justify-content:center;padding:16px}
  .login-experience{display:block;min-height:100vh;background:#0b1020;position:relative;padding:20px}
  .login-visual{position:absolute;inset:0;min-height:100%;background-position:58% center}
  .login-visual::after{background:linear-gradient(180deg,rgba(0,0,71,.78),rgba(7,12,34,.88))}
  .login-visual-content{display:none}
  .login-panel{position:relative;z-index:5;min-height:calc(100vh - 40px);padding:26px 0;display:flex;align-items:center;background:transparent}
  .login-panel-inner{width:min(520px,calc(100% - 24px));margin:auto}
  .login-brand-mobile{display:flex;align-items:center;gap:13px;padding:14px 16px;margin-bottom:18px;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 14px 32px rgba(0,0,0,.16)}
  .login-brand-mobile img{width:150px}.login-brand-mobile>div{padding-left:13px;border-left:1px solid #e0e4eb;min-width:0}.login-brand-mobile strong,.login-brand-mobile span{display:block}.login-brand-mobile strong{color:var(--novotecna-blue);font-size:.9rem}.login-brand-mobile span{color:#667085;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .login-card-premium{padding:28px;border-radius:18px;background:rgba(255,255,255,.98);box-shadow:0 22px 60px rgba(0,0,0,.23)}
  .login-card-premium .login-mark{margin-bottom:18px}.login-card-premium .login-lead{margin-bottom:22px}
}
@media(max-width:480px){
  .login-experience{padding:12px}.login-panel{min-height:calc(100vh - 24px)}.login-panel-inner{width:100%}
  .login-brand-mobile{padding:11px 13px;margin-bottom:12px}.login-brand-mobile img{width:126px}.login-brand-mobile span{font-size:.66rem}
  .login-card-premium{padding:24px 20px}.login-card-premium h1{font-size:2rem}.login-card-premium .login-lead{font-size:.92rem}.login-card-premium .login-mark{width:43px;height:43px}
  .login-form input,.login-submit{min-height:48px}
}
@media(prefers-reduced-motion:reduce){.login-form input,.login-submit{transition:none}}

/* v0.9.10 — horário de acesso dos formandos */
.availability-status-panel{margin-bottom:var(--space-5)}
.availability-next{margin:16px 0 0;padding:12px 14px;border-radius:var(--radius-md);background:var(--warning-bg,#fff7e6);color:#7a4c00}
.availability-form{display:grid;gap:0;padding:0;overflow:hidden}
.availability-form .form-section{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:32px;padding:28px 30px;border-bottom:1px solid var(--border);align-items:start}
.availability-form .form-section h2{font-size:1.08rem;margin-bottom:6px}
.availability-form .form-section>div:first-child p{margin:0}
.toggle-row{display:flex;align-items:center;gap:12px;min-height:44px;font-weight:750;color:var(--text-primary)}
.toggle-row input{width:20px;height:20px;accent-color:var(--novotecna-blue)}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.choice-card{display:flex;gap:11px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;cursor:pointer;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)}
.choice-card:hover{border-color:#bfc5d8;box-shadow:var(--shadow-xs)}
.choice-card:has(input:checked){border-color:#9ea5d8;background:#f8f8ff;box-shadow:0 0 0 3px rgba(0,0,71,.05)}
.choice-card input{margin-top:3px;accent-color:var(--novotecna-blue)}
.choice-card strong,.choice-card small{display:block}.choice-card strong{font-size:.9rem}.choice-card small{color:var(--text-secondary);font-size:.78rem;line-height:1.45;margin-top:5px}
.availability-week{display:grid;gap:10px}.availability-day{display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px;align-items:center}.availability-day>span{font-size:.84rem;font-weight:750;color:#344054}.availability-day input{min-height:44px}.field-help{font-size:.78rem;color:var(--text-secondary);margin:12px 0 0}.availability-form textarea{width:100%;resize:vertical;min-height:96px}.availability-form .form-actions{padding:20px 30px;display:flex;justify-content:flex-end;background:#fafbfc}.availability-help{margin-top:var(--space-5);display:flex;gap:16px;align-items:flex-start}.availability-help .panel-icon{flex:0 0 auto}
.unavailable-page{background:#f4f6fa}.unavailable-page .student-topbar .topbar-inner{justify-content:center}.unavailable-page .brand{pointer-events:none}.unavailable-page .page{min-height:calc(100vh - 150px);display:grid;place-items:center}.unavailable-screen{width:100%;display:grid;place-items:center;padding:40px 0}.unavailable-card{width:min(620px,100%);text-align:center;background:#fff;border:1px solid var(--border);border-radius:20px;padding:clamp(28px,5vw,52px);box-shadow:var(--shadow-md)}.unavailable-icon{width:64px;height:64px;margin:0 auto 20px;border-radius:18px;display:grid;place-items:center;background:#eef1ff;color:var(--novotecna-blue)}.unavailable-icon .icon{width:31px;height:31px}.unavailable-card h1{font-size:clamp(1.8rem,4vw,2.55rem);margin:8px 0 14px}.unavailable-message{font-size:1rem;line-height:1.65;color:var(--text-secondary);max-width:500px;margin:0 auto}.reopen-box{margin:26px auto 18px;padding:18px 20px;border-radius:14px;background:#f7f8fc;border:1px solid #e0e4ef;max-width:470px}.reopen-box span,.reopen-box strong,.reopen-box small{display:block}.reopen-box span{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);font-weight:800}.reopen-box strong{font-size:1.18rem;color:var(--novotecna-blue);margin-top:6px}.reopen-box small{color:var(--text-secondary);margin-top:6px}.unavailable-note{font-size:.83rem;max-width:500px;margin:0 auto}.unavailable-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:24px}.unavailable-actions form{margin:0}
@media(max-width:760px){.availability-form .form-section{grid-template-columns:1fr;gap:18px;padding:22px}.choice-grid{grid-template-columns:1fr}.availability-form .form-actions{padding:18px 22px}.availability-day{grid-template-columns:1fr;gap:6px}.unavailable-page .page{padding-left:16px;padding-right:16px}.unavailable-screen{padding:24px 0}}
.badge.locked{background:#f2f4f7;color:#667085;border-color:#e4e7ec}

/* v0.9.14 — Prova final */
.exam-hero,.exam-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.exam-total,.exam-progress-label{min-width:120px;text-align:center;background:var(--surface,#fff);border:1px solid #e5e7eb;border-radius:14px;padding:16px;box-shadow:0 4px 14px rgba(0,0,0,.04)}.exam-total span,.exam-total small,.exam-progress-label span{display:block;color:#667085;font-size:13px}.exam-total strong,.exam-progress-label strong{display:block;color:var(--novotecna-blue,#000047);font-size:28px;line-height:1.1}.exam-locked-card,.exam-ready-card,.exam-submitted-card,.student-exam-card{display:flex;align-items:center;gap:20px}.exam-ready-card>div:nth-child(2),.exam-submitted-card>div:nth-child(2),.student-exam-card>div:nth-child(2){flex:1}.exam-structure-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px}.exam-structure-grid>div{border:1px solid #e5e7eb;border-radius:10px;padding:16px;background:#fafbfc}.exam-structure-grid strong,.exam-structure-grid span,.exam-structure-grid small{display:block}.exam-structure-grid span{margin-top:6px;font-weight:600}.exam-structure-grid small{margin-top:4px;color:#667085}.exam-block-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 28px}.exam-block-progress span{display:flex;align-items:center;gap:9px;border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;background:#fff;color:#667085}.exam-block-progress span.active{border-color:var(--novotecna-blue,#000047);color:var(--novotecna-blue,#000047);box-shadow:0 0 0 2px rgba(0,0,71,.06)}.exam-block-progress span.done{background:#f5f7ff;color:#344054}.exam-block-progress b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#eef0f4}.exam-block-progress small{font-size:12px}.exam-form{display:grid;gap:18px}.exam-question{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:22px;box-shadow:0 3px 12px rgba(0,0,0,.035)}.exam-question-head{display:flex;justify-content:space-between;gap:16px;color:#667085;font-size:13px;margin-bottom:12px}.exam-question-text{font-size:16px;line-height:1.65;font-weight:600;color:#202124}.exam-options{display:grid;gap:10px;margin-top:16px}.exam-options-inline{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-option{display:flex;gap:12px;align-items:flex-start;border:1px solid #e3e7ee;border-radius:10px;padding:13px 14px;cursor:pointer;background:#fff;transition:border-color .15s,background .15s}.exam-option:hover{border-color:#b9c0cb;background:#fafbfc}.exam-option input{margin-top:3px;accent-color:var(--novotecna-blue,#000047)}.matching-reference{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin-top:16px;padding:14px;border-radius:10px;background:#f7f8fa}.matching-reference>strong{grid-column:1/-1}.matching-reference span{font-size:14px}.matching-grid{display:grid;gap:10px;margin-top:14px}.matching-grid label{display:grid;grid-template-columns:minmax(160px,.8fr) 1.2fr;gap:16px;align-items:center}.matching-grid select,.exam-development,.grade-form input,.grade-form textarea{width:100%;border:1px solid #d7dce3;border-radius:8px;padding:11px 12px;background:#fff;font:inherit}.exam-development{margin-top:14px;min-height:280px;resize:vertical}.exam-development-note{display:flex;gap:12px;margin-top:16px;padding:13px 14px;border-radius:10px;background:#f6f7fb;font-size:14px}.exam-actions{display:flex;justify-content:space-between;gap:12px;position:sticky;bottom:12px;background:rgba(245,246,248,.94);backdrop-filter:blur(8px);padding:12px;border-radius:12px;border:1px solid #e4e7ec;z-index:3}.exam-table td small{display:block;color:#667085;margin-top:3px}.table-actions{display:flex;gap:8px;flex-wrap:wrap}.table-actions form{margin:0}.correction-question{border:1px solid #e5e7eb;border-left:4px solid #98a2b3;border-radius:10px;padding:16px;margin-top:14px}.correction-question.correct{border-left-color:#17803d;background:#fbfffc}.correction-question.incorrect{border-left-color:#b42318;background:#fffafa}.correction-question p{margin:0 0 12px}.correction-answer{display:flex;gap:12px;align-items:flex-start;padding:8px 0;border-top:1px dashed #e1e4e8}.correction-answer span{min-width:150px;color:#667085;font-size:13px}.correction-answer.expected strong{color:#175cd3}.development-response{margin:18px 0;padding:16px;border-radius:10px;background:#f8f9fb}.development-response>span{display:block;color:#667085;font-size:13px;margin-bottom:8px}.development-response>div{white-space:normal;line-height:1.65}.rubric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.rubric-grid>div{border:1px solid #e5e7eb;border-radius:10px;padding:14px}.rubric-grid strong{display:flex;justify-content:space-between;gap:10px}.rubric-grid strong span{font-weight:500;color:#667085}.rubric-grid p{margin:7px 0 0;color:#667085;font-size:14px}.grade-form{display:grid;gap:14px;margin-top:20px}.grade-form label>span{display:block;font-weight:600;margin-bottom:6px}.grade-form input{max-width:180px}.exam-score-stats{margin-bottom:24px}.student-exam-card.locked{opacity:.88}
@media(max-width:900px){.exam-structure-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-block-progress{grid-template-columns:repeat(2,1fr)}.rubric-grid{grid-template-columns:1fr}}
@media(max-width:640px){.exam-hero,.exam-topline,.exam-ready-card,.exam-submitted-card,.exam-locked-card,.student-exam-card{flex-direction:column;align-items:stretch}.exam-total,.exam-progress-label{min-width:0;text-align:left}.exam-structure-grid,.exam-block-progress,.exam-options-inline{grid-template-columns:1fr}.matching-reference{grid-template-columns:1fr}.matching-reference>strong{grid-column:auto}.matching-grid label{grid-template-columns:1fr;gap:6px}.exam-actions{position:static;flex-direction:column-reverse}.exam-actions .btn{width:100%}.correction-answer{display:block}.correction-answer span{display:block;margin-bottom:4px}.table-actions{min-width:140px}}

/* v0.9.15 — gestão avançada da prova final */
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.exam-admin-actions .section-inline{align-items:center}.trainer-exam-edit{gap:22px}.exam-edit-block{display:grid;gap:16px}.exam-edit-block .exam-question{box-shadow:none}.select-col{width:42px;text-align:center}.select-col input,.exam-table td:first-child input{width:18px;height:18px;accent-color:var(--novotecna-blue,#000047)}.inline-form{display:inline}.sticky-actions{margin-top:8px}.alert.warning{border-left:4px solid #b54708;background:#fffaf0}.report-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:0;padding-top:0;border-top:0}
@media(max-width:640px){.hero-actions{width:100%}.hero-actions .btn{flex:1}.exam-admin-actions .section-inline{align-items:stretch}.report-actions{width:100%}.report-actions .btn{flex:1}}
