*{box-sizing:border-box}body{margin:0;background:#f4f5f1;color:#24322c;font-family:"DM Sans",sans-serif}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:10px;color:var(--accent)}button,input,textarea,select{font:inherit}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#e7eee7,#f5f2ea)}.login-box{width:min(440px,90vw);background:#fff;padding:45px;border-radius:28px;box-shadow:0 25px 80px rgba(36,50,44,.12)}.admin-logo{width:52px;height:52px;border-radius:16px;background:var(--accent);color:#fff;display:grid;place-items:center;font:700 25px Fraunces,serif;margin-bottom:25px}.login-box h1{font:700 42px Fraunces,serif;margin:5px 0}.login-box p{color:#68736e}.login-box label{display:grid;gap:7px;margin:25px 0 15px}.login-box input{padding:14px;border:1px solid #d8ded9;border-radius:12px}.login-box button,.primary,.panel-head button{border:0;background:var(--accent);color:#fff;padding:12px 17px;border-radius:12px;font-weight:700;cursor:pointer}.login-box>a{display:block;margin-top:20px;color:#78817d;font-size:13px}.alert{padding:12px;border-radius:10px;background:#fff1ee;color:#8b392f}.admin-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}aside{background:#1f3129;color:#fff;padding:25px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.admin-brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;padding:5px 8px 30px}.admin-brand>span{width:42px;height:42px;border-radius:12px;background:#fff;color:#244237;display:grid;place-items:center;font:700 20px Fraunces,serif}.admin-brand small{font-weight:400;opacity:.6}.admin-brand strong{line-height:1.05}.admin-shell nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:rgba(255,255,255,.66);padding:12px;text-align:left;border-radius:10px;cursor:pointer}.nav-item.active,.nav-item:hover{background:rgba(255,255,255,.09);color:#fff}.aside-bottom{margin-top:auto;display:grid;gap:11px;padding:12px}.aside-bottom a{color:rgba(255,255,255,.62);text-decoration:none;font-size:13px}.admin-main{padding:35px 4vw 60px;min-width:0}.admin-main>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.admin-main h1{font:700 38px Fraunces,serif;margin:4px 0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stats>div,.panel{background:#fff;border:1px solid #e3e6e2;border-radius:18px}.stats>div{padding:22px}.stats span{display:block;font:700 36px Fraunces,serif}.stats small{color:#7c8581}.dashboard-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.panel{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.panel-head h2{font:700 24px Fraunces,serif;margin:0}.panel-head p{margin:5px 0 0;color:#818a86;font-size:13px}.tree{display:grid;gap:10px}.tree-section{padding:15px;background:#f7f8f5;border-radius:13px}.tree-section strong{display:block}.tree-section span{display:flex;justify-content:space-between;color:#68736e;font-size:13px;padding:8px 0 0 18px}.tree-section small{color:#9aa19e}.content-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid #edf0ed}.content-type{width:38px;height:38px;border-radius:11px;background:#edf3ee;color:var(--accent);display:grid;place-items:center;font-weight:700}.content-row small,.content-row strong,.content-row span{display:block}.content-row small{color:#939b97;font-size:10px}.content-row span{font-size:10px;color:var(--accent);margin-top:3px}.content-row button,.table-row button{border:0;background:none;color:var(--accent);cursor:pointer}.table{display:grid}.table-row{display:grid;grid-template-columns:1fr 100px auto auto;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid #edf0ed}.table-row strong,.table-row small{display:block}.table-row small{color:#8b9490}.table-row>span{font-size:12px}.danger-link{color:#a34a42!important}.filters{display:flex;gap:10px;margin-bottom:10px}.filters select,.filters input{padding:11px;border:1px solid #dce1dd;border-radius:10px;background:#fff}.filters input{flex:1}.delete-inline{float:right;margin-top:-42px;margin-right:70px;border:0;background:none}.modal{display:none;position:fixed;inset:0;background:rgba(20,31,26,.55);z-index:100;padding:25px;overflow:auto}.modal.open{display:block}.modal-card{width:min(900px,100%);margin:2vh auto;background:#fff;border-radius:22px;padding:28px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:25px}.modal-head h2{font:700 34px Fraunces,serif;margin:2px 0}.icon-btn{border:0;background:#f1f3f0;width:40px;height:40px;border-radius:50%;font-size:24px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label{display:grid;gap:7px;font-size:13px;font-weight:600}.wide{grid-column:1/-1}.form-grid input,.form-grid textarea,.form-grid select{width:100%;border:1px solid #d9dfda;border-radius:10px;padding:11px;background:#fff}.form-grid textarea{min-height:90px;resize:vertical}.switch{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center!important}.switch input{width:auto}.field-group{display:none;background:#f6f8f5;border-radius:14px;padding:16px}.field-group.visible{display:block}.field-group h3{font:700 18px Fraunces,serif;margin:0 0 13px}.image-field{display:flex;gap:10px;align-items:center}.image-preview{width:120px;height:82px;border-radius:10px;background:#f3f4f2;overflow:hidden;display:grid;place-items:center;color:#8d9591;font-size:11px}.image-preview img{width:100%;height:100%;object-fit:cover}.upload-button,.text-btn{padding:9px 12px;border-radius:9px;border:1px solid #d8ded9;background:#fff;cursor:pointer;font-size:12px}.text-btn{color:#a34a42}.wysiwyg{border:1px solid #d9dfda;border-radius:12px;overflow:hidden}.wysiwyg-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:7px;background:#f4f6f3;border-bottom:1px solid #d9dfda}.wysiwyg-toolbar button,.wysiwyg-toolbar label{border:0;background:#fff;padding:7px 9px;border-radius:7px;cursor:pointer;font-size:12px}.rich-editor{min-height:240px;padding:18px;outline:none;font-weight:400;line-height:1.6}.rich-editor img{max-width:100%;height:auto}.form-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;margin-top:25px}.secondary{border:1px solid #d8ded9;background:#fff;padding:11px 15px;border-radius:10px;cursor:pointer}.danger.secondary{border-color:#e0b6b1;color:#9c4037}.toast{position:fixed;right:25px;bottom:25px;background:#1f3129;color:#fff;padding:13px 18px;border-radius:12px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;z-index:200}.toast.show{opacity:1;transform:none}.loading,.empty{padding:30px;text-align:center;color:#828b87}
@media(max-width:850px){.admin-shell{grid-template-columns:1fr}aside{position:relative;height:auto}.admin-shell nav{grid-template-columns:repeat(4,1fr)}.aside-bottom{display:none}.dashboard-grid,.stats{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.table-row{grid-template-columns:1fr auto}.table-row>span{display:none}.admin-main>header{align-items:flex-start}.admin-main h1{font-size:30px}}
@media(max-width:560px){.stats{grid-template-columns:1fr 1fr}.admin-main{padding:25px 15px}.admin-shell nav{grid-template-columns:1fr 1fr}.admin-main>header{gap:15px}.modal{padding:8px}.modal-card{padding:20px}.form-actions{grid-template-columns:1fr 1fr}.form-actions span{display:none}}
.field-help{margin:9px 0 0;color:#7d8782;font-size:12px;line-height:1.5}
.publication-group{background:#f5f7f2;border:1px solid #e3e8df}
.publication-group h3 small{font-family:"DM Sans",sans-serif;font-size:11px;font-weight:500;color:#8d9692;margin-left:5px}
.alert-admin-row small+strong{margin-top:3px}

/* Identité du camping */
.settings-panel{max-width:980px}
.identity-layout{display:grid;grid-template-columns:250px 1fr;gap:30px;align-items:start}
.identity-logo-card{background:#f5f7f3;border:1px solid #e1e6e1;border-radius:18px;padding:20px;text-align:center}
.identity-logo-card .eyebrow{text-align:left}
.camping-logo-preview{width:180px;height:180px;max-width:100%;margin:12px auto 18px;border-radius:24px;background:#fff;border:1px solid #dce2dd;display:grid;place-items:center;overflow:hidden}
.camping-logo-preview img{width:100%;height:100%;object-fit:contain;padding:12px}
.camping-logo-preview span{width:78px;height:78px;border-radius:22px;background:var(--accent);color:#fff;display:grid;place-items:center;font:700 40px Fraunces,serif}
.identity-upload{display:block;margin:0 auto 8px;width:max-content}
.identity-logo-card>.text-btn{display:block;margin:0 auto 14px}
.identity-logo-card>small{display:block;color:#858e89;font-size:11px;line-height:1.5}
.identity-fields{padding-top:6px}
.color-field{display:grid;grid-template-columns:54px 1fr;gap:8px}
.color-field input[type=color]{height:44px;padding:3px;cursor:pointer}
.preview-link{text-decoration:none;text-align:center}
.settings-actions{align-items:center}
@media(max-width:760px){.identity-layout{grid-template-columns:1fr}.camping-logo-preview{width:150px;height:150px}}
