/* Shared workspace design, including every top-level menu and module submenu. */
.ctd-shell { --ws-bg:#f3f6fa; --ws-surface:#fff; --ws-ink:#172c43; --ws-muted:#65758b; --ws-line:#e2e9f0; --ws-accent:#087f8c; --ws-soft:#e9f6f6; padding-top:0!important; background:var(--ws-bg); color:var(--ws-ink); font-family:Inter,"Segoe UI",system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
.ctd-shell>header { position:sticky; top:0; z-index:1030; }
.ctd-shell .navbar.sticky-top { position:relative!important; background:var(--ws-surface)!important; color:var(--ws-ink); border-bottom:1px solid var(--ws-line); box-shadow:0 4px 24px #172c4306; padding:.8rem 1.5rem 0; }
.ctd-shell .navbar-brand { color:var(--ws-ink)!important; font-size:1.08rem; font-weight:750; letter-spacing:-.035em; display:flex; align-items:center; gap:.55rem; }
.ctd-shell .navbar .nav-link { color:var(--ws-muted)!important; font-weight:600; font-size:.85rem; border-radius:9px; padding:.65rem .85rem; display:flex; align-items:center; gap:.5rem; white-space:nowrap; transition:background .16s,color .16s; }
.ctd-shell .navbar .nav-link:hover,.ctd-shell .navbar .nav-link.active,.ctd-shell .navbar .nav-link.show { background:var(--ws-soft); color:var(--ws-accent)!important; }
.ctd-shell .navbar .dropdown-toggle::after { margin-left:.3rem; opacity:.55; }
.ctd-shell .navbar .dropdown-menu { background:var(--ws-surface); border:1px solid var(--ws-line); border-radius:14px; box-shadow:0 20px 55px #172c4326; padding:.5rem; margin-top:.55rem; color:var(--ws-ink); }
.ctd-shell .navbar .dropdown-menu-accordion { width:360px; max-width:calc(100vw - 32px); max-height:72vh; padding:.5rem; scrollbar-width:thin; scrollbar-color:#b6c5d4 transparent; }
.ctd-shell .navbar .dropdown-menu-accordion[aria-labelledby="navbarParametresDropdown"] { width:405px; }
.ctd-shell .navbar .accordion-item { background:transparent; border:0; margin:3px 0; }
.ctd-shell .navbar .accordion-button { background:transparent; color:var(--ws-ink); font-size:.86rem; font-weight:650; border-radius:8px!important; padding:.85rem; line-height:1.4; }
.ctd-shell .navbar .accordion-button:not(.collapsed) { background:var(--ws-soft); color:var(--ws-accent); box-shadow:none; }
.ctd-shell .navbar .accordion-body { padding:.3rem 0 .5rem .6rem; }
.ctd-shell .navbar .dropdown-item { display:flex; align-items:center; gap:.65rem; color:var(--ws-ink); font-size:.84rem; padding:.65rem .8rem; border-radius:7px; white-space:normal; line-height:1.45; }
.ctd-shell .navbar .accordion-body .dropdown-item { padding:.6rem .8rem; border-radius:7px; font-size:.83rem; }
.ctd-shell .navbar .dropdown-item i { width:19px; text-align:center; color:var(--ws-muted); flex-shrink:0; }
.ctd-shell .navbar .dropdown-item:hover,.ctd-shell .navbar .dropdown-item.active { background:var(--ws-soft); color:var(--ws-accent); }
.ctd-shell .navbar .dropdown-divider { border-color:var(--ws-line); margin:.4rem .6rem; }
.ctd-shell .navbar-toggler { border:1px solid var(--ws-line); padding:.45rem; }
.ctd-shell .navbar-toggler-icon { filter:invert(1); }
.ctd-search-trigger { display:flex; align-items:center; gap:.65rem; padding:.52rem .8rem; border:1px solid var(--ws-line); border-radius:9px; background:var(--ws-bg); color:var(--ws-muted); font-size:.8rem; }
.ctd-shell kbd { color:var(--ws-muted); background:var(--ws-surface); border:1px solid var(--ws-line); border-radius:4px; font-size:.65rem; padding:.15rem .3rem; }
.ctd-shell .main-card-container { max-width:1800px; margin-inline:auto; padding-bottom:2rem; }
.ctd-shell main.main-card-container { background-color:var(--ws-bg)!important; box-shadow:none; }
.ctd-shell main .card:not([class*="bg-"]) { background-color:var(--ws-surface)!important; color:var(--ws-ink)!important; border-color:var(--ws-line)!important; }
.ctd-shell main .card:not([class*="bg-"])>.card-body { background-color:transparent!important; }
.ctd-shell main :is(.admin-sidebar,.sidebar-matieres,.special-sidebar,.pcd-sidebar,.projet-sidebar,.recettes-sidebar) { background:#172c43!important; border-radius:14px; color:#e7edf5; box-shadow:none!important; }
.ctd-shell main :is(.admin-sidebar,.sidebar-matieres,.special-sidebar,.pcd-sidebar,.projet-sidebar,.recettes-sidebar) :is(.nav-link,.sidebar-menu-item) { border-radius:8px; padding:.7rem .85rem; font-size:.83rem; font-weight:550; color:#d6e1ed!important; margin:.2rem 0; transition:background .16s; }
.ctd-shell main :is(.admin-sidebar,.sidebar-matieres,.special-sidebar,.pcd-sidebar,.projet-sidebar,.recettes-sidebar) :is(.nav-link,.sidebar-menu-item):is(.active,:hover,:focus-visible) { background:#284b61!important; color:#b2f1ef!important; box-shadow:none; }
.ctd-shell main :is(.nav-pills,.nav-tabs) .nav-link { border-radius:8px; font-size:.85rem; font-weight:600; padding:.65rem .9rem; }
.ctd-workspace-bar { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; padding:.4rem 0 1.1rem; border-bottom:1px solid var(--ws-line); }
.ctd-workspace-identity { display:flex; align-items:center; gap:.8rem; min-width:0; }
.ctd-workspace-identity strong { display:block; font-size:1.1rem; letter-spacing:-.025em; overflow-wrap:anywhere; }
.ctd-workspace-icon { background:var(--ws-ink); color:white; display:grid; place-items:center; width:44px; height:44px; border-radius:12px; flex-shrink:0; }
.ctd-eyebrow { display:block; color:var(--ws-muted); font-size:.62rem; font-weight:750; letter-spacing:.14em; margin-bottom:.2rem; }
.ctd-workspace-meta { display:flex; gap:.5rem; flex-wrap:wrap; justify-content:flex-end; }
.ctd-chip { display:inline-flex; align-items:center; gap:.45rem; padding:.45rem .7rem; border:1px solid var(--ws-line); border-radius:8px; font-size:.76rem; color:var(--ws-muted); background:var(--ws-surface); text-decoration:none; }
.ctd-chip:hover { color:var(--ws-accent); }
.ctd-breadcrumb { font-size:.73rem; color:var(--ws-muted); margin:0 0 1.4rem; }
.ctd-breadcrumb a { color:var(--ws-muted); text-decoration:none; }
.ctd-shell main .card { border:1px solid var(--ws-line); border-radius:14px; box-shadow:0 3px 12px #172c4305; }
.ctd-shell main .card-header { border-bottom-color:var(--ws-line); padding:1rem 1.25rem; }
.ctd-shell main .btn { border-radius:8px; font-weight:600; }
.ctd-shell main .form-control,.ctd-shell main .form-select { border-radius:8px; border-color:var(--ws-line); }
.ctd-shell main .table>thead:not(.table-dark)>tr>th { font-size:.73rem; letter-spacing:.025em; padding-top:1rem; padding-bottom:1rem; }
.ctd-shell .footer { background:var(--ws-surface)!important; border-top:1px solid var(--ws-line); font-size:.72rem; color:var(--ws-muted); }
.ctd-command { width:min(680px,calc(100vw - 28px)); max-height:80vh; padding:0; border:1px solid var(--ws-line); border-radius:18px; background:var(--ws-surface); color:var(--ws-ink); box-shadow:0 30px 100px #081b4050; }
.ctd-command::backdrop { background:#0b1c3b80; backdrop-filter:blur(4px); }
.ctd-command-heading { display:flex; justify-content:space-between; align-items:center; padding:1.5rem 1.5rem .85rem; }
.ctd-command h2 { font-size:1.2rem; font-weight:700; letter-spacing:-.03em; margin:0; }
.ctd-command-close { border:0; background:var(--ws-bg); color:var(--ws-muted); border-radius:8px; width:32px; height:32px; font-size:1.4rem; }
.ctd-command-input { display:flex; align-items:center; gap:.8rem; margin:0 1.5rem 1rem; padding:.8rem 1rem; background:var(--ws-bg); border:1px solid var(--ws-line); border-radius:10px; color:var(--ws-muted); }
.ctd-command-input input { width:100%; border:0; outline:0; background:transparent; color:var(--ws-ink); font-size:.9rem; }
.ctd-command-input:focus-within { outline:2px solid var(--ws-accent); outline-offset:2px; }
.ctd-command-results { max-height:44vh; overflow-y:auto; padding:0 .8rem .8rem; }
.ctd-command-result { display:flex; align-items:center; gap:.8rem; color:var(--ws-ink); text-decoration:none; padding:.85rem; border-radius:9px; font-size:.85rem; }
.ctd-command-result i { color:var(--ws-accent); width:20px; text-align:center; }
.ctd-command-result small { margin-left:auto; color:var(--ws-muted); font-size:.65rem; text-align:right; }
.ctd-command-result:hover,.ctd-command-result:focus { background:var(--ws-soft); color:var(--ws-accent); }
.ctd-command-footer { display:flex; justify-content:space-between; padding:.85rem 1.5rem; border-top:1px solid var(--ws-line); color:var(--ws-muted); font-size:.68rem; }
.ctd-command-empty { padding:1.5rem; color:var(--ws-muted); }
.ctd-skip-link { position:fixed; top:-100px; left:1rem; background:var(--ws-surface); color:var(--ws-ink); padding:.8rem; z-index:2000; }
.ctd-skip-link:focus { top:1rem; }
.ctd-shell :focus-visible { outline:2px solid var(--ws-accent); outline-offset:3px; }
@media(min-width:1200px) { .ctd-shell .navbar>.container-fluid { display:grid; grid-template-columns:auto 1fr; gap:.55rem 1.5rem; } .ctd-shell .navbar-collapse { display:contents!important; } .ctd-shell .navbar-nav.me-auto { grid-column:1/-1; grid-row:2; width:100%; padding:.45rem 0; border-top:1px solid var(--ws-line); gap:.3rem; flex-wrap:wrap; } .ctd-shell .ctd-utilities { grid-column:2; grid-row:1; justify-self:end; gap:.2rem; } }
@media(max-width:1199.98px) { .ctd-shell .navbar.sticky-top { padding:.8rem; } .ctd-shell .navbar-collapse { padding-top:1rem; max-height:calc(100dvh - 80px); overflow-y:auto; } .ctd-shell .navbar .dropdown-menu-accordion { width:100%!important; max-width:100%; box-shadow:none; margin:.35rem 0; } .ctd-shell .ctd-utilities { align-items:stretch!important; border-top:1px solid var(--ws-line); padding-top:.6rem; } .ctd-search-trigger { width:100%; justify-content:center; } }
@media(max-width:576px) { .ctd-workspace-bar { align-items:flex-start; flex-direction:column; } .ctd-workspace-meta { justify-content:flex-start; } .ctd-shell .main-card-container { padding-left:1rem; padding-right:1rem; } .ctd-command-result small { display:none; } .ctd-command-footer { gap:1rem; } }
[data-theme="noir"] .ctd-shell { --ws-bg:#0d1724; --ws-surface:#152235; --ws-ink:#e7edf5; --ws-muted:#a6b7cb; --ws-line:#2a3a51; --ws-accent:#68d1d5; --ws-soft:#203c49; }
[data-theme] body.ctd-shell { background-color:var(--ws-bg)!important; color:var(--ws-ink)!important; }
[data-theme="noir"] .ctd-shell main .text-muted { color:var(--ws-muted)!important; }
[data-theme="noir"] .ctd-shell main .btn-outline-primary { color:var(--ws-accent); border-color:var(--ws-accent); }
[data-theme="jaune"] .ctd-shell { --ws-accent:#805b08; --ws-soft:#fff5d7; --ws-bg:#faf8f0; }
[data-theme="bleu"] .ctd-shell { --ws-accent:#1c60a8; --ws-soft:#e9f2fc; --ws-bg:#f2f6fc; }
[data-theme="vert"] .ctd-shell { --ws-accent:#217345; --ws-soft:#e8f5ed; --ws-bg:#f2f8f4; }
[data-theme="orange"] .ctd-shell { --ws-accent:#ad4f16; --ws-soft:#fff0e4; --ws-bg:#fcf6f1; }
[data-theme="noir"] .ctd-shell .navbar-toggler-icon { filter:none; }
[data-theme="noir"] .ctd-workspace-icon { background:#29435e; }
[data-theme="noir"] .ctd-shell .navbar .dropdown-menu-accordion { background:var(--ws-surface)!important; border-color:var(--ws-line)!important; }
[data-theme="noir"] .ctd-shell .navbar .accordion-button,[data-theme="noir"] .ctd-shell .navbar .dropdown-item { color:var(--ws-ink)!important; }
@media(prefers-reduced-motion:reduce) { .ctd-shell * { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
@media print { .ctd-shell>header,.ctd-workspace-bar,.ctd-breadcrumb,.ctd-command,.ctd-skip-link { display:none!important; } .ctd-shell { padding:0!important; background:white; } }
