:root{color-scheme:dark;--bg:#101121;--panel:#1b1c32;--line:#34354f;--muted:#b6b5cc;--pink:#ff71be;--lime:#dcff72;--purple:#ad92ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#f7f5ff;font-family:system-ui,-apple-system,sans-serif;font-size:16px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);color:inherit;background:#272840;border-radius:12px;padding:11px 16px;min-height:44px}button:hover{border-color:var(--purple);background:#33314e}button:disabled{opacity:.55;cursor:wait}a{color:var(--purple)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--lime);outline-offset:3px}header{max-width:1280px;margin:auto;padding:24px 30px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:15px}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;color:white;font-size:29px;font-weight:900;letter-spacing:-1px}.brand img{width:64px;height:64px;border-radius:18px}.brand span{color:var(--pink)}.brand small{display:block;font-size:12px;letter-spacing:2px;color:var(--muted);margin-top:3px}main{max-width:1280px;margin:30px auto;padding:0 30px}h1{font-size:32px;letter-spacing:-1px;margin:0 0 6px}h2{font-size:22px;margin:0}h3{font-size:17px;margin:0 0 12px}p{line-height:1.6}small,.muted{color:var(--muted)}small{font-size:13px}.topline,.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.topline{margin-bottom:24px}.primary{background:var(--lime);color:#17210d;font-weight:800;border-color:var(--lime)}.primary:hover{background:#edffa9}.panel{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:24px}.login{max-width:470px;margin:50px auto}.login>img{width:132px;height:132px;border-radius:28px;display:block;margin:0 auto 20px}.login h1{text-align:center}.login>p{text-align:center;color:var(--muted)}label{display:block;margin:16px 0 6px;font-size:14px;font-weight:650}input,select{background:#111225;border:1px solid #50516a;color:white;border-radius:11px;width:100%;padding:12px;min-height:46px}input[type=checkbox]{width:22px;min-height:22px;accent-color:var(--pink)}.check{display:flex;gap:10px;align-items:center}form .primary{margin-top:22px;width:100%}.error{color:#ffadcd;margin:10px 0}.people{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.person{display:flex;align-items:center;gap:10px;border-radius:40px}.person.active{background:#38304e;border-color:var(--pink)}.avatar{font-size:27px}.nathan{--person:#ff71be}.bilel{--person:#ad92ff}.patrice{--person:#dcff72}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--person);flex-shrink:0}.layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:22px}.calendar{padding:20px}.monthbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:8px}.monthbar h2{text-transform:capitalize}.monthbar button{padding:8px 12px}.week,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.week span{text-align:center;color:var(--muted);font-size:13px;padding:8px 0}.days{gap:5px}.day{padding:9px 7px;text-align:left;min-height:91px;border:1px solid #34354a;border-radius:12px;background:#151629;display:flex;flex-direction:column;gap:6px}.day:hover{background:#2b2746}.day.selected{border:2px solid var(--pink);background:#332039;padding:8px 6px}.day.today .date{color:var(--lime);font-weight:900}.day.future{opacity:.45}.date{font-size:14px}.marks{display:flex;gap:4px;flex-wrap:wrap}.mark{height:5px;min-width:12px;flex:1;background:var(--person);border-radius:4px}.day small{font-size:12px}.day.blank{visibility:hidden}.legend{margin:16px 0 0;font-size:13px;color:var(--muted)}.detail{min-height:400px}.detail .empty{padding:40px 0;color:var(--muted);text-align:center}.entry{padding:16px 0;border-bottom:1px solid var(--line)}.entry .row{align-items:flex-start}.entry b{font-size:15px}.entry strong{color:var(--person);font-size:23px}.entry small{display:block;margin-top:5px}.entry button{font-size:13px;padding:5px 9px;min-height:34px;margin-top:10px}.badge{font-size:12px;border:1px solid #716341;color:var(--lime);padding:3px 7px;border-radius:20px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0}.stat{padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:18px}.stat strong{font-size:32px;color:var(--lime);display:block;margin:6px 0}.stat small{display:block}.tabs{display:flex;gap:8px;margin-bottom:20px}.tabs button.active{background:var(--purple);color:#151225;font-weight:750}.analysis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.exercise-line{padding:16px 0;border-bottom:1px solid var(--line)}.exercise-line strong{font-size:24px;color:var(--pink)}.exercise-line small{display:block;margin-top:7px}.bars{display:flex;gap:8px;align-items:end;height:120px;margin-top:20px}.bar{flex:1;text-align:center;display:flex;flex-direction:column;justify-content:end;height:100%;gap:5px;font-size:12px}.bar meter{height:12px;width:100%;accent-color:var(--pink)}.avatars{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:14px 0}.avatars button{font-size:25px;padding:7px}.avatars button.active{border:2px solid var(--pink);background:#482946}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}dialog{max-width:510px;width:calc(100% - 24px);max-height:92dvh;background:var(--panel);color:white;border:1px solid #655480;border-radius:24px;padding:25px}dialog::backdrop{background:#080818d9;backdrop-filter:blur(5px)}dialog h2{font-size:25px}dialog .close{float:right;padding:5px 12px}dialog p{font-size:14px;color:var(--muted)}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--lime);color:#17210d;padding:14px 22px;border-radius:16px;font-weight:700;max-width:90%;display:none;z-index:5}footer{max-width:1280px;margin:35px auto;padding:20px 30px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);display:flex;justify-content:space-between;gap:15px}.hint{padding:14px;background:#25283a;border-radius:12px;font-size:14px;color:var(--muted)}.full{width:100%}.accountname{font-size:14px}.empty-icon{font-size:38px;display:block;margin-bottom:15px}
@media(max-width:900px){.layout{grid-template-columns:1fr}.analysis{grid-template-columns:1fr}.detail{min-height:200px}}@media(max-width:540px){header{padding:14px 16px}.brand{font-size:24px}.brand img{width:50px;height:50px}.brand small{font-size:10px;letter-spacing:1px}main{padding:0 14px;margin:22px auto}.topline{align-items:flex-start;flex-wrap:wrap}h1{font-size:27px}.topline>.primary{width:100%}.panel{padding:17px}.calendar{padding:12px}.day{min-height:72px;padding:6px 4px}.day.selected{padding:5px 3px}.day small{font-size:12px}.day .series-label{display:none}.stats{gap:7px}.stat{padding:13px 10px}.stat strong{font-size:26px}.stat small{font-size:12px}.accountname{display:none}.people{gap:6px}.person{padding:8px 10px;font-size:14px}.person .avatar{font-size:22px}footer{padding:18px 16px;flex-direction:column}.monthbar h2{font-size:20px}.login{margin:20px auto}.tabs{overflow:auto}.tabs button{white-space:nowrap}.avatars button{padding:5px}.two{grid-template-columns:1fr 1fr}}
[hidden]{display:none!important}
[hidden]{display:none!important}
/* SM-Body 1.3 — palette claire et calendrier partagé détaillé. */
:root{color-scheme:light;--bg:#f4f8ff;--panel:#fff;--line:#dce3f0;--muted:#526079;--pink:#bb2476;--lime:#256247;--purple:#6441b9}
body{background:linear-gradient(145deg,#fff3f8 0%,#f1f7ff 48%,#effcf5 100%);color:#25334b;min-height:100vh}
header,main,footer{max-width:1450px}.brand{color:#25334b}.brand span{color:#bc2879}button{background:#fff;color:#34405c;border-color:#d5dfee}button:hover{background:#f2edff;border-color:#9474d4}button:disabled{opacity:.6}input,select{background:#fff;color:#25334b;border-color:#b7c5da}.panel,.stat{box-shadow:0 8px 25px #647e9d0b}.primary{background:#7146cf;color:white;border-color:#7146cf}.primary:hover{background:#5b32b2}.topline h1{color:#334569}.brand img,.login>img{background:#fff;border:1px solid #ede0f4}.tabs button.active{background:#7146cf;color:white}.person.active{background:#eee6ff;border-color:#9774db}.people button:disabled{opacity:1;cursor:default}.people .person{background:white}.dot{background:var(--person,#7146cf)}.color-0{--person:#9c2867;--person-bg:#fff0f7}.color-1{--person:#3158a0;--person-bg:#edf3ff}.color-2{--person:#23694f;--person-bg:#eaf8f0}.color-3{--person:#8140ad;--person-bg:#f6edff}.color-4{--person:#9b501a;--person-bg:#fff2e4}.color-5{--person:#197080;--person-bg:#e8f8fb}.layout{grid-template-columns:minmax(0,1fr)}.calendar{min-width:0}.calendar-scroll{overflow-x:auto;border-radius:15px;border:1px solid var(--line);background:#fff;padding:8px}.calendar-grid{min-width:1120px}.days{align-items:stretch;gap:7px}.week span{font-size:14px;font-weight:700;padding:12px}.day{min-height:125px;padding:11px;background:#fff;text-align:left;gap:9px;cursor:pointer;overflow-wrap:anywhere;color:#25334b;border-color:#dce3f0}.day.selected{background:#fff7fc;border:2px solid #c63488;padding:10px}.day:hover{background:#f6f2ff}.day.future{opacity:.75}.day .date{font-size:17px;font-weight:800}.day.today .date{color:#6941bd}.day small{font-size:14px}.daytotals{display:flex;flex-direction:column;gap:5px;padding-bottom:8px;border-bottom:2px solid #e8dcfa}.daytotal,.dayquantity{display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-size:14px;line-height:1.4}.daytotal{font-weight:650}.daytotal b{font-size:17px;color:#6737ac}.dayperson{display:flex;flex-direction:column;gap:4px;padding:7px;border-radius:9px;background:var(--person-bg,#f5f0ff);border-left:3px solid var(--person,#7146cf)}.dayname{font-size:14px;font-weight:800;color:var(--person,#614590);line-height:1.4}.daynone{font-size:14px;color:#647087}.calendar-note{font-size:14px;color:#526079;line-height:1.6}.detail{min-height:0}.detail .entry{display:inline-block;vertical-align:top;width:33.333%;padding:16px;border-bottom:0}.hint{background:#f1f5fd;color:#455570}.hint p:last-child{margin-bottom:0}.daily-total-grid{display:grid;grid-template-columns:repeat(3,1fr)}.stat strong{color:#6842ac}.stat:nth-child(1){background:#f0eaff}.stat:nth-child(2){background:#fff0f7}.stat:nth-child(3){background:#eafaef}.stat small{color:#4c5870}.badge{background:#fff4c9;color:#76551b;border-color:#e4ce82}.error{color:#b62651}.avatars button.active{background:#f2e7ff;border-color:#8053c0}dialog{background:#fff;color:#25334b;border-color:#d6c5eb}dialog::backdrop{background:#53648066}.close{color:#25334b}#notice{background:#e0f7e9;color:#20593e;border:1px solid #a9d7bb}.participants-page{display:grid;grid-template-columns:1fr 1fr;gap:35px}.participant-list{display:grid;gap:12px;margin-top:22px}.participant-card{display:flex;align-items:center;gap:15px;border:1px solid var(--line);border-left:5px solid var(--person);padding:17px;border-radius:14px;background:var(--person-bg)}.participant-card small{display:block;margin-top:5px}.participant-card b{font-size:18px}footer{color:#526079}.calendar .legend{font-size:14px}
@media(max-width:700px){.participants-page{grid-template-columns:1fr}.detail .entry{width:100%}.calendar-grid{min-width:1120px}.day{min-height:125px;padding:11px}.day.selected{padding:10px}.people{gap:8px}.calendar-scroll{margin:0 -5px}.stat strong{font-size:25px}.topline{gap:15px}}
.team-overview{margin:0 0 30px}.overview-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.overview-heading h1{font-size:29px;margin:0}.overview-heading p{color:#526079;margin:6px 0}.overview-heading label{margin-top:0}.overview-heading select{min-width:175px}.team-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.total-card{border:1px solid #dce3f0;border-top:5px solid var(--person,#7146cf);border-radius:19px;background:var(--person-bg,#fff);padding:18px 21px;box-shadow:0 8px 22px #50608008}.total-card h2{display:flex;align-items:center;gap:10px;font-size:22px;color:var(--person,#35425e)}.total-card h2 span{font-size:30px}.total-card dl{margin:15px 0 0}.total-card dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-top:1px solid #c9d2e766;padding:7px 0}.total-card dt{font-size:14px}.total-card dd{font-size:25px;font-weight:850;margin:0;color:var(--person,#35425e);font-variant-numeric:tabular-nums}.chat-panel{margin-top:2px}.chat-panel>.row p{margin:6px 0;color:#526079}.chat-panel>.muted{font-size:14px}.chat-messages{max-height:330px;overflow-y:auto;padding:6px 4px;margin:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.chat-message{background:var(--person-bg,#f5f1ff);border-left:3px solid var(--person,#7146cf);border-radius:12px;padding:13px 16px;margin:10px 0}.chat-message b{color:var(--person,#7146cf)}.chat-message time{font-size:13px;color:#526079}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;margin:7px 0 0}.chat-empty{color:#526079;text-align:center;padding:20px}.chat-panel textarea{width:100%;resize:vertical;min-height:85px;max-height:300px;border:1px solid #b7c5da;border-radius:12px;background:white;color:#25334b;font:inherit;padding:12px}.chat-panel textarea:focus-visible{outline:3px solid #a7dcbc;outline-offset:2px}.chat-panel form>.row{margin-top:12px;align-items:center}.chat-panel form button{margin:0;width:auto;min-width:120px}.chat-panel #chat-status{font-size:14px;line-height:1.45}.team-overview+.topline h1{font-size:21px}
@media(max-width:900px){.team-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.overview-heading{align-items:flex-start;flex-direction:column;gap:6px}.overview-heading h1{font-size:26px}.overview-heading>div:last-child{width:100%}.overview-heading select{width:100%}.team-totals{grid-template-columns:1fr;gap:12px}.total-card{padding:14px 18px}.total-card dl{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;margin-top:10px}.total-card dl>div{gap:8px}.total-card dt{font-size:13px}.total-card dd{font-size:22px}.chat-panel form>.row{flex-wrap:wrap}.chat-panel>.row{flex-wrap:wrap}}
.overview-heading .today-banner{display:inline-block;font-size:clamp(22px,3vw,30px);font-weight:850;color:#6436ad;background:#eee4ff;border:1px solid #d9c4f5;border-radius:12px;padding:10px 15px;line-height:1.3;margin:12px 0 5px;text-transform:capitalize}.overview-heading .totals-period-label{font-size:14px;margin-top:5px}.chat-panel #chat-day{font-size:22px;font-weight:800;color:#6436ad;margin-top:8px;text-transform:capitalize}#chat-panel{margin:0 0 28px}.team-overview{margin-bottom:20px}
