:root{--teal:#0b8c90;--orange:#fd7e00;--teal-lt:#4fc6ca;--navy:#1c2a35;--bg:#fff;--surface:#f3f6f7;--text:#1c2a35;--muted:#55636d;--tap:48px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121a21;--surface:#1c2a35;--text:#eef3f5;--muted:#a9b6bf}}:root[data-theme=dark]{--bg:#121a21;--surface:#1c2a35;--text:#eef3f5;--muted:#a9b6bf}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:18px;line-height:1.5}a{color:inherit}.appHeader{background:var(--navy);box-shadow:inset 0 -4px 0 var(--pal,var(--navy));color:#fff;justify-content:space-between;align-items:center;min-height:56px;padding:0 8px 0 16px;display:flex;position:relative}.appHeader .brand{min-height:var(--tap);align-items:center;display:flex}.appHeader .brand img{border-radius:8px;display:block}.appHeader .headerTitle{text-align:center;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;margin:0;font-size:26px;position:absolute;left:104px;right:104px;overflow:hidden}.appHeader .headerLinks{display:flex}.appHeader .gear{min-width:44px;min-height:var(--tap);color:#dfe6ea;justify-content:center;align-items:center;text-decoration:none;display:flex}.appHeader .gear .icon{width:24px;height:24px}.appHeader.threeLinks .headerTitle{left:140px;right:140px}.icon{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;flex:none;display:block}.page{margin:0 auto;padding:24px 16px 48px}.narrow{max-width:480px}h1{margin:8px 0 16px;font-size:26px}.authLogo{width:180px;height:auto;margin:8px auto;display:block}.page.narrow>h1:first-of-type{text-align:center}.form{gap:16px;margin-bottom:24px;display:grid}.form fieldset{border:0;gap:12px;margin:0;padding:0;display:grid}.form legend{margin-bottom:4px;font-size:20px;font-weight:700}.form label{gap:6px;font-weight:600;display:grid}.form label.check,.stack>label.check{min-height:var(--tap);align-items:center;gap:12px;font-weight:400;display:flex}.form input[type=checkbox],.stack>label.check input[type=checkbox]{width:24px;height:24px;accent-color:var(--teal)}.form input:not([type=checkbox]),.form textarea{font:inherit;min-height:var(--tap);border:1px solid var(--muted);background:var(--bg);color:var(--text);border-radius:10px;padding:10px 12px}.form input:focus-visible,.form textarea:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:2px}.hint{color:var(--muted);font-size:15px;font-weight:400}button.primary,button.secondary{font:inherit;cursor:pointer;border-radius:12px;width:100%;min-height:56px;font-weight:700}button.primary{background:var(--teal);color:#fff;border:0}button.primary:disabled{opacity:.6}button.secondary{color:var(--text);border:2px solid var(--muted);background:0 0}.error,.notice{border-radius:10px;margin:0 0 16px;padding:12px 14px}.error{color:#8a1c13;background:#fdecea}.notice{color:#075c5f;background:#e3f4f4}.setupLink{font-weight:700;text-decoration:none;display:block}.links{text-align:center;gap:4px;display:grid}.links a{min-height:var(--tap);color:var(--teal);justify-content:center;align-items:center;font-weight:600;display:inline-flex}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .error{color:#ffd7d2;background:#4a1f1b}:root:not([data-theme=light]) .notice{color:#c9f1f1;background:#0f3b3d}:root:not([data-theme=light]) .links a{color:var(--teal-lt)}}:root[data-theme=dark] .error{color:#ffd7d2;background:#4a1f1b}:root[data-theme=dark] .notice{color:#c9f1f1;background:#0f3b3d}:root[data-theme=dark] .links a{color:var(--teal-lt)}.backLink{min-height:var(--tap);color:var(--teal);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.stack{grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:16px;display:grid}a.primary,a.secondary{border-radius:12px;justify-content:center;align-items:center;min-height:56px;font-weight:700;text-decoration:none;display:flex}a.primary{background:var(--teal);color:#fff}a.secondary{border:2px solid var(--muted)}button.danger{font:inherit;cursor:pointer;color:#b42318;background:0 0;border:2px solid #b42318;border-radius:12px;width:100%;min-height:56px;font-weight:700}.search{font:inherit;width:100%;min-height:var(--tap);border:1px solid var(--muted);background:var(--bg);color:var(--text);border-radius:10px;padding:10px 12px}.list{background:var(--surface);border-radius:12px;margin-bottom:16px;overflow:hidden}.listHead{color:var(--muted);border-bottom:1px solid #55636d40;justify-content:space-between;padding:6px 14px;font-size:15px;font-weight:700;display:flex}.row{border-bottom:1px solid #55636d26;align-items:center;gap:12px;min-height:64px;padding:8px 14px;text-decoration:none;display:flex}.row:last-child{border-bottom:0}.row .grow{flex:1;min-width:0}.row .grow b,.row .grow small{overflow-wrap:anywhere;display:block}.row small,.muted{color:var(--muted);font-size:15px}.row .amount{white-space:nowrap;font-weight:700}.chevron{color:var(--muted);font-size:22px}.avatar{background:var(--teal);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:15px;font-weight:700;display:flex}.star{font:inherit;width:var(--tap);height:var(--tap);color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;font-size:28px;line-height:1}.star.on{color:#e0a100}.tiles{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;display:grid}.tile{background:var(--surface);text-align:center;border-radius:12px;padding:10px 8px}.tile b{font-size:20px;display:block}.tile small{color:var(--muted);font-size:13px}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700}.form select{font:inherit;min-height:var(--tap);border:1px solid var(--muted);background:var(--bg);color:var(--text);border-radius:10px;padding:10px 12px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .backLink{color:var(--teal-lt)}:root:not([data-theme=light]) button.danger{color:#ff8f84;border-color:#ff8f84}}:root[data-theme=dark] .backLink{color:var(--teal-lt)}:root[data-theme=dark] button.danger{color:#ff8f84;border-color:#ff8f84}h2{margin:24px 0 10px;font-size:20px}.card{background:var(--surface);border-radius:12px;margin-bottom:12px;padding:14px}.card.form{margin-bottom:12px}.backBar{justify-content:space-between;align-items:center;gap:12px;display:flex}.refTag{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:18px;font-weight:700}.lineTop{align-items:center;gap:6px;display:flex}.lineTop input{flex:1;min-width:0}.iconButton{font:inherit;width:var(--tap);height:var(--tap);border:1px solid var(--muted);background:var(--bg);color:var(--text);cursor:pointer;border-radius:10px;flex:none}.grid2,.grid3{gap:8px;display:grid}.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:1fr 1fr 1fr}.grid2 label,.grid3 label{min-width:0;font-size:15px}.grid2 input,.grid3 input,.grid2 select{width:100%;min-width:0}.toggles{gap:24px;display:flex}.lineTotal{color:var(--teal);margin:0;font-weight:700}.quickAdd{flex-wrap:wrap;gap:8px;display:flex}.quickAdd button{font:inherit;min-height:40px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #e0a100;border-radius:20px;padding:6px 12px;font-size:15px}.qtyBox{font:inherit;width:80px;min-height:var(--tap);border:1px solid var(--muted);background:var(--bg);color:var(--text);text-align:right;border-radius:10px;padding:8px 10px}.breakdown table{border-collapse:collapse;width:100%}.breakdown td{vertical-align:top;border-bottom:1px solid #55636d26;padding:6px 0}.breakdown td small{color:var(--muted);font-size:14px;display:block}.breakdown .money{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding-left:12px}.breakdown .sub td{font-weight:600}.breakdown .total td{border-bottom:0;padding-top:10px;font-size:22px;font-weight:800}.saveBar{padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px));background:var(--bg);margin-top:16px;position:sticky;bottom:0}.linkButton{font:inherit;color:var(--teal);cursor:pointer;background:0 0;border:0;justify-self:start;padding:8px 0;font-size:15px;text-decoration:underline}.siteAddress{gap:4px;display:grid}.siteChoices{flex-wrap:wrap;align-items:baseline;gap:0 12px;margin:0;display:flex}.siteChoices .linkButton{padding:4px 0}.segmented{border:2px solid var(--teal);border-radius:12px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.segmented a{min-height:var(--tap);justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:flex}.segmented a.on{background:var(--teal);color:#fff}.chip{color:#33424c;background:#e6ebee;border-radius:10px;padding:2px 8px;font-size:13px;font-weight:700;display:inline-block}.chip-sent{color:#1e3a8a;background:#dbeafe}.chip-booked,.chip-in_progress,.chip-finished{color:#78350f;background:#fef3c7}.chip-invoiced{color:#4c1d95;background:#ede9fe}.chip-paid{color:#14532d;background:#dcfce7}.chip-lost{color:#7f1d1d;background:#fee2e2}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .lineTotal,:root:not([data-theme=light]) .linkButton{color:var(--teal-lt)}}:root[data-theme=dark] .lineTotal,:root[data-theme=dark] .linkButton{color:var(--teal-lt)}.form select,.form input:not([type=checkbox]),.form textarea{width:100%;min-width:0;max-width:100%}.form label,.form fieldset{min-width:0}.groupHead{justify-content:space-between;align-items:baseline;margin:12px 0 0;font-size:18px;display:flex}.groupHead h2{margin:0;font-size:18px}.calNav{text-align:center;grid-template-columns:56px 1fr 56px;align-items:center;gap:8px;display:grid}.calNav>span{flex-direction:column;align-items:center;gap:2px;display:flex}.calToday{color:var(--teal);font-size:14px}.summaryLine{text-align:center;color:var(--muted);margin:4px 0 12px;font-size:15px}.calDayHead{color:inherit;border-bottom:1px solid #55636d40;justify-content:space-between;padding:10px 14px;font-weight:700;text-decoration:none;display:flex}.calDayHead.today{background:var(--teal);color:#fff}.stageBar{border-radius:3px;flex:none;align-self:stretch;width:6px}.stage-booked{background:#2563eb}.stage-in_progress{background:#e08a00}.stage-finished{background:#2b8a3e}.stage-invoiced{background:#7c3aed}.stage-paid{background:#9aa3ad}.monthGrid{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.monthGrid>b{color:var(--muted);font-size:13px}.monthDay{background:var(--surface);min-height:56px;color:inherit;border-radius:8px;flex-direction:column;gap:2px;padding:4px 2px;font-size:14px;text-decoration:none;display:flex}.monthDay.other{opacity:.45}.monthDay.today{outline:2px solid var(--teal)}.monthDay i,.legend i{border-radius:3px;height:5px;display:block}.monthDay small{font-size:11px}.legend{flex-wrap:wrap;gap:4px 14px;margin:0;font-size:14px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.legend i{width:18px}.extraPick{cursor:pointer}.extraPick input{width:24px;height:24px;accent-color:var(--teal);flex:none}.filterBar{align-items:flex-start;gap:8px;display:flex}.filterBar form{flex:1;min-width:0}.filterMenu{flex:none;position:relative}.filterMenu summary{min-height:var(--tap);border:1px solid var(--muted);cursor:pointer;white-space:nowrap;border-radius:10px;align-items:center;gap:6px;padding:0 12px;list-style:none;display:flex}.filterMenu summary::-webkit-details-marker{display:none}.filterMenu summary:after{content:"▾";color:var(--muted)}.filterMenu nav{z-index:10;background:var(--bg);border:1px solid var(--muted);border-radius:10px;flex-direction:column;min-width:220px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 6px 20px #0003}.filterMenu nav a{color:inherit;white-space:nowrap;border-radius:8px;padding:10px 12px;text-decoration:none}.filterMenu nav a.on{background:var(--surface);font-weight:700}.filterMenu hr{border:0;border-top:1px solid var(--surface);width:100%;margin:4px 0}.segmented.four{grid-template-columns:repeat(4,1fr)}.amount.good{color:#1d7a3a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .amount.good{color:#5fd38a}}:root[data-theme=dark] .amount.good{color:#5fd38a}.form textarea.messageText{min-height:260px}.heldBack{opacity:.4;pointer-events:none}.legal h2{margin-top:1.5em}.legal ul{padding-left:1.2em}.legal li{margin-bottom:.4em}.stats{grid-template-columns:1fr auto;gap:4px 16px;margin:0;display:grid}.stats dd{text-align:right;margin:0;font-weight:700}.preWrap{white-space:pre-wrap;overflow-wrap:anywhere}.calTime{color:var(--teal);font-weight:700}button:disabled{cursor:progress}button.secondary:disabled,button.danger:disabled{opacity:.6}.pageLoading{min-height:60vh;color:var(--muted);opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-weight:700;animation:.2s ease-out .15s forwards pageLoadingIn;display:flex}.spinner{border:4px solid var(--muted);border-top-color:var(--teal);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes pageLoadingIn{to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.payQr .qr{background:#fff;border-radius:12px;width:min(100%,320px);margin:0 auto;padding:12px}.payQr .qr svg{width:100%;height:auto;display:block}.spinner.small{vertical-align:-2px;border-width:2px;width:14px;height:14px;display:inline-block}.segmented.people{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}.segmented.people a{text-align:center;padding:0 6px}.fab{right:max(20px, env(safe-area-inset-right));bottom:max(20px, env(safe-area-inset-bottom));z-index:20;background:var(--teal);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:40px;font-weight:400;line-height:1;text-decoration:none;display:flex;position:fixed;box-shadow:0 4px 14px #0000004d}.withFab{padding-bottom:104px}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.form input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:1}.form label.check input[type=checkbox],.form label.check input[type=radio]{flex-shrink:0}.choiceRow{grid-template-columns:1fr 1fr;gap:12px;display:grid}.choiceRow label.choice{border:2px solid var(--muted);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:56px;font-weight:700;display:flex}.choiceRow label.choice:has(input:checked){border-color:var(--teal);background:var(--surface)}.choiceRow label.choice input{width:22px;height:22px;accent-color:var(--teal)}.grid3 a.secondary{text-align:center;padding:4px 6px;font-size:16px;line-height:1.2}.form label.check:has(>span){align-items:flex-start}.form label.check:has(>span) input{margin-top:2px}.logoPreview{object-fit:contain;background:#fff;border-radius:8px;max-width:100%;max-height:120px;padding:8px;display:block}label.fileButton{border:2px solid var(--muted);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;min-height:56px;font-weight:700;display:flex;position:relative}label.fileButton input{opacity:0;width:1px;height:1px;position:absolute}.infoHeading{align-items:center;gap:10px;display:flex}.infoButton{width:30px;height:30px;min-height:30px;color:var(--teal);cursor:pointer;background:0 0;border:2px solid;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font:italic 700 15px/1 Georgia,serif;display:inline-flex}.bottomNav{z-index:30;background:var(--navy);padding:6px 4px env(safe-area-inset-bottom);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0003}.bottomNav a{color:#b7c3cb;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-width:0;max-width:110px;min-height:58px;font-size:12px;font-weight:600;text-decoration:none;display:flex}.bottomNav .navIcon{border-radius:15px;place-items:center;width:56px;height:30px;display:grid}.bottomNav .navIcon .icon{width:24px;height:24px}.bottomNav a.on{color:#fff;font-weight:700}.bottomNav a.on .navIcon{background:color-mix(in srgb, var(--teal-lt) 26%, transparent);color:var(--teal-lt)}@media (prefers-reduced-motion:no-preference){.bottomNav .navIcon{transition:background-color .15s,color .15s}}body:has(.bottomNav){padding-bottom:calc(68px + env(safe-area-inset-bottom))}body:has(.bottomNav) .fab{bottom:calc(80px + env(safe-area-inset-bottom))}body:has(.bottomNav) .saveBar{bottom:calc(64px + env(safe-area-inset-bottom));padding-bottom:12px}.choiceRow.three{grid-template-columns:repeat(3,1fr);gap:8px}.choiceRow.three label.choice{gap:6px;font-size:16px}.todoList{margin:0;padding:0;list-style:none}.todoList li{border-bottom:1px solid #55636d26;align-items:center;gap:4px;padding-right:14px;display:flex}.todoList form{display:flex}.tickBox{width:var(--tap);height:var(--tap);cursor:pointer;color:#0000;background:0 0;border:0;place-items:center;margin-left:4px;padding:0;display:grid}.tickBox .icon{border:2px solid var(--muted);stroke-width:3.2px;border-radius:7px;width:26px;height:26px;padding:3px}.todoList li.done .tickBox{color:#fff}.todoList li.done .tickBox .icon{background:var(--teal);border-color:var(--teal)}.todoText{flex-direction:column;flex:1;justify-content:center;min-width:0;min-height:60px;padding:8px 0;text-decoration:none;display:flex}.todoText b{overflow-wrap:anywhere;font-weight:600}.todoList li.done .todoText b{color:var(--muted);text-decoration:line-through}.todoText small{color:var(--muted);flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:15px;display:flex}.todoText .overdue{color:#b4441c;font-weight:700}.todoCost{white-space:nowrap;font-weight:700}.kind{border-radius:10px;padding:1px 8px;font-size:13px;font-weight:700}.kind-job{background:color-mix(in srgb, var(--teal) 14%, transparent);color:var(--teal)}.kind-business{color:#2c5a92;background:#dfe9f6}.kind-personal{color:#6c3a8e;background:#ece2f4}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .todoText .overdue{color:#ff9a73}:root:not([data-theme=light]) .kind-job{color:var(--teal-lt)}:root:not([data-theme=light]) .kind-business{color:#a9c8ef;background:#22364d}:root:not([data-theme=light]) .kind-personal{color:#d6b5ee;background:#382a46}}:root[data-theme=dark] .todoText .overdue{color:#ff9a73}:root[data-theme=dark] .kind-job{color:var(--teal-lt)}:root[data-theme=dark] .kind-business{color:#a9c8ef;background:#22364d}:root[data-theme=dark] .kind-personal{color:#d6b5ee;background:#382a46}.calTodo{border-bottom:1px solid #55636d26;align-items:center;gap:10px;min-height:48px;padding:6px 14px;text-decoration:none;display:flex}.calTodo .icon{width:20px;height:20px;color:var(--muted)}.calTodo.done b{color:var(--muted);text-decoration:line-through}.calTodo small{color:var(--muted);font-size:15px}.monthDay i.todoDot{border:2px solid var(--muted);background:0 0}.themePicker{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.themePicker button{font:inherit;border:2px solid var(--muted);min-height:56px;color:var(--text);cursor:pointer;background:0 0;border-radius:12px;padding:4px 6px;font-size:16px;font-weight:700}.themePicker button.on{border-color:var(--teal);background:var(--teal);color:#fff}
