:root{--ink:#16302a;--muted:#61716b;--paper:#f4f1e9;--card:#fffdf8;--green:#226c57;--lime:#cfdf80;--line:#d6ddd8;--red:#a54336;--amber:#936515}
*{box-sizing:border-box}
html{scroll-padding-top:132px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px}
button,textarea{font:inherit}
button{touch-action:manipulation}
button:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #2b7bb9;outline-offset:2px}
.topbar{position:sticky;top:0;z-index:10;height:58px;padding:8px max(14px,env(safe-area-inset-right)) 8px max(14px,env(safe-area-inset-left));background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;flex-direction:column;min-width:0}.brand strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:1rem}.eyebrow{letter-spacing:.14em;font-weight:800;color:var(--lime);font-size:.65rem}
.save-state{font-size:.8rem;color:#d9e7e2;white-space:nowrap}.save-state.saving{color:var(--lime)}.save-state.error{color:#ffb8ab}
.progress-panel{position:sticky;top:58px;z-index:9;background:#fff;padding:9px max(14px,env(safe-area-inset-right)) 10px max(14px,env(safe-area-inset-left));box-shadow:0 3px 10px #16302a18}
.progress-panel>div:first-child{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.progress-panel strong{font-size:.95rem}.progress-panel span{font-size:.82rem;color:var(--muted)}
.progress-track{height:7px;margin-top:7px;background:#dfe5e1;border-radius:10px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--green);transition:width .2s}
main{max-width:760px;margin:auto;padding:12px 14px calc(70px + env(safe-area-inset-bottom))}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.filters{display:flex;background:#e4e9e6;border-radius:12px;padding:3px}
.filter,.info-button{min-height:44px;border:0;border-radius:9px;padding:0 13px;background:transparent;color:var(--ink);font-weight:750;font-size:.88rem}.filter.active{background:#fff;box-shadow:0 1px 5px #0001}.info-button{background:#e4e9e6}
.info{background:#e7ebd2;border:1px solid #ccd5a8;border-radius:14px;padding:14px 17px;margin-bottom:12px}.info h2{font-size:1rem;margin:0 0 7px}.info p,.info li{font-size:.9rem;line-height:1.45}.info ul{padding-left:20px;margin-bottom:0}
.area{background:var(--card);border:1px solid var(--line);border-radius:16px;margin:10px 0;overflow:hidden;box-shadow:0 4px 16px #16302a0a}.area.done{border-color:#8eaf75}
.area-head{width:100%;min-height:66px;border:0;background:none;padding:9px 12px;display:grid;grid-template-columns:40px 1fr 30px;align-items:center;text-align:left;color:inherit;gap:9px}
.status-icon{width:38px;height:38px;border-radius:12px;background:#e8eeeb;display:grid;place-items:center;font-size:1.15rem;font-weight:900}.done .status-icon{background:#d8e8cf;color:#205530}
.area-title{display:block;font-weight:850;font-size:1rem;line-height:1.25}.meta{display:block;font-size:.87rem;color:var(--muted);margin-top:3px}.chev{font-size:1.35rem}
.area-head[aria-expanded=true] .chev{transform:rotate(180deg)}
.area-body{border-top:1px solid var(--line);padding:7px 10px 13px}
.task-row{display:grid;grid-template-columns:1fr 50px;border-bottom:1px solid #e8ece9}.task-row:last-child{border-bottom:0}
.task-main{min-height:58px;border:0;background:none;color:inherit;display:flex;align-items:center;text-align:left;padding:6px 5px;gap:11px}.task-main:disabled{opacity:1}
.task-check{width:34px;height:34px;flex:none;border:2px solid #8b9b95;border-radius:10px;display:grid;place-items:center;font-weight:900;font-size:1.15rem;background:#fff}
.state-done .task-check{background:var(--green);border-color:var(--green);color:#fff}.state-not_needed .task-check{background:#e1e7e4;color:#4f615a}
.task-copy{display:flex;flex-direction:column;gap:2px}.task-copy strong{font-size:1rem;line-height:1.27}.task-copy small{font-size:.82rem;color:var(--muted)}
.state-done .task-copy strong{color:#365d50}.state-not_needed .task-copy strong{color:var(--muted)}.has-issue{background:#fff8ea}
.task-more{min-width:48px;min-height:52px;align-self:center;border:0;background:#e8edea;border-radius:11px;color:var(--ink);font-weight:900;letter-spacing:.08em}
.notes-toggle{min-height:48px;border:0;background:none;color:var(--green);font-weight:800;padding:8px 4px}.notes-box label{display:block;font-weight:800;font-size:.86rem;margin:4px 0 6px}.notes-box textarea{width:100%;min-height:78px;border:1px solid #aebcb6;border-radius:11px;padding:11px;background:#fff;resize:vertical}
.photos{display:flex;gap:8px;overflow:auto;padding:8px 2px}.photos img{width:64px;height:64px;object-fit:cover;border-radius:9px;border:1px solid var(--line)}.task-photos{grid-column:1/-1;padding-left:50px}
.empty,.finish-panel,.finished-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin:13px 0;text-align:center}.finish-panel h2{margin:0 0 5px}.finish-panel p,.finished-panel p{color:var(--muted)}
.finish-button,.start-button{width:100%;min-height:54px;border:0;border-radius:12px;background:var(--green);color:#fff;font-weight:850}
.history-panel{margin:22px 2px;color:var(--muted)}.history-panel summary{min-height:48px;display:flex;align-items:center;font-weight:800;cursor:pointer}.history-panel #history-list>div{display:flex;flex-direction:column;gap:2px;padding:10px 4px;border-top:1px solid var(--line)}.history-panel span{font-size:.84rem}
dialog{width:min(92vw,460px);border:0;border-radius:18px;padding:0;box-shadow:0 15px 60px #0005;color:var(--ink)}dialog::backdrop{background:#10251f99}dialog form{padding:18px}dialog h2{font-size:1.2rem;margin:0 0 14px}dialog form>button{width:100%;min-height:52px;border:0;border-top:1px solid var(--line);background:#fff;text-align:left;font-weight:750}dialog label{display:block;font-weight:800;margin-bottom:6px}dialog textarea{width:100%;min-height:110px;border:1px solid #aebcb6;border-radius:10px;padding:10px}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.dialog-actions button{min-height:50px;border:0;border-radius:11px;font-weight:800}.dialog-actions .primary{background:var(--green);color:#fff}#review{font-size:.92rem;line-height:1.4;max-height:50vh;overflow:auto}#review li{text-align:left;margin:6px 0}
#toast{position:fixed;z-index:30;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%,120px);width:min(calc(100% - 28px),500px);background:var(--ink);color:#fff;padding:11px 13px;border-radius:13px;display:flex;align-items:center;justify-content:space-between;gap:12px;transition:.2s;box-shadow:0 8px 30px #0004}#toast.show{transform:translate(-50%,0)}#toast button{min-height:40px;border:0;border-radius:8px;background:var(--lime);color:var(--ink);padding:0 14px;font-weight:900}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:700px){.topbar,.progress-panel{padding-inline:calc((100vw - 720px)/2)}main{padding-inline:0}.area-head{padding-inline:16px}.area-body{padding-inline:16px}}
