:root{--upcoming:#5b6b80;--upcoming-soft:#e8edf3;--today:#d9662a;--today-soft:#fbeadf;--wa:#25d366;--shadow:0 1px 2px #1c1b190d, 0 8px 24px #1c1b1914;--tabbar-h:64px}body{overscroll-behavior-y:none}body.locked{overflow:hidden}a{color:inherit}.ic{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.view{max-width:560px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 20px) 16px calc(env(safe-area-inset-bottom) + 32px);margin:0 auto}body.has-tabs .view{padding-bottom:calc(env(safe-area-inset-bottom) + var(--tabbar-h) + 96px)}.loading{text-align:center;color:var(--text-muted);padding:48px 0}.head{margin:8px 0 16px}.head.row{justify-content:space-between;align-items:baseline;display:flex}.head h1,.who h1{letter-spacing:-.02em;margin:0;font-size:32px;font-weight:700;line-height:38px}.total{color:var(--text-muted);font-size:14px}.eyebrow-date{color:var(--text-muted);margin:0 0 2px}.section,.label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:20px 0 8px;font-size:12px;font-weight:600;line-height:16px}.section span{margin-left:4px}.hint{color:var(--text-muted);margin:8px 4px 0;font-size:13px;line-height:18px}.foot{text-align:center;color:var(--text-muted);opacity:.7;margin:32px 0 0;font-size:12px}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat{border-radius:14px;padding:10px 12px;font-size:13px;line-height:18px}.stat b{font-size:24px;line-height:30px;display:block}.stat.s-overdue{background:var(--overdue-soft);color:var(--overdue)}.stat.s-today{background:var(--today-soft);color:var(--today)}.stat.s-upcoming{background:var(--upcoming-soft);color:var(--upcoming)}.cards{gap:10px;display:grid}.ccard{--bar:var(--upcoming);background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 14px 12px 28px;text-decoration:none;display:block;position:relative}.ccard:before{content:"";background:var(--bar);border-radius:2px;width:4px;position:absolute;top:12px;bottom:12px;left:12px}.ccard:active{background:#fbfaf8}.ccard.s-overdue{--bar:var(--overdue)}.ccard.s-today{--bar:var(--today)}.ccard.s-won{--bar:var(--won)}.ccard.s-closed{--bar:#b5b1aa}.ccard-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.ccard-top b{text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:600;line-height:24px;overflow:hidden}.due{color:var(--bar);flex:none;font-size:14px;font-weight:600}.ccard-sub{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;overflow:hidden}.ccard-chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.chip{border-radius:7px;align-items:center;gap:6px;padding:3px 9px;font-size:14px;font-weight:500;line-height:20px;display:inline-flex}.chip .ic{width:15px;height:15px}.chip-overdue{background:var(--overdue-soft)}.chip-overdue .ic{color:var(--overdue)}.chip-today{background:var(--today-soft)}.chip-today .ic{color:var(--today)}.chip-upcoming{background:var(--upcoming-soft)}.chip-upcoming .ic{color:var(--upcoming)}.chip-stage{border:1px solid var(--line);color:var(--text-muted);border-radius:999px;padding:2px 9px;font-size:13px;font-weight:400}.empty{text-align:center;color:var(--text-muted);padding:56px 24px 24px}.empty.small{padding:32px 16px 8px}.empty .ic{width:40px;height:40px;color:var(--accent);stroke-width:1.75px}.empty h2{color:var(--text);margin:12px 0 6px;font-size:20px}.empty p{max-width:300px;margin:0 auto 16px}.empty .btn{width:auto;padding:0 24px;display:inline-flex}.search{background:var(--subtle);height:44px;color:var(--text-muted);border-radius:12px;align-items:center;gap:10px;padding:0 14px;display:flex}.search .ic{width:20px;height:20px}.search input{font:400 17px/24px var(--font);color:var(--text);background:0 0;border:0;outline:0;flex:1;min-width:0}.segment,.seg3{background:var(--subtle);border-radius:12px;grid-template-columns:repeat(3,1fr);margin-top:12px;padding:3px;display:grid}.segment button,.seg3 button{font:500 15px/20px var(--font);color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:8px 4px}.segment button.on,.seg3 button.on{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #1c1b191a}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips.scroll{scrollbar-width:none;flex-wrap:nowrap;margin:12px -16px 0;padding:0 16px 2px;overflow-x:auto}.chips.scroll::-webkit-scrollbar{display:none}.pill{border:1px solid var(--line);background:var(--surface);color:var(--text);font:500 15px/20px var(--font);cursor:pointer;white-space:nowrap;border-radius:999px;flex:none;padding:7px 14px}.pill.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.tabbar{z-index:10;-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:#fffffff5;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{max-width:186px;height:var(--tabbar-h);color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:500;text-decoration:none;display:flex}.tabbar svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.tabbar a.on{color:var(--accent)}.fab{z-index:11;right:max(16px,50% - 264px);bottom:calc(env(safe-area-inset-bottom) + var(--tabbar-h) + 16px);background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:56px;height:56px;display:grid;position:fixed;box-shadow:0 6px 18px #d9662a59}.fab svg{fill:none;stroke:currentColor;stroke-width:2.25px;stroke-linecap:round;width:26px;height:26px}.btn-white{background:var(--surface);color:var(--text);border:1px solid var(--line)}.btn-wa{background:var(--wa);color:#fff}.btn-won{background:var(--won);color:#fff}.btn-danger{background:var(--overdue);color:#fff}.btn-dark{background:var(--text);color:#fff}.btn .ic{width:20px;height:20px}.link{color:var(--accent);font:500 17px/22px var(--font);cursor:pointer;background:0 0;border:0;padding:6px 0;text-decoration:none}.link.strong{font-weight:600}.link.center{color:var(--text-muted);margin:8px auto 0;padding:10px;font-size:15px;display:block}.topbar{justify-content:space-between;align-items:center;gap:8px;min-height:40px;margin:0 0 12px;display:flex}.topbar .back{margin:0 0 0 -6px}.topbar>b{font-size:17px}.who p{color:var(--text-muted);margin:4px 0 0}.who .meta{font-size:13px}.contact{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;display:grid}.contact .btn{border-radius:12px;margin:0}.box{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-top:16px;padding:14px 16px}.box .label{margin-top:0}.stepper{text-align:center;grid-template-columns:repeat(5,1fr);margin:0;padding:0;list-style:none;display:grid}.stepper li{color:var(--text-muted);flex-direction:column;align-items:center;gap:6px;font-size:12px;line-height:15px;display:flex}.stepper i{border:1.5px solid #cfcbc4;border-radius:50%;place-items:center;width:22px;height:22px;display:grid}.stepper i .ic{stroke-width:3px;color:#fff;width:13px;height:13px}.stepper li.done i{background:var(--accent);border-color:var(--accent)}.stepper li.now i{border:2px solid var(--accent)}.stepper li.now i:after{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px}.stepper li.done,.stepper li.now{color:var(--text);font-weight:600}.next{--c:var(--upcoming);--soft:var(--upcoming-soft);background:var(--soft);border:1px solid var(--c);border-radius:16px;margin-top:16px;padding:16px}.next.s-overdue{--c:var(--overdue);--soft:var(--overdue-soft)}.next.s-today{--c:var(--today);--soft:var(--today-soft)}.next.s-won{--c:var(--won);--soft:var(--won-soft)}.next.s-closed{--c:#9c978f;--soft:var(--subtle)}.next .label{color:var(--c);margin:0 0 4px}.next h2{align-items:center;gap:8px;margin:0;font-size:20px;line-height:26px;display:flex}.next h2 .ic{width:22px;height:22px;color:var(--c)}.when{color:var(--c);align-items:center;gap:6px;margin:6px 0 0;font-weight:500;display:flex}.next .btns{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.next .btns .btn{border-radius:12px;margin:0}.next.s-won .btns,.next.s-closed .btns{grid-template-columns:1fr}.section-label{margin-top:24px}.history{margin-top:0;padding:4px 16px}.addnote{border-bottom:1px solid var(--line);align-items:center;gap:8px;display:flex}.addnote input{font:400 16px/22px var(--font);color:var(--text);background:0 0;border:0;outline:0;flex:1;padding:12px 0}.addnote .link{font-size:15px;font-weight:600}.event{border-bottom:1px solid var(--line);grid-template-columns:52px 1fr;gap:8px;padding:12px 0;display:grid}.event:last-child{border-bottom:0}.event time{color:var(--text-muted);padding-top:1px;font-size:13px}.event b{font-weight:600}.event p{color:var(--text-muted);white-space:pre-line;margin:2px 0 0}.form .topbar{z-index:5;background:var(--bg);margin:-8px -16px 4px;padding:8px 16px;position:sticky;top:0}.group{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}.gfield{border-bottom:1px solid var(--line);padding:10px 14px;display:block}.gfield:last-child{border-bottom:0}.gfield span{color:var(--text-muted);font-size:12px;line-height:16px;display:block}.gfield input,.gfield textarea,.gfield select{width:100%;font:400 17px/24px var(--font);color:var(--text);resize:none;background:0 0;border:0;outline:0;padding:2px 0 0;display:block}.gfield select{appearance:none}.gfield.two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.gfield input::placeholder,.gfield textarea::placeholder,.note::placeholder,.notes::placeholder{color:#a8a49d}.note,.notes,.other{border:1px solid var(--line);background:var(--surface);width:100%;font:400 16px/22px var(--font);color:var(--text);resize:vertical;border-radius:12px;outline:0;margin-top:12px;padding:12px 14px;display:block}.note:focus,.notes:focus,.other:focus{border-color:var(--accent)}.radios .other{border:0;border-top:1px solid var(--line);border-radius:0;margin:0}.form .btn-lg{margin-top:24px}.danger-row{text-align:left;width:100%;font:inherit;cursor:pointer;padding:14px 16px;display:block}.danger-row b{color:var(--overdue);margin-bottom:2px;font-weight:600;display:block}.danger-row span{color:var(--text-muted);font-size:13px;line-height:18px}.srow{border:0;border-bottom:1px solid var(--line);width:100%;min-height:50px;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:8px;padding:0 14px 0 16px;display:flex;position:relative}.srow:last-child{border-bottom:0}.srow>span{flex:1}.srow b{color:var(--text-muted);font-weight:400}.srow .ic{color:#b5b1aa}.srow select{opacity:0;cursor:pointer;width:100%;font-size:16px;position:absolute;inset:0}.srow.danger{color:var(--overdue)}div.srow{cursor:default}.layer{z-index:50;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.layer.center{align-items:center}.backdrop{opacity:0;background:#1c1b1961;transition:opacity .2s;position:absolute;inset:0}.layer.in .backdrop{opacity:1}.sheet{overscroll-behavior:contain;background:var(--bg);width:100%;max-width:560px;max-height:92dvh;padding:8px 20px calc(env(safe-area-inset-bottom) + 12px);border-radius:24px 24px 0 0;transition:transform .25s cubic-bezier(.2,.8,.2,1);position:relative;overflow-y:auto;transform:translateY(100%)}.layer.in .sheet{transform:none}.grab{background:#d6d2cb;border-radius:3px;width:36px;height:5px;margin:0 auto 14px}.sheet h2{margin:0;font-size:20px;line-height:26px}.sheet .sub{color:var(--text-muted);margin:4px 0 14px}.sheet .label{margin:18px 0 8px}.seg2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.seg2 button{border:1px solid var(--line);background:var(--surface);height:44px;font:600 15px/20px var(--font);color:var(--text);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;display:flex}.seg2 button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.seg2 .ic{stroke-width:2.5px;width:17px;height:17px}.seg3{margin:0}.radios{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.radio{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:12px;padding:12px 14px;display:flex}.radio:last-of-type{border-bottom:0}.radio input{appearance:none;border:1.5px solid #cfcbc4;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;margin:0;display:grid}.radio input:checked{border:2px solid var(--accent)}.radio input:checked:after{content:"";background:var(--accent);border-radius:50%;width:10px;height:10px}.radio input:checked+span{font-weight:600}.radio span{flex:1}.tag{color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:2px 8px;font-size:12px;font-style:normal;font-weight:600}.pick{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.pick .field{padding:8px 12px 6px}.pick input{min-height:24px;font-size:16px}.row-select{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;align-items:center;gap:8px;margin-top:14px;padding:12px 14px;display:flex;position:relative}.row-select span{flex:1}.row-select .val{color:var(--accent);font-weight:600}.row-select .ic{color:#b5b1aa}.row-select select{opacity:0;cursor:pointer;width:100%;font-size:16px;position:absolute;inset:0}.sheet .btn-lg{margin-top:16px}.banner{background:var(--overdue-soft);color:var(--overdue);border-radius:12px;margin:12px 0 0;padding:12px 14px;font-weight:500}.banner .link{color:var(--overdue);padding:4px 0 0;font-size:15px;font-weight:600;display:block}.won-note{background:var(--won-soft);color:var(--won);border-radius:12px;align-items:center;gap:10px;margin-top:14px;padding:14px;font-weight:500;display:flex}.won-note .ic{width:22px;height:22px}.alert{background:var(--surface);text-align:center;width:min(300px,100% - 48px);box-shadow:var(--shadow);border-radius:16px;position:relative;overflow:hidden}.alert h3{margin:18px 16px 4px;font-size:17px}.alert p{color:var(--text-muted);margin:0 16px 16px;font-size:14px;line-height:20px}.alert-btns{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.alert-btns button{font:500 17px/22px var(--font);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:13px}.alert-btns button+button{border-left:1px solid var(--line)}.alert-btns .danger{color:var(--overdue);font-weight:600}.toast{z-index:60;left:50%;bottom:calc(env(safe-area-inset-bottom) + 24px);background:var(--text);color:#fff;max-width:calc(100% - 32px);box-shadow:var(--shadow);border-radius:12px;padding:10px 16px;font-weight:500;transition:opacity .3s;position:fixed;transform:translate(-50%)}body.has-tabs .toast{bottom:calc(env(safe-area-inset-bottom) + var(--tabbar-h) + 88px)}.toast.err{background:var(--overdue)}.toast.out{opacity:0}
