:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#152720;background:#f4f7f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.shell{max-width:840px;margin:auto;min-height:100dvh;background:#fff;box-shadow:0 0 40px #072c1710}.top{background:#087e49;color:white;padding:18px 18px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{font-size:19px;font-weight:800;letter-spacing:.025em}.subtitle{font-size:12px;opacity:.8}.main{padding:18px 16px 100px}.nav{position:sticky;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);gap:3px;background:white;border-top:1px solid #e5eae7;padding:6px max(7px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom));z-index:10}.nav button{border:0;background:transparent;color:#5a6d60;padding:10px 2px;font-size:11px}.nav button.active{color:#087e49;background:#edf7f0;border-radius:10px;font-weight:700}h1{font-size:23px;margin:0 0 14px}h2{font-size:16px;margin:21px 0 12px}h3{font-size:15px;margin:0 0 8px}.muted{color:#607368;font-size:13px}.small{font-size:12px}.card{border:1px solid #e0e8e3;border-radius:14px;padding:14px;margin:10px 0;background:white}.soft{background:#f3f8f5}.stack{display:grid;gap:11px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stat{background:#f0f6f2;border-radius:12px;padding:13px;text-align:center}.stat strong{display:block;font-size:24px}.stat span{font-size:11px;color:#587365}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.row>*{min-width:0}.pill{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#edf1ef;color:#57695e;white-space:normal;text-align:center}.pill.green{background:#e0f5e7;color:#087e49}.pill.orange{background:#fff1d9;color:#a36100}.pill.red{background:#ffe3e3;color:#bb2525}.btn{border:0;border-radius:10px;padding:12px 14px;background:#087e49;color:#fff;font-weight:700}.btn.secondary{background:#edf4ef;color:#145a37}.btn.danger{background:#b42d2d}.btn.line{border:1px solid #c9d9ce;background:#fff;color:#17643f}.btn.small{padding:8px 10px;font-size:12px}.full{width:100%}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions .btn{flex:1}label{display:block;font-weight:650;font-size:13px;margin:12px 0 5px}input,select,textarea{border:1px solid #cddbd2;background:#fff;border-radius:10px;padding:11px;width:100%;color:#152720}textarea{min-height:78px;resize:vertical}input[type=file]{font-size:12px}input[type=checkbox]{width:auto}.checkbox{display:flex;gap:10px;align-items:center;padding:9px;border:1px solid #e1e8e3;border-radius:10px;margin:6px 0}.checkbox label{margin:0}.rule{display:flex;gap:11px;padding:10px 0;border-bottom:1px solid #edf1ef;font-size:14px}.yes{color:#087e49;font-weight:bold}.no{color:#c32c2c;font-weight:bold}.notice{padding:12px;border:1px solid #b9deca;background:#edf9f1;color:#145a37;border-radius:10px;margin:10px 0}.warning{padding:12px;background:#fff3e1;border:1px solid #f1ce92;border-radius:10px;color:#895300;font-size:13px}.dangerText{color:#ae2929}.placeholder{min-height:92px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#879c90;background:#f3f6f4;border:1px dashed #cbd6cf;border-radius:10px;font-size:12px}.thumb{max-width:100%;height:120px;width:100%;object-fit:cover;border-radius:10px}.progress{height:7px;border-radius:12px;background:#e8eeea;overflow:hidden}.progress>div{height:100%;background:#087e49}.tap{cursor:pointer}hr{border:0;border-top:1px solid #e7ece9;margin:16px 0}.right{text-align:right}.center{text-align:center}.welcome{max-width:510px;margin:36px auto}.logo{background:#087e49;color:white;padding:30px 14px;text-align:center;border-radius:18px;font-size:25px;font-weight:900;margin-bottom:25px}.back{color:#087e49;background:transparent;border:0;padding:8px 0;font-weight:700}.photo-label{font-size:12px;color:#496956;display:block;padding:4px 0}.spaced{margin-top:16px}.bars{display:flex;gap:6px;flex-wrap:wrap}.bars button{border:1px solid #d9e3dc;background:white;border-radius:9px;padding:8px 10px}.bars button.on{background:#e3f3e9;color:#076c3f;border-color:#8fceac}.mini{font-size:12px;color:#5f7769}.error{color:#af2929;font-size:13px}.footer{color:#7a8c80;font-size:11px;text-align:center;padding:18px}.value{font-weight:750}a{color:#086d42}@media(min-width:680px){.main{padding:25px 28px 90px}.top{padding:22px 28px}} 

