:root{color-scheme:light;--bg: #f3eee4;--bg-deep: #e7dfd1;--card: #fffdf8;--ink: #1c1915;--muted: #6e675e;--line: #e4dccf;--accent: #c24e1d;--accent-ink: #fff8f4;--danger: #9d2c2c;--shadow: 0 1px 0 rgba(48, 32, 16, .04), 0 10px 28px rgba(48, 32, 16, .06);--safe-t: env(safe-area-inset-top);--safe-b: env(safe-area-inset-bottom);font-family:PingFang HK,Noto Sans TC,Noto Sans HK,Microsoft JhengHei,sans-serif;font-size:16px;line-height:1.45;background:var(--bg);color:var(--ink)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,textarea{font:inherit;color:inherit}button{touch-action:manipulation}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1{font-size:1.55rem;line-height:1.25;letter-spacing:-.02em}h2{font-size:1rem}h3{font-size:.92rem}.shell{width:min(40rem,100%);margin:0 auto;padding:calc(12px + var(--safe-t)) 16px calc(28px + var(--safe-b))}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;position:sticky;top:0;z-index:5;padding:8px 0 10px;background:var(--bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{font-weight:700;letter-spacing:.08em;font-size:.78rem;text-transform:none}.host,.muted,.foot,.sub{color:var(--muted)}.host,.foot{font-size:.82rem}.foot{margin-top:18px}.gate{min-height:100vh;display:flex;flex-direction:column;justify-content:center;gap:12px;width:min(28rem,100%);margin:0 auto;padding:calc(24px + var(--safe-t)) 20px calc(24px + var(--safe-b))}.lede{color:var(--muted)}.stack,.cards{display:grid;gap:10px}label,fieldset{display:grid;gap:6px}fieldset{border:0;padding:0;margin:0}legend{font-weight:650;margin-bottom:2px}input,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 14px;min-height:48px}textarea{min-height:76px;resize:vertical}input:focus,textarea:focus,button:focus-visible{outline:3px solid #e7b299;outline-offset:1px}.primary,.choice,.chip,.text-button,.role-chip,.add-photo{border-radius:12px;border:1px solid transparent;min-height:48px;padding:10px 14px}.primary{background:var(--accent);color:var(--accent-ink);font-weight:700;width:100%}.primary:disabled,.choice:disabled,.add-photo.disabled{opacity:.45}.choice{background:#fff;border-color:var(--line);text-align:center}.choice.on,.chip.on{background:var(--ink);color:#fffdf8;border-color:var(--ink)}.choice-grid{display:grid;gap:8px}.rooms{grid-template-columns:repeat(5,1fr)}.statuses,.replies-row{grid-template-columns:repeat(4,1fr)}.replies-row{grid-template-columns:repeat(3,1fr)}.choice-grid .choice{padding:10px 4px}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin:8px 0}.chip{background:transparent;border-color:var(--line);white-space:nowrap;min-height:40px}.count{display:inline-grid;place-items:center;min-width:1.3rem;margin-left:4px;font-size:.78rem}.rule,.help{color:var(--muted);font-size:.9rem;margin:0 0 8px}.help{margin:4px 0 12px}.help summary{cursor:pointer;min-height:44px;display:grid;align-items:center}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:12px;display:grid;gap:8px}.card-open{display:grid;gap:6px;text-align:left;background:transparent;border:0;padding:0;width:100%}.card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.room-seal{width:44px;height:44px;display:grid;place-items:center;border-radius:10px;background:#f6e2d6;color:var(--accent);font-weight:800;font-size:1.15rem}.status{border-radius:999px;padding:4px 10px;font-size:.85rem;background:#f4ead6;color:#7a5412}.status[data-status=approved]{background:#d9f0e4;color:#1d6848}.status[data-status=in_progress]{background:#d9e6f7;color:#1d4e89}.status[data-status=done]{background:#ece7df;color:#5c564e}.wait{font-weight:650}.wait.mine{color:var(--accent)}.meta,.marks{display:flex;gap:8px;align-items:center;justify-content:space-between;color:var(--muted);font-size:.85rem}.marks{justify-content:flex-start}.mark{opacity:.35}.mark.on{opacity:1;color:var(--ink);font-weight:650}.sub{font-size:.92rem}.body-copy{white-space:pre-wrap}.dock{position:sticky;bottom:0;padding:12px 0 calc(8px + var(--safe-b));background:linear-gradient(to top,var(--bg) 65%,transparent)}.text-button{background:transparent;color:var(--ink);border-color:var(--line);width:auto}.text-button.back{margin-bottom:8px;padding-inline:0;border:0;min-height:40px}.text-button.danger{color:var(--danger)}.row-actions{display:flex;justify-content:space-between;gap:12px;margin-top:8px}.copy{display:grid;gap:8px}.copy.compact .text-button{width:100%}.manual-copy{display:grid;gap:6px;color:var(--muted);font-size:.9rem}.copied{color:#1d6848;font-weight:650}.banner,.empty{background:#fff4ec;border:1px solid #f0d2c2;color:#8a3b16;border-radius:12px;padding:10px 12px}.empty{background:transparent;color:var(--muted);border-style:dashed}section{display:grid;gap:8px;margin-top:18px}.section-head{display:flex;justify-content:space-between;align-items:baseline}.photo-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.photo-col{display:grid;gap:8px;align-content:start}.shot{position:relative}.shot-open{padding:0;border:0;background:transparent;border-radius:10px}.shot img,.shot-open img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:var(--bg-deep)}.shot-delete{position:absolute;top:4px;right:4px;min-height:32px;min-width:32px;border:0;border-radius:999px;background:#1c1915b8;color:#fff;padding:0 8px}.add-photo{display:grid;place-items:center;border:1px dashed var(--line);background:transparent;color:var(--muted);cursor:pointer;text-align:center}.add-photo input{display:none}.replies{list-style:none;padding:0;display:grid;gap:10px}.replies li{border-top:1px solid var(--line);padding-top:8px}.role-chip{background:#fff;border:1px solid var(--line);font-weight:700;min-width:88px}.sheet{position:fixed;inset:0;z-index:20;display:grid;align-items:end}.backdrop{position:absolute;inset:0;border:0;background:#1c161075}.sheet-card{position:relative;width:min(40rem,100%);margin:0 auto;background:var(--card);border-radius:18px 18px 0 0;padding:16px 16px calc(16px + var(--safe-b));display:grid;gap:8px}.lightbox{position:fixed;inset:0;z-index:25;display:grid;place-items:center}.lightbox figure{position:relative;margin:0;width:min(40rem,calc(100% - 24px));display:grid;gap:8px}.lightbox img{max-height:78vh;width:100%;object-fit:contain;background:#111;border-radius:12px}.lightbox figcaption{color:#fff;text-align:center}@media(max-width:360px){.rooms{grid-template-columns:repeat(3,1fr)}.statuses{grid-template-columns:repeat(2,1fr)}}
