:root{--bg: #0f1216;--panel: #171b21;--panel2: #1e232b;--line: #2a313b;--ink: #f2f4f7;--soft: #9aa4b2;--mute: #6b7684;--tape: #f2b705;--tape-ink: #1a1400;--ok: #3ddc97;--warn: #ff7a45;--danger: #ff5c5c;--rest: #4f8cff;--r: 10px;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--tap: 44px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}body{padding-bottom:env(safe-area-inset-bottom)}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:16px;color:var(--ink);background:var(--panel2);border:1.5px solid var(--line);border-radius:var(--r);padding:10px 12px;min-height:var(--tap);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--tape);border-color:var(--tape)}input[type=number]{font-variant-numeric:tabular-nums;font-weight:700;text-align:center}a{color:var(--tape)}h1,h2,h3,p{margin:0}.app{min-height:100dvh;display:flex;flex-direction:column}.hdr{position:sticky;top:0;z-index:30;background:#0f1216f0;backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:calc(8px + env(safe-area-inset-top)) 14px 8px}.hdr-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.brand{font-weight:800;font-size:17px;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.brand small{font-weight:500;color:var(--mute);font-size:11px}.clock{font-variant-numeric:tabular-nums;font-weight:800;font-size:24px;letter-spacing:.01em;line-height:1}.clock small{font-size:11px;color:var(--soft);font-weight:500;margin-left:6px}.dot{width:8px;height:8px;border-radius:50%;background:var(--mute);display:inline-block}.dot.on{background:var(--ok)}.dot.pending{background:var(--tape)}.dot.off{background:var(--warn)}.main{flex:1;padding:12px 12px 250px;max-width:600px;width:100%;margin:0 auto}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;background:#171b21f7;border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));backdrop-filter:blur(10px)}.tab{flex:1;min-height:50px;background:transparent;border:0;border-radius:8px;color:var(--soft);font-size:11.5px;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.tab .ico{font-size:20px;line-height:1}.tab.active{color:var(--tape);background:#f2b7051a}.h1{font-weight:800;font-size:24px;line-height:1.1;letter-spacing:-.01em}.h2{font-weight:700;font-size:17px;line-height:1.2}.sub{color:var(--soft);font-size:13.5px;margin-top:4px}.phase{margin:22px 0 8px;display:flex;align-items:center;gap:10px}.phase h2{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);white-space:nowrap}.phase:after{content:"";flex:1;height:2px;background:repeating-linear-gradient(90deg,var(--tape) 0 12px,transparent 12px 20px);opacity:.7}.card{background:var(--panel);border:1.5px solid var(--line);border-radius:var(--r);margin-bottom:10px;overflow:hidden}.card.done{border-color:var(--ok)}.card.skipped{opacity:.55}.card-head{display:flex;gap:10px;align-items:flex-start;padding:12px;width:100%;background:none;border:0;text-align:left;min-height:var(--tap)}.card-body{padding:0 12px 12px}.idx{font-weight:800;font-size:22px;line-height:1;color:var(--tape);min-width:26px;font-variant-numeric:tabular-nums}.card.done .idx{color:var(--ok)}.tog{margin-left:auto;color:var(--soft);transition:transform .2s;font-size:18px;align-self:center}.open .tog{transform:rotate(180deg)}.segs{display:flex;gap:6px;margin:8px 0 12px}.segs button{flex:1;min-height:var(--tap);background:var(--panel);border:1.5px solid var(--line);border-radius:var(--r);color:var(--ink);font-weight:700;font-size:15px;line-height:1.1;padding:6px 2px}.segs button span{display:block;font-weight:500;font-size:10.5px;color:var(--soft);margin-top:2px}.segs button.active{background:var(--tape);border-color:var(--tape);color:var(--tape-ink)}.segs button.active span{color:#1a1400bf}.blockbar{display:flex;gap:10px;align-items:center;background:var(--panel2);border:1.5px solid var(--line);border-radius:var(--r);padding:10px 12px;margin-bottom:12px;font-size:13px}.blockbar b{font-size:22px;font-weight:800;color:var(--tape);line-height:1}.blockbar .t{flex:1}.blockbar small{display:block;color:var(--soft);font-size:12px}.banner{background:#ff7a4524;border:1.5px solid rgba(255,122,69,.5);border-radius:var(--r);padding:10px 12px;font-size:13.5px;margin-bottom:12px}.banner.info{background:#4f8cff1f;border-color:#4f8cff73}.banner.ok{background:#3ddc971f;border-color:#3ddc9773}.presc{margin:4px 0 10px;padding:10px 12px;background:var(--panel2);border:1.5px dashed rgba(242,183,5,.55);border-radius:var(--r)}.presc .lab{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--tape);font-weight:700}.presc .load{font-size:30px;font-weight:800;line-height:1.05;margin-top:2px;font-variant-numeric:tabular-nums}.presc .load small{font-size:14px;font-weight:600;color:var(--soft);margin-left:6px}.presc .meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:13px;color:var(--soft)}.presc .meta b{color:var(--ink);font-weight:700}.future{margin-top:8px;padding:6px 10px;border-left:3px solid var(--mute);color:var(--mute);font-size:12.5px;background:#ffffff05}.badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.badge{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--panel2);color:var(--soft);border:1px solid var(--line)}.badge.ok{color:var(--ok);border-color:#3ddc9766}.badge.wait{color:var(--tape);border-color:#f2b70566}.badge.warn{color:var(--warn);border-color:#ff7a4566}.badge.rest{color:var(--rest);border-color:#4f8cff66}.h4{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);font-weight:700;margin:12px 0 4px}.steps{margin:0;padding:0;list-style:none;counter-reset:s}.steps li{position:relative;padding:4px 0 4px 28px;font-size:14px;counter-increment:s}.steps li:before{content:counter(s);position:absolute;left:0;top:6px;width:19px;height:19px;border-radius:50%;background:var(--tape);color:var(--tape-ink);font-weight:800;font-size:11px;display:flex;align-items:center;justify-content:center}.bul{margin:0;padding-left:18px;font-size:13.5px;color:var(--ink)}.bul li{margin:3px 0}.bul.stop li{color:var(--warn)}.why{margin-top:8px;padding:8px 10px;background:#f2b70514;border-left:3px solid var(--tape);font-size:13px;border-radius:0 6px 6px 0;color:var(--ink)}.tech{margin-top:10px;display:grid;gap:6px}.tech label{display:flex;gap:10px;align-items:center;font-size:14px;padding:8px 10px;background:var(--panel2);border-radius:8px;min-height:var(--tap)}.tech input{width:24px;height:24px;min-height:0;padding:0;accent-color:var(--ok);flex:none}.sets{margin-top:12px;display:grid;gap:6px}.row{display:grid;grid-template-columns:26px 1fr 1fr 48px;gap:6px;align-items:center}.row.h{font-size:10.5px;color:var(--soft);text-transform:uppercase;letter-spacing:.05em}.row .n{font-weight:800;font-size:16px;text-align:center;color:var(--soft)}.row input{padding:8px 4px;font-size:20px}.row .chk{height:var(--tap);border:1.5px solid var(--line);background:var(--panel2);border-radius:var(--r);font-size:20px;color:var(--mute)}.row.ok input{border-color:var(--ok);background:#3ddc971a}.row.ok .chk{background:var(--ok);border-color:var(--ok);color:#05301c}.rirline{display:grid;grid-template-columns:26px 1fr;gap:6px;align-items:center;margin-top:-2px}.rirline .lbl{font-size:10px;color:var(--soft);text-align:center;text-transform:uppercase}.rir{display:flex;gap:4px}.rir button{flex:1;min-height:40px;background:var(--panel2);border:1.5px solid var(--line);border-radius:8px;font-weight:700;font-size:15px;color:var(--soft);padding:0}.rir button.sel{background:var(--rest);border-color:var(--rest);color:#fff}.rir button.sel.hi{background:var(--ok);border-color:var(--ok);color:#05301c}.rir button.sel.lo{background:var(--warn);border-color:var(--warn);color:#2b0f00}.btn{min-height:var(--tap);padding:10px 14px;border-radius:var(--r);border:1.5px solid var(--line);background:var(--panel2);color:var(--ink);font-weight:700;font-size:15px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.primary{background:var(--tape);border-color:var(--tape);color:var(--tape-ink)}.btn.ghost{background:transparent}.btn.danger{border-color:#ff5c5c80;color:var(--danger);background:#ff5c5c14}.btn.small{min-height:36px;padding:6px 10px;font-size:13px}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:default}.actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.actions .btn{flex:1}.hint{color:var(--soft);font-size:12.5px;margin-top:6px}.err{color:var(--danger);font-size:13.5px;margin-top:6px}.timerbar{position:fixed;left:8px;right:8px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:45;background:#101a2e;border:1.5px solid var(--rest);border-radius:12px;padding:10px 12px;box-shadow:0 8px 30px #00000080}.timerbar.over{border-color:var(--ok);background:#0d2a20}.timerbar .top{display:flex;align-items:center;justify-content:space-between;gap:8px}.timerbar .time{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.timerbar .lab{font-size:12.5px;color:var(--soft);flex:1;min-width:0}.timerbar .lab b{color:var(--ink);display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timerbar .bar{height:6px;background:#ffffff1f;border-radius:3px;margin-top:8px;overflow:hidden}.timerbar .fill{height:100%;background:var(--rest);border-radius:3px;transition:width .25s linear}.timerbar.over .fill{background:var(--ok)}.timerbar .btns{display:flex;gap:6px}.timerbar .btns .btn{min-height:40px;padding:6px 12px;font-size:14px}.savebar{position:fixed;left:8px;right:8px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:44}.savebar.raised{bottom:calc(160px + env(safe-area-inset-bottom))}.modal-bg{position:fixed;inset:0;background:#000000b3;z-index:60;display:flex;align-items:flex-end;justify-content:center;padding:10px}.modal{background:var(--panel);border:1.5px solid var(--line);border-radius:14px;padding:16px;width:100%;max-width:560px;max-height:85dvh;overflow:auto}.modal .h2{margin-bottom:8px}.toast{position:fixed;left:50%;bottom:calc(80px + env(safe-area-inset-bottom));transform:translate(-50%) translateY(20px);background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:10px;font-weight:600;font-size:14px;opacity:0;pointer-events:none;transition:all .2s;z-index:70;max-width:92vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0}.tile{background:var(--panel);border:1.5px solid var(--line);border-radius:var(--r);padding:10px 12px}.tile .k{font-size:11px;color:var(--soft);text-transform:uppercase;letter-spacing:.05em}.tile b{display:block;font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;margin-top:2px;line-height:1.1}.tile b small{font-size:12px;color:var(--soft);font-weight:600;margin-left:4px}.tile.accent{border-color:#f2b70580}.tile.accent b{color:var(--tape)}.tile.good b{color:var(--ok)}.progress{height:10px;background:var(--panel2);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:8px 0}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--tape),var(--ok))}.chart{width:100%;height:auto;display:block;background:var(--panel);border:1.5px solid var(--line);border-radius:var(--r)}.chart text{fill:var(--soft);font-size:10px;font-family:var(--sans)}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--soft);margin:6px 2px}.legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}.field{margin-bottom:10px}.field label{display:block;font-size:12.5px;color:var(--soft);margin-bottom:4px;font-weight:600}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.log{background:var(--panel);border:1.5px solid var(--line);border-radius:var(--r);padding:10px 12px;margin-bottom:8px}.log .d{font-weight:700;font-size:14px;display:flex;justify-content:space-between;gap:8px;align-items:baseline}.log .d small{color:var(--soft);font-weight:500}.log .l{font-size:13.5px;color:var(--ink);margin-top:3px}.log .l.soft{color:var(--soft)}.log .l.ok{color:var(--ok)}.log .l.warn{color:var(--warn)}.log .l.in{padding-left:14px}.empty{color:var(--soft);text-align:center;padding:30px 10px;font-size:14px}.login{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:24px;max-width:420px;margin:0 auto}.login .h1{font-size:30px;margin-bottom:4px}.login form{margin-top:20px;display:grid;gap:10px}.login input{font-size:20px;text-align:center;letter-spacing:.04em}.list{display:grid;gap:6px}.kv{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:6px 0;border-bottom:1px solid var(--line)}.kv:last-child{border-bottom:0}.kv span{color:var(--soft)}.kv b{font-variant-numeric:tabular-nums}.msgs{display:grid;gap:6px;margin-top:8px}.msg{padding:8px 10px;border-radius:8px;font-size:13.5px;background:var(--panel2);border-left:3px solid var(--mute)}.msg.up,.msg.up2,.msg.promo,.msg.tech,.msg.e1rm,.msg.ceiling{border-left-color:var(--ok)}.msg.stall,.msg.reset,.msg.freeze{border-left-color:var(--warn)}.msg.info,.msg.hold{border-left-color:var(--rest)}.approach{display:grid;gap:4px;margin-top:6px}.approach div{display:flex;justify-content:space-between;background:var(--panel2);padding:8px 10px;border-radius:8px;font-size:14px}.approach b{font-variant-numeric:tabular-nums}.photo{width:100%;max-height:260px;object-fit:contain;border-radius:var(--r);background:#000;margin:8px 0}.top3{display:grid;gap:8px;margin-top:10px}.top3 .item{background:var(--panel2);border-radius:var(--r);padding:10px 12px;border-left:3px solid var(--tape)}.top3 .item b{display:block;font-size:15px}.top3 .item p{font-size:13.5px;margin-top:3px}.top3 .item .astuce{color:var(--soft)}.version{color:var(--mute);font-size:12px;text-align:center;margin-top:20px}.install{background:#4f8cff1a;border:1.5px solid rgba(79,140,255,.4);border-radius:var(--r);padding:10px 12px;font-size:13px;margin-bottom:12px}.check{display:flex;align-items:center;gap:10px;min-height:var(--tap)}.check input{width:26px;height:26px;min-height:0;padding:0;accent-color:var(--ok);flex:none}
