:root{--bg:#f3efe6;--card:#fff;--ink:#1c1917;--muted:#78716c;--line:#e4e0d8;--need:#b42318;--need-bg:#fdecea;--need-line:#f5c6c2;--ok:#157a37;--ok-bg:#e8f7ee;--ok-line:#b7dfc4;--accent:#162033;--radius:20px;--shadow:0 1px 2px #1620330d, 0 8px 24px #1620330f}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;margin:0}body{color:var(--ink);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.35}button,select,input{font:inherit}#root{min-height:100svh}.wrap{max-width:440px;padding:20px 16px calc(32px + env(safe-area-inset-bottom));margin:0 auto}header .eyebrow{color:var(--muted);letter-spacing:.04em;margin:0 0 4px;font-size:.92rem;font-weight:650}header h1{color:var(--accent);letter-spacing:-.03em;margin:0 0 6px;font-size:1.7rem;font-weight:750}header p{color:var(--muted);margin:0 0 18px;font-size:1rem}.sunday-bar{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#cfc8bb transparent;gap:8px;margin:0 -2px 14px;padding:2px 2px 12px;display:flex;overflow-x:auto}.sunday-bar::-webkit-scrollbar{height:4px}.sunday-bar::-webkit-scrollbar-thumb{background:#d6d0c4;border-radius:99px}.sunday-chip{background:var(--card);color:var(--ink);min-height:44px;box-shadow:0 0 0 1.5px var(--line);cursor:pointer;border:0;border-radius:999px;flex:none;padding:11px 16px;font-size:.98rem;font-weight:650}.sunday-chip.active{background:var(--accent);color:#fff;box-shadow:none}.duty-toggle{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.duty-btn{background:var(--card);color:var(--ink);min-height:52px;box-shadow:0 0 0 1.5px var(--line);cursor:pointer;border:0;border-radius:999px;padding:14px 12px;font-size:1.08rem;font-weight:750}.duty-btn.active{background:var(--accent);color:#fff;box-shadow:none}.summary{background:var(--card);box-shadow:var(--shadow);text-align:center;border-radius:999px;margin-bottom:14px;padding:13px 16px;font-size:.98rem}.summary .need{color:var(--need)}.summary .ok{color:var(--ok)}.ward{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border-left:6px solid var(--line);margin-bottom:12px;padding:16px 16px 14px}.ward.need{border-left-color:var(--need);background:linear-gradient(90deg, var(--need-bg), var(--card) 38%)}.ward.ok{border-left-color:var(--ok)}.ward.assigned{border-left-color:var(--line)}.ward-top{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:6px;display:flex}.ward-heading{flex:auto;min-width:0}.ward-name{letter-spacing:-.02em;align-items:baseline;gap:.4em;min-width:0;margin:0;font-size:1.22rem;font-weight:800;display:flex}.ward-title{flex:none}.ward-leader{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:inherit;letter-spacing:0;color:#1d4ed8;text-underline-offset:.12em;cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:.92rem;font-weight:550;text-decoration:underline;overflow:hidden}.ward-time{letter-spacing:0;color:var(--muted);margin:4px 0 0;font-size:1rem;font-weight:400}.badge{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:999px;flex:none;padding:6px 10px;font-size:.7rem;font-weight:800}.badge.need{background:var(--need-bg);color:var(--need)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge .check{color:var(--ok);margin-right:.28em;font-size:.85em;font-weight:900;display:inline-block}.assignee{color:var(--muted);margin:0 0 12px;font-size:1rem}.assignee b{color:var(--ink);font-weight:700}.actions{align-items:stretch;gap:8px;display:flex}button.primary,button.danger,button.confirm,button.ghost{cursor:pointer;border:0;border-radius:14px;min-height:50px;padding:12px 10px;font-size:.95rem;font-weight:750;line-height:1.2}button.primary,button.danger,button.confirm{flex:1}button.primary{background:var(--accent);color:#fff}button.primary:disabled{cursor:default;background:#9aa3b2}button.ghost{color:var(--ink);background:#f4f1ea}button.danger{color:var(--need);box-shadow:0 0 0 1.5px var(--need-line);background:#fff}button.confirm{color:var(--ok);box-shadow:0 0 0 1.5px var(--ok-line);background:#fff}.empty{background:var(--card);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);color:var(--muted);padding:28px 18px}.empty strong{color:var(--ink);margin-bottom:6px;font-size:1.15rem;display:block}.banner{background:var(--need-bg);color:var(--need);border-radius:14px;margin-bottom:12px;padding:12px 14px;font-weight:650}.modal-backdrop{padding:16px 16px calc(16px + env(safe-area-inset-bottom));z-index:20;background:#16203375;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--card);width:min(440px,100%);box-shadow:var(--shadow);border-radius:24px;padding:22px 18px 18px}.modal h2{margin:0 0 4px;font-size:1.3rem}.modal p{color:var(--muted);margin:0 0 16px}label{margin-bottom:6px;font-size:.92rem;font-weight:750;display:block}select,input[type=text]{border:2px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:12px;min-height:52px;margin-bottom:14px;padding:14px 12px;font-size:16px}.modal-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.contact-sheet .modal-actions{grid-template-columns:1fr;margin-top:4px}button.contact-link{text-align:left;cursor:pointer;width:100%}.contact-link{color:#1d4ed8;word-break:break-word;background:#eef2ff;border-radius:14px;min-height:50px;margin-bottom:10px;padding:14px;font-size:1.05rem;font-weight:750;text-decoration:none;display:block}.contact-link.secondary{color:var(--ink);background:#f4f1ea;font-weight:650}footer{text-align:center;color:var(--muted);margin-top:22px;font-size:.85rem}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
