/* Agricoach — espace client (connexion, mon compte) */
:root{
  --green:#134e3a; --green2:#1f7a4d; --green-soft:#e7f1ec; --dark2:#0e3d2d;
  --amber:#f5a623; --amber-d:#e0941a; --red:#c0392b; --red-soft:#fbeae8;
  --ink:#1c2722; --muted:#65766c; --line:#e6ece7; --bg:#ffffff; --soft:#f5f8f5;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--soft);line-height:1.55;font-size:15px}
a{text-decoration:none;color:inherit}
button,input,select{font-family:inherit}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:10px;padding:11px 18px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s}
.btn-amber{background:var(--amber);color:#143b2c}.btn-amber:hover{background:var(--amber-d)}
.btn-green{background:var(--green);color:#fff}.btn-green:hover{background:var(--dark2)}
.btn-ghost{background:#fff;border:1px solid var(--line);color:var(--green);font-weight:600}.btn-ghost:hover{background:var(--soft)}
.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{background:#a93226}
.btn-sm{padding:8px 12px;font-size:13px}
.btn-block{width:100%}
.btn[disabled]{opacity:.55;cursor:default}
.linkbtn{background:none;border:none;color:var(--green2);font-weight:600;cursor:pointer;font-size:13px;padding:0}

/* ---------- connexion ---------- */
.agc-login .wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}
.brandside{background:linear-gradient(150deg,var(--green) 0%,#0e3d2d 100%);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.brandside .logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:23px;position:relative;z-index:1}
.logo .leaf{width:24px;height:35px;display:block;flex:0 0 auto}
.leaf svg,.agc-mark svg,.omark svg{display:block;width:100%;height:100%}
/* marque sur fond vert foncé */
.side,.brandside,.agc-fond-sombre{--agc-tige:#5FD08F;--agc-ea:#F5A623;--agc-eb:#FAC775;--agc-ec:#FFE3A8;--agc-trait:#0F3B29}
.brandside h2{font-size:34px;font-weight:800;line-height:1.2;letter-spacing:-.5px;max-width:420px;margin-bottom:18px}
.brandside p{color:#bfe0d0;font-size:17px;max-width:420px}
.brandside .copy{color:#9fbcae;font-size:13px;font-family:var(--mono)}
.bullets{list-style:none;margin-top:26px}
.bullets li{display:flex;gap:11px;align-items:center;padding:8px 0;color:#dcefe5}
.bullets .ck{width:24px;height:24px;border-radius:50%;background:var(--amber);color:#143b2c;display:grid;place-items:center;font-weight:800;font-size:13px;flex:0 0 auto}
.glow{position:absolute;width:380px;height:380px;border-radius:50%;background:#1f7a4d44;filter:blur(40px);bottom:-120px;right:-100px}
.formside{display:flex;align-items:center;justify-content:center;padding:40px}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px -28px rgba(19,78,58,.30);width:100%;max-width:420px;padding:36px}
.card h1{font-size:24px;font-weight:800;margin-bottom:6px;color:#163326}
.card .sub{color:var(--muted);font-size:14px;margin-bottom:24px}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:600;color:#3a4a42;margin-bottom:6px}
.field input,.field select{width:100%;padding:12px 14px;border:1px solid #d6ddd6;border-radius:10px;font-size:15px;background:#fff}
.field input:focus,.field select:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px #f5a62333}
.field .help{font-size:12px;color:var(--muted);margin-top:5px}
.pwdwrap{position:relative}
.pwdwrap .eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:none;cursor:pointer;font-size:16px;opacity:.55}
.rowflex{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:22px;gap:10px}
.rowflex a{color:var(--green2);font-weight:600}
.checkbox{display:flex;align-items:center;gap:7px;color:var(--muted)}
.notice{padding:11px 14px;border-radius:10px;font-size:14px;margin-bottom:18px}
.notice.err{background:var(--red-soft);color:#8e2a1f}
.notice.ok{background:var(--green-soft);color:var(--green)}
.hint{font-size:13px;color:var(--muted);text-align:center;margin-top:20px}
.hint a{color:var(--green2);font-weight:600}
.hint.cgu{font-size:12px;margin-top:14px;line-height:1.5}
.back{margin-top:16px;text-align:center;font-size:13px;color:var(--muted)}
.back a{color:var(--green2);font-weight:600}
@media(max-width:860px){.agc-login .wrap{grid-template-columns:1fr}.brandside{display:none}}
@media(max-width:480px){.formside{padding:18px 14px;align-items:flex-start}.card{padding:26px 20px;border-radius:18px}.card h1{font-size:22px}.field input{font-size:16px}}

/* ---------- mon compte ---------- */
.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.side{background:var(--green);color:#cfe3d8;padding:22px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.side .logo{display:flex;align-items:center;gap:9px;font-weight:800;font-size:20px;color:#fff;padding:6px 8px 22px}
.side .logo .leaf{width:21px;height:30px}
.side nav{display:flex;flex-direction:column;gap:3px;flex:1}
.side a.item{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:10px;font-size:14.5px;font-weight:600;color:#bcd6c8}
.side a.item:hover{background:#ffffff14;color:#fff}
.side a.item.on{background:var(--amber);color:#143b2c}
.side a.item svg{width:18px;height:18px;flex:0 0 auto}
.side .navlbl{font-family:var(--mono);font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:#8fb3a1;padding:14px 12px 4px}
.side .sidefoot{border-top:1px solid #ffffff1f;padding-top:14px;margin-top:14px}
.userbox{display:flex;align-items:center;gap:10px;padding:8px 10px}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--amber);color:#143b2c;display:grid;place-items:center;font-weight:800;font-family:var(--mono);flex:0 0 auto}
.userbox .nm{font-size:13px;color:#fff;font-weight:700;line-height:1.3}
.userbox .em{font-size:11px;color:#9fbcae;font-family:var(--mono);word-break:break-all}
.userbox .role{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:700;background:#ffffff1f;color:#fff;border-radius:6px;padding:1px 6px;margin-top:3px}
.side .logout{display:block;font-size:13px;color:#9fbcae;padding:8px 10px}
.side .logout:hover{color:#fff}

.main{padding:30px 38px 60px;min-width:0}
.topline{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px;flex-wrap:wrap}
.topline h1{font-size:25px;font-weight:800;color:#163326;letter-spacing:-.4px}
.topline p{color:var(--muted);font-size:14px;margin-top:2px}
.topline .acts{display:flex;gap:10px;flex-wrap:wrap}
.crumb{font-size:13px;color:var(--muted);margin-bottom:6px}
.crumb a{color:var(--green2);font-weight:600}

.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.kpi .l{font-family:var(--mono);font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.kpi .v{font-family:var(--mono);font-size:24px;font-weight:800;color:var(--green);margin-top:6px}
.kpi .v.amber{color:var(--amber-d)}
.kpi .d{font-size:12px;color:var(--muted);margin-top:3px}

.sec-title{display:flex;justify-content:space-between;align-items:center;margin:6px 0 14px;gap:12px;flex-wrap:wrap}
.sec-title h2{font-size:18px;font-weight:800;color:#163326}
.search{padding:9px 13px;border:1px solid var(--line);border-radius:10px;font-size:14px;min-width:220px;background:#fff}
.search:focus{outline:none;border-color:var(--amber)}

.exploit{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
.expcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;transition:.15s;display:flex;flex-direction:column}
.expcard:hover{box-shadow:0 14px 36px -20px rgba(19,78,58,.3)}
.expcard .top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px}
.expcard h3{font-size:17px;font-weight:800;color:#163326;line-height:1.3}
.expcard h3 a:hover{color:var(--green2)}
.expcard .meta{font-size:12.5px;color:var(--muted);font-family:var(--mono);margin-top:2px}
.tag{font-family:var(--mono);font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;white-space:nowrap}
.tag.prev{background:#fef0d6;color:#a96b10}
.tag.conc{background:var(--green-soft);color:var(--green)}
.tag.gray{background:#eef1ee;color:var(--muted)}
.expstats{display:flex;gap:22px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:14px;flex-wrap:wrap}
.expstats .s{font-size:11px;color:var(--muted);text-transform:uppercase;font-family:var(--mono);letter-spacing:.4px}
.expstats .b{font-family:var(--mono);font-size:17px;font-weight:800;color:var(--green);margin-top:2px}
.expstats .b.neg{color:var(--red)}
.expcard .foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto}
.expcard .upd{font-size:12px;color:var(--muted)}
.expcard .actions{display:flex;gap:8px;align-items:center}
.newcard{background:#fff;border:2px dashed #c9d8cf;border-radius:16px;padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);cursor:pointer;min-height:210px;font-size:14px}
.newcard:hover{border-color:var(--amber);background:#fffdf7}
.newcard .plus{width:48px;height:48px;border-radius:50%;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-size:26px;margin-bottom:10px}
.newcard b{color:var(--green);font-size:15px}

/* menu contextuel des cartes */
.menu{position:relative}
.menu > button{border:1px solid var(--line);background:#fff;border-radius:9px;width:36px;height:34px;cursor:pointer;font-size:18px;line-height:1;color:var(--muted)}
.menu > button:hover{background:var(--soft)}
.menu .dd{display:none;position:absolute;right:0;bottom:40px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px -16px rgba(0,0,0,.25);min-width:200px;padding:6px;z-index:20}
.menu.open .dd{display:block}
.menu .dd button{display:block;width:100%;text-align:left;border:none;background:none;padding:9px 12px;border-radius:8px;font-size:14px;cursor:pointer;color:var(--ink)}
.menu .dd button:hover{background:var(--soft)}
.menu .dd button.danger{color:var(--red)}

/* tableaux */
.panel{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);text-align:left;padding:12px 16px;background:var(--soft);border-bottom:1px solid var(--line);font-weight:700}
.tbl td{padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tr.click{cursor:pointer}
.tbl tr.click:hover td{background:#fbfdfb}
.tbl .num{text-align:right;font-family:var(--mono)}
.tbl .who{display:flex;align-items:center;gap:10px}
.tbl .who .avatar{width:32px;height:32px;font-size:12px}
.tbl .who b{display:block;color:#163326}
.tbl .who span{font-size:12px;color:var(--muted)}
.empty{padding:40px 20px;text-align:center;color:var(--muted)}

/* profil */
.formcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;max-width:560px;margin-bottom:20px}
.formcard h2{font-size:17px;font-weight:800;color:#163326;margin-bottom:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}

/* modale */
.modal-ov{position:fixed;inset:0;background:rgba(14,40,30,.45);display:none;align-items:flex-start;justify-content:center;z-index:100;padding:8vh 16px;overflow:auto}
.modal-ov.show{display:flex}
.modal{background:#fff;border-radius:18px;width:100%;max-width:480px;padding:26px 28px;box-shadow:0 30px 70px -20px rgba(0,0,0,.4)}
.modal h3{font-size:19px;font-weight:800;color:#163326;margin-bottom:6px}
.modal .intro{font-size:14px;color:var(--muted);margin-bottom:18px}
.modal .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.modal .copybox{display:flex;gap:8px;margin-top:8px}
.modal .copybox input{flex:1;padding:10px 12px;border:1px solid #d6ddd6;border-radius:9px;font-family:var(--mono);font-size:12px;background:var(--soft)}
.histlist{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:12px}
.histlist .h{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line);font-size:14px}
.histlist .h:last-child{border-bottom:none}
.histlist .h span{font-size:12px;color:var(--muted);display:block}

/* messages & notifications */
.navbadge{margin-left:auto;background:var(--amber);color:#143b2c;font:800 11px var(--mono);border-radius:20px;padding:1px 7px}
.side a.item.on .navbadge{background:#143b2c;color:#fff}
.msgcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:10px;cursor:pointer;display:flex;gap:14px}
.msgcard:hover{box-shadow:0 10px 26px -18px rgba(19,78,58,.35)}
.msgcard .dot{width:9px;height:9px;border-radius:50%;background:var(--amber);flex:0 0 auto;margin-top:7px}
.msgcard.lu .dot{background:transparent}
.msgcard h3{font-size:15px;font-weight:800;color:#163326}
.msgcard.lu h3{font-weight:600}
.msgcard .when{font-size:12px;color:var(--muted);font-family:var(--mono)}
.msgcard{transition:opacity .25s, transform .25s, max-height .25s, margin .25s, padding .25s}
.msgcard.gone{opacity:0;transform:translateX(-40px)}
.msgcard .when{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.ndel{border:0;background:transparent;color:#9aa59f;font-size:20px;line-height:1;width:26px;height:26px;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s, background .15s, color .15s}
.msgcard:hover .ndel,.ndel:focus{opacity:1}
.ndel:hover{background:var(--red-soft);color:var(--red)}
.btn-del:hover{color:var(--red);border-color:#f0c6c1;background:var(--red-soft)}
@media(hover:none){.ndel{opacity:1}}
.msgcard .sub{font-weight:600;color:var(--green);font-size:14px;margin-top:2px}
.msgcard .body{font-size:14px;color:#3a4a42;margin-top:4px;white-space:pre-line}
.msgcard.collapsed .body{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.composer{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:24px}
.composer textarea{width:100%;padding:12px 14px;border:1px solid #d6ddd6;border-radius:10px;font-size:15px;font-family:inherit;min-height:110px;resize:vertical}
.composer textarea:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px #f5a62333}
.seg{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.seg button{border:1px solid var(--line);border-radius:20px;padding:7px 13px;font-size:13.5px;cursor:pointer;background:#fff;color:var(--ink)}
.seg button:hover{border-color:var(--green2)}
.seg button.on{background:var(--green);color:#fff;border-color:var(--green)}
.picklist{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:6px}
.picklist label{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:8px;font-size:14px;cursor:pointer}
.picklist label:hover{background:var(--soft)}
.preview{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);margin:14px 0}
.preview b{color:var(--green)}
.gtag{display:inline-block;font-size:11px;font-weight:700;background:var(--green-soft);color:var(--green);border-radius:6px;padding:2px 7px;margin:2px 4px 0 0}

/* boîte à outils */
.mono{font-family:var(--mono)}
.tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.toolcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;display:flex;flex-direction:column;transition:.15s;color:inherit}
a.toolcard:hover{box-shadow:0 14px 36px -20px rgba(19,78,58,.35);border-color:#cfe0d6}
.toolcard.soon{border:2px dashed #c9d8cf;background:#fbfdfb}
.toolcard.soon .ticon{opacity:.55}
.tc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}
.ticon{display:inline-grid;place-items:center;flex:0 0 auto;vertical-align:middle}
.tc-top .ticon{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:8px;box-sizing:content-box;width:34px!important;height:34px!important}
.ticon svg{width:100%;height:100%}
.tc-tags{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.tc-tags span{font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;background:var(--green-soft);color:var(--green);border-radius:20px;padding:3px 8px}
.toolcard h3{font-size:17px;font-weight:800;color:#163326;margin-bottom:6px}
.toolcard p{font-size:13.5px;color:var(--muted);flex:1}
.tc-foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.tc-foot .go{font-weight:700;color:var(--green2)}

/* tableau de bord */
.dash{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;align-items:start}
.dcol{display:flex;flex-direction:column;gap:18px;min-width:0}
.dcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px}
.dcard-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.dcard-h h2{font-size:16px;font-weight:800;color:#163326;display:flex;align-items:center}
.dempty{color:var(--muted);font-size:14px;padding:6px 0 4px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.dsim{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 8px;border-top:1px solid var(--line);border-radius:10px}
.dsim:hover{background:var(--soft)}
.dsim-t{min-width:0}
.dsim-t b{display:flex;align-items:center;gap:8px;color:#163326;font-size:15px;overflow:hidden;white-space:nowrap}
.dsim-t b .tag{font-size:10px;padding:2px 8px;flex:0 0 auto}
.dsim-t span{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dsim-k{display:flex;gap:16px}
.dsim-k span{display:block;font-size:10px;color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.4px}
.dsim-k b{font-family:var(--mono);font-size:14.5px;color:var(--green);white-space:nowrap}
.dsim-k b.neg{color:var(--red)}
.dsim-vide{font-size:12.5px;color:var(--muted)}
.dtools{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.dtool{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.dtool:hover{background:var(--soft);border-color:#cfe0d6}
.dtool .ticon{flex:0 0 auto;background:var(--soft);border-radius:11px;padding:4px;box-sizing:content-box;width:32px!important;height:32px!important}
.dtool span{flex:1;min-width:0}
.dtool b{display:block;font-size:14px;color:#163326}
.dtool small{font-size:12px;color:var(--muted)}
.dtool i{font-style:normal;color:var(--muted);font-size:20px}
.dmsg{display:flex;gap:10px;align-items:flex-start;padding:10px 6px;border-top:1px solid var(--line);border-radius:8px}
.dmsg:hover{background:var(--soft)}
.dmsg i{width:8px;height:8px;border-radius:50%;background:var(--amber);flex:0 0 auto;margin-top:7px}
.dmsg.lu i{background:transparent}
.dmsg b{display:block;font-size:14px;color:#163326}
.dmsg.lu b{font-weight:600}
.dmsg small{font-size:12px;color:var(--muted)}
.dstats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.dstats div{background:var(--soft);border-radius:11px;padding:10px}
.dstats b{display:block;font-family:var(--mono);font-size:20px;color:var(--green)}
.dstats b.amber{color:var(--amber-d)}
.dstats span{font-size:11.5px;color:var(--muted)}
.dsub{font-family:var(--mono);font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin:12px 0 2px}
.dcli{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:9px}
.dcli:hover{background:var(--soft)}
.dcli .avatar{width:30px;height:30px;font-size:11px}
.dcli span{flex:1;min-width:0}
.dcli b{display:block;font-size:13.5px;color:#163326}
.dcli small{font-size:11.5px;color:var(--muted)}
.dcli em{font-style:normal;font-size:11.5px;color:var(--muted);white-space:nowrap}
/* météo */
.wnow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.wico{display:inline-block;width:58px;height:58px;flex:0 0 auto}
.wico svg{width:100%;height:100%}
.wico.s{width:34px;height:34px}
.wnow-t{flex:1;min-width:120px}
.wnow-t b{font-family:var(--mono);font-size:30px;color:#163326;line-height:1}
.wnow-t b small{font-size:17px;color:var(--muted)}
.wnow-t span{display:block;font-size:13px;color:var(--muted);margin-top:3px}
.wnow-k{display:flex;gap:14px}
.wnow-k span{display:block;font-size:10px;color:var(--muted);font-family:var(--mono);text-transform:uppercase}
.wnow-k b{font-family:var(--mono);font-size:14px;color:var(--green)}
.wdays{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
.wday{background:var(--soft);border-radius:12px;padding:9px 6px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}
.wday span{font-size:12px;font-weight:700;color:#163326}
.wday b{font-family:var(--mono);font-size:14px;color:#163326}
.wday b small{color:var(--muted);font-weight:500}
.wday em{font-style:normal;font-size:11.5px;color:#2f6fb5;font-family:var(--mono)}
/* graphique de la journée : humidité ou vent (inspiré de l'app Météo d'iOS) */
.wxc{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.wxc-tabs{display:flex;gap:4px;background:var(--soft);border-radius:12px;padding:3px;margin-bottom:12px}
.wxc-tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;border:none;background:none;border-radius:9px;padding:7px 6px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,box-shadow .15s}
.wxc-tabs button:hover{color:#163326}
.wxc-tabs button[aria-selected=true]{background:#fff;color:#163326;box-shadow:0 1px 4px rgba(19,78,58,.16)}
.wxc-tabs i{display:block;width:17px;height:17px;flex:0 0 auto}
.wxc-tabs i svg{display:block;width:100%;height:100%}
.wxc-tabs button[aria-selected=true] i{color:var(--green2)}
.wxc-val{margin-bottom:4px}
.wxc-val b{display:flex;align-items:center;font-family:var(--mono);font-size:30px;font-weight:800;color:#163326;line-height:1.05}
.wxc-val b small{font-size:16px;color:var(--muted);font-weight:700;margin-left:2px}
.wxc-val span{display:block;font-size:13px;color:var(--muted);margin-top:5px;min-height:18px}
.wxc-plot{position:relative;touch-action:pan-y;cursor:crosshair;user-select:none;-webkit-user-select:none}
.wx-svg{display:block;width:100%;height:auto}
.wx-cadre{stroke:#dfe6e1;stroke-width:1}
.wx-grille{stroke:#eef2ef;stroke-width:1}
.wx-grille.base{stroke:#dfe6e1}
.wx-six{stroke:#cbd6ce;stroke-width:1;stroke-dasharray:2 3}
.wx-ax{font:9.5px var(--mono);fill:#8a9a90}
.wx-h{font:600 10.5px var(--mono);fill:#3a4a42}
.wx-h.passe{fill:#a3b1a8;font-weight:500}
.wx-seg{font:700 11.5px var(--mono);fill:#163326}
.wx-seg.passe{fill:#a3b1a8;font-weight:500}
.wx-ligne{fill:none;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.wx-ligne.passe{stroke-width:2.6;stroke-dasharray:5 6;opacity:.8}
.wx-voile{fill:#fff;opacity:.45}
.wx-rafale{fill:none;stroke:#8fa89a;stroke-width:1.3;opacity:.75}
.wx-seuil{stroke:#e0941a;stroke-width:1;stroke-dasharray:4 3;opacity:.8}
.wx-seuil-t{font:700 9px var(--mono);fill:#c07a10}
.wx-seuil.gel{stroke:#3f7fc4}
.wx-seuil-t.gel{fill:#3f7fc4}
.wx-maint{stroke:#a9bbb0;stroke-width:1}
.wx-point{fill:#fff;stroke:#134e3a;stroke-width:2.6}
.wx-curseur line{stroke:#134e3a;stroke-width:1;stroke-dasharray:3 3}
.wx-curseur circle{fill:#134e3a;stroke:#fff;stroke-width:2}
.wxc-leg{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:11.5px;color:var(--muted)}
.wxc-leg span{display:inline-flex;align-items:center;gap:6px}
.wxc-leg i{display:inline-block;width:16px;height:0;border-top:3px solid #2e9d63;border-radius:2px}
.wxc-leg i.r{border-top:1.5px solid #8fa89a}
.wxc-leg i.s{border-top:1.5px dashed #e0941a}
.wxc-leg i.g{border-top:1.5px dashed #3f7fc4}
.wdir{display:inline-block;width:13px;height:13px;vertical-align:-1px;margin-right:3px;color:var(--green2)}
.wdir svg{display:block;width:100%;height:100%}
.wdir.gros{width:20px;height:20px;margin:0 0 0 6px;vertical-align:middle}
.wdir.s{width:11px;height:11px;margin-right:2px}
.wnow-k em{display:block;font-style:normal;font-size:10.5px;color:var(--muted);font-family:var(--mono);margin-top:1px}
.wday em.wv{color:#3a4a42;font-size:11px}
.wsrc{font-size:11px;color:var(--muted);margin-top:10px}
.wsrc.wsrc-a{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.wsrc a{color:var(--muted)}
.wsrc a:hover{color:var(--green2)}
.wattr{display:inline-flex;align-items:center}
.wattr img{height:12px;width:auto;display:block;opacity:.8}
.wattr:hover img{opacity:1}
/* humidité de l'air */

/* choix de la commune */
.cmlist{display:flex;flex-direction:column;gap:4px;max-height:260px;overflow:auto}
.cmlist button{display:flex;justify-content:space-between;gap:10px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;cursor:pointer;font-size:14px}
.cmlist button:hover{border-color:var(--amber);background:#fffdf7}
.cmlist button span{color:var(--muted);font-size:12.5px}
.cmwait{padding:10px;color:var(--muted);font-size:13.5px}
.cmcur{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #d6ddd6;border-radius:10px;padding:8px 8px 8px 14px}

/* toast */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(20px);background:#163326;color:#fff;padding:12px 18px;border-radius:12px;font-size:14px;box-shadow:0 14px 34px -12px rgba(0,0,0,.45);opacity:0;transition:.25s;z-index:200;pointer-events:none;max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--red)}

.loading{padding:60px;text-align:center;color:var(--muted)}
.spin{display:inline-block;width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--green2);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;margin-right:8px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- sous-onglets (Ressources, Notifications) ---------- */
.tabs2{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-6px 0 22px}
.tabs2 a{padding:10px 16px;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px}
.tabs2 a:hover{color:var(--green)}
.tabs2 a.on{color:var(--green);border-bottom-color:var(--amber)}

/* ---------- Ressources › Documentation ---------- */
.docbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:18px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 13px;font-size:13px;font-weight:600;color:var(--green);cursor:pointer}
.chips button:hover{background:var(--soft)}
.chips button.on{background:var(--green);border-color:var(--green);color:#fff}
.docgroup{margin-bottom:22px}
.docgroup h2{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--green2);margin:0 0 8px 2px}
.doclist .docrow{display:flex;align-items:center;gap:14px;padding:13px 16px;border-top:1px solid var(--line)}
.doclist .docrow:first-child{border-top:0}
.doclist .docrow:hover{background:#fbfcfb}
.dicon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.04em}
.dicon.lien{background:var(--green-soft);color:var(--green2)}
.dicon.lien svg{width:58%;height:58%}
.doc-t{flex:1;min-width:0}
.doc-t b{display:block;color:#163326;font-size:15px}
.doc-t span{display:block;color:var(--ink);font-size:13.5px;margin-top:2px}
.doc-t small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.doc-t:hover b{text-decoration:underline}
.ddoc{display:flex;align-items:center;gap:11px;padding:8px 4px;border-top:1px solid var(--line)}
.ddoc:hover{background:var(--soft)}
.ddoc span{flex:1;min-width:0}
.ddoc b{display:block;font-size:14px;color:#163326}
.ddoc small{font-size:12px;color:var(--muted)}
.ddoc i{font-style:normal;color:var(--muted)}

/* ---------- Messages techniques ---------- */
.dpub{display:flex;align-items:center;gap:12px;padding:10px 6px;border-top:1px solid var(--line);border-radius:8px}
.dpub:hover{background:var(--soft)}
.dpub-d{flex:0 0 92px;font-size:12px;font-weight:700;color:var(--amber-d);line-height:1.3}
.dpub-t{flex:1;min-width:0}
.dpub-t b{display:block;font-size:14px;color:#163326}
.dpub.lu .dpub-t b{font-weight:600}
.dpub-t b .tag{font-style:normal;margin-left:6px;vertical-align:1px}
.dpub-t small{font-size:12px;color:var(--muted)}
.dpub i{font-style:normal;color:var(--muted);font-size:20px}
.publist{display:grid;gap:14px}
.pubcard{background:#fff;border:1px solid var(--line);border-left:5px solid #14432F;border-radius:14px;overflow:hidden}
.pubcard:not(.lu){border-left-color:var(--amber)}
.pub-main{display:block;padding:16px 20px 10px}
.pub-main:hover h3{text-decoration:underline}
.pub-d{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#a97621}
.pub-d .tag{font-style:normal;letter-spacing:0;text-transform:none;margin-left:6px}
.pubcard h3{font-family:Cambria,Caladea,Georgia,serif;font-size:20px;color:#14432F;margin:4px 0 2px;line-height:1.25}
.pub-s{display:block;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#7fa88e}
.pub-main p{margin-top:8px;color:var(--ink);font-size:14px}
.pub-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 20px 14px}
.pub-stats{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--muted)}
.pub-acts{display:flex;align-items:center;gap:14px;margin-left:auto}
.readbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.readbar .acts{display:flex;gap:8px}
.msgread{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;max-width:900px}
.msgread .agm{max-width:820px}
.pubform{max-width:none}
.pubgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:26px;align-items:start}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:2px dashed #cfdcd4;border-radius:12px;padding:20px;text-align:center;cursor:pointer;background:var(--soft);color:var(--muted)}
.drop:hover,.drop.over{border-color:var(--amber);background:#fff8ec}
.drop input{display:none}
.drop b{color:var(--green)}
.drop span{font-size:13px}
.checkbox.silent{align-items:flex-start;margin:4px 0 8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fbfcfb;color:var(--ink)}
.checkbox.silent input{margin-top:3px}
.checkbox.silent small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.pvlabel{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.pvframe{border:1px solid var(--line);border-radius:14px;background:#f4f8f4;overflow:hidden;position:sticky;top:16px}
.pvframe iframe{display:block;width:100%;height:78vh;border:0;background:#f4f8f4}
.pvframe .msgread{border:0;border-radius:0;max-height:78vh;overflow:auto}

/* ---------- lectures et commentaires des messages ---------- */
.avatar.cab{background:var(--green);color:#fff}
.cabtag{font-style:normal;font-size:11px;font-weight:700;background:var(--green-soft);color:var(--green);border-radius:999px;padding:1px 8px;margin-left:4px;vertical-align:1px}
.readstat{font-size:14px;color:var(--muted);margin-bottom:10px}
.readstat b{color:var(--ink)}
.readlist{border:1px solid var(--line);border-radius:12px;max-height:46vh;overflow:auto}
.readrow{display:flex;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid var(--line)}
.readrow:first-child{border-top:0}
.readrow .avatar{width:30px;height:30px;font-size:11px;flex:0 0 auto}
.readrow span{flex:1;min-width:0}
.readrow b{display:block;font-size:14px}
.readrow small{display:block;font-size:12px;color:var(--muted)}
.readrow em{font-style:normal;font-size:12.5px;color:var(--green2);font-weight:600;text-align:right}
.readlist.dim .readrow{opacity:.75}
.comments{max-width:900px;margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px}
.comments h2{font-size:18px;color:#163326;display:flex;align-items:center;gap:8px}
.com-intro{color:var(--muted);font-size:13.5px;margin:4px 0 12px}
.comform{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin-bottom:18px}
.comform textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-size:14.5px;resize:vertical;background:var(--soft)}
.comform textarea:focus{outline:none;border-color:var(--amber);background:#fff}
.comform.rep{margin:8px 0 4px 42px}
.thread{border-top:1px solid var(--line);padding:14px 0 6px}
.com{padding:2px 0 8px}
.com-h{display:flex;align-items:center;gap:9px}
.com-h .avatar{width:32px;height:32px;font-size:12px;flex:0 0 auto}
.com-n{font-weight:700;font-size:14px;color:#163326}
.com-w{font-size:12px;color:var(--muted);margin-left:auto}
.com-t{margin:6px 0 4px 41px;font-size:14.5px;line-height:1.55;white-space:normal}
.com-a{margin-left:41px;display:flex;gap:14px}
.com.rep{margin-left:41px;padding:10px 12px 8px;border-left:3px solid var(--line);background:#fbfcfb;border-radius:0 10px 10px 0;margin-top:6px}
.com.rep .com-t,.com.rep .com-a{margin-left:41px}
.com.cab .com-t{color:#14432f}
.com.rep.cab{background:var(--green-soft);border-left-color:var(--green2)}
.com:not(.rep).cab{background:var(--green-soft);border-radius:12px;padding:10px 12px 8px}
.com.del .com-n{font-weight:400;font-style:italic}

@media(max-width:1100px){.kpis{grid-template-columns:1fr 1fr}.dash{grid-template-columns:minmax(0,1fr)}}
.side a.item-m{display:none}
@media(max-width:760px){
  body{font-size:14.5px}
  .app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
  /* barre du haut collante : logo + navigation qui défile horizontalement */
  .side{position:sticky;top:0;z-index:30;height:auto;flex-direction:column;align-items:stretch;padding:10px 0 0;gap:4px;min-width:0}
  .side nav{min-width:0;align-items:center}
  .side .logo{padding:2px 16px 6px;font-size:18px}
  .side nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 10px 10px;gap:6px}
  .side nav::-webkit-scrollbar{display:none}
  .side a.item{flex:0 0 auto;padding:8px 12px;font-size:13.5px;white-space:nowrap;background:#ffffff10}
  .side a.item svg{width:16px;height:16px}
  .side .navlbl,.side .sidefoot{display:none}
  .side a.item-m{display:flex}
  .main{padding:18px 14px 50px}
  .topline{margin-bottom:18px}
  .topline h1{font-size:22px}
  .topline .acts{width:100%}
  .topline .acts .btn{flex:1 1 auto}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}
  .kpi{padding:12px 13px}
  .kpi .v{font-size:19px;white-space:nowrap}
  .exploit,.tools{grid-template-columns:minmax(0,1fr)}
  .dash{grid-template-columns:minmax(0,1fr);gap:14px}
  .dcol{gap:14px}
  .dcard{padding:15px 14px}
  .wxc-tabs button{font-size:11.5px;gap:4px;padding:7px 4px}
  .wxc-tabs i{width:15px;height:15px}
  .dsim{grid-template-columns:minmax(0,1fr);gap:6px}
  .dsim-k{gap:12px}
  .hide-m{display:none}
  .toolcard{padding:16px}
  .expcard{padding:16px}
  .expstats{gap:16px}
  .search{min-width:0;width:100%}
  .grid2{grid-template-columns:1fr}
  .panel{overflow-x:auto}
  .tbl th,.tbl td{padding:11px 10px}
  .tbl .hide-m{display:none}
  .modal-ov{padding:4vh 10px}
  .modal{padding:20px 18px;border-radius:16px}
  .modal .actions{flex-wrap:wrap}
  .modal .actions .btn{flex:1 1 auto}
  .composer{padding:16px}
  .formcard{padding:18px}
  .field input,.field select,.composer textarea{font-size:16px} /* pas de zoom automatique sur iPhone */
  .tabs2{overflow-x:auto}
  .tabs2 a{white-space:nowrap;padding:9px 12px}
  .doclist .docrow{flex-wrap:wrap;padding:12px}
  .doclist .docrow .btn{margin-left:54px}
  .pubgrid{grid-template-columns:minmax(0,1fr)}
  .pvframe{position:static}
  .pvframe iframe{height:70vh}
  .msgread{padding:10px;border-radius:12px}
  .pub-main{padding:14px 16px 8px}
  .pub-foot{padding:8px 16px 12px}
  .dpub-d{flex-basis:72px}
  .comments{padding:16px 14px}
  .com-t,.com-a,.com.rep .com-t,.com.rep .com-a{margin-left:0}
  .com.rep{margin-left:14px}
  .comform.rep{margin-left:14px}
}
