:root{--ink:#15181c;--bg:#f4f2ee;--card:#fff;--line:#e2dfd8;--mut:#5b6068;--accent:#c8420a;--band:#15181c;--band-fg:#fff;--btn:#c8420a;--cream:#fef0e4;--cream-line:#f0c9a8;--green:#17803d;--green-bg:#ddf5e3;--amber:#f9e6d2;--amber-fg:#8a3a0a;--blue:#1d4ed8}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,system-ui,sans-serif}h1,h2,h3{letter-spacing:-.01em;margin:0;font-family:Archivo,Inter,sans-serif}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}.btn{border:1.5px solid var(--ink);cursor:pointer;background:#fff;border-radius:10px;min-height:44px;padding:.65rem 1rem;font-weight:700}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--btn);border-color:var(--btn);color:#fff}.btn-green{background:var(--green);border-color:var(--green);color:#fff}.btn-muted{border-color:var(--line);color:var(--mut)}.btn-ghost{color:#fff;background:0 0;border-color:#ffffff59}.btn-sm{min-height:36px;padding:.4rem .8rem;font-size:.9rem}.pill{border-radius:99px;padding:.15rem .6rem;font-size:.78rem;font-weight:700;display:inline-block}.pill-green{background:var(--green-bg);color:#166534}.pill-solid{background:var(--green);color:#fff}.pill-amber{background:var(--amber);color:var(--amber-fg)}.pill-grey{color:#555;background:#e8e6e1}.pill-red{color:#9b1c1c;background:#fbe0e0}.err{color:#b42318;margin:.5rem 0;font-weight:600}.hint{background:var(--cream);border:1.5px solid var(--cream-line);border-radius:12px;padding:.9rem 1rem}.hint b{display:block}.hint span{color:var(--mut);font-size:.92rem}.toast{background:var(--ink);color:#fff;z-index:99;border-radius:10px;max-width:90vw;padding:.7rem 1.1rem;font-weight:600;position:fixed;bottom:90px;left:50%;transform:translate(-50%)}.book{background:var(--bg);flex-direction:column;max-width:480px;min-height:100%;margin:0 auto;display:flex;position:relative}.book-head{background:var(--band);color:var(--band-fg);padding:1.1rem 1.2rem 1rem}.book-head .kicker{color:#f28c4b;letter-spacing:.12em;font-size:.78rem;font-weight:800}.book-head img{height:30px;margin:.5rem 0;display:block}.book-head p{opacity:.85;margin:0;font-size:.95rem}.book-head.slim{align-items:center;gap:.9rem;padding:.8rem 1.2rem;display:flex}.book-head.slim img{height:20px;margin:0 0 .15rem}.book-head.slim p{font-size:.85rem}.back{color:inherit;cursor:pointer;background:0 0;border:0;padding:.3rem;font-size:1.4rem}.steps{color:var(--mut);border-bottom:1px solid var(--line);background:#fff;padding:.8rem 1.2rem;font-size:.85rem}.steps b{color:var(--ink)}.steps span+span:before{content:"·";margin:0 .5rem}.book-body{flex:1;padding:1.3rem 1.2rem 7.5rem}.book-body h1{margin-bottom:.6rem;font-size:1.65rem;line-height:1.15}.book-body h2{margin:1.3rem 0 .7rem;font-size:1.25rem}.sub{color:var(--mut);margin:0 0 1.2rem}.acc{border:1px solid var(--line);background:#fff;border-radius:16px;margin-bottom:.8rem;overflow:hidden}.acc-h{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:.6rem;width:100%;padding:1rem 1.1rem;display:flex}.acc-h b{font-family:Archivo;font-size:1.1rem}.acc-h small{color:var(--mut);flex:1}.badge{background:var(--btn);color:#fff;border-radius:99px;padding:.2rem .6rem;font-size:.75rem;font-weight:800}.acc-b{padding:0 .8rem .8rem}.pr{border:1.5px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:.8rem;margin-top:.5rem;padding:.8rem;display:flex}.pr.on{border-color:var(--btn);background:var(--cream)}.pr input{opacity:0;position:absolute}.box{border:2px solid var(--btn);color:#fff;border-radius:7px;flex:none;place-items:center;width:28px;height:28px;display:grid}.pr.on .box{background:var(--btn)}.pr b{font-weight:700;display:block}.pr small{color:var(--mut)}.bar{background:var(--ink);color:#fff;padding:.9rem 1.2rem calc(.9rem + env(safe-area-inset-bottom));z-index:5;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;display:flex;position:sticky;bottom:0}.bar b{display:block}.bar small{opacity:.8;white-space:nowrap;text-overflow:ellipsis;max-width:190px;display:block;overflow:hidden}.bar.light{background:var(--bg);color:var(--ink);border-top:1px solid var(--line);flex-direction:column;align-items:stretch}.bar.light small{text-align:center;max-width:none;color:var(--mut)}.bar .btn-primary{padding:.8rem 1.2rem}.bar.light .btn-primary{width:100%;padding:1rem}.weeknav{justify-content:space-between;align-items:center;margin:.4rem 0 1rem;font-weight:700;display:flex}.weeknav div{gap:.5rem;display:flex}.weeknav button{width:46px;height:46px;padding:0}.days{grid-template-columns:repeat(5,1fr);gap:.5rem;margin-bottom:1rem;display:grid}.day{border:1.5px solid var(--line);text-align:center;cursor:pointer;background:#fff;border-radius:14px;flex-direction:column;align-items:center;padding:.6rem 0;line-height:1.25;display:flex}.day small{letter-spacing:.05em;text-transform:uppercase;font-size:.72rem;font-weight:700}.day strong{font-family:Archivo;font-size:1.5rem}.day.sel{background:var(--ink);color:#fff;border-color:var(--ink)}.day.off{color:#8a8a8a;cursor:not-allowed;background:#e8e6e1;border-color:#e8e6e1}.day.off strong,.day.off small:first-child{text-decoration:line-through}.day.off em{font-size:.7rem;font-style:normal;text-decoration:line-through}.slots-t{letter-spacing:.1em;color:var(--mut);margin:1rem 0 .5rem;font-size:.78rem;font-weight:800}.slots{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.slot{border:1.5px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;padding:.8rem 0;font-size:1rem;font-weight:700}.slot.sel{background:var(--btn);border-color:var(--btn);color:#fff}.slot:disabled{color:#888;cursor:not-allowed;background:#e8e6e1;border-color:#e8e6e1;text-decoration:line-through}.form{grid-template-columns:1fr 1fr;gap:.9rem .8rem;display:grid}.form label,.fld{font-size:.85rem;font-weight:700;display:block}.form .full{grid-column:1/-1}.form input,.form textarea,.form select,.fld input,.fld select,.fld textarea{border:1.5px solid var(--line);background:#fff;border-radius:10px;width:100%;margin-top:.35rem;padding:.75rem;font-size:1rem;font-weight:400;display:block}.form input:focus,.form textarea:focus,.fld input:focus{outline:2px solid var(--btn);outline-offset:1px}.ok-circle{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:64px;height:64px;margin-bottom:1.2rem;font-size:2rem;display:grid}.recap{border:1px solid var(--line);background:#fff;border-radius:14px;margin:1rem 0}.recap div{justify-content:space-between;align-items:center;padding:.9rem 1.1rem;font-weight:700;display:flex}.recap div+div{border-top:1px solid var(--line)}.app{grid-template-columns:230px 1fr;min-height:100%;display:grid}.side{background:var(--ink);color:#fff;flex-direction:column;gap:.3rem;height:100vh;padding:1.2rem .9rem;display:flex;position:sticky;top:0}.side .logo{object-fit:contain;align-self:flex-start;height:20px;margin:.2rem .4rem 1.4rem}.side .brand{margin:.2rem .5rem;font-family:Archivo;font-size:1.25rem;font-weight:800}.side .tag{letter-spacing:.1em;background:#3b82f6;border-radius:6px;align-self:flex-start;margin:.3rem .5rem 1.2rem;padding:.15rem .5rem;font-size:.65rem;font-weight:800}.side a.nav{color:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem .8rem;font-size:1rem;font-weight:600;text-decoration:none;display:flex}.side a.nav.active{background:#262b33;font-weight:700}.side a.nav .badge{background:var(--accent)}.side .foot{color:#b8bdc6;border-top:1px solid #2b3038;flex-direction:column;gap:.6rem;margin-top:auto;padding:1rem .5rem 0;font-size:.8rem;display:flex}.side .foot .btn{min-height:36px;padding:.4rem .6rem;font-size:.8rem}.plat .side{background:#101b33}.plat .side a.nav.active{background:#1b2a4d}.plat{background:#eef1f6}.main{width:100%;min-width:0;max-width:1100px;padding:1.6rem 1.8rem 3rem}.main h1{margin-bottom:.3rem;font-size:2rem}.main .eyebrow{color:var(--mut);font-size:.95rem;font-weight:600}.top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem;display:flex}.top .btn-primary{border-radius:10px}.card{border:1px solid var(--line);background:#fff;border-radius:16px;margin-bottom:1rem;padding:1.1rem 1.2rem}.card h3{margin-bottom:.8rem;font-size:1.05rem}.weekcards{grid-template-columns:repeat(5,1fr);gap:.8rem;margin-bottom:1rem;display:grid}.wc{border:1.5px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:14px;padding:.8rem}.wc.sel{border:2px solid var(--ink)}.wc b{margin-bottom:.5rem;display:block}.wc small{color:var(--mut)}.meter{background:#e2e0da;border-radius:9px;height:8px;margin:.2rem 0 .5rem;overflow:hidden}.meter i{background:var(--accent);border-radius:9px;height:100%;display:block}.meter.full i{background:var(--ink)}.meter.over i{background:#b42318}.charge{align-items:center;gap:1.2rem;display:flex}.charge>div:first-child b{font-family:Archivo;font-size:1.6rem}.charge>div:first-child small{color:var(--mut);font-weight:700}.charge .meter{flex:1;height:14px;margin:0 0 .4rem}.charge p{color:var(--mut);margin:0;font-size:.9rem}.tbl{border-collapse:collapse;width:100%;min-width:760px}.tblw{border:1px solid var(--line);background:#fff;border-radius:16px;overflow-x:auto}.tbl th{text-align:left;letter-spacing:.1em;color:var(--mut);border-bottom:1px solid var(--line);padding:.9rem 1rem;font-size:.72rem}.tbl td{vertical-align:middle;border-top:1px solid #efede8;padding:.8rem 1rem}.tbl td small,.tbl td span.s{color:var(--mut);font-size:.88rem;display:block}.tbl .acts{flex-wrap:wrap;gap:.5rem;display:flex}.req{border:1px solid var(--line);background:#fff;border-radius:16px;margin-bottom:1rem;padding:1.2rem 1.3rem}.req header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.req h3{font-size:1.2rem}.req .when{color:var(--mut);margin:.2rem 0 .9rem}.facts{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:.8rem;display:grid}.facts small{color:var(--mut);font-size:.8rem;font-weight:600;display:block}.facts b{font-size:.95rem}.quote{background:var(--bg);border-radius:10px;margin-bottom:1rem;padding:.7rem 1rem}.decide{flex-wrap:wrap;align-items:flex-end;gap:.6rem;display:flex}.decide label{font-size:.82rem;font-weight:700}.decide select{border:1.5px solid var(--line);background:#fff;border-radius:10px;min-height:44px;margin-top:.3rem;padding:.65rem;font-weight:700;display:block}.seg{grid-template-columns:1fr 1fr;gap:.8rem;margin-bottom:1rem;display:grid}.seg button{text-align:left;border:1.5px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;padding:.8rem 1rem}.seg button.on{border:2px solid var(--accent);background:var(--cream)}.seg b{display:block}.seg small{color:var(--mut)}.row{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.stepper{align-items:center;gap:.8rem;font-weight:700;display:flex}.stepper button{border:1.5px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;width:40px;height:40px;font-size:1.2rem}.big{color:var(--accent);font-family:Archivo;font-size:1.4rem;font-weight:800}.two{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.chk{align-items:center;gap:.6rem;font-weight:600;display:flex}.chk input{width:20px;height:20px}.item-row{border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;margin-top:.6rem;padding:.8rem 1rem;display:flex}.item-row small{color:var(--mut);display:block}.swatches{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.sw{cursor:pointer;outline:1px solid var(--line);border:3px solid #0000;border-radius:10px;width:46px;height:46px}.sw.on{border-color:var(--blue)}.logos{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.logos div{border:1px solid var(--line);background:#fff;border-radius:12px;place-items:center;padding:1rem;display:grid}.logos div.dk{background:#15181c}.logos img{object-fit:contain;max-width:100%;height:34px}.plat .btn-primary{background:var(--blue);border-color:var(--blue)}.preview{background:var(--bg);border:7px solid #101b33;border-radius:28px;flex-direction:column;width:100%;max-width:330px;min-height:420px;display:flex;overflow:hidden}.preview .book-head{padding:.8rem 1rem}.preview .book-head img{height:20px}.preview .book-head p{font-size:.7rem}.preview .pv{flex:1;padding:.8rem}.preview .pv h4{margin:.2rem 0 .6rem;font-family:Archivo;font-size:1rem}.preview .pv div{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:.45rem;padding:.6rem .7rem;font-family:Archivo;font-size:.85rem;font-weight:800}.preview .pb{background:var(--ink);color:#fff;justify-content:space-between;align-items:center;padding:.6rem .8rem;font-size:.7rem;font-weight:700;display:flex}.preview .pb span{background:var(--btn);border-radius:8px;padding:.4rem .6rem}.plat-grid{grid-template-columns:1fr 340px;align-items:start;gap:1.2rem;display:grid}.login{background:var(--ink);place-items:center;min-height:100%;padding:1.2rem;display:grid}.login .card{width:100%;max-width:400px;padding:1.6rem}.login img{height:26px;margin-bottom:1rem}.login h1{margin-bottom:1rem;font-size:1.4rem}.login .fld{margin-bottom:.9rem}.login .btn{width:100%}.login .linkbtn{color:var(--accent);cursor:pointer;background:0 0;border:0;margin-top:.8rem;padding:0;font-weight:600}.login .inst{margin-top:1rem}.login .inst .btn{color:var(--ink);border-color:var(--line);background:#fff}.modal-back{z-index:100;background:#0000008c;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{color:var(--ink);background:#fff;border-radius:16px;width:100%;max-width:420px;padding:1.4rem}.modal h3{margin-bottom:.8rem}.modal ol{padding-left:1.2rem;line-height:1.5}.modal .btn{width:100%;margin-top:.6rem}.modal .fld{margin-bottom:.8rem}@media (width<=860px){.app{grid-template-rows:auto 1fr;grid-template-columns:1fr}.side{flex-flow:wrap;align-items:center;height:auto;padding:.6rem;position:static}.side .logo{height:16px;margin:0 .6rem 0 .2rem}.side .tag{margin:0 .5rem}.side .brand{font-size:1rem}.side .foot{border:0;flex-direction:row;margin:0 0 0 auto;padding:0}.side .foot span{display:none}.side a.nav{padding:.55rem .7rem;font-size:.9rem}.main{padding:1rem 1rem 3rem}.main h1{font-size:1.5rem}.weekcards{grid-template-columns:repeat(5,minmax(110px,1fr));overflow-x:auto}.charge{flex-direction:column;align-items:stretch}.facts{grid-template-columns:1fr 1fr}.two,.plat-grid{grid-template-columns:1fr}}
