:root{--laterite:#B34A38;--laterite-fonce:#8F3628;--ocre:#D99A2B;--ocre-bg:#F6EBD2;--ocre-texte:#9A6B14;--foret:#2F6B4F;--foret-bg:#E4EFE7;--indigo:#27496D;--indigo-bg:#E4EAF1;--encre:#33241A;--muted:#7A6A58;--calebasse:#F5EFDF;--carte:#FFFDF7;--trait:#E3D8C2;--kente:repeating-linear-gradient(90deg,#B34A38 0 26px,#D99A2B 26px 44px,#33241A 44px 50px,#2F6B4F 50px 72px,#27496D 72px 90px,#33241A 90px 96px)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;color:var(--encre);background:var(--calebasse)}button{font:inherit;border:none;background:none;cursor:pointer;color:inherit;padding:0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--laterite);outline-offset:2px;border-radius:8px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app{max-width:480px;margin:0 auto;height:100dvh;display:flex;flex-direction:column;position:relative;background:var(--calebasse)}.kente{height:9px;flex:none;background:var(--kente)}.kente.thin{height:5px;border-radius:99px}.status{display:flex;justify-content:space-between;align-items:center;padding:8px 16px 4px;font-size:11.5px;color:var(--muted)}.net{display:inline-flex;align-items:center;gap:6px;font-weight:700;border-radius:99px;padding:4px 10px;min-height:28px}.net.off{background:var(--ocre-bg);color:var(--ocre-texte)}.net.on{background:var(--foret-bg);color:var(--foret)}.net button{text-decoration:underline;font-size:11px;min-height:24px}.appbar{display:flex;align-items:center;gap:10px;padding:6px 14px 10px}.logo{width:36px;height:36px;border-radius:11px;background:var(--laterite);color:#fff6e8;display:grid;place-items:center;font-weight:800;font-size:16px;box-shadow:inset 0 0 0 2px #fff6e8,inset 0 0 0 4px var(--laterite);flex:none}.appbar b{display:block;font-size:15.5px}.appbar span{font-size:11.5px;color:var(--muted)}.back{width:44px;height:44px;display:grid;place-items:center;color:var(--laterite-fonce);margin-left:-8px}.screen{flex:1;overflow-y:auto;padding:2px 14px 18px;-webkit-overflow-scrolling:touch}.tabs{display:flex;border-top:1px solid var(--trait);background:var(--carte);padding-bottom:env(safe-area-inset-bottom)}.tabs button{flex:1;min-height:56px;padding:6px 2px;font-size:10.5px;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.tabs button.on{color:var(--laterite-fonce);font-weight:700}.card{background:var(--carte);border:1px solid var(--trait);border-radius:14px;padding:13px 14px;margin-top:10px}.card h3{font-size:14.5px;margin:0 0 2px}.sub{font-size:12px;color:var(--muted);margin:0}.row{display:flex;align-items:center;gap:10px}.grow{flex:1;min-width:0}.chip{display:inline-block;font-size:10.5px;font-weight:700;border-radius:99px;padding:3px 8px;white-space:nowrap}.chip.foret{background:var(--foret-bg);color:var(--foret)}.chip.ocre{background:var(--ocre-bg);color:var(--ocre-texte)}.chip.laterite{background:#f3ddd6;color:var(--laterite-fonce)}.chip.indigo{background:var(--indigo-bg);color:var(--indigo)}.chip.grey{background:#ede6d4;color:#6c5c48}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:0 14px;min-height:46px;font-weight:700;font-size:13.5px}.btn.full{width:100%}.btn.sm{min-height:36px;font-size:12px;padding:0 10px}.btn.p{background:var(--laterite);color:#fff6e8}.btn.p:active{background:var(--laterite-fonce)}.btn.g{background:var(--foret);color:#fff6e8}.btn.o{border:1.5px solid #D8CCAF;color:var(--encre);background:var(--carte)}.btn.warn{border:1.5px solid #E9D2A0;background:var(--ocre-bg);color:var(--ocre-texte)}.btn:disabled{opacity:.45;cursor:not-allowed}.money{font-variant-numeric:tabular-nums;color:var(--foret);font-weight:800}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.kpi{background:var(--carte);border:1px solid var(--trait);border-radius:14px;padding:11px 12px}.kpi b{font-size:19px;display:block}.kpi span{display:block;font-size:11px;color:var(--muted);margin-top:1px}.lt{margin:16px 2px 2px;font-size:12.5px;font-weight:800;color:#6c5c48;display:flex;align-items:center;gap:6px}.lt:before{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid var(--ocre)}.empty{padding:24px 10px;text-align:center;color:var(--muted);font-size:13px}.ring{--p:0;width:64px;height:64px;border-radius:50%;background:conic-gradient(var(--foret) calc(var(--p)*1%),#E2D8BF 0);display:grid;place-items:center;flex:none}.ring i{width:48px;height:48px;border-radius:50%;background:var(--carte);display:grid;place-items:center;font-style:normal;font-weight:800;font-size:12.5px}.task{background:var(--carte);border:1px solid var(--trait);border-radius:12px;padding:10px 12px;margin-top:6px}.tick{width:44px;height:44px;border-radius:50%;border:2px solid #C9BB9C;flex:none;display:grid;place-items:center;color:#fff}.task.done .tick{background:var(--foret);border-color:var(--foret)}.task .name{font-size:14px;font-weight:600}.task.done .name{color:#84765f;text-decoration:line-through}.req{font-size:11px;color:var(--laterite-fonce);font-weight:700}.snap{display:inline-flex;align-items:center;gap:6px;border:1.5px dashed var(--laterite);color:var(--laterite-fonce);border-radius:10px;padding:0 12px;min-height:44px;font-size:12.5px;font-weight:700;background:#fbf3e4;cursor:pointer}.proof{position:relative;width:78px;height:58px;border-radius:9px;overflow:hidden;border:1px solid var(--trait);background:#eae0c6;flex:none;display:block}.proof img{width:100%;height:100%;object-fit:cover;display:block}.proof em{position:absolute;left:0;right:0;bottom:0;background:#33241abf;color:#fff6e8;font-style:normal;font-size:8.5px;padding:2px 4px;line-height:1.15}.proof .demo{width:100%;height:100%;display:grid;place-items:center;color:#7a6a58;font-size:10px;background:linear-gradient(135deg,#eae0c6,#dcd0b0)}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}.grid3 .proof{width:100%;height:66px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.pair .proof{width:100%;height:72px}.lbl{font-size:11px;font-weight:800;margin-bottom:4px}.ref{width:54px;height:42px;border-radius:7px;overflow:hidden;border:1px solid var(--trait);flex:none;background:#eae0c6}.ref img{width:100%;height:100%;object-fit:cover}.cnt{display:flex;align-items:center;gap:8px}.cnt button{width:44px;height:44px;border-radius:10px;border:1.5px solid #D8CCAF;background:var(--carte);display:grid;place-items:center}.cnt b{min-width:26px;text-align:center;font-size:16px}.low{color:var(--ocre-texte);font-weight:800;font-size:11px}.bar{height:8px;border-radius:99px;background:#e2d8bf;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%}.veil{position:fixed;inset:0;background:#33241a80;display:flex;align-items:flex-end;z-index:20}.sheet{background:var(--calebasse);width:100%;max-width:480px;margin:0 auto;border-radius:22px 22px 0 0;padding:0 16px calc(20px + env(safe-area-inset-bottom));max-height:84%;overflow-y:auto}.sheet .kente{margin:0 -16px 12px;border-radius:22px 22px 0 0}.sheet h3{font-size:16px;margin:0 0 4px}.field{margin-top:10px}.field label{font-size:12px;font-weight:800;color:#6c5c48;display:block;margin-bottom:4px}.field input,.field select,.field textarea{width:100%;border:1.5px solid #D8CCAF;border-radius:11px;padding:0 12px;min-height:46px;font:inherit;background:var(--carte);color:var(--encre)}.field textarea{padding:10px 12px;min-height:70px}.seg{display:flex;gap:6px;background:#e7ddc3;border-radius:11px;padding:4px;margin-top:8px}.seg button{flex:1;min-height:44px;border-radius:8px;font-size:12.5px;font-weight:700;color:#5e5140}.seg button.on{background:var(--carte);color:var(--laterite-fonce)}.sso{display:grid;gap:8px;margin-top:8px}.sso .btn{justify-content:flex-start}.glyph{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-weight:800;font-size:13px;color:#fff6e8;flex:none}.or{display:flex;align-items:center;gap:10px;margin:14px 0 6px;font-size:11.5px;color:var(--muted)}.or:before,.or:after{content:"";flex:1;height:1px;background:var(--trait)}.receipt{background:var(--carte);border:1.5px dashed #C4B490;border-radius:14px;padding:14px;margin-top:12px;font-size:13px}.receipt .row{justify-content:space-between;margin-top:5px}.toast{position:fixed;left:50%;transform:translate(-50%);width:min(452px,92vw);bottom:78px;background:var(--encre);color:#fff6e8;border-radius:12px;padding:11px 14px;font-size:12.5px;z-index:30;box-shadow:0 8px 20px #0000004d}.hint{font-size:11.5px;color:var(--muted);margin:6px 0 0}.idrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px dashed var(--trait);min-height:44px}.mark{width:62px;height:62px;border-radius:18px;background:var(--laterite);color:#fff6e8;display:grid;place-items:center;font-weight:800;font-size:30px;margin:8px auto;box-shadow:inset 0 0 0 2px #fff6e8,inset 0 0 0 4px var(--laterite)}.login{padding:8px 4px 18px}.login h1{text-align:center;font-size:22px;letter-spacing:.14em;color:var(--laterite-fonce);margin:0}.login-bg{position:absolute;inset:0;opacity:.5;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%2333241A' stroke-opacity='0.08' stroke-width='2'%3E%3Cpath d='M0 12 L12 0 L24 12 L36 0 L48 12 L60 0 L72 12 L84 0 L96 12'/%3E%3Cpath d='M0 60 L12 48 L24 60 L36 48 L48 60 L60 48 L72 60 L84 48 L96 60'/%3E%3Crect x='42' y='24' width='12' height='12' transform='rotate(45 48 30)'/%3E%3C/g%3E%3C/svg%3E")}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.snap:focus-within{outline:3px solid var(--laterite);outline-offset:2px}.sheet:focus{outline:none}
