:root{--navy:#092b62;--gold:#d7aa43;--ink:#0b2550;--bg:#f3f6f8;--line:#dfe6ec;--muted:#718197}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",sans-serif}.admin-shell{min-height:100vh}.auth-card{width:min(430px,calc(100% - 32px));margin:9vh auto;background:#fff;padding:42px;box-shadow:0 22px 60px #092b6217;border-top:3px solid var(--gold)}.auth-brand,.admin-brand{display:flex;align-items:center;gap:10px}.auth-brand>span,.admin-brand>span{width:34px;height:34px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font-size:20px}.auth-brand strong{font:600 17px "Playfair Display";letter-spacing:.1em}.auth-brand small,.admin-brand small{display:block;font:700 6px "DM Sans";letter-spacing:.3em;margin-top:4px}.auth-kicker,.dashboard-title>div>p{color:var(--gold);font-size:9px;letter-spacing:.17em;font-weight:700;margin:38px 0 8px}.auth-card h1,.dashboard-title h1{font:600 39px "Playfair Display";margin:0}.auth-card>p:not(.auth-kicker){color:var(--muted);font-size:12px;line-height:1.7}.auth-card form{display:grid;gap:15px;margin:25px 0}.auth-card label{display:grid;gap:7px;color:#425873;font-size:10px;font-weight:700}.auth-card input{border:1px solid var(--line);background:#f8fafb;padding:13px;font:13px "DM Sans";outline:none}.auth-card input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #d7aa4320}.auth-card button{border:0;background:var(--navy);color:#fff;padding:15px 18px;font-weight:700;cursor:pointer;display:flex;justify-content:space-between}.auth-card>a{font-size:10px;color:var(--muted)}.auth-error{color:#b52e36!important;min-height:18px;margin:0!important}.dashboard{max-width:1280px;margin:auto;padding:0 35px 70px}.admin-header{height:78px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.admin-brand p{margin:0;font:600 15px "Playfair Display";letter-spacing:.08em}.admin-header>div:last-child{display:flex;gap:9px}.admin-header button,.export-button,.toolbar button{border:1px solid #cfd9e1;background:#fff;color:var(--ink);padding:10px 14px;font-size:10px;font-weight:700;cursor:pointer}.export-button{background:var(--navy);color:#fff;border-color:var(--navy);text-decoration:none}.dashboard-title{display:flex;justify-content:space-between;align-items:end;padding:48px 0 26px}.dashboard-title>div>p{margin-top:0}.dashboard-title>span{font-size:9px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.stats article{background:#fff;padding:19px 21px;border:1px solid #e6ebef}.stats span{font-size:8px;letter-spacing:.13em;color:var(--muted);font-weight:700}.stats strong{display:block;font:600 29px "Playfair Display";margin-top:8px}.toolbar{display:flex;gap:10px;background:#fff;padding:13px;margin-bottom:11px;border:1px solid #e5eaee}.search{flex:1;display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:0 12px}.search input{border:0;outline:0;width:100%;padding:10px 0;font:11px "DM Sans"}.status-filter{display:flex;align-items:center;gap:8px;font-size:9px;font-weight:700}.status-filter select{border:1px solid var(--line);padding:10px;font:10px "DM Sans";background:#fff}.reservation-list{display:grid;gap:9px}.reservation{background:#fff;border:1px solid #e1e7ec}.reservation-main{display:grid;grid-template-columns:105px 1.4fr 1fr 1fr 135px 30px;gap:15px;align-items:center;padding:17px 20px;cursor:pointer}.reference{font:700 10px "DM Sans";color:var(--gold)}.client strong{font-size:12px;display:block}.client small,.appointment small,.service small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.appointment b,.service b{font-size:11px}.status{width:100%;border:0;border-radius:20px;padding:8px 9px;font:700 9px "DM Sans";outline:0}.status.pending{background:#fff3d9;color:#8a640e}.status.confirmed{background:#dcecff;color:#1b5b99}.status.completed{background:#def3e7;color:#267149}.status.cancelled{background:#f5e1e3;color:#a23c45}.expand{font-size:17px;color:var(--muted)}.reservation-detail{display:none;border-top:1px solid var(--line);padding:18px 20px;background:#fbfcfd;grid-template-columns:1fr 1fr;gap:20px}.reservation.open .reservation-detail{display:grid}.detail-info{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.detail-info div{font-size:11px}.detail-info small{display:block;color:var(--muted);font-size:8px;margin-bottom:4px}.notes{display:grid;gap:7px}.notes span{font-size:9px;font-weight:700}.notes textarea{resize:vertical;border:1px solid var(--line);padding:10px;font:11px "DM Sans";min-height:70px}.notes button{justify-self:end;border:0;background:var(--navy);color:#fff;padding:9px 14px;font-size:9px;font-weight:700;cursor:pointer}.empty-state{text-align:center;background:#fff;padding:60px}.empty-state>span{font-size:35px;color:var(--gold)}.empty-state h2{font:600 23px "Playfair Display";margin:12px 0 5px}.empty-state p{font-size:11px;color:var(--muted)}@media(max-width:800px){.dashboard{padding:0 15px 50px}.admin-header{height:68px}.admin-header .export-button{display:none}.dashboard-title{padding-top:32px}.stats{grid-template-columns:1fr 1fr}.toolbar{flex-wrap:wrap}.search{flex-basis:100%}.reservation-main{grid-template-columns:75px 1fr 100px 20px}.service{display:none}.appointment{grid-row:2;grid-column:2}.reservation-main .status{grid-column:3;grid-row:1/3}.expand{grid-column:4;grid-row:1/3}.reservation-detail{grid-template-columns:1fr}.auth-card{padding:31px 24px}}
.pointage-link{border:1px solid var(--gold);background:#fff8e8;color:var(--ink);padding:10px 14px;font-size:10px;font-weight:700;text-decoration:none}
