:root{--ink:#172a25;--muted:#6c7b75;--line:#e2e9e5;--paper:#f4f7f5;--card:#fff;--green:#174c3b;--green2:#236d50;--mint:#e8f4ed;--red:#a43a35;--redbg:#fff0ef;--amber:#8d641b;--amberbg:#fff7e4;--shadow:0 12px 36px rgba(20,55,41,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit}.wrap{width:min(100% - 36px,920px);margin:0 auto;padding:40px 0 28px}.admin-wrap{max-width:1000px}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:0 0 24px}.eyebrow{display:block;color:var(--green2);font-size:.72rem;font-weight:800;letter-spacing:.14em}.hero h1{font-size:clamp(2rem,5vw,3.1rem);letter-spacing:-.045em;line-height:1.06;margin:9px 0 7px}.hero p,.muted{color:var(--muted);margin:0}.admin-link{display:inline-flex;align-items:center;gap:10px;color:var(--green);font-size:.9rem;font-weight:700;padding:11px 14px;border:1px solid #cddbd3;border-radius:12px;background:#fff;white-space:nowrap}.admin-link:hover,.month-arrow:hover{background:var(--mint)}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.choose-card{max-width:600px;margin:30px auto;padding:30px}.choose-card h2{margin:8px 0;font-size:1.7rem;letter-spacing:-.03em}.people{display:grid;gap:12px;margin-top:24px}.person-button{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:15px;background:#fff;font-weight:750;transition:.15s}.person-button:hover{border-color:#82ac96;transform:translateY(-1px)}.avatar{display:grid;place-items:center;width:42px;height:42px;background:var(--mint);border-radius:50%;color:var(--green);font-size:1.1rem}.arrow{margin-left:auto;color:var(--green);font-size:1.4rem}.primary-button,.close-button{border:0;border-radius:12px;background:var(--green);color:#fff;padding:13px 18px;font-weight:750;cursor:pointer}.primary-button{margin-top:24px;width:100%}.primary-button:hover,.close-button:hover{background:var(--green2)}.back-link{display:inline-block;color:var(--green2);font-size:.9rem;font-weight:700;margin-bottom:16px}.shift-head{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:23px 26px;margin-bottom:18px}.shift-head h2{font-size:1.5rem;margin:0 0 3px}.progress-box{width:min(230px,40%);display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center}.progress-box strong{font-size:1.1rem}.progress-box span{color:var(--muted);font-size:.8rem}.progress{grid-column:1 / -1;height:7px;border-radius:9px;background:#edf1ee;overflow:hidden;margin-top:4px}.progress i{display:block;height:100%;background:var(--green2);border-radius:9px}.task-section{padding:21px 24px;margin-bottom:15px}.section-title{display:flex;align-items:center;gap:10px;margin-bottom:9px}.section-title h3{font-size:1.05rem;margin:0;flex:1}.section-dot{width:9px;height:9px;background:var(--green2);border-radius:50%}.section-count{font-size:.8rem;color:var(--muted);font-weight:700}.task-list{display:grid}.task-row{display:flex;align-items:center;gap:13px;min-height:54px;padding:8px 0;border-top:1px solid #eff2f0}.task-row:first-child{border-top:0}.check{flex:0 0 25px;height:25px;padding:0;border:1.5px solid #b8c8bf;border-radius:8px;background:#fff;color:#fff;font-size:1rem;font-weight:900;cursor:pointer}.check:hover{border-color:var(--green2)}.is-done .check{background:var(--green2);border-color:var(--green2)}.check:disabled{cursor:default}.task-copy{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.task-copy small{flex:none;color:var(--muted);font-size:.78rem;font-weight:650}.is-done .task-copy>span{text-decoration:line-through;color:#718078}.close-card{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#eaf2ed;border:1px solid #d7e6dc;border-radius:17px;padding:19px 22px;margin:20px 0}.close-card div{display:grid;gap:2px}.close-card span{font-size:.9rem;color:var(--muted)}.close-button{background:#8e3732;white-space:nowrap}.close-button:hover{background:#a8443e}.status-banner{display:flex;align-items:center;gap:10px;padding:14px 17px;margin-bottom:16px;border-radius:13px}.status-banner strong{white-space:nowrap}.status-banner span{font-size:.9rem}.status-banner.good{background:var(--mint);color:var(--green)}.status-banner.bad,.notice{background:var(--redbg);color:var(--red)}.notice{padding:12px 15px;border-radius:12px;margin:15px 0}.calendar-card{padding:24px}.calendar-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.calendar-top h2{margin:0;font-size:1.45rem;text-transform:capitalize}.month-arrow{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;color:var(--green);font-size:1.8rem;line-height:1}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-days{margin-bottom:8px}.calendar-days span{text-align:center;color:var(--muted);font-size:.78rem;font-weight:750;padding:7px 0}.calendar-cell{min-height:91px;border:1px solid var(--line);border-radius:13px;padding:9px;display:flex;flex-direction:column;gap:9px;background:#fff}.calendar-cell strong{font-size:.95rem}.calendar-cell span{font-size:.72rem;line-height:1.2;font-weight:750}.calendar-cell.complete{background:#edf7ef;border-color:#cce5d1;color:#23613a}.calendar-cell.missed{background:#fff0ef;border-color:#f0cbc8;color:#9b332f}.calendar-cell.active{background:#fff8e8;border-color:#f0dfb5;color:#8d641b}.calendar-cell.empty{background:#f7f8f7;color:#829087}.calendar-cell.future{background:#fafbfa;color:#b4beb8}.calendar-blank{min-height:1px}.legend{display:flex;flex-wrap:wrap;gap:16px;margin:22px 2px 0;color:var(--muted);font-size:.8rem}.legend span{display:inline-flex;align-items:center;gap:7px}.legend-dot{width:9px;height:9px;border-radius:50%}.complete-dot{background:#4c9b60}.missed-dot{background:#c54f49}.active-dot{background:#d59b27}.empty-dot{background:#acb5b0}footer{color:var(--muted);font-size:.82rem;text-align:center;margin:24px 0 0;padding:0 10px}
@media(max-width:650px){.wrap{width:min(100% - 24px,920px);padding:24px 0}.hero{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:18px}.admin-link{font-size:.82rem}.choose-card{padding:22px;margin:18px auto}.shift-head{align-items:flex-start;padding:18px;flex-direction:column;gap:12px}.progress-box{width:100%}.task-section{padding:16px 15px}.task-row{min-height:58px}.close-card{align-items:stretch;flex-direction:column;padding:18px}.close-button{width:100%}.status-banner{align-items:flex-start;flex-direction:column;gap:2px}.calendar-card{padding:14px 10px}.calendar-grid{gap:4px}.calendar-cell{min-height:72px;padding:6px 5px;border-radius:9px;gap:7px}.calendar-cell span{font-size:.61rem}.calendar-days span{font-size:.67rem}.calendar-top h2{font-size:1.2rem}.legend{gap:9px 13px;font-size:.73rem}.calendar-top{margin-bottom:13px}}

/* Simple checklist layout, tuned for quick taps on mobile. */
body{background:#f8f9fa;color:#202124;font-family:Arial,Helvetica,sans-serif}.wrap{max-width:760px;padding-top:30px}.admin-wrap{max-width:920px}.hero{align-items:center;margin-bottom:18px}.hero h1{font-size:1.8rem;letter-spacing:-.025em;margin:5px 0}.hero p,.muted{color:#70757a}.eyebrow{color:#5f7668;font-size:.68rem;letter-spacing:.1em}.admin-link{border-color:#dadce0;border-radius:20px;box-shadow:none;padding:9px 14px;color:#3c6250}.card{border-color:#e0e3e7;border-radius:12px;box-shadow:none}.choose-card{padding:26px}.choose-card h2{font-size:1.35rem}.person-button{border-color:#e0e3e7;border-radius:10px;padding:11px 13px}.person-button:hover{border-color:#9ab9a6;background:#fbfdfb;transform:none}.avatar{width:36px;height:36px;background:#e8f0eb;color:#315d43}.primary-button{border-radius:9px;background:#247347;box-shadow:none}.primary-button:hover{background:#1e633c}.shift-head{padding:17px 20px;margin-bottom:14px}.shift-head h2{font-size:1.25rem}.progress-box{max-width:190px}.progress-box strong{font-size:.95rem}.progress{height:5px;background:#e8eaed}.progress i{background:#247347}.task-section{padding:17px 20px;margin-bottom:12px}.section-title{gap:8px;margin-bottom:5px}.section-title h3{font-size:.9rem;font-weight:700;color:#5f6368}.section-dot{width:7px;height:7px;background:#779683}.section-count{font-size:.74rem;color:#80868b}.task-row{min-height:48px;gap:12px;border-color:#f0f1f2;padding:7px 0}.check{flex:0 0 22px;width:22px;height:22px;border:1.7px solid #9aa0a6;border-radius:50%;color:#fff;font-size:.8rem}.check:hover{border-color:#247347}.is-done .check{background:#247347;border-color:#247347}.task-copy{font-size:.94rem}.task-copy small{color:#80868b;font-size:.76rem}.is-done .task-copy>span{color:#80868b}.close-card{background:#fff;border-color:#e0e3e7;border-radius:12px;padding:16px 18px}.close-card strong{font-size:.95rem}.close-card span{font-size:.84rem}.close-button{border-radius:9px;padding:11px 16px;background:#a33c38}.status-banner{border-radius:10px;padding:11px 14px}.calendar-card{border-radius:12px;box-shadow:none}.calendar-cell{border-radius:9px}.calendar-cell.complete{background:#edf5ef;border-color:#d5e7d9;color:#315d3e}.calendar-cell.missed{background:#fdf0ef;border-color:#f0d7d4;color:#9b3934}.calendar-cell.active{background:#fff8e7;border-color:#eee1c3;color:#856419}.month-arrow{border-radius:50%;box-shadow:none}footer{font-size:.78rem;color:#80868b}
@media(max-width:650px){.wrap{width:min(100% - 22px,760px);padding-top:18px}.hero{gap:11px}.hero h1{font-size:1.55rem}.admin-link{padding:8px 12px}.choose-card{padding:20px}.shift-head{padding:15px 16px;gap:10px}.progress-box{max-width:none}.task-section{padding:13px 15px}.task-row{min-height:52px}.task-copy{font-size:.9rem}.calendar-cell{min-height:66px}.calendar-card{padding:12px 9px}}
[hidden]{display:none!important}.only-pending .task-row.is-done{display:none}.pending-filter{display:flex;align-items:center;gap:8px;font-size:.88rem;margin:16px 2px;color:#5f6368}.pending-filter input{accent-color:#247347;width:18px;height:18px}.timing-note{font-size:.8rem;color:#70757a;margin:10px 2px 18px}.check{min-width:36px;min-height:36px;flex-basis:36px}.check:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #80b49a;outline-offset:3px}.check:disabled{opacity:.6}.calendar-cell.is-today{outline:2px solid #247347;outline-offset:1px}#save-status{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:10px 18px;background:#223e30;color:white;border-radius:12px;font-size:.9rem;max-width:90vw;box-shadow:0 3px 16px #0002;display:none;z-index:10}#save-status.visible{display:block}#save-status.error{background:#983b35}
.weekly-card{padding:20px;margin:16px 0}.weekly-card h3{font-size:1rem;margin:6px 0}.weekly-card p{font-size:.9rem;margin:8px 0}.weekly-card small{display:block;color:#70757a;margin-top:10px}.weekly-button{border:1px solid #b9d4c4;background:#edf6f0;color:#245a3c;border-radius:20px;min-height:44px;padding:10px 16px;cursor:pointer;font-weight:700}.weekly-done{color:#247347;font-weight:600}.weekly-summary{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #eef1ef}.reminder-banner{position:fixed;top:16px;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 24px));z-index:20;display:flex;align-items:flex-start;gap:16px;padding:18px 20px;background:#edf6ef;border:1px solid #bad6c3;border-radius:16px;box-shadow:0 10px 30px #17332325;color:#214f35}.reminder-banner div{flex:1}.reminder-banner strong{font-size:.78rem}.reminder-banner p{margin:7px 0 0;font-size:1rem;line-height:1.5}.reminder-banner button{border:0;background:transparent;font-size:1.5rem;color:inherit;min-width:44px;min-height:44px;cursor:pointer}@media(max-width:480px){.weekly-summary{flex-direction:column;gap:3px}.reminder-banner{top:10px;padding:14px}}
