:root{--ink: #15243B;--ink-2: #5B6676;--surface: #FFFFFF;--canvas: #F5F6F8;--line: #E6E8EC;--brand: #1F3A5F;--accent: #0E8F84;--gold: #B8891B;--state-good: #1E8E5A;--state-wait: #C27A12;--state-us: #2F6FD6;--state-bad: #C8372D;--state-idle: #8A93A3;--state-private: #6B4FA3;--brand-ink: #1F3A5F;--on-brand: #FFFFFF;--accent-strong: #0A7A70;--gold-ink: #8A6412;--scrim: rgba(21, 36, 59, .45);--tint-strength: 12%;--state-bad-strong: #C8372D;--font-sans: "Inter", -apple-system, "Segoe UI", Roboto, "Noto Sans Arabic", sans-serif;--font-arabic: "Noto Sans Arabic", "Segoe UI", sans-serif;--fs-display: 28px;--lh-display: 32px;--fs-title: 20px;--lh-title: 26px;--fs-heading: 17px;--lh-heading: 22px;--fs-body: 15px;--lh-body: 22px;--fs-label: 13px;--lh-label: 18px;--fs-caption: 12px;--lh-caption: 16px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--r-card: 14px;--r-chip: 999px;--r-btn: 12px;--shadow-card: 0 1px 2px rgba(21, 36, 59, .06), 0 4px 12px rgba(21, 36, 59, .05);--card-border: 1px solid transparent;--t-fast: .15s;--t-base: .18s;--appbar-h: 56px;--tabbar-h: 64px;--target: 44px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--ink: #E8ECF2;--ink-2: #A3ADBD;--surface: #18212E;--canvas: #0E141D;--line: #2A3545;--brand: #1F3A5F;--accent: #2BB0A3;--gold: #B8891B;--state-good: #3DB37B;--state-wait: #E09A3A;--state-us: #6E9EEA;--state-bad: #E6615A;--state-idle: #9AA3B2;--state-private: #A08BD6;--brand-ink: #9DBCF0;--on-brand: #FFFFFF;--accent-strong: #0A7A70;--gold-ink: #E0B04A;--scrim: rgba(0, 0, 0, .55);--tint-strength: 18%;--shadow-card: none;--card-border: 1px solid var(--line);color-scheme:dark}}:root[data-theme=dark]{--ink: #E8ECF2;--ink-2: #A3ADBD;--surface: #18212E;--canvas: #0E141D;--line: #2A3545;--brand: #1F3A5F;--accent: #2BB0A3;--gold: #B8891B;--state-good: #3DB37B;--state-wait: #E09A3A;--state-us: #6E9EEA;--state-bad: #E6615A;--state-idle: #9AA3B2;--state-private: #A08BD6;--brand-ink: #9DBCF0;--on-brand: #FFFFFF;--accent-strong: #0A7A70;--gold-ink: #E0B04A;--scrim: rgba(0, 0, 0, .55);--tint-strength: 18%;--shadow-card: none;--card-border: 1px solid var(--line);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{height:100%;-webkit-text-size-adjust:100%}body{margin:0;min-height:100%;background:var(--canvas);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3,p{margin:0}a{color:var(--brand-ink)}button{font:inherit;color:inherit}ul,ol{margin:0;padding:0;list-style:none}[hidden]{display:none!important}.hit{position:relative;display:inline-block}.hit:after{content:"";position:absolute;inset:-12px -6px}.num,.fig,.money,.wait,.tl-date,.days,[data-num]{font-variant-numeric:tabular-nums}.ar{font-family:var(--font-arabic);direction:rtl;unicode-bidi:isolate}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.display{font-size:var(--fs-display);line-height:var(--lh-display);font-weight:700;letter-spacing:-.01em}.title{font-size:var(--fs-title);line-height:var(--lh-title);font-weight:600;letter-spacing:-.01em}.heading{font-size:var(--fs-heading);line-height:var(--lh-heading);font-weight:600}.body{font-size:var(--fs-body);line-height:var(--lh-body)}.label{font-size:var(--fs-label);line-height:var(--lh-label)}.caption{font-size:var(--fs-caption);line-height:var(--lh-caption)}.muted{color:var(--ink-2)}.strong{font-weight:600}.screen{min-height:100vh;display:flex;flex-direction:column}.appbar{position:sticky;top:0;z-index:20;height:var(--appbar-h);display:flex;align-items:center;gap:var(--s-1);padding:0 var(--s-2);background:var(--brand);color:var(--on-brand)}.appbar .appbar-title{flex:1;min-width:0;font-size:var(--fs-heading);line-height:var(--lh-heading);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 var(--s-1)}.appbar .appbar-title .sub{display:block;font-size:var(--fs-caption);line-height:var(--lh-caption);font-weight:400;opacity:.85}.appbar a{color:inherit}.iconbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--target);height:var(--target);border:0;border-radius:10px;background:transparent;color:inherit;cursor:pointer;text-decoration:none;flex:0 0 auto}.iconbtn:hover{background:#ffffff14}.appbar .iconbtn:focus-visible{outline-color:#fff}.iconbtn svg{width:24px;height:24px}.badge{position:absolute;top:4px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--state-bad-strong);color:#fff;font-size:11px;line-height:18px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.content{flex:1;width:100%;max-width:720px;margin:0 auto;padding:var(--s-3) var(--s-4) calc(var(--tabbar-h) + 96px)}.content.no-tabbar{padding-bottom:var(--s-6)}.content>*+*{margin-top:var(--s-3)}.dateline{color:var(--ink-2);font-size:var(--fs-label);line-height:var(--lh-label);display:flex;justify-content:space-between;gap:var(--s-2)}.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)}.tiles.two{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{display:flex;flex-direction:column;justify-content:flex-end;gap:0;min-height:84px;padding:var(--s-2) var(--s-3);background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow-card);border:var(--card-border);text-align:left;cursor:pointer;min-width:0;transition:box-shadow var(--t-fast),background var(--t-fast)}.tile .fig{font-size:var(--fs-display);line-height:var(--lh-display);font-weight:700;letter-spacing:-.02em;white-space:nowrap}.tile .fig .unit{font-size:var(--fs-label);line-height:var(--lh-label);font-weight:600;color:var(--ink-2);display:block;letter-spacing:0}.tile .lbl{font-size:var(--fs-label);line-height:var(--lh-label);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile .sub{font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile.money .lbl{color:var(--gold-ink);font-weight:600}.tile.money .fig .unit{color:var(--gold-ink)}.tile.zero .fig{color:var(--state-idle)}.tile[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:0;background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.group{margin-top:var(--s-4)}.group-h{display:flex;align-items:center;gap:var(--s-2);width:100%;min-height:var(--target);padding:0;border:0;background:transparent;color:var(--ink-2);font-size:var(--fs-label);line-height:var(--lh-label);font-weight:600;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;text-align:left}.group-h .rule{flex:1;height:1px;background:var(--line)}.group-h .count{font-variant-numeric:tabular-nums;color:var(--ink)}.group-h svg{width:18px;height:18px;transition:transform var(--t-fast)}.group-h[aria-expanded=false] svg{transform:rotate(-90deg)}.group-body{display:grid;gap:var(--s-2);margin-top:var(--s-2)}.group-h[aria-expanded=false]+.group-body{display:none}.card{display:block;position:relative;padding:var(--s-3) 14px;background:var(--surface);color:inherit;text-decoration:none;border-radius:var(--r-card);box-shadow:var(--shadow-card);border:var(--card-border);transition:background var(--t-fast)}a.card:hover{background:color-mix(in srgb,var(--brand) 3%,var(--surface))}.card-h{display:flex;align-items:baseline;gap:var(--s-2)}.card-h .client{color:var(--ink-2);font-weight:500}.card-h .name{font-weight:600;min-width:0}.card-title{font-size:var(--fs-body);line-height:var(--lh-body);font-weight:600}.card-title .client{color:var(--ink-2);font-weight:500}.card-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px var(--s-2);margin-top:6px;font-size:var(--fs-label);line-height:var(--lh-label);color:var(--ink-2)}.card-row.chips{gap:6px}.card-row .what{color:var(--ink)}.card .last{color:var(--ink-2)}.card .lead{margin-left:auto}.card.reported{border:1px dashed var(--line);box-shadow:none}.card.reported .card-title{color:var(--ink-2)}.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px 0 8px;border-radius:var(--r-chip);background:color-mix(in srgb,var(--chip-c, var(--state-idle)) var(--tint-strength),var(--surface));color:var(--ink);font-size:var(--fs-label);line-height:var(--lh-label);font-weight:500;white-space:nowrap}.chip .dot{width:8px;height:8px;border-radius:50%;background:var(--chip-c, var(--state-idle));flex:0 0 auto}.chip[data-state=good]{--chip-c: var(--state-good)}.chip[data-state=wait]{--chip-c: var(--state-wait)}.chip[data-state=us]{--chip-c: var(--state-us)}.chip[data-state=bad]{--chip-c: var(--state-bad)}.chip[data-state=idle]{--chip-c: var(--state-idle)}.chip[data-state=private]{--chip-c: var(--state-private)}.chip.plain{background:transparent;border:1px solid var(--line)}.chip.sm{height:20px;font-size:var(--fs-caption);padding:0 8px 0 6px}button.chip{cursor:pointer;border:1px solid transparent}button.chip.filter{background:var(--surface);border-color:var(--line);color:var(--ink-2)}button.chip.filter .dot{display:none}button.chip.filter[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-color:var(--accent);color:var(--ink)}.filters{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.filters::-webkit-scrollbar{display:none}.filters>*{flex:0 0 auto;height:32px}.wait{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-label);line-height:var(--lh-label);color:var(--ink-2);white-space:nowrap}.wait .arrow{display:inline-flex;width:16px;height:16px}.wait .arrow svg{width:16px;height:16px;stroke-width:2.6}.wait[data-court=them] .arrow{color:var(--state-wait)}.wait[data-court=us] .arrow{color:var(--state-us)}.wait .days{color:var(--ink);font-weight:600}.wait.bad .days{color:var(--state-bad)}.wait .since{color:var(--ink-2)}.money{font-size:var(--fs-label);line-height:var(--lh-label);color:var(--ink-2);display:flex;flex-wrap:wrap;gap:0 6px}.money .amt{color:var(--ink);font-weight:600;white-space:nowrap}.money .sep{color:var(--ink-2)}.money .k{white-space:nowrap}.money .mnote{color:var(--ink-2)}.avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:var(--canvas);color:var(--brand-ink);border:1px solid var(--line);font-size:var(--fs-label);font-weight:700;letter-spacing:.02em}.avatar.lg{width:44px;height:44px;font-size:var(--fs-body)}.avatar.sm{width:28px;height:28px;font-size:11px}.avatar .clock{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;border:2px solid var(--surface);background:var(--state-idle)}.avatar[data-clock=in] .clock{background:var(--state-good)}.avatar[data-clock=break] .clock{background:var(--state-wait)}.avatar[data-clock=out] .clock{background:var(--state-idle)}.avstack{display:inline-flex}.avstack .avatar+.avatar{margin-left:-10px}.list{display:grid;gap:var(--s-2)}.row{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-3) 14px;min-height:var(--target);background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow-card);border:var(--card-border);color:inherit;text-decoration:none}.row .main{flex:1;min-width:0}.row .side{flex:0 0 auto;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.row .t{font-weight:600}.row .m{color:var(--ink-2);font-size:var(--fs-label);line-height:var(--lh-label);display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}.row .m.path{display:block;overflow-wrap:anywhere}.row.reported{border:1px dashed var(--line);box-shadow:none}.row.reported .t{color:var(--ink-2)}.row.done .t{text-decoration:line-through;color:var(--ink-2)}.days{font-weight:600;white-space:nowrap}.days.bad{color:var(--state-bad)}.flat{display:grid}.flat .item{display:flex;align-items:center;gap:var(--s-3);min-height:var(--target);padding:6px 0;border-top:1px solid var(--line);color:inherit;text-decoration:none}.flat .item:first-child{border-top:0}.flat .item .main{flex:1;min-width:0}.flat .item .t{font-weight:500}.flat .item .m{color:var(--ink-2);font-size:var(--fs-label);line-height:var(--lh-label)}.sec-h{display:flex;align-items:baseline;gap:var(--s-2);margin:var(--s-4) 0 var(--s-2);font-size:var(--fs-label);line-height:var(--lh-label);font-weight:600;color:var(--ink-2)}.sec-h .count{color:var(--ink);font-variant-numeric:tabular-nums}.sec-h .count:before{content:"·· ";color:var(--ink-2);font-weight:400}.sec-h .right{margin-left:auto;font-weight:500}.st{width:20px;height:20px;border-radius:50%;border:2px solid var(--state-idle);flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center}.st[data-s=doing]{border-color:var(--state-us);background:color-mix(in srgb,var(--state-us) 25%,transparent)}.st[data-s=done]{border-color:var(--state-good);background:var(--state-good);color:#fff}.st[data-s=blocked]{border-color:var(--state-bad)}.st[data-s=waiting]{border-color:var(--state-wait);background:linear-gradient(90deg,var(--state-wait) 50%,transparent 50%)}.st svg{width:12px;height:12px}.tl{display:grid;grid-template-columns:52px 16px 1fr;column-gap:var(--s-2)}.tl-date{color:var(--ink-2);font-size:var(--fs-label);line-height:var(--lh-label);padding-top:14px;text-align:right;white-space:nowrap}.tl-rail{position:relative}.tl-rail:before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:var(--line)}.tl-rail .node{position:absolute;left:3px;top:18px;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--brand-ink)}.tl-rail .node.milestone{border-color:var(--gold);background:var(--gold);border-radius:2px;transform:rotate(45deg)}.tl-ev{padding:var(--s-2) 0 var(--s-3);border-bottom:1px solid var(--line);min-width:0}.tl-ev .who{font-weight:600}.tl-ev .text{margin-top:2px}.tl-ev .kv{margin-top:4px;font-size:var(--fs-label);line-height:var(--lh-label);color:var(--ink-2)}.tl-ev .kv b{color:var(--ink);font-weight:600}.tl-ev .meta{display:flex;align-items:center;gap:6px;margin-top:6px;color:var(--ink-2);font-size:var(--fs-caption);line-height:var(--lh-caption)}.tl-ev .meta svg{width:14px;height:14px}.tl-ev .meta a{color:var(--brand-ink)}.tl>:nth-last-child(-n+3) .tl-ev{border-bottom:0}.tl>:nth-last-child(2):before{bottom:auto;height:24px}.empty{padding:var(--s-5) var(--s-4);text-align:center;color:var(--ink-2);background:var(--surface);border-radius:var(--r-card);border:var(--card-border);box-shadow:var(--shadow-card)}.empty .act{display:inline-block;margin-top:var(--s-2);color:var(--brand-ink);font-weight:600;min-height:var(--target);line-height:var(--target);padding:0 var(--s-3);border-radius:var(--r-btn);text-decoration:none}.skel{background:var(--surface);border-radius:var(--r-card);padding:var(--s-3) 14px;border:var(--card-border);box-shadow:var(--shadow-card)}.skel .b{height:12px;border-radius:6px;background:var(--line);margin:8px 0}.skel .b.w60{width:60%}.skel .b.w40{width:40%}.skel .b.w80{width:80%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--target);padding:0 var(--s-4);border-radius:var(--r-btn);border:1px solid transparent;background:var(--surface);color:var(--ink);font-size:var(--fs-body);font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--t-fast),transform var(--t-fast)}.btn svg{width:20px;height:20px}.btn-primary{background:var(--accent-strong);color:#fff}.btn-primary:hover{background:color-mix(in srgb,var(--accent-strong) 90%,#000)}.btn-ghost{border-color:var(--line);background:var(--surface)}.btn-ghost:hover{background:var(--canvas)}.btn-danger{color:var(--state-bad);border-color:var(--line)}.btn-text{background:transparent;color:var(--brand-ink);padding:0 var(--s-2)}.btn-block{width:100%}.btn-sm{min-height:36px;font-size:var(--fs-label);padding:0 var(--s-3);border-radius:10px}.btn-row{display:flex;gap:var(--s-2)}.btn-row>.btn{flex:1}.fab{position:fixed;right:var(--s-4);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 72px);z-index:15;display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 18px 0 14px;border:0;border-radius:999px;background:var(--accent-strong);color:#fff;font-weight:600;font-size:var(--fs-body);box-shadow:0 6px 18px #15243b2e;cursor:pointer;text-decoration:none}.fab svg{width:20px;height:20px}.fab.no-pill{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 16px)}.pill{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 12px);z-index:15;width:calc(100% - 32px);max-width:420px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);border:0;border-radius:999px;background:var(--ink);color:var(--canvas);font-weight:600;font-size:var(--fs-body);box-shadow:0 6px 18px #15243b2e;cursor:pointer}.pill .cdot{width:10px;height:10px;border-radius:50%;background:var(--state-good)}.pill[data-clock=break] .cdot{background:var(--state-wait)}.pill[data-clock=out] .cdot{background:var(--state-idle)}.pill .num{font-variant-numeric:tabular-nums}.bottom-actions{position:fixed;left:0;right:0;bottom:0;z-index:15;padding:var(--s-3) var(--s-4) calc(var(--s-3) + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line)}.bottom-actions .inner{max-width:720px;margin:0 auto;display:flex;gap:var(--s-2)}.bottom-actions .inner>.btn{flex:1}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);display:grid;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--line)}.tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--tabbar-h);border:0;background:transparent;color:var(--ink-2);font-size:var(--fs-caption);line-height:var(--lh-caption);font-weight:500;text-decoration:none;cursor:pointer}.tabbar svg{width:24px;height:24px}.tabbar [aria-current=page]{color:var(--brand-ink);font-weight:600}.tabbar [aria-current=page] svg{stroke-width:2.4}.seg{display:flex;padding:3px;background:color-mix(in srgb,var(--ink) 6%,var(--canvas));border-radius:var(--r-btn);gap:2px}.seg button{flex:1;min-height:44px;padding:0 6px;border:0;border-radius:10px;background:transparent;color:var(--ink-2);font-size:var(--fs-label);line-height:var(--lh-label);font-weight:600;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background var(--t-fast),color var(--t-fast)}.seg button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card);border:var(--card-border)}.seg button .n{color:var(--ink-2);font-weight:500;margin-left:4px;font-variant-numeric:tabular-nums}.seg.scroll{overflow-x:auto;scrollbar-width:none}.seg.scroll button{flex:0 0 auto;padding:0 12px}[data-panel]{display:none}[data-panel].active{display:block}.scrim{position:fixed;inset:0;z-index:30;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity var(--t-base)}.scrim.open{opacity:1;pointer-events:auto}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:31;max-height:88vh;overflow:auto;background:var(--surface);color:var(--ink);border-radius:20px 20px 0 0;padding:var(--s-2) var(--s-4) calc(var(--s-5) + env(safe-area-inset-bottom,0px));transform:translateY(100%);transition:transform var(--t-base);box-shadow:0 -8px 24px #15243b1f}.sheet.open{transform:translateY(0)}.sheet .handle{width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto var(--s-3)}.sheet h2{font-size:var(--fs-heading);line-height:var(--lh-heading);font-weight:600;margin-bottom:var(--s-3)}.sheet .inner{max-width:720px;margin:0 auto}.sheet .menu a,.sheet .menu button{display:flex;align-items:center;gap:var(--s-3);min-height:48px;width:100%;padding:0 var(--s-1);border:0;background:transparent;color:var(--ink);text-decoration:none;font-size:var(--fs-body);font-weight:500;border-radius:10px;cursor:pointer;text-align:left}.sheet .menu a:hover,.sheet .menu button:hover{background:var(--canvas)}.sheet .menu svg{width:22px;height:22px;color:var(--ink-2)}.sheet .menu .right{margin-left:auto;color:var(--ink-2);font-size:var(--fs-label)}.field{display:grid;gap:4px;margin-bottom:var(--s-3)}.field label,.field .lab{font-size:var(--fs-label);line-height:var(--lh-label);color:var(--ink-2);font-weight:500}.field input,.field textarea,.field select{width:100%;min-height:var(--target);padding:10px var(--s-3);border:1px solid var(--line);border-radius:var(--r-btn);background:var(--canvas);color:var(--ink);font:inherit;font-size:var(--fs-body)}.field textarea{min-height:72px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}.field .hint{font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--ink-2)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}.toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:48px;padding:0 var(--s-1);border-top:1px solid var(--line)}.toggle:first-child{border-top:0}.toggle .lab{font-weight:500}.toggle .lab .m{display:block;color:var(--ink-2);font-size:var(--fs-label);line-height:var(--lh-label);font-weight:400}.switch{position:relative;width:44px;height:26px;border-radius:999px;border:0;background:var(--state-idle);cursor:pointer;flex:0 0 auto;transition:background var(--t-fast)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform var(--t-fast)}.switch[aria-checked=true]{background:var(--accent-strong)}.switch[aria-checked=true]:after{transform:translate(18px)}.check{display:flex;align-items:center;gap:var(--s-3);min-height:var(--target);border:0;background:transparent;padding:0;width:100%;text-align:left;cursor:pointer;font-size:var(--fs-body);color:var(--ink)}.check .box{width:22px;height:22px;border-radius:6px;border:2px solid var(--ink-2);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.check[aria-checked=true] .box{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.check[aria-checked=true] .txt{color:var(--ink-2);text-decoration:line-through}.check .box svg{width:14px;height:14px}.swipe{position:relative;border-radius:var(--r-card);overflow:hidden}.swipe-bg{opacity:0;transition:opacity var(--t-fast);position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center;padding:0 var(--s-4);border-radius:var(--r-card);color:#fff;font-weight:600;font-size:var(--fs-label)}.swipe-bg .l{color:#fff;background:var(--state-good);position:absolute;inset:0 50% 0 0;display:flex;align-items:center;padding-left:var(--s-4)}.swipe-bg .r{color:#fff;background:var(--state-wait);position:absolute;inset:0 0 0 50%;display:flex;align-items:center;justify-content:flex-end;padding-right:var(--s-4)}.swipe-bg .l svg,.swipe-bg .r svg{width:20px;height:20px;margin:0 6px}.swipe.dragging .swipe-bg{opacity:1}.swipe-fg{position:relative;touch-action:pan-y;will-change:transform}.swipe-fg a,.swipe-fg .row,.swipe-fg .card{-webkit-user-drag:none}.swipe.dragging .swipe-fg{user-select:none}.swipe-fg.settle{transition:transform var(--t-base)}.swipe .row,.swipe .card{box-shadow:none}.swipe.flash-good .swipe-fg{outline:2px solid var(--state-good);outline-offset:-2px}.swipe-actions{display:none}@media (min-width: 700px){.swipe-actions{display:flex;gap:6px;margin-top:var(--s-2)}}.toast{position:fixed;left:50%;bottom:calc(var(--tabbar-h) + 76px);transform:translate(-50%,8px);z-index:40;max-width:calc(100% - 32px);padding:10px 14px;border-radius:12px;background:var(--ink);color:var(--canvas);font-size:var(--fs-label);line-height:var(--lh-label);display:flex;gap:var(--s-3);align-items:center;opacity:0;pointer-events:none;transition:opacity var(--t-base),transform var(--t-base)}.toast.show{opacity:1;transform:translate(-50%);pointer-events:auto}.toast button{border:0;background:transparent;color:var(--gold-ink);font-weight:700;min-height:32px;padding:0 var(--s-2);cursor:pointer}.note{padding:var(--s-3) 14px;background:var(--surface);border-radius:var(--r-card);border:var(--card-border);box-shadow:var(--shadow-card)}.note>.lab{font-size:var(--fs-caption);line-height:var(--lh-caption);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.note ol{list-style:decimal;padding-left:20px;margin-top:6px}.note ol li{padding:4px 0}.kvs{display:grid;grid-template-columns:auto 1fr;gap:6px var(--s-3);font-size:var(--fs-label);line-height:var(--lh-label)}.kvs dt{color:var(--ink-2)}.kvs dd{margin:0;color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--line)}.bar span{display:block;height:100%}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--ink-2);margin-top:6px}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.hbar{display:grid;grid-template-columns:1fr auto;gap:2px var(--s-3);align-items:center;font-size:var(--fs-label);line-height:var(--lh-label)}.hbar .trk{height:6px;border-radius:3px;background:var(--line);overflow:hidden;grid-column:1 / -1}.hbar .trk span{display:block;height:100%;background:var(--brand-ink)}.strip{display:flex;align-items:center;gap:var(--s-3);padding:10px 14px;min-height:var(--target);border-radius:var(--r-card);background:color-mix(in srgb,var(--state-us) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--state-us) 35%,var(--line));color:var(--ink);text-decoration:none;font-size:var(--fs-label);line-height:var(--lh-label)}.strip .n{font-weight:700;font-variant-numeric:tabular-nums}.strip svg{width:20px;height:20px;color:var(--state-us)}.strip .go{margin-left:auto;color:var(--brand-ink);font-weight:600}.src{display:inline-flex;align-items:center;gap:4px}.src svg{width:14px;height:14px}.hair{height:1px;background:var(--line);margin:var(--s-3) 0}.inline-ic{width:16px;height:16px;vertical-align:-3px}.focuscard{padding:var(--s-4) 14px;background:var(--surface);border-radius:var(--r-card);border:var(--card-border);box-shadow:var(--shadow-card);border-left:4px solid var(--state-us)}.focuscard .lab{font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--state-us)}.focuscard .t{font-size:var(--fs-title);line-height:var(--lh-title);font-weight:600;margin-top:2px}.focuscard .m{color:var(--ink-2);font-size:var(--fs-label);margin-top:2px}.focuscard .btn-row{margin-top:var(--s-3)}.person{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-3) 14px;background:var(--surface);border-radius:var(--r-card);border:var(--card-border);box-shadow:var(--shadow-card);color:inherit;text-decoration:none}.person .main{flex:1;min-width:0}.person .top{display:flex;align-items:baseline;gap:var(--s-2)}.person .top .nm{font-weight:600}.person .top .clk{margin-left:auto;color:var(--ink-2);font-size:var(--fs-label);white-space:nowrap;font-variant-numeric:tabular-nums}.person .foc{margin-top:4px;display:flex;gap:6px;align-items:baseline}.person .foc .tri{color:var(--state-us);font-size:12px}.person .foc .pt{font-weight:500}.person .foc .pr{color:var(--ink-2);font-size:var(--fs-label);display:block}.person .cnt{margin-top:6px;color:var(--ink-2);font-size:var(--fs-label);display:flex;gap:var(--s-3);align-items:center}.person .cnt .b{color:var(--state-bad);font-weight:600}.person .cnt .dotb{width:8px;height:8px;border-radius:50%;background:var(--state-bad);display:inline-block;margin-left:4px}.search-results .row{padding:10px 14px}@media (min-width: 900px){.content{padding-left:var(--s-5);padding-right:var(--s-5)}}#root,.app,.app .screen{min-height:100vh}.rail{display:none}@media (min-width: 1024px){.app{display:grid;grid-template-columns:240px minmax(0,1fr)}.rail{display:flex;flex-direction:column;gap:var(--s-1);position:sticky;top:0;height:100vh;padding:var(--s-4) var(--s-3);background:var(--surface);border-right:1px solid var(--line)}.rail .brand{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3) var(--s-4);color:var(--brand-ink);font-weight:700;font-size:var(--fs-heading)}.rail .brand svg{width:28px;height:28px}.rail a{display:flex;align-items:center;gap:var(--s-3);min-height:var(--target);padding:0 var(--s-3);border-radius:10px;color:var(--ink-2);text-decoration:none;font-weight:500;font-size:var(--fs-body);transition:background var(--t-fast),color var(--t-fast)}.rail a:hover{background:var(--canvas);color:var(--ink)}.rail a[aria-current=page]{background:color-mix(in srgb,var(--brand) 10%,var(--surface));color:var(--brand-ink);font-weight:600}.rail a svg{width:22px;height:22px}.rail .rail-sep{height:1px;background:var(--line);margin:var(--s-2) var(--s-3)}.rail .rail-foot{margin-top:auto;padding:var(--s-3);color:var(--ink-2);font-size:var(--fs-caption);line-height:var(--lh-caption)}.tabbar{display:none}.content{max-width:1200px;padding-bottom:var(--s-6)}.fab,.fab.no-pill,.pill{bottom:var(--s-5)}.bottom-actions{left:240px}.sheet{inset:50% auto auto 50%;width:min(560px,calc(100% - 48px));max-height:80vh;transform:translate(-50%,-50%) scale(.98);opacity:0;border-radius:16px;transition:opacity var(--t-base),transform var(--t-base)}.sheet.open{transform:translate(-50%,-50%) scale(1);opacity:1}.sheet .handle{display:none}.toast,.pending{bottom:var(--s-5)}}.money .note{display:inline;padding:0;background:transparent;border:0;box-shadow:none;border-radius:0;color:var(--ink-2)}.appbar .appbar-title .ar{font-size:var(--fs-label);opacity:.9}.pending{position:fixed;left:var(--s-4);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 12px);z-index:16;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border-radius:999px;background:color-mix(in srgb,var(--state-wait) 16%,var(--surface));color:var(--ink);border:1px solid color-mix(in srgb,var(--state-wait) 50%,var(--line));font-size:var(--fs-caption);line-height:var(--lh-caption);font-weight:600}.pending .dot{width:8px;height:8px;border-radius:50%;background:var(--state-wait)}.pending button{border:0;background:transparent;color:var(--brand-ink);font:inherit;font-weight:600;cursor:pointer;min-height:28px;padding:0 4px}.mark-pending{display:inline-flex;align-items:center;gap:4px;color:var(--state-wait);font-size:var(--fs-caption);font-weight:600}.mark-pending .dot{width:6px;height:6px;border-radius:50%;background:var(--state-wait)}.proj-h .t{font-size:var(--fs-title);line-height:var(--lh-title);font-weight:600}.proj-h .t .client{color:var(--ink-2);font-weight:500}.proj-h .code{color:var(--ink-2);font-size:var(--fs-label);margin-top:2px}.proj-h .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.proj-h .wrow{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap;font-size:var(--fs-label);color:var(--ink-2)}.instr{padding:12px 14px;background:var(--surface);border-radius:var(--r-card);border:var(--card-border);box-shadow:var(--shadow-card)}.instr .top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 8px;align-items:baseline}.instr .ref{font-weight:600;min-width:0}.instr .amt{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}.instr .m{color:var(--ink-2);font-size:var(--fs-label);margin-top:4px}.instr .chips{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}.instr .chips .chip,.proj-h .chips .chip{white-space:normal;height:auto;min-height:24px;padding-top:2px;padding-bottom:2px;text-align:left}.instr .chips .chip .dot{align-self:center}.filters select.chip{height:32px;max-width:46%;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:0 10px;font:inherit;font-size:var(--fs-label)}.linkrow svg{color:var(--ink-2);width:22px;height:22px;flex:0 0 auto;margin-top:2px}.tlchart{overflow-x:auto;padding-bottom:var(--s-2);-webkit-overflow-scrolling:touch}.tlchart .inner{min-width:720px}.tlchart .axis{display:grid;grid-template-columns:140px 1fr;font-size:var(--fs-caption);color:var(--ink-2)}.tlchart .axis .ticks{position:relative;height:18px;border-bottom:1px solid var(--line)}.tlchart .axis .ticks span{position:absolute;transform:translate(-50%);white-space:nowrap}.tlchart .trow{display:grid;grid-template-columns:140px 1fr;align-items:center;min-height:36px;border-bottom:1px solid var(--line)}.tlchart .trow .lbl{font-size:var(--fs-label);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:var(--s-2)}.tlchart .trow .track{position:relative;height:36px}.tlchart .mk{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%);background:var(--brand-ink);border:0;padding:0;cursor:pointer}.tlchart .mk[data-kind=milestone]{background:var(--gold);border-radius:2px;transform:translate(-50%,-50%) rotate(45deg)}.tlchart .mk[data-kind=invoice_sent],.tlchart .mk[data-kind=invoice_due]{background:var(--gold-ink)}.tlchart .mk[data-kind=contract_end],.tlchart .mk[data-kind=framework_expiry]{background:var(--state-idle)}.tlchart .mk[data-past-due=true]{background:var(--state-bad)}.tlchart .today{position:absolute;top:0;bottom:0;width:1px;background:var(--accent)}.settings-sec{padding:var(--s-3) 14px;background:var(--surface);border-radius:var(--r-card);border:var(--card-border);box-shadow:var(--shadow-card)}.settings-sec h2{font-size:var(--fs-heading);line-height:var(--lh-heading);font-weight:600;margin-bottom:var(--s-2)}.notice{padding:10px 14px;border-radius:var(--r-card);background:color-mix(in srgb,var(--state-wait) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--state-wait) 40%,var(--line));font-size:var(--fs-label);line-height:var(--lh-label)}.menu-card{padding:var(--s-1) 14px;background:var(--surface);border-radius:var(--r-card);border:var(--card-border);box-shadow:var(--shadow-card)}.menu-card a,.menu-card button{display:flex;align-items:center;gap:var(--s-3);min-height:48px;width:100%;padding:0 var(--s-1);border:0;background:transparent;color:var(--ink);text-decoration:none;font-size:var(--fs-body);font-weight:500;border-radius:10px;cursor:pointer;text-align:left;border-top:1px solid var(--line)}.menu-card a:first-child,.menu-card button:first-child{border-top:0}.menu-card svg{width:22px;height:22px;color:var(--ink-2)}.menu-card .right{margin-left:auto;color:var(--ink-2);font-size:var(--fs-label)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:0ms!important}}
