:root{--ctg-font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ctg-brand-bg:#0f172a;--ctg-brand-fg:#e2e8f0;--ctg-bar-bg:var(--ctg-brand-bg);--ctg-bar-fg:var(--ctg-brand-fg);--ctg-bar-pad-y:.5rem;--ctg-bar-pad-x:1rem;--ctg-bar-gap:.5rem;--ctg-btn-radius:6px;--ctg-btn-pad-y:.4rem;--ctg-btn-pad-x:.7rem;--ctg-btn-font:.85rem;--ctg-ghost-bg:#1e293b;--ctg-ghost-bg-hover:#334155;--ctg-ghost-fg:#e2e8f0;--ctg-logout-bg:#dc2626;--ctg-logout-fg:#fff;--ctg-login-card-bg:#fff;--ctg-login-card-fg:#0f172a;--ctg-login-radius:14px}body{font-family:var(--ctg-font)}.appbar{padding:var(--ctg-bar-pad-y) var(--ctg-bar-pad-x);background:var(--ctg-bar-bg);color:var(--ctg-bar-fg);font-family:var(--ctg-font);flex:none;justify-content:space-between;align-items:center;display:flex}.appbar__brand{align-items:center;gap:.55rem;display:flex}.ctg-logo{flex:none;display:block}@keyframes ctg-logo-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.ctg-logo .l-bubble,.ctg-logo .l-tail,.ctg-logo .l-rcf,.ctg-logo .l-toco{stroke-dasharray:1;stroke-dashoffset:1px;animation:.45s forwards ctg-logo-draw}.ctg-logo .l-bubble{animation-duration:.5s;animation-delay:0s}.ctg-logo .l-tail{animation-duration:.2s;animation-delay:.4s}.ctg-logo .l-toco{animation-duration:.4s;animation-delay:.6s}.ctg-logo .l-rcf{animation-duration:.45s;animation-delay:1s}@media (prefers-reduced-motion:reduce){.ctg-logo .l-bubble,.ctg-logo .l-tail,.ctg-logo .l-rcf,.ctg-logo .l-toco{stroke-dashoffset:0;animation:none}}.appbar__title{letter-spacing:-.01em;font-size:1.1rem;font-weight:600}.appbar__back{color:var(--ctg-bar-fg);border-radius:var(--ctg-btn-radius);cursor:pointer;justify-content:center;align-items:center;padding:.15rem .4rem;font-size:1.15rem;line-height:1;text-decoration:none;display:inline-flex}.appbar__back:hover{background:var(--ctg-ghost-bg)}.appbar__actions{align-items:center;gap:var(--ctg-bar-gap);display:flex}.appbar__divider{background:#ffffff2e;width:1px;height:1.4rem;margin:0 .2rem}.btn-ghost,.btn-logout{border-radius:var(--ctg-btn-radius);padding:var(--ctg-btn-pad-y) var(--ctg-btn-pad-x);cursor:pointer;font-size:var(--ctg-btn-font);border:none;align-items:center;gap:.35rem;line-height:1.2;display:inline-flex}.btn-ghost{background:var(--ctg-ghost-bg);color:var(--ctg-ghost-fg)}.btn-ghost:hover{background:var(--ctg-ghost-bg-hover)}.btn-logout{background:var(--ctg-logout-bg);color:var(--ctg-logout-fg)}.login{background:var(--ctg-brand-bg);height:100dvh;font-family:var(--ctg-font);justify-content:center;align-items:center;display:flex}.login__card{background:var(--ctg-login-card-bg);color:var(--ctg-login-card-fg);border-radius:var(--ctg-login-radius);width:min(90vw,380px);padding:2rem 2.25rem;box-shadow:0 10px 30px #00000040}.login__card h1{margin:0 0 .25rem;font-size:1.5rem}.login__card>p{color:#475569;margin:0 0 1.25rem}.login__card form{flex-direction:column;gap:.6rem;display:flex}.login__card input{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;width:100%;min-width:0;padding:.55rem .7rem;font-family:inherit;font-size:.95rem}.login__card button{box-sizing:border-box;background:var(--ctg-brand-bg);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:.55rem 1rem;font-family:inherit;font-size:1rem}.login__note{color:#94a3b8;margin:1rem 0 0;font-size:.8rem;line-height:1.4}:root{--ctg-panel:#1e293b;--ctg-border:#334155;--ctg-muted:#94a3b8;--ctg-accent:#38bdf8}.ctg-sidebar{background:var(--ctg-brand-bg);width:280px;color:var(--ctg-brand-fg);font-family:var(--ctg-font);flex-direction:column;flex-shrink:0;gap:.75rem;padding:1rem;display:flex;overflow:hidden}.ctg-sidebar__label{color:var(--ctg-muted);margin:0;font-size:.8rem;font-weight:600}.ctg-sidebar__hint{color:var(--ctg-muted);margin:0;padding:.4rem .2rem;font-size:.78rem}.ctg-toggle{background:var(--ctg-panel);border:1px solid var(--ctg-border);cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem .6rem;font-size:.85rem;display:flex}.ctg-list{border-top:1px solid var(--ctg-border);flex:1;margin:0;padding:.5rem 0 0;list-style:none;overflow-y:auto}.ctg-row,.ctg-subrow{text-align:left;width:100%;color:var(--ctg-brand-fg);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.4rem;font-family:inherit;display:flex}.ctg-row{padding:.4rem .5rem;font-size:.85rem}.ctg-subrow{color:#cbd5e1;padding:.35rem .5rem .35rem 1.5rem;font-size:.8rem}.ctg-row:hover,.ctg-subrow:hover{background:var(--ctg-panel)}.ctg-row.is-open{background:var(--ctg-panel);font-weight:600}.ctg-subgroup{background:#1e293b73;border-radius:6px;margin:0 0 .25rem;padding:2px 0;list-style:none}.ctg-status{flex:none;align-items:center;display:inline-flex}.ctg-status--free{color:#22c55e}.ctg-status--priority{color:#fb923c}.ctg-btn-primary{cursor:pointer;width:100%;font-family:var(--ctg-font);color:#fff;background:#16a34a;border:none;border-radius:8px;padding:.55rem 1rem;font-size:.9rem}.ctg-btn-primary:disabled{opacity:.6;cursor:default}.ctg-speed{background:var(--ctg-panel);border:1px solid var(--ctg-border);border-radius:8px;flex-direction:column;gap:.4rem;padding:.6rem;font-size:.85rem;display:flex}.ctg-speed__opts{justify-content:space-between;display:flex}.ctg-speedbar{z-index:2000;font-family:var(--ctg-font);background:#ffffffeb;border:1px solid #cbd5e1;border-radius:999px;align-items:center;gap:2px;padding:3px 5px;display:inline-flex;position:absolute;bottom:28px;right:12px;box-shadow:0 2px 6px #0000001f}.ctg-speedbar__btn{color:#334155;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:2px 9px;font-family:inherit;font-size:12px;line-height:1.5}.ctg-speedbar__btn.is-active{color:#06283d;background:#38bdf8;font-weight:600}.ctg-speedbar__unit{color:#64748b;padding:0 6px 0 4px;font-size:11px}html,body,#root{width:100%;max-width:none;height:100dvh;margin:0;padding:0;overflow:hidden}.lang-toggle-container{cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#e9ecef;border-radius:20px;align-items:center;width:64px;height:28px;display:flex;position:relative;box-shadow:inset 0 1px 3px #0000001a}.lang-toggle-pill{background-color:#fff;border-radius:16px;width:30px;height:24px;transition:transform .3s cubic-bezier(.4,0,.2,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.lang-toggle-pill.is-fr{transform:translate(30px)}.lang-toggle-label{z-index:1;text-align:center;color:#6c757d;flex:1;font-size:11px;font-weight:700;transition:color .3s;position:relative}.lang-toggle-label.active{color:#212529}