/* iPad V1: navigation latérale en paysage, navigation basse en portrait étroit. */
:root{--panel:#f7faf8;--line:#e0e9e3}
html{-webkit-text-size-adjust:100%}
body{background:#eaf0ec}
.shell{max-width:100%;min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);box-shadow:none}
.top{grid-row:1;grid-column:1/-1;min-height:76px}
.brand-wrap{display:flex;align-items:center;gap:12px;min-width:0}
.brand-symbol{font-size:30px}
.brand{font-size:20px}
.user-box{display:flex;align-items:center;gap:16px;text-align:right;flex-shrink:0}
.main{min-width:0;grid-row:2;grid-column:1;max-width:1260px;width:100%;margin-inline:auto;padding:28px 30px 110px}
.sidebar{display:none}
.nav{grid-row:3;grid-column:1;position:sticky}
.nav-icon{font-size:21px;display:block;line-height:1.3}
.main h1{font-size:clamp(24px,2.3vw,32px);letter-spacing:-.03em}
.main h2{font-size:19px}
.card{border-radius:16px;padding:18px;box-shadow:0 2px 10px #0a401008}
.btn{min-height:44px;touch-action:manipulation}
input,select,textarea{min-height:44px;font-size:16px}
.stats{gap:12px}
.stat{padding:18px}
.stat strong{font-size:29px}
.stat span{font-size:12px}
.grid{gap:14px}
.thumb{height:160px}
.placeholder{min-height:125px}
.welcome{margin:40px auto;max-width:520px}
.auth-layout .main{padding-top:16px}
@media (min-width:900px) and (orientation:landscape){
 .shell.in-app{grid-template-columns:242px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
 .top{grid-column:1/-1}
 .sidebar{display:flex;grid-column:1;grid-row:2;flex-direction:column;gap:18px;background:#f5f9f6;border-right:1px solid var(--line);padding:26px 15px 22px;min-height:calc(100dvh - 76px)}
 .sidebar-label{font-size:11px;color:#708378;letter-spacing:.1em;font-weight:800;padding:0 14px}
 .side-nav{display:grid;gap:7px}
 .side-nav button{display:flex;align-items:center;gap:15px;width:100%;min-height:52px;text-align:left;border:0;background:transparent;border-radius:12px;padding:11px 14px;color:#43594a;font-size:15px;font-weight:650}
 .side-nav button .nav-icon{font-size:23px;width:30px;text-align:center}
 .side-nav button.active{background:#dcf2e4;color:#076f41}
 .side-nav button:focus-visible{outline:3px solid #3caa71;outline-offset:1px}
 .sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:20px 8px 0;display:grid;gap:8px}
 .sidebar-person{font-weight:800;padding-left:12px}
 .sidebar-role{font-size:13px;color:#62806c;padding-left:12px}
 .sidebar-help{font-size:11px;color:#7a9181;line-height:1.5;padding:8px}
 .main{grid-column:2;grid-row:2;padding:32px clamp(24px,3vw,52px) 54px;max-width:1450px}
 .nav{display:none}
 .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1150px) and (orientation:landscape){
 .shell.in-app{grid-template-columns:265px minmax(0,1fr)}
 .sidebar{padding-inline:18px}
 .main .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:600px){
 .top{padding:14px 14px;min-height:70px}
 .brand{font-size:16px}
 .brand-symbol{font-size:23px}
 .subtitle{font-size:10px}
 .user-box{gap:6px;font-size:12px}
 .user-box .btn{padding:8px;font-size:11px}
 .main{padding:18px 14px 105px}
 .grid{grid-template-columns:1fr}
 .stat{padding:10px 6px}
 .stat strong{font-size:22px}
 .stats{gap:6px}
 .card{padding:14px}
}
@media(prefers-reduced-motion:no-preference){.btn,.side-nav button,.nav button{transition:background-color .15s,color .15s}}
