/* Shared student journeys. Editors keep their own formatting and layout. */
.auth-submit:disabled {opacity:.5;cursor:not-allowed}
.student-password-toggle {display:block;padding:8px 0;min-height:40px;background:none;border:0;font-size:12px;color:var(--accent);cursor:pointer;margin-left:auto}
.student-password-toggle:hover {text-decoration:underline;text-underline-offset:3px}
.student-promo-swatch {position:relative;padding:5px}
.student-promo-swatch input {position:absolute;width:1px;height:1px;opacity:0}
.student-promo-swatch input:focus-visible+span {outline:3px solid var(--accent);outline-offset:3px}
.campus-pricing .hero {text-align:left;padding:24px 0;margin-bottom:16px}
.campus-pricing .hero h1 {font-size:32px;margin:0 0 12px}
.campus-pricing .hero p {font-size:14px;margin:0;max-width:60ch}
.student-skip {position:fixed;top:10px;left:15px;transform:translateY(-160%);z-index:1000;padding:12px 18px;border-radius:10px;background:var(--accent);color:var(--surface)}
.student-skip:focus {transform:none}
.student-dialog {width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:24px;border:1px solid var(--rule);border-radius:18px;background:var(--surface);color:var(--ink);overflow:auto;box-shadow:var(--shadow-lift)}
.student-dialog::backdrop {background:#17251f88}
.student-dialog-head {display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
.student-dialog h2 {font:26px/1.25 var(--font-heading);margin:0}
.student-dialog-close {width:44px;height:44px;border:1px solid var(--rule);border-radius:12px;background:var(--paper);color:var(--ink);cursor:pointer;flex-shrink:0}
.student-dialog p {color:var(--ink-3);font-size:14px;line-height:1.65}
.student-dialog label {display:grid;gap:8px;font-size:13px;margin:18px 0}
.student-dialog select {width:100%;padding:12px;border:1px solid var(--rule);border-radius:10px;background:var(--surface);color:var(--ink)}
.student-dialog .btn-primary {display:inline-flex;align-items:center;justify-content:center;min-height:44px;width:100%;margin-top:12px}
.student-dialog a {color:var(--accent)}
.student-optional {border:1px solid var(--rule);border-radius:13px;padding:0;background:var(--surface);margin:18px 0;color:var(--ink)}
.student-optional>summary {padding:15px 18px;cursor:pointer;font-size:13px;font-weight:600;line-height:1.6}
.student-optional>summary small {font-weight:400;color:var(--ink-3);margin-left:8px}
.student-optional[open]>summary {border-bottom:1px solid var(--rule-soft)}
.student-optional-body {padding:18px;display:grid;gap:20px;min-width:0}
.student-optional .nav-mode-bar {border:0;margin:0;padding:16px;border-radius:0 0 13px 13px}
.student-empty {padding:28px;text-align:center;border:1px solid var(--rule);border-radius:16px;background:var(--surface);line-height:1.7}
.student-empty p {color:var(--ink-3);margin:0 auto 18px;max-width:46ch}
.student-empty .btn-primary {display:inline-flex;align-items:center;gap:12px;justify-content:center;min-height:44px}
.student-result {font-size:12px;color:var(--ink-3);margin:12px 0}
.student-course-search {margin:24px 0 18px;max-width:480px}
.student-secondary-section {margin-top:32px}
.student-course-basics {max-width:760px}
.rosko-frame .student-course-form {display:block;max-width:760px;margin-inline:auto}
.student-course-form .course-form-section {padding:24px;gap:20px}
.student-course-form .course-form-actions {border:0;padding:18px 0 6px}
.student-course-form .course-form-actions .course-form-submit {background:var(--accent);color:var(--surface)}
.student-course-form .student-optional {margin:0}
.student-course-form .course-form-help {line-height:1.6}
.rosko-frame .sharing-button.quiet {background:transparent;color:var(--bad);border:1px solid var(--rule)}
.rosko-frame .sharing-button.quiet:hover {background:var(--bad-bg);border-color:var(--bad)}
.rosko-workspace .student-works-form {margin-top:18px;padding:22px;background:var(--surface);border:1px solid var(--rule);border-radius:16px}
.student-works-header {display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.student-works-header .page-title {margin-bottom:0}
.rosko-workspace .student-work-row {border-radius:14px!important;flex-wrap:wrap}
.student-work-row>div:first-child {flex:1;min-width:0}
.student-work-actions {display:flex;align-items:center;gap:8px;margin-left:auto}
.student-work-remove {display:grid;place-items:center;width:36px;height:40px;color:var(--ink-3);border:0;background:none;cursor:pointer}
.student-work-remove:hover {color:var(--bad);background:var(--bad-bg);border-radius:9px}
.rosko-workspace .student-exam .exam-grid {grid-template-columns:1fr 1fr;gap:16px}
.student-exam .exam-card {padding:20px}
.student-exam .exam-card-title {font:19px/1.4 var(--font-heading)}
.student-exam .scope-select {padding:12px;width:100%;border:1px solid var(--rule);border-radius:10px;background:var(--surface);color:var(--ink);font-size:14px}
.student-exam .scope-description {font-size:12px;color:var(--ink-3);line-height:1.6;margin:10px 0 0}
.student-exam .exam-summary {flex-wrap:wrap;gap:16px;border-radius:14px;margin-top:18px}
.student-exam .student-optional .exam-card {border:0;border-radius:0;background:none}
.student-exam .student-optional .exam-card+.exam-card {border-top:1px solid var(--rule-soft)}
.student-exam .exam-summary .btn-generate {min-height:44px}
.student-exam-empty :is(.exam-grid,.student-optional,.exam-summary-block,.exam-summary-rule,.btn-generate) {display:none}
.rosko-workspace :is(.nav-mode-label,.field-label,.notes-search,.notes-sort,.note-status) {font-family:inherit}
.rosko-workspace .nav-mode-label {font-size:11px;letter-spacing:0;text-transform:none}
.rosko-workspace .nav-mode-seg {border-radius:9px;overflow:hidden}
.rosko-workspace .nav-mode-opt {min-height:40px;font-size:12px}
.rosko-workspace :is(.field-label,.create-notion-label) {font-size:12px;letter-spacing:0;text-transform:none}
.rosko-workspace :is(.field-input,.field-select) {font-family:inherit;border-radius:9px;min-height:42px}
.rosko-workspace .course-compact-shell .course-spaces {flex-wrap:nowrap}
.rosko-workspace .course-compact-shell .course-shortcuts button {min-height:36px}
.rosko-workspace .course-compact-shell .course-switch-menu {max-width:calc(100vw - 32px)}
.rosko-workspace .chat-fab {width:44px;height:44px;right:18px;bottom:18px;border-radius:15px}
.rosko-frame .campus-page-head {margin-bottom:22px}
.rosko-frame .campus-page-head h1 {margin-top:0}
.rosko-frame .campus-eyebrow {font-size:10px}
.rosko-frame .campus-page-head p:not(.campus-eyebrow) {margin-top:6px;font-size:14px}
.rosko-frame .home-head {margin-bottom:22px}
.rosko-frame .campus-document {min-width:0}
.rosko-frame .campus-document strong {overflow-wrap:anywhere}
.rosko-frame .campus-tabs a,.rosko-frame .sharing-tabs a {min-height:40px;display:inline-flex;align-items:center}
.rosko-workspace .notes-search {font-family:inherit;border-radius:9px}
@media(max-width:900px) {
  .rosko-workspace .chat-fab {bottom:calc(var(--campus-bottom) + 14px);right:12px}
}
@media(max-width:760px) {
  .rosko-workspace .course-compact-shell .study-activity-row {padding:5px 8px}
  .rosko-workspace .course-compact-shell .study-sources-button {display:none}
  .rosko-workspace .course-compact-shell .course-spaces {width:100%;gap:0;overflow:visible;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
  .rosko-workspace .course-compact-shell .course-spaces button {padding:10px 3px!important;font-size:11px!important;min-height:42px;min-width:0}
  .rosko-workspace .course-compact-shell .topbar .nav-toggle {display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0}
  .rosko-workspace .course-compact-shell .topbar-home {display:none}
  .rosko-workspace .course-compact-shell .course-switch-heading {font-size:16px}
  .rosko-workspace .course-compact-shell .course-switch-name {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:normal}
  .rosko-workspace .course-compact-shell .course-shortcuts {padding:7px 14px 0}
  .rosko-workspace .course-compact-shell .view-main {padding:20px 16px 82px}
  .rosko-workspace .page-title {font-size:27px;margin-top:8px;margin-bottom:10px}
  .rosko-workspace .page-subtitle {font-size:13px;line-height:1.6;margin-bottom:18px}
  .rosko-workspace .page-eyebrow {font-size:10px}
  .rosko-frame .app-header {padding:10px 18px;min-height:60px}
  .rosko-frame .app-shell {grid-template-rows:60px minmax(0,1fr)}
  .rosko-frame .app-main {padding-top:24px}
  .rosko-frame .campus-page-head {gap:14px;margin-bottom:20px}
  .rosko-frame .campus-page-head .campus-eyebrow {display:none}
  .rosko-frame .campus-page-head h1,.rosko-frame .courses-title,.rosko-frame .home-title {font-size:29px}
  .rosko-frame .campus-page-head p,.rosko-frame .home-sub {font-size:13px}
  .rosko-frame .campus-document-grid {grid-template-columns:1fr;gap:10px}
  .rosko-frame .campus-document {padding:16px;display:grid;grid-template-columns:40px minmax(0,1fr);gap:5px 12px;align-items:start}
  .rosko-frame .campus-document .campus-file-icon {grid-row:1 / 4;margin:0;width:40px;height:45px;font-size:22px}
  .rosko-frame .campus-document>strong,.rosko-frame .campus-document>span:not(.campus-file-icon),.rosko-frame .campus-document>small {grid-column:2;margin:0}
  .rosko-frame .campus-document strong {font-size:14px}
  .rosko-frame .campus-document>small {font-size:11px}
  .student-exam .exam-grid {grid-template-columns:minmax(0,1fr)!important}
  .student-exam .exam-card {padding:16px}
  .student-exam .exam-card-eyebrow {display:none}
  .student-exam .exam-card-title {font-size:18px;margin:0 0 10px}
  .student-exam .points-num {font-size:25px}
  .student-exam .points-cell {padding:10px 6px}
  .student-exam .student-optional {margin:12px 0}
  .student-exam .student-optional summary small {display:none}
  .student-exam .exam-summary .btn-generate {width:100%}
  .student-exam .exam-summary-rule {display:none}
  .student-exam .exam-summary-label {font-family:inherit;letter-spacing:0}
  .student-exam .exam-summary-value {font-size:13px}
  .student-empty {padding:24px 18px}
  .student-course-form .course-form-section {padding:20px 16px}
  .student-dialog {padding:20px}
}
/* Safari iOS zoome sur tout champ sous 16 px : aussi sur connexion/inscription/tarifs, et en paysage. */
@media(max-width:760px),(pointer:coarse) and (max-height:500px) {
  :is(input,textarea,select):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]) {font-size:16px!important}
}
@media(prefers-reduced-motion:reduce) {
  .rosko-frame :is(button,a,details),.rosko-frame .campus-rail {scroll-behavior:auto;transition:none}
}
@media(max-width:360px) {
  .rosko-workspace .course-compact-shell .course-spaces button {font-size:10px!important;padding:10px 1px!important}
}
.student-language-button {border:1px solid var(--rule,var(--rule));border-radius:8px;color:var(--ink,var(--paper-2));background:var(--surface,#fff);font:inherit;padding:8px 12px;cursor:pointer;min-height:40px}
.student-dialog .student-language-button {margin-top:12px;width:100%}
html:not([lang=fr]) .course-spaces button {letter-spacing:0}
