*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:#0f1115;color:#e8e8ea;padding-bottom:88px;}
h1{font-size:18px;font-weight:600;}

.gate{position:fixed;inset:0;background:#0f1115;z-index:500;display:flex;align-items:center;justify-content:center;padding:24px;}
.gate-box{width:100%;max-width:360px;text-align:center;}
.gate-box h1{font-size:26px;margin-bottom:6px;}
.gate-box p{color:#8a8a92;margin-bottom:20px;}
.gate-box input{width:100%;background:#1a1d24;border:1px solid #2a2f3a;border-radius:12px;color:#fff;padding:14px;font-size:16px;margin-bottom:12px;}
.gate-err{color:#e24b4a;font-size:14px;margin-top:10px;min-height:18px;}

.top{position:sticky;top:0;background:#0f1115;padding:16px 18px 12px;border-bottom:1px solid #1e222b;z-index:50;}
.top .date{font-size:13px;color:#6a6a72;margin-top:2px;}
.screen{padding:18px;max-width:600px;margin:0 auto;display:none;}
.screen.active{display:block;}

.nav{position:fixed;bottom:0;left:0;right:0;background:#14171e;border-top:1px solid #1e222b;display:flex;padding:8px 0 max(8px,env(safe-area-inset-bottom));z-index:100;overflow-x:auto;}
.nav button{flex:1 0 auto;min-width:56px;background:none;border:none;color:#6a6a72;font-size:10px;font-weight:500;padding:6px 4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;}
.nav button.active{color:#fff;}
.nav .ic{font-size:19px;}

.prog{width:100%;height:6px;background:#1a1d24;border-radius:3px;overflow:hidden;margin-bottom:6px;}
.prog span{display:block;height:100%;background:#4a9d6f;transition:width .3s;}
.ptxt{font-size:12px;color:#6a6a72;margin-bottom:18px;}

.streakbar{display:flex;align-items:center;gap:10px;background:#1a1d24;border:1px solid #23272f;border-radius:12px;padding:12px 16px;margin-bottom:16px;}
.streakbar .flame{font-size:24px;}
.streakbar b{font-size:18px;}
.streakbar small{font-size:12px;color:#8a8a92;display:block;}
.streakbar .sright{margin-left:auto;text-align:right;}

.hitem{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:#1a1d24;border:1px solid #23272f;border-radius:14px;margin-bottom:10px;}
.hitem .chk{width:26px;height:26px;border-radius:8px;border:2px solid #3a4150;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;cursor:pointer;margin-top:1px;}
.hitem.done .chk{background:#4a9d6f;border-color:#4a9d6f;}
.hitem .body{flex:1;min-width:0;}
.hitem .htext{font-size:15px;font-weight:500;}
.hitem.done .htext{text-decoration:line-through;opacity:.6;}
.hitem .hsub{font-size:12px;color:#8a8a92;margin-top:2px;}
.hitem .photo-row{margin-top:8px;display:flex;align-items:center;gap:8px;}
.hitem .thumb{width:44px;height:44px;border-radius:8px;object-fit:cover;border:1px solid #2a2f3a;}
.hitem .cam{font-size:12px;color:#4a9d6f;background:#14171e;border:1px solid #2a2f3a;border-radius:8px;padding:6px 10px;cursor:pointer;}
.hitem .counter{display:flex;align-items:center;gap:10px;margin-top:8px;}
.hitem .counter button{width:30px;height:30px;border-radius:8px;background:#14171e;border:1px solid #2a2f3a;color:#fff;font-size:16px;cursor:pointer;}
.hitem .counter .cval{font-size:15px;font-weight:600;min-width:60px;text-align:center;}

.sec-label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#6a6a72;margin:24px 0 10px;}
.btn{width:100%;padding:15px;border-radius:14px;border:none;background:#4a9d6f;color:#fff;font-size:16px;font-weight:600;cursor:pointer;margin-top:8px;}
.btn:active{transform:scale(.98);}
.btn.sec{background:#1a1d24;color:#cfcfd4;border:1px solid #2a2f3a;}
.btn.wa{background:#25D366;color:#062e15;}
.btn.sm{width:auto;padding:9px 14px;font-size:13px;margin-top:0;}
.btn.danger{background:#3a1d1d;color:#f09595;border:1px solid #5a2a2a;}

textarea,input[type=text],input[type=password],select{width:100%;background:#14171e;border:1px solid #2a2f3a;border-radius:12px;color:#e8e8ea;padding:12px;font-size:15px;font-family:inherit;margin-top:8px;resize:vertical;}
textarea:focus,input:focus,select:focus{outline:none;border-color:#4a9d6f;}

.stat-row{display:flex;gap:10px;margin-bottom:18px;}
.stat{flex:1;background:#1a1d24;border:1px solid #23272f;border-radius:12px;padding:14px;text-align:center;}
.stat b{font-size:24px;font-weight:600;display:block;}
.stat small{font-size:11px;color:#8a8a92;}

.filterow{display:flex;gap:8px;margin-bottom:16px;}
.filt{flex:1;padding:9px;text-align:center;background:#1a1d24;border:1px solid #23272f;border-radius:10px;font-size:13px;color:#8a8a92;cursor:pointer;}
.filt.active{background:#2a2f3a;color:#fff;}
.litem{background:#1a1d24;border:1px solid #23272f;border-radius:14px;padding:14px 16px;margin-bottom:10px;cursor:pointer;}
.litem.done{border-color:#2d5a40;}
.litem-top{display:flex;align-items:flex-start;gap:12px;}
.ldot{width:22px;height:22px;border-radius:6px;border:2px solid #3a4150;flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;}
.litem.done .ldot{background:#4a9d6f;border-color:#4a9d6f;}
.ltitle{font-size:15px;font-weight:500;line-height:1.35;}
.lmeta{font-size:12px;color:#8a8a92;margin-top:3px;}
.lstars{color:#e0a92a;font-size:13px;margin-top:4px;}
.lnote-badge{display:inline-block;font-size:11px;color:#4a9d6f;margin-top:6px;}
.grp-title{font-size:13px;font-weight:600;color:#9a9aa2;margin:22px 0 10px;}

.modal{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:200;display:none;align-items:flex-end;}
.modal.show{display:flex;}
.sheet{background:#14171e;width:100%;max-height:92vh;overflow-y:auto;border-radius:20px 20px 0 0;padding:22px 20px max(22px,env(safe-area-inset-bottom));border-top:1px solid #2a2f3a;}
.sheet h2{font-size:18px;font-weight:600;margin-bottom:4px;line-height:1.3;}
.sheet .stype{font-size:12px;color:#6a6a72;margin-bottom:18px;}
.fld-label{font-size:13px;color:#9a9aa2;margin-top:16px;font-weight:500;}
.starpick{display:flex;gap:6px;margin-top:8px;}
.starpick span{font-size:30px;color:#33363e;cursor:pointer;}
.starpick span.on{color:#e0a92a;}
.modal-btns{display:flex;gap:10px;margin-top:22px;}
.modal-btns .btn{margin-top:0;}
.doneflag{display:flex;align-items:center;gap:10px;background:#1a1d24;border:1px solid #2a2f3a;border-radius:12px;padding:12px;margin-top:16px;cursor:pointer;}
.doneflag .chk{width:24px;height:24px;border-radius:7px;border:2px solid #3a4150;display:flex;align-items:center;justify-content:center;color:#fff;}
.doneflag.on .chk{background:#4a9d6f;border-color:#4a9d6f;}

.report{background:#14171e;border:1px solid #2a2f3a;border-radius:12px;padding:14px;font-size:13px;line-height:1.6;white-space:pre-wrap;color:#cfcfd4;margin-top:14px;max-height:260px;overflow-y:auto;}
.toast{position:fixed;bottom:96px;left:50%;transform:translateX(-50%);background:#2a2f3a;color:#fff;padding:12px 20px;border-radius:30px;font-size:14px;z-index:300;opacity:0;transition:opacity .2s;pointer-events:none;}
.toast.show{opacity:1;}
.empty{text-align:center;color:#6a6a72;padding:40px 20px;font-size:14px;line-height:1.6;}

.heat{display:grid;grid-template-columns:repeat(15,1fr);gap:4px;margin:10px 0 18px;}
.heat div{aspect-ratio:1;border-radius:3px;background:#1a1d24;}
.heat div.d1{background:#1e3a2a;}
.heat div.d2{background:#2d5a40;}
.heat div.d3{background:#4a9d6f;}

.manage-item{display:flex;align-items:center;gap:10px;background:#1a1d24;border:1px solid #23272f;border-radius:10px;padding:10px 12px;margin-bottom:8px;}
.manage-item .mtitle{flex:1;font-size:14px;}
.manage-item .msub{font-size:11px;color:#8a8a92;}
.mini{font-size:12px;color:#8a9;background:none;border:1px solid #2a2f3a;border-radius:8px;padding:6px 10px;cursor:pointer;color:#cfcfd4;}
.mini.reorder{padding:6px 9px;line-height:1;}
.mini:disabled{opacity:.25;cursor:default;}
.bar{height:100%;background:#4a9d6f;border-radius:3px;}
.barrow{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;color:#8a8a92;}
.barrow .track{flex:1;height:8px;background:#1a1d24;border-radius:4px;overflow:hidden;}

.daypick{display:flex;gap:6px;flex-wrap:wrap;}
.dayb{flex:1;min-width:38px;text-align:center;padding:9px 4px;background:#1a1d24;border:1px solid #2a2f3a;border-radius:8px;font-size:12px;color:#8a8a92;cursor:pointer;}
.dayb.on{background:#4a9d6f;border-color:#4a9d6f;color:#fff;}
select{width:100%;background:#14171e;border:1px solid #2a2f3a;border-radius:12px;color:#e8e8ea;padding:12px;font-size:15px;margin-top:8px;}
input[type=number]{width:100%;background:#14171e;border:1px solid #2a2f3a;border-radius:12px;color:#e8e8ea;padding:12px;font-size:15px;margin-top:8px;}

/* sequence / deadlines / reminders */
.activecard{background:#152018;border:1px solid #2d5a40;border-radius:16px;padding:16px;margin-bottom:16px;}
.activecard.alert{border-color:#7a3a3a;background:#201515;}
.ac-k{font-size:10px;letter-spacing:.08em;color:#4a9d6f;margin-bottom:6px;font-weight:600;}
.activecard.alert .ac-k{color:#e08a8a;}
.ac-t{font-size:17px;font-weight:600;line-height:1.3;cursor:pointer;}
.ac-m{font-size:12px;color:#8a8a92;margin-top:6px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.btnrow3{display:flex;gap:8px;margin-top:12px;}
.b3{flex:1;padding:12px 6px;border-radius:10px;border:1px solid #2a2f3a;background:#1a1d24;color:#cfcfd4;font-size:13px;font-weight:600;cursor:pointer;}
.b3.on{background:#4a9d6f;border-color:#4a9d6f;color:#fff;}
.b3.onred{background:#5a2a2a;border-color:#7a3a3a;color:#f0b5b5;}
.b3.fin{border-color:#3a4a6a;color:#9db8e8;}
.ac-dl{font-size:12px;color:#9db8e8;margin-top:10px;cursor:pointer;}
.badge{font-size:10px;padding:2px 8px;border-radius:20px;font-weight:600;display:inline-block;}
.badge.ok{background:#1e3a2a;color:#7ac79a;}
.badge.warn{background:#3a331a;color:#e0c06a;}
.badge.late{background:#3a1d1d;color:#f09595;}
.litem.locked{opacity:.55;}
.lockbanner{background:#1a1d24;border:1px solid #2a2f3a;border-radius:10px;padding:10px 12px;font-size:12px;color:#9a9aa2;margin-top:12px;line-height:1.5;}
