*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent} :root{ --bg:#070B12;--s1:#0D1117;--s2:#131920;--s3:#1A2230; --b:rgba(255,255,255,0.06);--b2:rgba(255,255,255,0.1); --cyan:#00D4FF;--cyan2:rgba(0,212,255,0.12); --violet:#7C3AED;--violet2:rgba(124,58,237,0.12); --green:#10B981;--green2:rgba(16,185,129,0.12); --amber:#F59E0B;--amber2:rgba(245,158,11,0.12); --red:#EF4444;--red2:rgba(239,68,68,0.12); --pink:#EC4899;--pink2:rgba(236,72,153,0.12); --t1:#F8FAFC;--t2:#94A3B8;--t3:#475569; --nav:64px;--r:14px;--r2:10px; } html{height:100%;height:100dvh;overflow:hidden;background:var(--bg);touch-action:manipulation;}body{height:100%;height:100dvh;overflow:hidden;background:var(--bg);-webkit-tap-highlight-color:transparent;} body{font-family:'DM Sans',sans-serif;color:var(--t1);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;} /* SHELL */ .shell{max-width:430px;width:100%;margin:0 auto;height:100vh;height:100dvh;min-height:-webkit-fill-available;display:flex;flex-direction:column;position:relative;overflow:hidden;background:var(--bg);} /* SCREENS */ .scr{position:absolute;inset:0;display:flex;flex-direction:column;opacity:0;pointer-events:none;transform:translateX(24px);transition:opacity .3s ease,transform .3s cubic-bezier(.4,0,.2,1);} .scr.on{opacity:1;pointer-events:all;transform:none;} /* HEADER */ .hdr{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 1.1rem;flex-shrink:0;position:relative;z-index:5;} .hdr-title{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:700;} .hdr-sub{font-size:.68rem;color:var(--t2);font-weight:500;} .back{display:flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--cyan);cursor:pointer;} .ico-btn{width:36px;height:36px;border-radius:var(--r2);border:1px solid var(--b);background:var(--s1);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.95rem;color:var(--t2);transition:all .2s;flex-shrink:0;} .ico-btn:active{opacity:.7;} /* SCROLL */ .. .body{flex:1;overflow-y:scroll;padding:0 1.1rem 1rem;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior-y:contain;scroll-behavior:smooth;} .body::-webkit-scrollbar{display:none;} .body:focus{outline:none;} /* NAV */ .nav{height:var(--nav);display:flex;align-items:center;justify-content:space-around;border-top:1px solid var(--b);background:rgba(7,11,18,.95);backdrop-filter:blur(24px);flex-shrink:0;} .ni{display:flex;flex-direction:column;align-items:center;gap:.2rem;cursor:pointer;padding:.4rem .8rem;border-radius:var(--r2);transition:all .2s;flex:1;} .ni-ico{font-size:1.25rem;transition:transform .2s;} .ni-lbl{font-size:.58rem;font-weight:600;color:var(--t3);letter-spacing:.03em;transition:color .2s;} .ni.on .ni-lbl{color:var(--cyan);} .ni.on .ni-ico{transform:scale(1.12);} .ni-plus{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--violet));display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:#fff;box-shadow:0 4px 20px rgba(0,212,255,.3);} .ni-plus:active{transform:scale(.93);} /* CARDS */ .card{background:var(--s1);border:1px solid var(--b);border-radius:var(--r);padding:1rem;margin-bottom:.65rem;} .card-g{background:linear-gradient(135deg,rgba(0,212,255,.07),rgba(124,58,237,.07));border-color:rgba(0,212,255,.2);} /* SECTION LABEL */ .sec{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);margin:1rem 0 .5rem;} /* BADGES */ .tag{display:inline-flex;align-items:center;gap:.25rem;border-radius:100px;padding:.18rem .55rem;font-size:.7rem;font-weight:700;} .tag-c{background:var(--cyan2);color:var(--cyan);} .tag-g{background:var(--green2);color:var(--green);} .tag-a{background:var(--amber2);color:var(--amber);} .tag-r{background:var(--red2);color:var(--red);} .tag-v{background:var(--violet2);color:#A78BFA;} .tag-p{background:var(--pink2);color:var(--pink);} /* AVATAR */ .av{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;} .av36{width:36px;height:36px;font-size:.85rem;} .av44{width:44px;height:44px;font-size:1rem;} .av52{width:52px;height:52px;font-size:1.2rem;} /* PROGRESS */ .pb{height:5px;background:rgba(255,255,255,.05);border-radius:3px;overflow:hidden;} .pf{height:100%;border-radius:3px;} /* BUTTONS */ .btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:none;border-radius:var(--r2);font-family:'DM Sans',sans-serif;font-weight:700;cursor:pointer;transition:all .18s;white-space:nowrap;} .btn:active{transform:scale(.96);} .btn-c{background:var(--cyan);color:#070B12;} .btn-c:hover{background:#33DEFF;} .btn-g{background:var(--green);color:#fff;} .btn-o{background:var(--s2);color:var(--t1);border:1px solid var(--b);} .btn-o:hover{border-color:var(--b2);} .btn-r{background:var(--red2);color:var(--red);border:1px solid rgba(239,68,68,.2);} .btn-sm{padding:.5rem .9rem;font-size:.82rem;} .btn-md{padding:.7rem 1.1rem;font-size:.9rem;} .btn-lg{padding:.85rem 1.25rem;font-size:.95rem;border-radius:var(--r);} .btn-full{width:100%;} /* INPUT */ .inp{width:100%;padding:.7rem .9rem;background:var(--s2);border:1px solid var(--b);border-radius:var(--r2);color:var(--t1);font-family:'DM Sans',sans-serif;font-size:.9rem;outline:none;transition:border .2s;} .inp:focus{border-color:var(--cyan);} .inp::placeholder{color:var(--t3);} .lbl{display:block;font-size:.75rem;font-weight:600;color:var(--t2);margin-bottom:.35rem;} .fg{margin-bottom:.85rem;} /* STATS */ .stats3{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;margin-bottom:.65rem;} .sc{background:var(--s1);border:1px solid var(--b);border-radius:var(--r2);padding:.75rem .6rem;text-align:center;} .sn{font-family:'Syne',sans-serif;font-size:1.35rem;font-weight:800;line-height:1;} .sl{font-size:.62rem;color:var(--t2);font-weight:500;margin-top:.2rem;} /* CLIENT ROW */ .cr{display:flex;align-items:center;gap:.8rem;padding:.75rem 0;border-bottom:1px solid var(--b);cursor:pointer;transition:opacity .2s;} .cr:last-child{border-bottom:none;} .cr:active{opacity:.65;} .ci{flex:1;min-width:0;} .cn{font-weight:600;font-size:.9rem;} .cm{font-size:.72rem;color:var(--t2);margin-top:.08rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .cright{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0;} /* PROG ITEM */ .pi{display:flex;align-items:center;gap:.7rem;padding:.7rem;background:var(--s2);border-radius:var(--r2);margin-bottom:.45rem;cursor:pointer;border:1px solid transparent;transition:all .2s;} .pi:active{opacity:.7;} .pi.done{border-color:rgba(16,185,129,.25);background:var(--green2);} .pi.today{border-color:rgba(0,212,255,.25);background:var(--cyan2);} .pd{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0;} .pn{font-size:.86rem;font-weight:600;} .pe{font-size:.72rem;color:var(--t2);margin-top:.06rem;} /* TABS */ .tabs{display:flex;gap:.2rem;padding:.45rem;background:var(--s2);border-radius:var(--r2);margin-bottom:.85rem;flex-shrink:0;} .tab{flex:1;text-align:center;padding:.45rem .2rem;font-size:.76rem;font-weight:600;color:var(--t3);border-radius:8px;cursor:pointer;transition:all .2s;} .tab.on{background:var(--s1);color:var(--t1);box-shadow:0 1px 4px rgba(0,0,0,.4);} /* ALERT ITEM */ .ai{display:flex;align-items:center;gap:.7rem;padding:.65rem 0;border-bottom:1px solid var(--b);} .ai:last-child{border-bottom:none;} .adot{width:7px;height:7px;border-radius:50%;flex-shrink:0;} /* CHART */ .chart{height:100px;display:flex;align-items:flex-end;gap:5px;} .bar{flex:1;border-radius:4px 4px 0 0;} .clbs{display:flex;gap:5px;margin-top:.3rem;} .clb{flex:1;font-size:.58rem;color:var(--t3);text-align:center;} /* MESSAGE */ .mday{text-align:center;font-size:.65rem;color:var(--t3);font-weight:600;margin:.65rem 0;letter-spacing:.05em;text-transform:uppercase;} .mrow{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:flex-end;} .mrow.sent{flex-direction:row-reverse;} .bub{max-width:74%;padding:.6rem .85rem;border-radius:16px;font-size:.86rem;line-height:1.5;} .bub-r{background:var(--s2);border-bottom-left-radius:4px;} .bub-s{background:var(--cyan);color:#070B12;border-bottom-right-radius:4px;} /* MSG BAR */ .mbar{display:flex;gap:.55rem;align-items:flex-end;padding:.6rem 1.1rem;border-top:1px solid var(--b);background:var(--bg);flex-shrink:0;} .mwrap{flex:1;background:var(--s2);border:1px solid var(--b);border-radius:100px;padding:.45rem .9rem;display:flex;align-items:center;} .minp{flex:1;background:none;border:none;outline:none;font-family:'DM Sans',sans-serif;font-size:.88rem;color:var(--t1);} .minp::placeholder{color:var(--t3);} .sbtn{width:36px;height:36px;background:var(--cyan);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;font-size:.9rem;transition:transform .2s;} .sbtn:active{transform:scale(.9);} /* CHIPS */ .chips{display:flex;gap:.4rem;flex-wrap:wrap;padding:.3rem 0;} .chip{background:var(--s2);border:1px solid var(--b);border-radius:100px;padding:.3rem .75rem;font-size:.75rem;font-weight:500;color:var(--t2);cursor:pointer;transition:all .2s;white-space:nowrap;} .chip:active{border-color:var(--cyan);color:var(--cyan);} /* CHOICE */ .cgrid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-bottom:.85rem;} .cc{background:var(--s2);border:1.5px solid var(--b);border-radius:var(--r);padding:.9rem .75rem;cursor:pointer;transition:all .2s;text-align:center;} .cc.on{border-color:var(--cyan);background:var(--cyan2);} .cc:active{transform:scale(.97);} .ce{font-size:1.6rem;margin-bottom:.35rem;} .cl{font-size:.8rem;font-weight:700;} .cs{font-size:.68rem;color:var(--t2);margin-top:.1rem;} /* SHEET */ .ov{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.65);backdrop-filter:blur(6px);display:none;} .ov.on{display:block;} .sheet{position:fixed;bottom:0;left:50%;transform:translateX(-50%) translateY(100%);width:100%;max-width:430px;background:var(--s1);border-radius:20px 20px 0 0;z-index:101;transition:transform .32s cubic-bezier(.4,0,.2,1);max-height:88vh;overflow-y:auto;border-top:1px solid var(--b);} .sheet.on{transform:translateX(-50%) translateY(0);} .sh{width:34px;height:3.5px;background:var(--b2);border-radius:2px;margin:.65rem auto;} .shb{padding:0 1.1rem 2rem;} .shtitle{font-family:'Syne',sans-serif;font-size:1rem;font-weight:700;margin-bottom:.25rem;} .shsub{font-size:.78rem;color:var(--t2);margin-bottom:1rem;} /* IFRAME PANEL */ .ifr-panel{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;background:var(--bg);transform:translateY(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);} .ifr-panel.on{transform:none;} .ifr-hdr{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 1.1rem;border-bottom:1px solid var(--b);flex-shrink:0;} .ifr-title{font-family:'Syne',sans-serif;font-size:.95rem;font-weight:700;} .ifr-close{background:var(--s2);border:1px solid var(--b);color:var(--t2);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.9rem;transition:all .2s;} .ifr-close:hover{border-color:var(--red);color:var(--red);} .ifr-wrap{flex:1;overflow:hidden;} .ifr-wrap iframe{width:100%;height:100%;border:none;background:white;} .ifr-load{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;background:var(--bg);} /* NOTIF DOT */ .ndot{width:8px;height:8px;background:var(--red);border-radius:50%;border:2px solid var(--bg);} /* GRAD TEXT */ .gt{background:linear-gradient(135deg,var(--cyan),var(--violet));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;} /* SCORE RING */ .ring{position:relative;width:68px;height:68px;flex-shrink:0;} .ring svg{transform:rotate(-90deg);} .rl{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;} .rn{font-family:'Syne',sans-serif;font-size:1.05rem;font-weight:800;line-height:1;} .rs{font-size:.58rem;color:var(--t2);font-weight:600;} /* TODO */ .todo-item{display:flex;align-items:center;gap:.75rem;padding:.65rem 0;border-bottom:1px solid var(--b);} .todo-item:last-child{border-bottom:none;} .todo-cb{width:22px;height:22px;border-radius:50%;border:2px solid var(--b2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .2s;} .todo-cb.done{background:var(--green);border-color:var(--green);} .todo-text{flex:1;font-size:.88rem;} .todo-text.done{text-decoration:line-through;color:var(--t3);} /* RECIPE CARD */ .recipe{background:var(--s2);border-radius:var(--r);overflow:hidden;margin-bottom:.65rem;border:1px solid var(--b);} .recipe-img{height:80px;background:linear-gradient(135deg,var(--green2),var(--cyan2));display:flex;align-items:center;justify-content:center;font-size:2rem;} .recipe- .recipe-name{font-weight:700;font-size:.9rem;} .recipe-meta{font-size:.72rem;color:var(--t2);margin-top:.15rem;} /* INVOICE ROW */ .inv-row{display:flex;align-items:center;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid var(--b);} .inv-row:last-child{border-bottom:none;} .inv-amount{font-family:'Syne',sans-serif;font-size:1rem;font-weight:700;} /* STICKY */ .sticky{padding:.75rem 1.1rem;flex-shrink:0;} /* ANIMATIONS */ .shop-cat2{font-size:.65rem;font-weight:700;color:var(--t3);letter-spacing:.08em;text-transform:uppercase;margin:.7rem 0 .3rem;} .shop-item2{display:flex;align-items:center;gap:.7rem;padding:.5rem 0;border-bottom:1px solid var(--b);} .shop-item2:last-child{border-bottom:none;} .si-name{font-size:.85rem;font-weight:500;} .si-name.done2{text-decoration:line-through;color:var(--t3);} .si-qty{font-size:.68rem;color:var(--t3);margin-top:.05rem;} .water-g.filled{background:var(--cyan2) !important;border-color:var(--cyan) !important;} /* TUTO STEPS */ .tuto-step{display:flex;gap:.85rem;padding:.75rem 0;border-bottom:1px solid var(--b);} .tuto-num{width:28px;height:28px;border-radius:50%;background:var(--cyan);color:#070B12;display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-size:.82rem;font-weight:800;flex-shrink:0;margin-top:2px;} .tuto-content{flex:1;} .tuto-title{font-size:.9rem;font-weight:700;margin-bottom:.2rem;} .tuto-desc{font-size:.8rem;color:var(--t2);line-height:1.55;} .tuto-url{margin-top:.4rem;background:var(--s2);border-radius:6px;padding:.35rem .65rem;font-family:'DM Mono',monospace;font-size:.75rem;color:var(--cyan);border:1px solid rgba(0,212,255,.2);} .plan-card:hover { transform: translateY(-2px); box-shadow: 0 4px 20px rgba(0,0,0,.3); } .plan-card.selected { border-color: var(--cyan) !important; background: var(--cyan2) !important; } @keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}} .fu{animation:fadeUp .35s ease both;} .fu1{animation-delay:.05s;} .fu2{animation-delay:.1s;} .fu3{animation-delay:.15s;} @keyframes spin{to{transform:rotate(360deg)}} .spin{animation:spin .8s linear infinite;} /* LOGIN */ .login-wrap{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;background:var(--bg);} .login-logo{width:68px;height:68px;border-radius:20px;background:linear-gradient(135deg,var(--cyan),var(--violet));display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-size:1.8rem;font-weight:800;color:#fff;margin-bottom:1.25rem;box-shadow:0 8px 32px rgba(0,212,255,.25);} .login-title{font-family:'Syne',sans-serif;font-size:1.75rem;font-weight:800;text-align:center;margin-bottom:.3rem;} .login-sub{font-size:.85rem;color:var(--t2);text-align:center;margin-bottom:1.75rem;} .login-form{width:100%;max-width:340px;} .login-err{background:var(--red2);border:1px solid rgba(239,68,68,.3);color:var(--red);border-radius:var(--r2);padding:.65rem;font-size:.8rem;text-align:center;margin-bottom:.65rem;display:none;} .login-switch{text-align:center;margin-top:1rem;font-size:.8rem;color:var(--t2);} .login-switch span{color:var(--cyan);cursor:pointer;font-weight:600;} /* MODULE GRID (coach IA) */ .mgrid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:.65rem;} .mcard{background:var(--s1);border:1px solid var(--b);border-radius:var(--r);padding:1rem;cursor:pointer;transition:all .25s;position:relative;overflow:hidden;} .mcard::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient,linear-gradient(90deg,var(--cyan),var(--violet)));transform:scaleX(0);transform-origin:left;transition:transform .25s;} .mcard:hover::before,.mcard:active::before{transform:scaleX(1);} .mcard:hover{border-color:rgba(0,212,255,.2);transform:translateY(-2px);} .mcard:active{transform:scale(.97);} .mc-ico{font-size:1.5rem;margin-bottom:.6rem;} .mc-name{font-size:.85rem;font-weight:700;} .mc-desc{font-size:.7rem;color:var(--t2);margin-top:.15rem;line-height:1.4;} .mc-time{display:inline-flex;align-items:center;background:var(--cyan2);border-radius:100px;padding:.15rem .55rem;font-size:.65rem;font-weight:700;color:var(--cyan);margin-top:.5rem;} /* SHOP LIST */ .shop-cat{font-size:.72rem;font-weight:700;color:var(--t3);letter-spacing:.08em;text-transform:uppercase;margin:.75rem 0 .35rem;} .shop-item{display:flex;align-items:center;gap:.75rem;padding:.55rem 0;border-bottom:1px solid var(--b);} .shop-item:last-child{border-bottom:none;} /* GEN STEPS */ .gstep{display:flex;align-items:center;gap:.7rem;padding:.7rem;background:var(--s2);border-radius:var(--r2);margin-bottom:.4rem;border:1px solid transparent;} .gstep.done{border-color:rgba(16,185,129,.3);background:var(--green2);} .gstep.act{border-color:rgba(0,212,255,.3);background:var(--cyan2);} .gico{font-size:.95rem;width:18px;text-align:center;} .gtxt{font-size:.86rem;font-weight:500;} .gsp{width:14px;height:14px;border:2px solid rgba(0,212,255,.3);border-top-color:var(--cyan);border-radius:50%;margin-left:auto;} /* RESPONSIVE */ @media(min-width:431px){.shell{box-shadow:0 0 0 1px rgba(255,255,255,.06),0 32px 80px rgba(0,0,0,.8);}}
CoachOS, exploité par son fondateur. Contact : hello@iacoachos.fr
Nous collectons uniquement les données nécessaires au fonctionnement du service : email, nom, informations de profil coach, données clients saisies par le coach (avec leur consentement), et données de facturation.
Les données sont utilisées pour : fournir le service CoachOS, gérer les abonnements, améliorer l'application. Elles ne sont jamais vendues à des tiers.
Les données sont hébergées sur Supabase (infrastructure européenne), protégées par chiffrement en transit (HTTPS) et au repos. L'accès est sécurisé par Row Level Security.
Les modules IA (SessionScribe, FollowUpAgent, ContentFactory) transmettent les données saisies à l'API Anthropic pour génération. Anthropic ne stocke pas ces données selon sa politique de confidentialité.
Les données sont conservées pendant la durée de l'abonnement + 30 jours après résiliation. Elles sont ensuite supprimées automatiquement.
Vous disposez d'un droit d'accès, rectification, portabilité et suppression de vos données. Pour exercer ces droits : hello@iacoachos.fr — Réponse sous 30 jours.
CoachOS n'utilise pas de cookies publicitaires. Un token de session est stocké localement pour maintenir votre connexion.
Pour toute question relative à vos données : hello@iacoachos.fr