:root{--ink:#243037;--muted:#647278;--accent:#b64b21;--accent-soft:#fff0e5;--paper:#f4f5f4;--line:#dce2e3;--white:#fff;--dark:#1e2c32;--green:#21734f;--red:#a62c30;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;justify-content:center;align-items:center;background:var(--accent);color:white;border:1px solid var(--accent);border-radius:8px;padding:11px 18px;font-weight:700;cursor:pointer;text-decoration:none;min-height:46px}button:hover,.button:hover{filter:brightness(.94)}button:disabled{opacity:.55;cursor:wait}button.secondary,.button.secondary{color:var(--ink);background:white;border:1px solid var(--line)}button.text{background:none;color:var(--accent);border-color:transparent;padding:6px}button.small{padding:6px 10px;min-height:36px;font-size:14px}a{color:var(--accent)}input,textarea,select{width:100%;padding:11px 12px;border:1px solid #aebac0;border-radius:7px;color:var(--ink);background:white;min-height:46px}input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #eeb88f;outline-offset:2px}input[type=checkbox]{width:20px;min-height:20px;vertical-align:middle}label{display:block;font-size:14px;font-weight:700;margin-bottom:16px}label input,label select,label textarea{display:block;margin-top:6px;font-weight:400}label.check{display:flex;gap:10px;align-items:center}label.check input{margin:0}textarea{min-height:110px;resize:vertical}h1{font-size:32px;line-height:1.2;margin:8px 0 18px;letter-spacing:-.8px}h2{font-size:23px;line-height:1.3;margin:0 0 18px}h3{font-size:18px;margin:0 0 10px}p{margin:0 0 18px}.small,small{font-size:14px;color:var(--muted)}.muted{color:var(--muted)}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.7px;color:var(--accent);margin-bottom:12px}.brand{font-weight:900;letter-spacing:2px;font-size:28px;line-height:1.1;text-decoration:none;color:var(--ink)}.brand span{display:block;font-size:11px;letter-spacing:3.5px;margin-top:6px;color:var(--accent)}.public-shell{max-width:820px;margin:auto;padding:34px 24px}.public-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.panel{background:white;border:1px solid var(--line);border-radius:15px;padding:32px;margin-bottom:20px}.panel.flat{padding:24px}.progress{display:flex;gap:6px;margin:0 0 28px}.progress i{height:5px;flex:1;border-radius:5px;background:var(--line)}.progress i.active{background:var(--accent)}.choices{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0 8px}.choice{display:block;text-align:left;padding:26px;background:white;color:var(--ink);border:2px solid var(--line);min-height:136px}.choice:hover{border-color:var(--accent);background:var(--accent-soft)}.choice strong{font-size:20px;display:block;margin-bottom:6px}.choice span{display:block;font-size:14px;font-weight:400;color:var(--muted)}.actions{display:flex;gap:12px;justify-content:flex-end;align-items:center;margin-top:24px;flex-wrap:wrap}.actions.between{justify-content:space-between}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.notice{border-radius:8px;padding:14px 16px;background:#edf3f6;border:1px solid #ccdae0;margin-bottom:20px;font-size:15px}.notice.error{background:#fff0f0;border-color:#e5b5b5;color:#8c2529}.notice.success{background:#eaf5ee;color:#22613f;border-color:#b9d7c5}.summary{background:var(--paper);padding:22px;border-radius:9px;margin:20px 0}.summary dt{font-size:13px;color:var(--muted);margin-top:12px}.summary dd{margin:2px 0 12px;font-weight:600}.hero-photo{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:1723 / 913;object-fit:contain;background:var(--paper);border-radius:10px;margin-bottom:25px}footer{font-size:13px;text-align:center;color:var(--muted);margin:26px 0}.results{border:1px solid var(--line);border-radius:8px;max-height:230px;overflow:auto;margin-bottom:16px}.results button{width:100%;text-align:left;display:block;border:none;border-radius:0;border-bottom:1px solid var(--line);color:var(--ink);background:white;font-weight:400}.results button:hover{background:var(--accent-soft)}.offscreen{position:absolute;left:-9999px}.app-layout{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--dark);padding:30px 20px;color:#d8e3e6;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.sidebar .brand{color:white;margin:0 10px 38px}.sidebar .brand span{color:#eda56c}.sidebar nav{display:grid;gap:5px}.sidebar nav button{background:transparent;border:0;color:#c5d0d4;font-weight:500;text-align:left;justify-content:flex-start;padding:11px 14px}.sidebar nav button.active{background:#39494f;color:#fff;border-left:3px solid #e89959}.sidebar .bottom{margin-top:auto;font-size:13px;padding:18px 12px}.sidebar a{color:#efb387}.workspace{padding:36px 38px;max-width:1600px;width:100%;margin:auto;align-self:start}.page-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:26px}.page-head h1{margin-bottom:5px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}.stat{border:1px solid var(--line);background:white;border-radius:12px;padding:22px}.stat strong{font-size:34px;display:block;letter-spacing:-1px}.stat span{font-size:14px;color:var(--muted)}.stat:first-child{border-top:3px solid var(--accent)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:white}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th{background:#f7f8f8;color:var(--muted);font-size:12px;letter-spacing:.4px;text-transform:uppercase;font-weight:700;padding:14px 16px;white-space:nowrap}td{padding:15px 16px;border-top:1px solid var(--line);vertical-align:middle}td strong{font-size:15px}td .small{font-size:13px}.badge{display:inline-block;font-size:12px;border-radius:5px;background:#edf1f3;color:#50606b;padding:4px 8px;white-space:nowrap}.badge.a_rappeler,.badge.en_attente{background:#fff0de;color:#8c4a0c}.badge.confirme{background:#e1f3e8;color:#236240}.badge.annulee,.badge.echec{background:#fbe8e8;color:#963438}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.toolbar input{max-width:320px}.toolbar select{max-width:210px}.empty{padding:45px;text-align:center;color:var(--muted);background:white;border:1px dashed var(--line);border-radius:12px}.calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.day{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}.day h3{background:#e9eff1;margin:0;padding:13px 16px;font-size:16px}.period{padding:16px;border-top:1px solid var(--line)}.period .row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.period small{display:block;margin-top:6px}.period .slots-count{font-size:22px;font-weight:700}.appointments{margin:8px 0}.appointments button{display:block;margin-top:6px;font-size:13px;padding:5px 8px;min-height:30px;max-width:100%;text-align:left;overflow-wrap:anywhere}.tabs{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}dialog{border:0;border-radius:14px;box-shadow:0 20px 100px #142c3b44;padding:28px;width:min(760px,94vw);max-height:90vh;overflow:auto}dialog::backdrop{background:#18283188}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:18px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:14px}.split{display:grid;grid-template-columns:1fr 1fr;gap:22px}.inline-photo{max-width:100%;height:160px;object-fit:cover;border-radius:8px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--dark);color:white;padding:14px 22px;border-radius:10px;box-shadow:0 5px 20px #0002;max-width:min(650px,92vw);z-index:100;display:none}#toast.show{display:block}#toast.error{background:#982f33}.login{max-width:480px;margin:70px auto;padding:0 20px}.login .brand{margin-bottom:25px;display:block}.login h1{font-size:27px}.mono{font-family:monospace}.welcome-check{font-size:38px;background:#e8f4ed;color:#26764f;width:70px;height:70px;display:grid;place-items:center;border-radius:50%;margin-bottom:22px}@media(min-width:1500px){.calendar{grid-template-columns:repeat(6,minmax(0,1fr))}.period{padding:12px}}@media(max-width:1000px){.app-layout{grid-template-columns:195px minmax(0,1fr)}.workspace{padding:26px 20px}.sidebar{padding:25px 10px}.stats{grid-template-columns:repeat(2,1fr)}.calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media(max-width:680px){h1{font-size:27px}.public-shell{padding:22px 15px}.panel{padding:24px 20px}.choices,.grid2{grid-template-columns:1fr;gap:10px}.choice{min-height:100px;padding:20px}.public-top .small{max-width:120px;text-align:right}.app-layout{display:block}.sidebar{height:auto;position:static;padding:18px}.sidebar .brand{margin:0 0 18px;font-size:23px}.sidebar nav{display:flex;overflow:auto;padding-bottom:5px}.sidebar nav button{white-space:nowrap}.sidebar .bottom{display:none}.workspace{padding:24px 15px}.page-head{align-items:start}.page-head h1{font-size:26px}.calendar{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:16px}.stat strong{font-size:29px}.actions button{flex:1}.toolbar input,.toolbar select{max-width:none}}

@media(max-width:680px){.sidebar .bottom{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:8px 0 0}.sidebar .bottom p{display:none}.sidebar .bottom button{color:#efb387;min-height:36px;padding:4px 8px}.sidebar .bottom a{font-size:13px}}

.test-banner{background:#fff0de;color:#793900;border-bottom:1px solid #e0b789;padding:10px 22px;font-size:14px;text-align:center;font-weight:700}

.slot-picker{border:0;padding:0;margin:22px 0}.slot-picker legend{font-size:20px;font-weight:700;margin-bottom:10px}.slot-days{display:grid;gap:14px;margin-bottom:16px;max-height:520px;overflow:auto;padding:3px}.slot-day{border:1px solid var(--line);border-radius:10px;padding:16px}.slot-day h3{text-transform:capitalize}.slot-day .grid2{gap:10px}.slot-choice{display:flex;align-items:center;gap:12px;padding:14px;border:2px solid var(--line);border-radius:8px;margin:0 0 10px;cursor:pointer}.slot-choice:has(input:checked){background:var(--accent-soft);border-color:var(--accent)}.slot-choice input{width:20px;height:20px;min-height:20px;margin:0;accent-color:var(--accent);flex-shrink:0}.slot-choice strong,.slot-choice small{display:block}.slot-unavailable{padding:16px;color:var(--muted);margin:0}.slot-picker>button{margin:12px 0}.slot-picker #slotStatus{margin:0}

.google-credit{font:400 14px Arial,sans-serif;color:#5e5e5e;white-space:nowrap;letter-spacing:normal}

button.danger{background:var(--red);border-color:var(--red);color:white}

.planning-reference{padding:12px 16px;margin:0;border-bottom:1px solid var(--line)}

.production-banner{background:#eaf5ee;color:#22613f;border-bottom:1px solid #b9d7c5;padding:10px 22px;text-align:center;font-size:14px;font-weight:700}
/* Apparence commune aux pages client et administrateur. */
:root{--surface:#ffffff;--surface-alt:#e9eff1;--button-ink:#ffffff;--focus:#b64b21;--sidebar-accent:#ffc49d;color-scheme:light}
:root[data-color=blue]{--accent:#195caa;--accent-soft:#eaf2ff;--focus:#195caa;--sidebar-accent:#9ec7ff}
:root[data-color=green]{--accent:#23683e;--accent-soft:#e9f5ec;--focus:#23683e;--sidebar-accent:#a4dfb4}
:root[data-color=teal]{--accent:#126b72;--accent-soft:#e4f5f5;--focus:#126b72;--sidebar-accent:#8fe0dc}
:root[data-color=purple]{--accent:#7140a2;--accent-soft:#f3ebfb;--focus:#7140a2;--sidebar-accent:#d6b4f5}
:root[data-color=burgundy]{--accent:#94314f;--accent-soft:#fbeaf0;--focus:#94314f;--sidebar-accent:#f5b0c5}
:root[data-theme=dark]{color-scheme:dark;--ink:#edf2f5;--muted:#b7c2cb;--paper:#111820;--surface:#1c2732;--surface-alt:#253440;--line:#4a5c6b;--white:#1c2732;--dark:#101820;--accent:#ffb184;--accent-soft:#493329;--button-ink:#15202b;--focus:#ffb184;--sidebar-accent:#ffb184}
:root[data-theme=dark][data-color=blue]{--accent:#9ec7ff;--accent-soft:#243c59;--focus:#9ec7ff;--sidebar-accent:#9ec7ff}
:root[data-theme=dark][data-color=green]{--accent:#a4dfb4;--accent-soft:#243f31;--focus:#a4dfb4;--sidebar-accent:#a4dfb4}
:root[data-theme=dark][data-color=teal]{--accent:#8fe0dc;--accent-soft:#1f3f43;--focus:#8fe0dc;--sidebar-accent:#8fe0dc}
:root[data-theme=dark][data-color=purple]{--accent:#d6b4f5;--accent-soft:#3b2d4e;--focus:#d6b4f5;--sidebar-accent:#d6b4f5}
:root[data-theme=dark][data-color=burgundy]{--accent:#f5b0c5;--accent-soft:#4c2b39;--focus:#f5b0c5;--sidebar-accent:#f5b0c5}
body{background:var(--paper);color:var(--ink)}
.panel,.stat,.table-wrap,.day,.empty,dialog,.choice,.results,.results button{background:var(--surface);color:var(--ink)}
input,textarea,select{background:var(--surface);color:var(--ink);border-color:var(--line)}
button,.button{color:var(--button-ink)}
button.secondary,.button.secondary{background:var(--surface);color:var(--ink)}
button.text{background:transparent;color:var(--accent)}
.choice{color:var(--ink)}.choice:hover,.results button:hover{background:var(--accent-soft)}
th,.day h3{background:var(--surface-alt);color:var(--ink)}
.sidebar{background:var(--dark)}.sidebar .brand{color:#fff}
.sidebar .brand span,.sidebar a,.sidebar .bottom button{color:var(--sidebar-accent)}
.sidebar nav button.active{border-left-color:var(--sidebar-accent)}
.stat:first-child{border-top-color:var(--accent)}
input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline-color:var(--focus)}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
:root[data-theme=dark] .notice{background:#243b4b;border-color:#547184;color:#edf2f5}
:root[data-theme=dark] .notice.error{background:#492a30;border-color:#a66c77;color:#ffd7df}
:root[data-theme=dark] .notice.success,:root[data-theme=dark] .production-banner{background:#213e31;border-color:#56866c;color:#c4f3d8}
:root[data-theme=dark] .test-banner{background:#4a3820;border-color:#98783f;color:#ffe3b5}
:root[data-theme=dark] .badge{background:#354552;color:#e4edf3}
:root[data-theme=dark] .badge.a_rappeler,:root[data-theme=dark] .badge.en_attente{background:#4a3820;color:#ffe3b5}
:root[data-theme=dark] .badge.confirme{background:#213e31;color:#c4f3d8}
:root[data-theme=dark] .badge.annulee,:root[data-theme=dark] .badge.echec{background:#492a30;color:#ffd7df}
:root[data-theme=dark] .google-credit{color:#fff}
button.danger{background:#a62c30;border-color:#a62c30;color:#fff}
.palette-picker{padding:0;border:0;margin:24px 0}.palette-picker legend{font-weight:700;margin-bottom:12px}
.palette-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.palette-option{display:flex;align-items:center;gap:10px;border:2px solid var(--line);border-radius:8px;padding:14px;margin:0;cursor:pointer}
.palette-option:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.palette-option input{width:18px;min-height:18px;height:18px;margin:0;flex-shrink:0}
.palette-swatch{display:inline-block;width:22px;height:22px;border-radius:50%;border:1px solid currentColor;flex-shrink:0}
.swatch-orange{background:#b64b21}.swatch-blue{background:#195caa}.swatch-green{background:#23683e}.swatch-teal{background:#126b72}.swatch-purple{background:#7140a2}.swatch-burgundy{background:#94314f}

.welcome-info{margin-top:24px;padding:22px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);min-width:0;line-height:1.6;font-weight:400}.welcome-info-text{white-space:pre-wrap;overflow-wrap:anywhere}.welcome-bold{font-weight:700}.welcome-font-arial{font-family:Arial,Helvetica,sans-serif}.welcome-font-verdana{font-family:Verdana,Geneva,sans-serif}.welcome-font-georgia{font-family:Georgia,serif}.welcome-font-trebuchet{font-family:"Trebuchet MS",Arial,sans-serif}.welcome-font-times{font-family:"Times New Roman",Times,serif}.welcome-align-left{text-align:left}.welcome-align-justify{text-align:justify;hyphens:auto}.welcome-align-center{text-align:center}.welcome-align-right{text-align:right}
.welcome-size-14{font-size:14px}.welcome-size-16{font-size:16px}.welcome-size-18{font-size:18px}.welcome-size-20{font-size:20px}.welcome-size-22{font-size:22px}.welcome-size-24{font-size:24px}.welcome-size-28{font-size:28px}.welcome-size-32{font-size:32px}

.request-status-group{margin-bottom:30px}.request-status-group h2{display:flex;align-items:center;gap:12px}.request-status-group td button{margin:3px}

.appointment-month{max-width:440px;margin:16px 0;padding:12px;border:1px solid currentColor;border-radius:12px}.appointment-month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:12px;text-align:center}.appointment-month-days button{padding:9px 2px;min-width:0}.appointment-month-days button:disabled{opacity:.35}
