*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background:#121212;color:#fff;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#1a1a1a}::-webkit-scrollbar-thumb{background:#444;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#666}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font-family:inherit}img{max-width:100%}.spinner{display:flex;justify-content:center;align-items:center;padding:60px 20px}.spinner:after{content:"";width:36px;height:36px;border:3px solid #333;border-top-color:#c9a84c;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{text-align:center;padding:40px 20px;color:#f44336;font-size:14px}.empty-message{text-align:center;padding:40px 20px;color:#666;font-size:14px;font-style:italic}.page-content{max-width:1200px;margin:0 auto;width:100%;padding:0 16px}.chips-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.chips-scroll::-webkit-scrollbar{display:none}.chips-list{display:flex;gap:8px;padding:12px 16px;width:max-content;min-width:100%}.chip{padding:8px 16px;border-radius:8px;background:#2a2a2a;color:#999;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer;border:none;transition:background .15s,color .15s;font-family:inherit;min-width:52px;text-align:center}.chip:hover{background:#3a3a3a;color:#ccc}.chip.active{background:#fff;color:#000}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.badge-avenir{background:#333;color:#999}.badge-encours{background:#4caf50;color:#fff}.badge-termine{background:#444;color:#ccc}.badge-forfait{background:#f44336;color:#fff}.cal-card{background:#2a2a2a;border-radius:10px;padding:10px 14px;display:grid;grid-template-columns:88px 148px 1fr;gap:0 10px;align-items:start;min-width:0}@media (max-width: 520px){.cal-card{grid-template-columns:auto 1fr}.cal-title-col{grid-column:1 / -1;margin-top:4px}}
