:root{--bg:#f4f6f3;--panel:#fff;--ink:#18221d;--muted:#6d776f;--green:#315b48;--green-dark:#244737;--green2:#e4ece7;--line:#d9e0db;--danger:#a53c35;--shadow:0 10px 30px rgba(30,48,38,.07)}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:inherit}.wrap{width:min(1120px,calc(100% - 32px));margin:auto}.top{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:700}.brand img{width:42px;height:42px;object-fit:contain}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1px solid transparent;border-radius:7px;padding:10px 16px;background:var(--green);color:#fff;text-decoration:none;cursor:pointer;font:600 14px/1.2 inherit;transition:background .16s,border-color .16s,transform .16s}.btn:hover{background:var(--green-dark)}.btn:focus-visible{outline:3px solid rgba(49,91,72,.18);outline-offset:2px}.btn.secondary{background:#fff;color:var(--green);border-color:var(--line)}.btn.secondary:hover{border-color:#aebdb4;background:#f9fbf9}.btn.compact{min-height:36px;padding:8px 12px}.hero{padding:90px 0 110px;display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center}.hero h1{font-size:clamp(42px,6vw,72px);line-height:1.02;margin:0 0 22px}.hero p{font-size:19px;line-height:1.6;color:var(--muted);max-width:680px}.hero-card,.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.hero-card{padding:34px}.hero-card img{width:110px;display:block;margin:0 auto 24px}.section{padding:52px 0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{padding:24px}.card h3{margin-top:0}.muted{color:var(--muted)}
/* Barre application */.app-shell{min-height:100vh}.appbar{background:#fff;border-bottom:1px solid var(--line)}.appbar .wrap,.appbar-inner{height:66px;display:flex;align-items:center;justify-content:space-between}.app-mark{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700}.app-mark img{width:48px;height:48px;object-fit:contain}.app-mark span{font-size:17px}.app-actions{display:flex;align-items:center;gap:12px}.user-name{font-size:14px;color:var(--muted)}
/* Accueil connecté */.page-intro h1{margin:0 0 5px;font-size:28px}.page-intro p{margin:0}.tools{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px}.tool{position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 46px 20px 20px;min-height:150px}.tool h2{font-size:18px;margin:15px 0 8px}.tool p{font-size:14px;line-height:1.5;margin:0}.tool-link{text-decoration:none;cursor:pointer;transition:transform .16s,box-shadow .16s,border-color .16s,background .16s}.tool-link:hover{transform:translateY(-2px);border-color:#b8c8be;box-shadow:0 12px 28px rgba(30,48,38,.09);background:#fcfdfc}.tool-link:focus-visible{outline:3px solid rgba(49,91,72,.18);outline-offset:2px}.tool-arrow{position:absolute;right:17px;bottom:13px;font-size:28px;line-height:1;color:var(--green);transition:transform .16s}.tool-link:hover .tool-arrow{transform:translateX(3px)}.tool-disabled{opacity:.72}.badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:12px;background:var(--green2);color:var(--green)}.badge.locked{background:#f3e7e5;color:var(--danger)}.notice{padding:14px 16px;border-radius:8px;background:#fff7dd;border:1px solid #eadca8;margin:22px 0}.admin-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden}.admin-table th,.admin-table td{padding:14px;border-bottom:1px solid var(--line);text-align:left}
/* Authentification */.auth-page{min-height:100vh;display:grid;place-items:center;padding:32px 16px;background:linear-gradient(180deg,#f5f7f4 0%,#eef2ee 100%)}.authbox{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:12px;padding:34px;box-shadow:var(--shadow)}.auth-brand{display:flex;align-items:center;gap:13px;text-decoration:none;padding-bottom:24px;margin-bottom:25px;border-bottom:1px solid #edf0ed}.auth-brand img{width:58px;height:58px;object-fit:contain}.auth-brand strong{display:block;font-size:19px}.auth-brand span{display:block;margin-top:3px;font-size:12px;color:var(--muted);font-weight:500}.auth-heading h1{font-size:25px;margin:0 0 7px}.auth-heading p{margin:0 0 25px;color:var(--muted);font-size:14px}.auth-form{display:grid;gap:17px}.field label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}.field input,.authbox input[type=email],.authbox input[type=password],.authbox input[type=text]{display:block;width:100%;height:44px;padding:9px 12px;border:1px solid #cfd8d2;border-radius:7px;background:#fff;color:var(--ink);font:inherit;margin:0;outline:0;transition:border-color .15s,box-shadow .15s}.field input:focus,.authbox input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(49,91,72,.1)}.check-row{display:flex!important;align-items:center;gap:9px;font-size:13px!important;font-weight:400!important;cursor:pointer}.check-row input,.authbox input[type=checkbox]{width:16px!important;height:16px!important;margin:0!important;accent-color:var(--green)}.auth-submit{width:100%;margin-top:2px}.authlinks{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:3px}.authlinks a{font-size:13px;color:var(--green);text-underline-offset:3px}.field-error{font-size:12px;color:var(--danger);margin:6px 0 0}.auth-status{padding:10px 12px;margin-bottom:18px;border:1px solid #cbded1;border-radius:7px;background:#f2f8f4;color:var(--green);font-size:13px}
@media(max-width:760px){.hero{grid-template-columns:1fr;padding:55px 0}.cards,.tools{grid-template-columns:1fr}.section{padding:34px 0}.tool{min-height:130px}.user-name{display:none}.app-mark span{display:none}.app-mark img{width:46px;height:46px}.admin-table{font-size:13px}.admin-table th:nth-child(3),.admin-table td:nth-child(3){display:none}.authbox{padding:26px 22px;border-radius:10px}.auth-page{padding:18px 12px}.authlinks{flex-direction:column;align-items:flex-start}}
