:root{--ground:#EFF2F5;--surface:#FFF;--surface-2:#F7F9FB;--ink:#151A21;--ink-2:#3D4753;--muted:#6B7784;--line:#DFE4EA;--line-soft:#EAEEF2;--accent:#2C5282;--accent-ink:#FFF;--s-todo:#6B7784;--s-todo-bg:#EDEFF2;--s-doing:#2B6CB0;--s-doing-bg:#E3EDF8;--s-block:#A93226;--s-block-bg:#F8E6E3;--s-hold:#96661A;--s-hold-bg:#F8EFDD;--s-done:#2A6E46;--s-done-bg:#E1F0E8;--r:10px;--shadow:0 1px 2px rgba(21,26,33,.05), 0 10px 28px -14px rgba(21,26,33,.22);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--ground:#0F1318;--surface:#181D24;--surface-2:#1E242C;--ink:#E7ECF2;--ink-2:#B7C1CD;--muted:#8593A2;--line:#2A323C;--line-soft:#232A33;--accent:#6699D8;--accent-ink:#0F1318;--s-todo:#939FAC;--s-todo-bg:#262D36;--s-doing:#78AEE8;--s-doing-bg:#1B2A3B;--s-block:#E8877B;--s-block-bg:#3A2220;--s-hold:#D8AC63;--s-hold-bg:#362B18;--s-done:#6FBF92;--s-done-bg:#17301F;--shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 28px -14px rgba(0,0,0,.65)}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--ground);color:var(--ink);font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,SF Pro Text,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--accent);text-decoration:none}.mono{font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}.muted{color:var(--muted);font-size:12.5px}.grow{flex:1;min-width:0}.app{max-width:760px;margin:0 auto;padding:0 20px 72px}.top{position:sticky;top:0;z-index:10;margin:0 -20px 18px;padding:12px 20px 0;background:color-mix(in srgb,var(--ground) 90%,transparent);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line);padding-top:max(12px,env(safe-area-inset-top))}.top .bar{display:flex;align-items:center;gap:12px}.top .who{flex:1;min-width:0}.top .who .nm{font-size:15px;font-weight:600;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top .who .sub{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sections{display:flex;gap:3px;margin-top:10px;overflow-x:auto;scrollbar-width:none}.sections::-webkit-scrollbar{display:none}.section{border:0;background:none;color:var(--ink-2);font-size:13.5px;padding:7px 11px;border-radius:7px 7px 0 0;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}.section:hover{background:var(--line-soft)}.section.on{color:var(--ink);font-weight:500;border-bottom-color:var(--accent);background:none}.head{display:flex;align-items:baseline;gap:10px;margin:0 0 12px}.head h2{margin:0;font-size:17px;font-weight:600;letter-spacing:-.015em}.up{border:0;background:none;color:var(--muted);font-size:12.5px;padding:0;margin-bottom:10px}.up:hover{color:var(--ink-2);text-decoration:underline}.lane-hd{display:flex;align-items:center;gap:10px;margin:20px 0 9px;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-family:IBM Plex Mono,ui-monospace,monospace}.lane-hd .rule{flex:1;height:1px;background:var(--line-soft)}.rows{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}.row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border:0;background:none;color:inherit}.row+.row{border-top:1px solid var(--line-soft)}button.row:hover{background:var(--surface-2)}.row .nm{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .sub2{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .amt{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12.5px;font-variant-numeric:tabular-nums;flex:none}.row .amt.due{color:var(--s-block);font-weight:500}.row .chev{color:var(--muted);font-size:13px;flex:none}.box{border:1px solid var(--line);border-radius:var(--r);padding:13px 14px;display:flex;flex-direction:column;gap:9px;background:var(--surface);margin-bottom:10px}.box .k{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.box p{margin:0;font-size:13px;color:var(--ink-2);line-height:1.5}.kv{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px}.kv .kk{color:var(--muted);flex:none}.kv .vv{font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kv .vv.plain{font-family:inherit}.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:6px}.tile{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:11px 12px;display:flex;flex-direction:column;gap:3px}.tile .k{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.tile .v{font-size:19px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.tile .h{font-size:11.5px;color:var(--muted)}.tile.bad{border-color:var(--s-block)}.tile.bad .v,.tile.bad .k{color:var(--s-block)}.tile.good .v{color:var(--s-done)}.pill{display:inline-flex;align-items:center;gap:5px;flex:none;font-size:11px;font-weight:500;padding:3px 8px;border-radius:6px;white-space:nowrap}.t-neutral{color:var(--s-todo);background:var(--s-todo-bg)}.t-info{color:var(--s-doing);background:var(--s-doing-bg)}.t-success{color:var(--s-done);background:var(--s-done-bg)}.t-warning{color:var(--s-hold);background:var(--s-hold-bg)}.t-danger{color:var(--s-block);background:var(--s-block-bg)}.bar-meter{height:4px;border-radius:2px;background:var(--line-soft);overflow:hidden;margin-top:9px}.bar-meter>span{display:block;height:100%;background:var(--s-done);border-radius:2px}.why{font-size:12px;color:var(--s-block)}.empty{border:1px dashed var(--line);border-radius:var(--r);padding:22px 16px;text-align:center;color:var(--muted);font-size:13px}.skel{border-radius:var(--r);background:var(--line-soft);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:7px;padding:7px 13px;font-size:13px;font-weight:500}.btn:hover{border-color:var(--muted)}.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.pri:hover{opacity:.92}.btn.wide{width:100%}.btn:disabled{opacity:.55}.btn.link,.linklike{border:0;background:none;padding:0;color:var(--accent);font-size:12.5px;font-weight:400}.linklike:hover{text-decoration:underline}.acts{display:flex;gap:8px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}.field .lb{font-size:11.5px;color:var(--ink-2);font-weight:500}.field .hint{font-size:11.5px;color:var(--muted)}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);padding:9px 11px;font:inherit;font-size:13px;color:var(--ink)}@media(pointer:coarse){input,textarea,select{font-size:16px;padding:11px 12px}}textarea{min-height:88px;resize:vertical;line-height:1.5}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.chips{display:flex;gap:5px;flex-wrap:wrap}.chips .pill{border:0;opacity:.5}.chips .pill.on{opacity:1;box-shadow:0 0 0 1.5px currentColor}.err{background:var(--s-block-bg);color:var(--s-block);border-radius:8px;padding:9px 11px;font-size:12.5px;margin-bottom:12px}.ok{background:var(--s-done-bg);color:var(--s-done);border-radius:8px;padding:9px 11px;font-size:12.5px;margin-bottom:12px}.fab{position:fixed;left:50%;transform:translate(-50%);bottom:max(16px,env(safe-area-inset-bottom));z-index:20;padding:10px 20px;border-radius:999px;box-shadow:var(--shadow);font-size:13.5px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;background:color-mix(in srgb,var(--ink) 32%,transparent)}.sheet{width:100%;max-width:520px;max-height:92vh;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px 14px 0 0;box-shadow:var(--shadow);padding:18px 18px 16px;padding-bottom:max(18px,env(safe-area-inset-bottom))}.sheet h3{margin:0 0 14px;font-size:16px;font-weight:600;letter-spacing:-.01em}.sheet .acts{margin-top:2px}.sheet .acts .btn{flex:1}@media(min-width:620px){.scrim{align-items:center;padding:24px}.sheet{border-radius:14px}}.stage{position:relative;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:34px 20px;background:var(--surface-2);overflow:hidden}.stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(ellipse 66% 58% at 50% 46%,#000 18%,transparent 76%);mask-image:radial-gradient(ellipse 66% 58% at 50% 46%,#000 18%,transparent 76%)}.panel-c{position:relative;width:100%;max-width:348px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:26px 24px 20px;display:flex;flex-direction:column;gap:15px}.brand{display:flex;flex-direction:column;align-items:center;gap:11px}.brand p{margin:0;font-size:12.5px;color:var(--muted)}.panel-c h3{margin:0;font-size:16.5px;font-weight:600;letter-spacing:-.01em}.panel-c .lead{margin:0;font-size:13px;color:var(--ink-2);line-height:1.5}.panel-c .field{margin-bottom:0}.sep{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11.5px}.sep:before,.sep:after{content:"";flex:1;height:1px;background:var(--line)}.foot-note{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11.5px;color:var(--muted);padding-top:3px}.thread{display:flex;flex-direction:column;gap:8px}.msg{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:10px 12px;font-size:13.5px;max-width:90%}.msg.mine{align-self:flex-end;background:var(--s-doing-bg);border-color:transparent}.msg .who{font-size:11px;color:var(--muted);margin-bottom:4px}.msg p{margin:0;white-space:pre-wrap;line-height:1.5}.files{display:flex;flex-direction:column;gap:6px}.file{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink-2);padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.file:hover{border-color:var(--accent);color:var(--accent)}.file .sz{margin-left:auto;color:var(--muted);font-size:11px;font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}
