@charset "UTF-8";
/* Palette et typographie de siteperso_init/css/connexion.css et stylePagePartials.css.
   Le motif provient de connected.css ; les composants suivent la mise en page actuelle. */
:root {
  --ink: #2e3e3b;
  --muted: #596461;
  --blue: #354f49;
  --navy: #293735;
  --border: #c2c0c0;
  --paper: #d3d3d3;
  --rose: #d3bbc0;
  --lavenderblush: #fff0f5;
  --radius: 6px;
}
body { font-family: Palatino, "Palatino Linotype", "Book Antiqua", serif; font-size: 16px; letter-spacing: .03em; }
body.connected {
  background:
    linear-gradient(135deg, #708090 21px, #d9ecff 22px, #d9ecff 24px, transparent 24px, transparent 67px, #d9ecff 67px, #d9ecff 69px, transparent 69px),
    linear-gradient(225deg, #708090 21px, #d9ecff 22px, #d9ecff 24px, transparent 24px, transparent 67px, #d9ecff 67px, #d9ecff 69px, transparent 69px) 0 64px;
  background-color: #708090;
  background-size: 64px 128px;
}
.shell { background: var(--paper); }
.connected .shell { margin: 0 16px; }
.topbar { background: var(--paper); border-bottom: 1px solid #aaa; }
.brand-mark { background: var(--navy); color: var(--rose); border-radius: 5px; }
.sidebar { background: var(--navy); color: #ece4e6; }
.sidebar a, .nav-button { display: flex; gap: 11px; align-items: center; color: #f4eef0; border-radius: 5px; }
.sidebar a:hover, .nav-button:hover { background: #3d4e4a; color: var(--lavenderblush); }
.sidebar .nav-active { background: #44534f; color: white; box-shadow: inset 3px 0 var(--rose); }
.nav-caption { color: var(--rose); }
.sidebar-note { color: #c8cfcc; border-color: #596763; }
.card, .stat, .dialog { border-radius: var(--radius); box-shadow: 0 3px 10px #2937350a; }
.card h2, .dialog h2 { padding-bottom: 12px; border-bottom: 1px solid #e2dddd; }
.section-head h2, .course-card h2 { padding-bottom: 0; border: 0; }
.badge, .pill { background: #eee2e6; color: #49373c; border-radius: 5px; }
.badge.success { background: #e6f3e9; color: #245936; }
.badge.warning { background: #fff0cf; color: #74500c; }
.badge.rejected { background: #fce1e4; color: #8f2835; }
.eyebrow { color: #485c56; }
input, select, textarea { border-color: #b9bfbc; border-radius: 4px; letter-spacing: .02em; }
input:focus, select:focus, textarea:focus { outline: 3px solid #d3bbc080; border-color: #766267; }
button, .button { border-radius: 4px; background: var(--navy); color: white; }
button:hover, .button:hover { background: #3c4c47; color: var(--lavenderblush); }
.secondary { background: #f5f1f2; color: var(--ink); border-color: #b9adad; }
.secondary:hover { background: #e6d9dd; color: var(--navy); }
.danger { background: #fff0f2; color: #942e3b; border-color: #e6b8c0; }
.danger:hover { background: #f5d5dc; color: #792632; }
.link, .link:hover { background: transparent; }
.filter-tabs .tab-active { background: var(--navy); color: white; }
.stat-button { background: white; color: var(--ink); }
.stat-button:hover { background: var(--lavenderblush); border-color: #bba1a8; color: var(--ink); }
.bulk-actions { background: #f5ecef; border-color: #d3bbc0; }
th { background: #eef0ef; color: #4c5853; }
tbody tr:hover, .selected-row { background: #fff5f7; }
.notice, .notice.info { background: #f5edf0; border-color: #cdb8be; color: #3b4c45; }
.notice.warning { background: #fff3dc; border-color: #dac397; color: #6b4d18; }
.notice.success { background: #ecf8f2; border-color: #bce2ce; color: #206b47; }
.notice.error { background: #fff0f0; border-color: #efcaca; color: #a23535; }
.chapter-list a:hover { background: #f7eef1; }
.chapter-list a[aria-current] { background: #eee2e6; color: var(--navy); }
.chapter-list a>span:first-child { color: #596461; }
.course-list-item.selected { background: #f7eef1; }
.course-start-hero { background: #edf1ee; border-color: #aebfb8; }
.course-code { background: var(--navy); }
.auth-aside .pill { background: var(--navy); color: var(--rose); }
.auth-aside h2 { color: var(--navy); }
form>fieldset { padding: 20px; margin: 0 0 22px; border: 1px solid var(--border); border-radius: var(--radius); min-width: 0; }
form>fieldset legend { padding: 0 8px; font-size: 15px; font-weight: 650; }
.ui-icon { display: inline-block; flex: 0 0 auto; width: 1.1em; height: 1.1em; vertical-align: -.15em; margin-right: .3em; }
.sidebar .ui-icon, .nav-button .ui-icon { width: 18px; height: 18px; margin: 0; }
.title-emoji { font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif; font-size: .92em; font-weight: 400; letter-spacing: normal; }
.site-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; padding: 22px 25px; background: var(--navy); border-top: 3px solid var(--rose); border-radius: 5px; color: #d9dfdc; }
.site-footer strong { color: white; font-size: 15px; }
.site-footer a { color: #f2dfe5; margin-left: auto; }
.site-footer a:hover { color: white; text-decoration: underline; }
a:focus-visible, button:focus-visible, .stat-button:focus-visible, .table-scroll:focus-visible { outline: 3px solid #9e7a84; outline-offset: 3px; }
.skip-link { border-color: var(--navy); }
#class-members { scroll-margin-top: 100px; }
.unassigned-students { max-height: 380px; margin-bottom: 20px; }
.unassigned-students th { position: sticky; top: 0; z-index: 1; }
.unassigned-students td:first-child { min-width: 75px; }
.unassigned-students label { margin: 0; cursor: pointer; }
.member-selection-tools { display: flex; flex-wrap: wrap; gap: 10px 25px; align-items: baseline; }
.member-intro { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-bottom: 16px; }
.member-intro p { flex: 1 1 450px; margin: 0; }
.member-intro form { margin: 0; }
.member-search { max-width: 540px; }
.notification-tabs { margin-top: 10px; }
.tracking-scroll { max-height: 75vh; isolation: isolate; }
.tracking-matrix { width: max-content; min-width: 100%; }
.tracking-matrix th,.tracking-matrix td { min-width: 180px; max-width: 270px; white-space: normal; overflow-wrap: anywhere; vertical-align: top; }
.tracking-matrix thead th { text-transform: none; letter-spacing: normal; font-size: 13px; background: #e5edea; }
.tracking-matrix .student-column { position: sticky; left: 0; z-index: 2; min-width: 235px; background: #faf8f8; box-shadow: 2px 0 0 var(--border); }
.tracking-matrix thead .student-column { z-index: 3; background: #e5edea; }
.tracking-matrix small { display: block; margin-top: 8px; }
.tracking-matrix tbody th { text-transform: none; letter-spacing: normal; font-size: 13px; font-weight: 400; }
.tracking-matrix .actions { margin-top: 12px; font-size: 12px; }
.class-path { overflow-wrap: anywhere; }
.folder-confirmation { border: 2px solid #aa5656; }
.associate-form { display: flex; gap: 10px; flex-wrap: wrap; align-items: end; }
.associate-form label { min-width: 200px; margin-bottom: 0; flex: 1; }
.mail-limit-settings summary { cursor: pointer; font-weight: 700; }
.mail-limit-settings form { margin-top: 18px; margin-bottom: 18px; }
.mail-unblock-form { margin-top: 10px; }
.notification-paths summary { cursor: pointer; font-weight: 700; }
.notification-paths dl { grid-template-columns: minmax(110px, 180px) minmax(0, 1fr); }
.notification-paths code, .notification-key code { overflow-wrap: anywhere; }
.notification-fields { margin-bottom: 22px; }
.notification-setting { min-width: 0; }
.notification-setting label { margin-bottom: 6px; }
.notification-setting .notification-help, .notification-key { margin: 6px 0; font-size: 12px; overflow-wrap: anywhere; }
.notification-key { color: var(--muted); }
.notification-presets { padding: 16px; border: 1px solid var(--border); border-radius: 8px; margin-bottom: 24px; }
.notification-presets p:last-child { margin-bottom: 0; }
.member-selection-tools button { margin-bottom: 17px; }
.table-scroll { position: relative; max-width: 100%; }
/* Catalogue Styles : charte, lecteur et modèles de code fournis. */
.styles-tabs { margin-bottom: 24px; }
.styles-swatches { display: grid; grid-template-columns: repeat(auto-fit,minmax(130px,1fr)); gap: 16px; margin: 24px 0; }
.styles-swatch { min-width: 0; }
.styles-swatch>span { display: block; height: 65px; border: 1px solid var(--border); border-radius: 5px; margin-bottom: 8px; }
.styles-swatch strong,.styles-swatch code { display: block; font-size: 13px; }
.swatch-paper { background: var(--paper); }.swatch-navy { background: var(--navy); }.swatch-rose { background: var(--rose); }.swatch-ink { background: var(--ink); }.swatch-muted { background: var(--muted); }
.styles-site-preview { margin-bottom: 8px; }
.styles-site-preview .styles-site-title { font-family: var(--site-title-font, inherit); font-size: 26px; }
.styles-site-form>fieldset { margin-top: 10px; }
.styles-site-image { margin: 6px 0 18px; }
.styles-site-thumb { display: block; width: 180px; height: 110px; object-fit: cover; border: 1px solid var(--border); border-radius: 5px; margin-bottom: 10px; background: #f5f3f4; }
.styles-site-image .actions .check { margin: 0; }
.styles-site-example { border: 1px solid var(--border); border-radius: 5px; padding: 20px; margin: 20px 0; background: #f9f7f8; }
.styles-course-example { display: grid; grid-template-columns: minmax(170px,.65fr) minmax(0,1.35fr); gap: 22px; border: 1px solid var(--border); border-radius: 5px; margin-bottom: 16px; }
.styles-course-outline { padding: 20px; background: #f6f4f5; }
.styles-course-outline ol { padding-left: 20px; }.styles-course-outline li { margin: 12px 0; }
.styles-current-part { font-weight: bold; color: var(--navy); }
.styles-course-content { min-width: 0; padding: 20px; }
.styles-course-content h3 { margin-top: 18px; }
.styles-example-actions { margin-bottom: 16px; }
.styles-slide-frame { width: 100%; height: 760px; display: block; border: 1px solid #cbd8e1; border-radius: 6px; margin-bottom: 16px; background: #edf2f6; }
.styles-theme-control { max-width: 340px; }
.styles-code-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.styles-code-card { --code-bg: #fcfdff; --code-head: #eef5fa; --code-ink: #000; --code-muted: #405b6d; --code-border: #b9d4e5; --code-keyword: #0000ff; --code-string: #a31515; --code-number: #098658; --code-comment: #008000; --code-variable: #001080; --code-function: #795e26; min-width: 0; overflow: hidden; border: var(--code-border-width,1px) solid var(--code-border); border-radius: var(--code-radius,5px); background: var(--code-bg); color: var(--code-ink); font-family: "Segoe UI",Arial,sans-serif; letter-spacing: normal; }
.styles-code-card>header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 16px; background: var(--code-head); border-bottom: 1px solid var(--code-border); }
.styles-code-card h3 { margin: 0 0 6px; font-size: 19px; }.styles-code-card header>div { min-width: 0; overflow-wrap: anywhere; }
.styles-code-card header div>span { display: block; font-size: 12px; line-height: 1.5; color: var(--code-muted); }
.styles-code-zone { font: 12px Consolas,"Cascadia Code",monospace; color: var(--code-muted); }
.styles-code-body { margin: 0; padding: var(--code-padding,16px); overflow: auto; max-width: 100%; min-height: 245px; background: var(--code-bg); color: var(--code-ink); font-family: var(--code-font,Consolas,monospace); font-size: var(--code-size,14px); font-weight: var(--code-weight,400); line-height: var(--code-line-height,1.6); white-space: pre; tab-size: var(--code-tab-size,4); letter-spacing: normal; user-select: text; }
.styles-code-body code { font: inherit; }
.styles-code-card .token-keyword { color: var(--code-keyword); }.styles-code-card .token-string { color: var(--code-string); }.styles-code-card .token-number { color: var(--code-number); }.styles-code-card .token-comment { color: var(--code-comment); }.styles-code-card .token-variable { color: var(--code-variable); }.styles-code-card .token-function { color: var(--code-function); }
.styles-code-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 12px 16px; font-size: 12px; border-top: 1px solid var(--code-border); }
.styles-code-card>footer { padding: 12px 16px; background: var(--code-head); border-top: 1px solid var(--code-border); }
.styles-code-card [hidden] { display: none; }
.styles-copy-buffer { position: fixed; left: -10000px; top: 0; width: 1px; height: 1px; opacity: 0; }
.styles-copy-status { min-height: 1.6em; margin: 18px 0 0; color: #206b47; }
#powerpoint { scroll-margin-top: 25px; overflow-wrap: anywhere; }
#powerpoint code { font-family: Consolas,"Cascadia Code",monospace; font-size: .9em; }
#powerpoint details { margin-bottom: 18px; }#powerpoint summary { cursor: pointer; font-weight: bold; }
.styles-glossary { display: grid; grid-template-columns: minmax(140px,.4fr) minmax(0,1fr); gap: 12px 20px; }
.styles-glossary dt { font-weight: bold; }.styles-glossary dd { margin: 0; }
.styles-language-tabs { margin: 20px 0; }
.styles-context-form,.styles-library-select,.styles-duplicate-form { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; margin: 20px 0; }
.styles-context-form label,.styles-library-select label,.styles-duplicate-form label { flex: 1 1 240px; margin: 0; }
.styles-context-form { max-width: 800px; margin-bottom: 24px; }
.styles-library-panel { padding: 18px; margin-bottom: 24px; border: 1px solid var(--border); border-radius: 5px; background: #faf8f8; }
.styles-library-panel h3 { margin-top: 0; }.styles-library-actions { margin-bottom: 20px; }
.styles-color-control .styles-color-hex { width: 100px; flex: 0 1 100px; height: 38px; padding: 6px; font-family: Consolas,monospace; }
.styles-background-field p { margin-bottom: 0; }
.ppt-upload-form { margin: 20px 0; }.ppt-upload-form input[type=file] { max-width: 550px; }
.ppt-source-path { overflow-wrap: anywhere; }
.ppt-upload-form p { margin-top: 10px; }
.ppt-file-actions,.ppt-validation,.ppt-context-form { display: flex; flex-wrap: wrap; align-items: start; gap: 18px; margin: 20px 0; }
.ppt-file-actions>details { flex: 1 1 280px; }.ppt-file-actions summary,.ppt-batch summary,.ppt-other-zones>summary { cursor: pointer; font-weight: bold; margin-bottom: 14px; }
.ppt-context-form { align-items: end; padding: 18px; border: 1px solid var(--border); border-radius: 5px; }.ppt-context-form label { flex: 1 1 250px; margin: 0; }
.ppt-batch { padding: 18px; border: 1px solid var(--border); border-radius: 5px; margin: 20px 0; background: #faf8f8; }
.ppt-workbench-layout { display: grid; grid-template-columns: minmax(175px,.4fr) minmax(0,1.6fr); gap: 22px; align-items: start; }
.ppt-slide-list { min-width: 0; position: sticky; top: 100px; }.ppt-slide-list ol { list-style: none; padding: 0; margin: 0; max-height: 65vh; overflow: auto; border: 1px solid var(--border); }
.ppt-slide-list li { border-bottom: 1px solid var(--border); }.ppt-slide-list a { display: block; padding: 10px; font-size: 13px; overflow-wrap: anywhere; }.ppt-slide-list a[aria-current] { background: #eee2e6; font-weight: bold; }
.ppt-slide-list li { display:flex;align-items:start; }.ppt-slide-list li[hidden] { display:none; }.ppt-slide-list li a { flex:1;min-width:0; }.ppt-slide-list .ppt-slide-check { flex:0 0 auto;margin:0;padding:12px 2px 12px 8px; }.ppt-slide-check input { width:18px;height:18px;margin:0; }.ppt-slide-list>.actions { margin:12px 0; }.ppt-slide-list li:has(input:checked) { background:#e7eeeb; }
.ppt-slide-list li.ppt-slide-has-proposals, .ppt-slide-list li.ppt-slide-has-proposals:has(input:checked) { background: #fff6d8; }
.ppt-slide-list li.ppt-slide-has-proposals a[aria-current] { background: #ffedb0; }
.ppt-slide-list li.ppt-slide-validated, .ppt-slide-list li.ppt-slide-validated:has(input:checked) { background: #d7f0dd; box-shadow: inset 4px 0 #2e7d4f; }
.ppt-slide-list li.ppt-slide-validated a[aria-current] { background: #bfe5c9; }
.ppt-slide-list li.ppt-slide-edited, .ppt-slide-list li.ppt-slide-edited:has(input:checked) { background: #ece4fb; box-shadow: inset 4px 0 #6f42c1; }
.ppt-slide-list li.ppt-slide-edited a[aria-current] { background: #dccff7; }
.ppt-edited-notice { border-left: 4px solid #6f42c1; }
.ppt-slide-detail { min-width: 0; }.ppt-slide-detail>.section-head { align-items: start; flex-wrap: wrap; }.ppt-slide-nav { margin-bottom: 14px; }
.ppt-slide-frame { width: 100%; height: auto; border: 1px solid var(--border); display: block; margin-bottom: 12px; background: white; scroll-margin-top: 110px; }
.ppt-zone-editor { border: 1px solid var(--border); border-radius: 5px; margin-bottom: 18px; padding: 14px; min-width: 0; scroll-margin-top: 110px; }
.ppt-zone-editor>summary { cursor: pointer; overflow-wrap: anywhere; }.ppt-zone-editor>p { margin-top: 12px; }
.ppt-zone-editor textarea { font: 13px/1.5 Consolas,monospace; white-space: pre; tab-size: 4; }.ppt-zone-editor form { margin-top: 16px; }
.ppt-zone-extracts { margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--border); }
.ppt-zone-extracts h4 { margin: 0 0 6px; }
.ppt-extract-form { margin: 10px 0; }
.ppt-zone-source pre { white-space: pre-wrap; max-height: 220px; overflow: auto; }
.ppt-zone-sample { margin-bottom: 16px; }.ppt-zone-sample pre { min-height: 100px; max-height: 350px; }
.ppt-other-zones { margin: 24px 0; }.ppt-other-zones>.ppt-zone-editor { margin-top: 14px; }
#ppt-workbench { scroll-margin-top: 110px; }
@media(max-width:1100px) { .ppt-workbench-layout { grid-template-columns: minmax(0,1fr); }.ppt-slide-list { position: static; }.ppt-slide-list ol { max-height: 220px; } }
.styles-editor-controls fieldset:disabled { opacity: .75; }
.styles-editor-layout { display: grid; grid-template-columns: minmax(260px,.85fr) minmax(0,1.15fr); gap: 24px; align-items: start; }
.styles-editor-controls,.styles-editor-preview { min-width: 0; }
.styles-editor-controls fieldset { padding: 15px; }
.styles-editor-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 14px; }
.styles-editor-fields label { min-width: 0; }
.styles-editor-fields label:first-child:has(input[name="style_name"]) { grid-column: 1 / -1; }
.styles-color-control { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.styles-color-control input { width: 46px; height: 38px; padding: 3px; flex: 0 0 46px; }
.styles-color-control output { font: 12px Consolas,monospace; }
.styles-editor-save { position: sticky; bottom: 0; padding: 14px 0; background: white; border-top: 1px solid var(--border); z-index: 2; }
.styles-editor-save p { margin-bottom: 10px; }
.styles-reset-form { margin: 12px 0 0; }
.styles-preview-sticky { position: sticky; top: 100px; }
#style-appearance { scroll-margin-top: 110px; }
.styles-editor-preview { align-self: stretch; }
.styles-editor-preview h3 { margin-top: 0; }
.styles-preset-actions { margin-bottom: 14px; }
.styles-preset-actions [hidden] { display: none; }
.styles-sample-label { margin-top: 18px; }
.styles-sample-label textarea { font: 13px/1.5 Consolas,"Liberation Mono",monospace; white-space: pre; tab-size: 4; }
.styles-edit-link { margin: 14px 0 0; }
@media (max-width: 760px) {
  .styles-editor-layout { grid-template-columns: minmax(0,1fr); }
  .styles-editor-preview { grid-row: 1; position: sticky; top: 110px; align-self: start; z-index: 3; max-height: 48vh; overflow: auto; padding: 12px; background: white; border: 1px solid var(--border); border-radius: 5px; }
  .styles-preview-sticky { position: static; }
  .styles-editor-save { position: static; }
}
@media (max-width: 1100px) { .styles-code-grid { grid-template-columns: minmax(0,1fr); } }
@media (max-width: 650px) { .styles-course-example,.styles-glossary { grid-template-columns: minmax(0,1fr); }.styles-glossary dd { margin-bottom: 10px; }.styles-slide-frame { height: 500px; } }
@media (max-width: 900px) { .connected .shell { margin: 0 8px; } }
@media (max-width: 560px) {
  .tracking-matrix .student-column { min-width: 140px; max-width: 140px; width: 140px; }
  .tracking-matrix td,.tracking-matrix thead tr:nth-child(2) th { min-width: 160px; max-width: 160px; width: 160px; }
  .notification-paths dl { grid-template-columns: 1fr; gap: 4px; }
  .notification-paths dd { margin-bottom: 12px; }
  .site-footer { flex-direction: column; align-items: flex-start; padding: 20px; }
  .site-footer a { margin-left: 0; }
  .title-emoji { font-size: .8em; }
  form>fieldset { padding: 15px; }
}
.ppt-validation-panel{margin:24px 0;padding:20px;border:1px solid var(--border);border-radius:5px;background:#faf8f8;scroll-margin-top:110px}.ppt-validation-panel .ppt-validation{align-items:stretch}.ppt-validation-panel .ppt-validation>form{flex:1 1 280px;min-width:0}.ppt-validation-panel .notice li{margin:8px 0;overflow-wrap:anywhere}
.teacher-notes-text{line-height:1.7;overflow-wrap:anywhere}.teacher-notes-text+article{margin-top:18px}
