:root{--bg:#fff;--fg:#1a1a1a;--muted:#666;--line:#c9d3e0;--head:#e8eef6;--band:#1f4e8c;--band-fg:#fff;--link:#0645ad;--row:#f7f9fc;--ok:#1e7b34;--err:#b3261e}@media (prefers-color-scheme:dark){:root{--bg:#14171c;--fg:#e4e6ea;--muted:#9aa1ab;--line:#333a45;--head:#1d2430;--band:#1b3a66;--band-fg:#fff;--link:#8ab4f8;--row:#181c22;--ok:#6fcf86;--err:#f28b82}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font:14px/1.5 Verdana,Tahoma,Segoe UI,Arial,sans-serif}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:1040px;margin:0 auto;padding:0 16px}header.band{background:var(--band);color:var(--band-fg)}header.band .wrap{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;padding-top:12px;padding-bottom:12px;display:flex}header.band a,header.band a:visited{color:var(--band-fg)}.brand{letter-spacing:.5px;font-size:22px;font-weight:700}.brand small{opacity:.85;margin-left:10px;font-size:13px;font-weight:400}header nav{gap:18px;font-size:13px;display:flex}main{padding:20px 0 40px}h1{margin:0 0 4px;font-size:18px}h2{margin:28px 0 8px;font-size:15px}.sub{color:var(--muted);margin:0 0 18px;font-size:13px}.crumbs{color:var(--muted);margin-bottom:10px;font-size:12px}.crumbs a{margin:0 2px}.scroll{overflow-x:auto}table.grid{border-collapse:collapse;background:var(--bg);width:100%}table.grid th,table.grid td{border:1px solid var(--line);vertical-align:top;text-align:left;padding:6px 10px}table.grid thead th{background:var(--head);text-align:center;font-size:13px;font-weight:700}table.grid tbody tr:nth-child(2n) td{background:var(--row)}table.grid td.c{text-align:center}table.grid td.year{white-space:nowrap;text-align:center;font-weight:700}table.grid td.empty{color:var(--muted);text-align:center}.inst-list a{white-space:nowrap}.inst-list>span{display:inline-block}.inst-list .sep{color:var(--muted);margin:0 6px}.count{color:var(--muted);font-size:12px}.pdf{border:1px solid var(--line);background:var(--head);border-radius:3px;margin:1px 2px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-block}form.stack{gap:12px;max-width:560px;display:grid}form.stack label{gap:4px;font-size:13px;display:grid}form.inline{flex-wrap:wrap;align-items:end;gap:8px;margin:8px 0;display:flex}form.inline label{gap:2px;font-size:12px;display:grid}fieldset{border:1px solid var(--line);padding:8px 12px}legend{padding:0 4px;font-size:13px}input,select,textarea,button{font:inherit;color:inherit}input[type=text],input[type=password],input[type=number],select,textarea{background:var(--bg);border:1px solid var(--line);width:100%;min-width:0;padding:5px 7px}button{background:var(--band);color:var(--band-fg);cursor:pointer;border:0;padding:7px 14px}button.secondary{color:var(--link);border:1px solid var(--line);background:0 0}button.danger{background:var(--err)}button:disabled{opacity:.6;cursor:default}.radios{flex-wrap:wrap;gap:14px;display:flex}.radios label{align-items:center;gap:5px;display:inline-flex}.hp{position:absolute;left:-9999px}.ok{color:var(--ok)}.err{color:var(--err)}.note{color:var(--muted);font-size:12px}.ad{text-align:center;min-height:0;margin:24px 0}footer{border-top:1px solid var(--line);color:var(--muted);text-align:center;padding:14px 0 24px;font-size:12px}footer p{margin:4px 0}table.grid.semesters{table-layout:fixed}table.grid.semesters td:empty:after{content:" "}.banner{border:1px solid var(--line);gap:6px;margin:6px 0 16px;padding:14px 22px;display:grid}.banner>div{border-bottom:2px solid var(--fg);justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:2px;display:flex}.banner .k{text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;font-size:17px;font-weight:700}.banner .v{text-transform:uppercase;color:var(--muted);opacity:.55;text-align:right;overflow-wrap:anywhere;font-size:26px;font-weight:700;line-height:1.1}table.grid.papers td{vertical-align:middle;height:30px}table.grid.papers a.doc{color:var(--link);margin:0 2px;display:inline-block}@media (max-width:600px){.banner .v{font-size:18px}.banner .k{font-size:13px}}table.grid thead th.big{letter-spacing:.5px;font-size:15px}table.grid.papers .paper{flex-direction:column;align-items:center;gap:1px;margin:2px 4px;display:inline-flex}table.grid.papers .by{color:var(--muted);font-size:11px;line-height:1.2}table.grid.papers .ai{border:1px solid var(--muted);color:var(--muted);cursor:help;border-radius:3px;padding:0 5px;font-size:10px;font-weight:700}.banner h1.v{margin:0}.banner .v.small{font-size:18px}.banner .v a,.banner .v a:visited{color:inherit;text-underline-offset:3px;text-decoration:underline}.banner .v a:hover{color:var(--link);opacity:1}table.grid.programs tbody tr.first td{border-top:2px solid var(--muted)}table.grid.programs td.parcours{color:var(--muted);white-space:nowrap;font-size:12px}table.grid.programs td.shared{background:var(--row)}table.grid.programs tbody tr:nth-child(2n) td{background:0 0}table.grid.programs tbody tr td.shared{background:var(--row)}button.signaler{color:var(--link);border:1px solid var(--line);background:0 0;padding:3px 10px}button.link{color:var(--link);background:0 0;border:0;padding:0;text-decoration:underline}.fix-bar{z-index:50;background:var(--band);color:var(--band-fg);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:10px 16px;display:flex;position:fixed;top:0;left:0;right:0}.fix-bar button.secondary{color:var(--band-fg);border-color:var(--band-fg)}body.fix-picking [data-fix]{outline:1px dashed var(--muted);outline-offset:-2px;cursor:crosshair}body.fix-picking [data-fix].fix-hover{outline:2px solid var(--err);background:var(--row)}body.fix-picking a{pointer-events:none}.fix-dialog{border:1px solid var(--line);background:var(--bg);color:var(--fg);width:calc(100% - 32px);max-width:520px}.fix-dialog::backdrop{background:#00000073}.fix-dialog h2{margin-top:0}.fix-dialog .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fix-dialog audio{max-width:100%;height:32px}.ai-tag{color:var(--ok);border:1px solid var(--ok);vertical-align:middle;white-space:nowrap;margin-left:6px;padding:0 5px;font-size:10px;font-weight:700;display:inline-block}.fix-dialog .stack{gap:12px;display:grid}button.ai-tag.unverified{color:var(--err);border-color:var(--err);cursor:pointer;font:inherit;pointer-events:auto;background:0 0;padding:0 5px;font-size:10px;font-weight:700}body.fix-picking [data-fix].fix-selected,.fix-selected{outline:2px solid var(--err);outline-offset:-2px;background:var(--row)}.fix-bar b{white-space:nowrap}.fix-bar button:disabled{opacity:.5}ul.picked{max-height:140px;margin:6px 0;padding-left:18px;overflow:auto}button.mic{border-radius:4px;align-items:center;gap:6px;padding:7px 12px;display:inline-flex}button.mic.on{background:var(--err)}nav.tabs{border-bottom:2px solid var(--band);flex-wrap:wrap;gap:2px;margin:8px 0 16px;display:flex}nav.tabs a{background:var(--head);color:var(--fg);padding:7px 12px;text-decoration:none}nav.tabs a.on{background:var(--band);color:var(--band-fg)}nav.tabs .n{background:var(--err);color:#fff;border-radius:9px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:700}.stats{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.stats>div{border:1px solid var(--line);padding:10px;display:grid}.stats b{font-size:22px}.stats span{color:var(--muted);font-size:12px}a.button{background:var(--band);color:var(--band-fg);padding:7px 14px;text-decoration:none;display:inline-block}body.admin-editing{padding-bottom:180px}body.admin-editing [data-fix]{outline:1px dotted var(--muted);outline-offset:-2px}body.admin-editing .admin-flag{outline:2px solid var(--err);background:var(--row)}body.admin-editing .admin-edited{outline:2px solid var(--ok)}body.admin-editing .admin-deleted{opacity:.5;text-decoration:line-through}[contenteditable=true]{outline:2px solid var(--link);background:var(--bg);cursor:text;padding:0 2px}.admin-x,.admin-add{color:var(--err);border:1px solid var(--err);background:0 0;margin-left:6px;padding:0 6px;font-size:11px;line-height:16px}.admin-add{color:var(--ok);border-color:var(--ok)}.admin-bar{z-index:40;background:var(--bg);border-top:3px solid var(--band);max-height:45vh;padding:8px 16px;position:fixed;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -2px 8px #0003}.admin-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-reports{margin:6px 0 0;padding-left:18px;font-size:13px}.admin-reports audio{vertical-align:middle;height:28px}
