:root{--bg:#f5f5f3;--card:#fff;--text:#15252d;--muted:#778489;--line:#e6eae8;--accent:#237b6d;--accent2:#dbefe9;--warn:#c8663c;--soft:#edf2f0;--red:#c44b49;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);font-size:15px}
*{box-sizing:border-box}body{margin:0;-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}#app{max-width:720px;margin:auto;min-height:100vh}a{color:var(--accent)}.topbar{display:flex;align-items:center;padding:16px 18px 13px;gap:12px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.brandmark{height:41px;width:41px;display:grid;place-items:center;background:#176d63;color:#fff;border-radius:13px;font:bold 26px Georgia,serif}.brand{display:flex;flex-direction:column;line-height:1.35;flex:1}.brand b{font-size:17px;letter-spacing:-.02em}.brand small{color:var(--muted);font-size:12px}.iconbtn{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:var(--card);font-size:22px;color:var(--accent)}main{padding:20px 16px calc(100px + env(safe-area-inset-bottom));min-height:72vh}.pagehead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin:2px 0 18px}.pagehead h1{font-size:25px;letter-spacing:-.045em;margin:0 0 4px}.caption{font-size:12px;color:var(--muted)}.muted{color:var(--muted)}.help{font-size:13px;color:var(--muted);line-height:1.5}.btn{border:0;padding:12px 16px;border-radius:13px;background:var(--accent);color:#fff;font-weight:650;white-space:nowrap}.btn.secondary{background:var(--soft);color:var(--text)}.btn.danger{background:#fff0ee;color:var(--red)}.btn.small{font-size:12px;padding:9px 11px}.btn:active,.task-card:active{transform:scale(.993)}.nav{height:calc(69px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:50%;transform:translateX(-50%);max-width:720px;width:100%;display:flex;align-items:center;justify-content:space-around;background:#fff;border-top:1px solid var(--line);z-index:4}.nav[hidden]{display:none}.nav button{display:grid;justify-items:center;gap:3px;background:transparent;border:0;color:var(--muted);font-size:11px;padding:8px 9px;min-width:60px}.nav button.on{color:var(--accent);font-weight:700}.nav button .sym{font-size:21px}.pill{display:inline-flex;align-items:center;gap:4px;background:var(--soft);color:#537068;border-radius:999px;font-size:11px;padding:5px 8px;font-weight:600}.pill.warn{background:#fff0e8;color:var(--warn)}.pill.red{background:#ffeded;color:var(--red)}.pill.blue{background:#edf1fd;color:#576bab}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:19px}.stat{background:var(--card);border:1px solid var(--line);border-radius:17px;padding:14px 10px}.stat strong{display:block;font-size:26px;letter-spacing:-.05em}.stat span{font-size:11px;color:var(--muted)}.filterbar{display:flex;gap:8px;overflow:auto;padding:2px 0 13px;scrollbar-width:none}.filterbar button{border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--muted);padding:10px 12px;font-size:12px;white-space:nowrap}.filterbar button.active{background:var(--accent);border-color:var(--accent);color:#fff}.sectionhead{font-weight:750;font-size:14px;letter-spacing:-.02em;margin:22px 0 10px;display:flex;justify-content:space-between}.task-card{background:var(--card);padding:15px 14px;border:1px solid var(--line);border-radius:16px;margin-bottom:9px;cursor:pointer}.task-card .title{font-weight:650;line-height:1.45;margin-bottom:9px;white-space:pre-wrap;word-break:break-word}.task-card .meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--muted)}.empty{background:var(--card);border:1px dashed #cedbd5;padding:31px 18px;border-radius:19px;text-align:center;color:var(--muted);line-height:1.65}.empty .big{font-size:31px;display:block;margin-bottom:8px}.person{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 14px;margin-bottom:8px;display:flex;justify-content:space-between;gap:10px;align-items:center}.person label{flex:1}.sheet{background:#fff;border:1px solid var(--line);border-radius:19px;padding:17px;margin-bottom:14px}.sheet h3{font-size:15px;margin:0 0 12px}.field{display:grid;gap:7px;margin-bottom:15px}.field label{font-weight:620;font-size:13px}.field input,.field textarea,.field select{width:100%;border:1px solid #d9e1dd;background:#fff;padding:12px 13px;border-radius:12px;outline-color:var(--accent);color:var(--text);font-size:15px}.field textarea{min-height:105px;resize:vertical}.checklist{max-height:250px;overflow:auto}.checkrow{display:flex;align-items:center;gap:11px;padding:12px 4px;border-bottom:1px solid var(--line)}.checkrow input{accent-color:var(--accent);height:19px;width:19px}.checkrow span{flex:1}.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.actions .btn{flex:1}.detailtitle{font-size:21px;font-weight:730;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere}.peoplechips{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.personchip{background:var(--soft);border-radius:9px;padding:7px 10px;font-size:12px}.comments{display:grid;gap:11px;margin-top:13px}.bubble{border-radius:16px;background:var(--soft);padding:12px 13px;max-width:95%}.bubble.mine{background:var(--accent2);margin-left:auto}.bubble .who{font-size:12px;font-weight:730;color:#3d675e}.bubble .when{font-size:11px;color:var(--muted)}.bubble .body{line-height:1.45;margin-top:6px;white-space:pre-wrap;overflow-wrap:anywhere}.reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}.reactions button{font-size:12px;padding:4px 7px;background:#fff;border:1px solid var(--line);border-radius:9px}.reactions button.mine{border-color:var(--accent);background:#e5f5f0}.attach{display:block;margin-top:10px;border:1px solid #d5e2dc;background:#fff;padding:10px;border-radius:10px;text-align:left;max-width:100%;word-break:break-word;color:var(--accent);font-weight:650}.line{height:1px;background:var(--line);margin:17px 0}.sticky-actions{position:sticky;bottom:calc(65px + env(safe-area-inset-bottom));background:var(--bg);padding:11px 0;display:flex;gap:9px;z-index:2}.overlay{position:fixed;inset:0;background:#102a2d8c;display:flex;align-items:flex-end;justify-content:center;z-index:20}.overlay[hidden]{display:none}.modalbox{width:min(100%,720px);max-height:90vh;overflow:auto;border-radius:24px 24px 0 0;background:var(--bg);padding:16px 16px calc(20px + env(safe-area-inset-bottom))}.modalhead{display:flex;align-items:center;justify-content:space-between;padding:0 3px 16px}.modalhead b{font-size:19px}.modalhead button{background:#fff;border:0;border-radius:12px;padding:9px 12px}.loading{display:flex;justify-content:center;padding:50px;color:var(--muted)}#toast{position:fixed;bottom:calc(88px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:90%;background:#20322f;color:#fff;padding:11px 16px;border-radius:13px;box-shadow:0 5px 25px #2225;z-index:40;opacity:0;transition:opacity .2s;pointer-events:none;text-align:center;font-size:13px}#toast.show{opacity:1}input[type=file]{font-size:13px}.row{display:flex;gap:10px;align-items:center}.grow{flex:1}.badge{color:#327c64;background:#e7f6ef;border-radius:8px;padding:5px 8px;font-size:12px}.preview{max-width:100%;max-height:60vh;border-radius:10px;display:block;margin:auto}.form-note{margin-top:8px;font-size:12px;color:var(--muted)}.footnote{text-align:center;font-size:11px;color:var(--muted);margin-top:15px}
/* v4: focus, compact task groups and responsive forms */
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #69bca8;outline-offset:3px}input:not([type=checkbox]):not([type=file]),select{max-width:100%;padding:11px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--text)}.task-card .title{margin-top:9px}.priority-important{background:#fff1d6;color:#915d0a}.priority-urgent{background:#ffe1df;color:#ab2727}.group{background:#fff;border:1px solid var(--line);border-radius:17px;padding:12px;margin:12px 0}.group>summary{display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:700;cursor:pointer;padding:5px 0 12px}.group>summary:before{content:'▸';color:var(--accent)}.group[open]>summary:before{content:'▾'}.group>summary span{margin-left:auto;font-size:12px;font-weight:500;color:var(--muted)}.group .task-card{padding:12px;border-radius:12px}.quick-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.quick-actions button{border:0;border-radius:8px;padding:7px 9px;font-size:12px;color:var(--accent);background:var(--soft)}.block-note{color:#a96519;background:#fff5e0;padding:9px;border-radius:9px;white-space:pre-wrap;overflow-wrap:anywhere}.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.filters>input{grid-column:1/-1;min-width:0}.filters .field{margin:0}.filters label{font-size:11px}.filters select{padding:8px}.manage-card{display:grid;grid-template-columns:1fr auto;gap:5px;width:100%;text-align:left;border:1px solid var(--line);background:white;border-radius:15px;padding:17px;margin:10px 0;color:var(--text)}.manage-card span{font-size:12px;color:var(--muted)}.manage-card strong{grid-column:2;grid-row:1/3;align-self:center;font-size:24px;color:var(--accent)}.manage-card b{grid-column:1}.manage-card span{grid-column:1}.detail h1{font-size:23px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.35}details.sheet>summary{cursor:pointer;font-weight:650;padding:3px 0 9px}.body{white-space:pre-wrap;overflow-wrap:anywhere}.audit{border-bottom:1px solid var(--line);padding:10px 0}.audit .help{max-height:120px;overflow:auto}.attach img{display:block;width:140px;max-height:120px;object-fit:cover;border-radius:9px;margin-bottom:6px}.progress{padding:8px 0;border-bottom:1px solid var(--line)}#staff-search{width:100%;margin:10px 0}.sheet .btn{margin-top:5px}.nav button{min-width:0;flex:1;padding:7px 3px}#search-results{margin-top:15px}.person{flex-wrap:wrap}[hidden]{display:none!important}@media(min-width:600px){.filters{grid-template-columns:repeat(4,minmax(0,1fr))}.filters>input{grid-column:1/-1}}@media(prefers-reduced-motion:reduce){*{transition:none!important}} 
