:root{--ink:#1a1d24;--muted:#5b6068;--bg:#f6f4f0;--panel:#fff;--line:#e2ded6;--line2:#d9d4cc;--soft:#faf8f4;--tag-bg:#eee9e1;--tag-ink:#4a4640;--track:#e5e0d8;--accent:#1f8a5b;--accent-ink:#146143;--radius:14px;--radius-sm:10px;--shadow:0 10px 24px -18px rgba(0,0,0,.45);--navh:56px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#e6e8ec;--muted:#98a0ac;--bg:#131519;--panel:#1e2127;--line:#2b303a;--line2:#39404c;--soft:#23272f;--tag-bg:#2b313c;--tag-ink:#c6ccd6;--track:#2b303a;--accent:#22a06b;--accent-ink:#2fbb80;--shadow:0 10px 24px -14px rgba(0,0,0,.7)}}:root[data-theme=dark]{--ink:#e6e8ec;--muted:#98a0ac;--bg:#131519;--panel:#1e2127;--line:#2b303a;--line2:#39404c;--soft:#23272f;--tag-bg:#2b313c;--tag-ink:#c6ccd6;--track:#2b303a;--accent:#22a06b;--accent-ink:#2fbb80;--shadow:0 10px 24px -14px rgba(0,0,0,.7)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%}#tabbar{display:flex;gap:6px;padding:8px;position:sticky;top:0;background:var(--bg);z-index:20}#tabbar button{flex:1;padding:12px;border:none;border-radius:10px;font-weight:700;background:var(--panel);color:var(--ink);cursor:pointer}#tabbar button.on{background:var(--accent);color:#fff}#tabbar button.gear{flex:0 0 auto;width:46px;font-size:18px;line-height:1;color:var(--muted)}#app{padding:10px;max-width:1120px;margin:0 auto}.rhead{position:sticky;top:var(--navh);z-index:15;background:var(--bg);padding:8px 0 10px;margin:-2px 0 4px;border-bottom:1px solid var(--line)}.rtoolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--line2);background:var(--panel);color:var(--ink);font-weight:700;font-size:14px;text-decoration:none;cursor:pointer;white-space:nowrap}.btn:hover{border-color:#bdb7ad}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.ctl{padding:9px 10px;border-radius:var(--radius-sm);border:1px solid var(--line2);background:var(--panel);color:var(--ink);font-weight:600;font-size:14px;max-width:220px}.ctl-sm{padding:6px 8px;font-size:13px}.search{flex:1;min-width:150px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--line2);font-size:14px;background:var(--panel);color:var(--ink)}.search::placeholder{color:var(--muted)}.search:focus,.ctl:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.impsummary{font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap}.impwarn{color:#d23b3b;font-weight:800}.chiprow{display:flex;gap:8px;margin-top:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;scrollbar-width:thin}.chip{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:6px 10px 6px 11px;border-radius:999px;border:1.5px solid var(--line2);background:var(--panel);color:var(--ink);font-weight:700;font-size:13px;cursor:pointer;line-height:1.1}.chip:hover{border-color:#b9b3a9}.chip[data-kind=status]:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--chip-bg,#ccc);box-shadow:inset 0 0 0 1px #0000001f}.chipn{font-size:11px;font-weight:800;min-width:18px;text-align:center;padding:1px 6px;border-radius:999px;background:#00000012;color:inherit}.chip.on{color:#fff;border-color:transparent}.chip.on .chipn{background:#ffffff4d}.chip.on[data-kind=neutral]{background:var(--ink)}.chip.on[data-kind=accent]{background:var(--accent)}.chip.on[data-kind=status]{background:var(--chip-bg);color:var(--chip-fg);border-color:var(--chip-bd)}.chip.on[data-kind=status]:before{background:#00000040;box-shadow:none}.chip.on[data-kind=status] .chipn{background:#0000002e}.ctrlrow{display:flex;align-items:center;gap:14px;margin-top:10px;flex-wrap:wrap}.ctl-label,.grouptoggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}.grouptoggle{cursor:pointer}.grouptoggle input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.prog{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:180px;flex:1;max-width:340px}.progbar{flex:1;height:6px;border-radius:999px;background:var(--track);overflow:hidden}.progbar span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .2s}.progtext{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}.content{padding-top:12px}.cardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:14px;align-items:start}.empty{opacity:.6;text-align:center;padding:44px 10px;font-weight:600}.groups{display:flex;flex-direction:column;gap:16px}.statusgroup{display:flex;flex-direction:column;gap:12px}.ghead{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:none;cursor:pointer;padding:9px 14px;border-radius:var(--radius-sm);font-weight:800;font-size:14px;box-shadow:var(--shadow)}.gcaret{font-size:12px;transition:transform .15s}.statusgroup.collapsed .gcaret{transform:rotate(-90deg)}.statusgroup.collapsed .gbody{display:none}.glabel{flex:1}.gcount{font-size:12px;font-weight:800;padding:1px 9px;border-radius:999px;background:#00000029}.card{background:var(--panel);border:1px solid var(--line);border-left:5px solid #c7ccd3;border-radius:var(--radius);padding:13px 14px;box-shadow:var(--shadow)}.chead{display:flex;align-items:flex-start;gap:8px}.cname{font-size:17px;font-weight:800;line-height:1.2;flex:1;min-width:0;word-break:break-word}.status{flex:0 0 auto;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;white-space:nowrap}.csub{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}.pill{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;color:#fff}.pill.green{background:#2e9e6b}.pill.amber{background:#c9832a}.pill.red{background:#d23b3b}.tag{background:var(--tag-bg);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;color:var(--tag-ink)}.cinfo{font-size:13.5px;color:var(--muted);margin:9px 0 2px}.cmeta{margin-bottom:2px}.notes{margin-top:6px;font-style:italic;font-size:13px;color:#6a6f78;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cactions{display:flex;gap:8px;flex-wrap:wrap;margin:11px 0 9px}.call{background:var(--accent);color:#fff;border:none;flex:1;min-width:130px;min-height:44px;font-size:15px}.call:hover{background:var(--accent-ink)}.call-primary{font-size:16px;font-weight:800}.sms{background:#2f6fb3;color:#fff;border:none;min-height:44px}.sms:hover{background:#255a92}.sideline{background:#6b46c1;color:#fff;border:none;min-height:44px}.sideline:hover{background:#583aa1}.script{min-height:44px}.cdispo{display:flex;gap:6px;flex-wrap:wrap}.dispo{padding:7px 10px;border-radius:8px;border:1px solid var(--line2);background:var(--soft);font-weight:700;font-size:12px;cursor:pointer;color:var(--ink)}.dispo:hover{border-color:#b9b3a9}.dispo.on{font-weight:800;box-shadow:inset 0 0 0 1px #00000026}.cnote{width:100%;margin-top:9px;padding:8px 10px;border-radius:8px;border:1px solid var(--line2);font:inherit;font-size:13px;resize:vertical;min-height:38px;background:var(--soft);color:var(--ink)}.cnote:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);background:var(--panel)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px;z-index:40}.tele{background:#0f1114;color:#f2f4f7;border-radius:14px;padding:0;max-width:620px;width:100%;max-height:86vh;display:flex;flex-direction:column;overflow:hidden}.telebar{display:flex;gap:8px;align-items:center;padding:12px 14px;border-bottom:1px solid #23262c;position:sticky;top:0;background:#0f1114}.telebar .scriptsel{flex:1;max-width:none;background:#1b1e24;color:#f2f4f7;border-color:#2c313a}.telehead{padding:10px 16px 2px;font-weight:800;font-size:15px;color:#aab2c0}.telebody{padding:6px 16px 20px;overflow:auto;font-size:16px;line-height:1.5}.scriptbody{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;font-size:15px;line-height:1.5;box-shadow:var(--shadow)}.telebody .sh,.scriptbody .sh{font-weight:800;font-size:1.02em;margin:14px 0 4px;letter-spacing:.02em}.telebody .sh{color:#7fd0a6}.scriptbody .sh{color:var(--accent-ink)}.telebody .cue,.scriptbody .cue{font-weight:800;margin:9px 0 2px}.telebody .cue{color:#e6c66b}.scriptbody .cue{color:var(--ink)}.telebody .ln,.scriptbody .ln{margin:3px 0}.telebody .sp,.scriptbody .sp{height:8px}.detbtn{flex:0 0 auto;border:none;background:transparent;color:var(--muted);font-size:18px;line-height:1;padding:0 2px;cursor:pointer}.detbtn:hover{color:var(--accent)}.card.tappable{cursor:pointer}.detcard{background:var(--panel);color:var(--ink);border-radius:14px;padding:16px 18px;max-width:560px;width:100%;max-height:88vh;overflow:auto;box-shadow:var(--shadow)}.deth{margin:4px 0 12px;font-size:19px}.detinfo{display:flex;flex-direction:column;gap:7px;font-size:14.5px;margin-bottom:14px}.detinfo .dk{display:inline-block;min-width:74px;font-weight:800;color:var(--muted);margin-right:8px}.detinfo a{color:var(--accent-ink);font-weight:700;text-decoration:none}.detimg img{width:100%;height:auto;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:zoom-in}.detnoimg{color:var(--muted);text-align:center;padding:28px 10px;font-weight:600}.detzoomhint{margin:6px 0 0;text-align:center;font-size:11.5px;font-weight:700;color:var(--muted)}.imgview{flex-direction:column;padding:0;background:#000000eb}.ivbar{display:flex;align-items:center;gap:8px;padding:10px 12px;width:100%;background:#0f1114;border-bottom:1px solid #23262c;flex:0 0 auto}.ivbar .btn{background:#1b1e24;color:#f2f4f7;border-color:#2c313a;min-width:46px}.ivbar .close{margin-left:auto}.ivlevel{color:#aab2c0;font-weight:800;font-size:13px;min-width:52px;text-align:center}.ivpan{flex:1;width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.ivpan img{display:block;max-width:none;height:auto;background:#fff;cursor:zoom-in}.detappt{font-weight:800;color:#2f6fb3}.detscripthead{margin:16px 0 0}.detscripthead .scriptsel{width:100%;max-width:none}.detscript{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}.appt{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:#2f6fb3;color:#fff;white-space:nowrap}.setcard{background:var(--panel);color:var(--ink);border-radius:14px;padding:18px;max-width:420px;width:100%;box-shadow:var(--shadow)}.seth{margin:6px 0 14px;font-size:18px}.setrow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;font-weight:700}.setrow .ctl{max-width:200px}.setrow-stack{flex-direction:column;align-items:stretch;gap:6px}.setrow-stack .ctl{max-width:none;width:100%}.sethint{margin:2px 0 0;font-size:12px;line-height:1.45;color:var(--muted);font-weight:600}.setsaved{font-size:12px;font-weight:700;color:var(--accent-ink)}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:60;max-width:88vw;background:#0f1114;color:#f2f4f7;padding:11px 16px;border-radius:999px;font-weight:700;font-size:14px;box-shadow:0 12px 28px -12px #0009}.pushcard{background:var(--panel);color:var(--ink);max-width:520px}.pushh{margin:6px 0 2px;font-size:17px}.pushsub{margin:0 0 12px;font-size:13px;color:var(--muted)}.pushlist{display:flex;flex-direction:column;gap:8px}.pushrow{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);cursor:pointer}.pushrow input{width:20px;height:20px;accent-color:var(--accent);flex:0 0 auto}.pushname{flex:1;font-weight:700;font-size:15px;min-width:0;word-break:break-word}.pushrow.done{opacity:.5}.pushrow.done .pushname{text-decoration:line-through}.scripts{display:flex;flex-direction:column;gap:12px;max-width:640px;margin:0 auto}.scriptrow{display:flex;flex-direction:column;gap:4px}.scriptrow textarea{padding:10px;border-radius:10px;border:1px solid var(--line2);font:inherit}@media (max-width:520px){.rtoolbar .ctl{max-width:150px}.prog{max-width:none;width:100%;margin-left:0;order:3}.ctrlrow{gap:10px}.call{flex:1 1 100%}.cactions .sms,.cactions .script{flex:1 1 auto}.card{padding:12px}}
