@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/dm-sans-variable-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/dm-sans-variable-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-variable-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-variable-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-sans-variable-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-sans-variable-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/dm-sans-variable-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/dm-sans-variable-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"DM Serif Display";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/dm-serif-display-italic-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"DM Serif Display";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/dm-serif-display-italic-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"DM Serif Display";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-serif-display-normal-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"DM Serif Display";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-serif-display-normal-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--sand-50: #f6f2ea;--sand-100: #eee8dc;--sand-200: #e4d9c8;--sand-300: #cebfa6;--sand-400: #b5a080;--sand-500: #9a8060;--ink: #1a1714;--ink-muted: #6b6459;--yes: #6ec48a;--yes-light: #d6efe1;--yes-border: #2e7a52;--yes-text: #1a5c38;--maybe: #e8b84b;--maybe-light: #faebc8;--maybe-border: #b8860b;--maybe-text: #7a5500;--no: #d06060;--no-light: #f5d8d8;--no-border: #9e3030;--no-text: #7a1f1f;--neutral: #c0bdb8;--neutral-border: #a8a49e;--radius: 8px;--shadow: 0 2px 12px rgba(26,23,20,.1);--shadow-lg: 0 8px 32px rgba(26,23,20,.14);--gutter: clamp(20px, 3.8vw, 40px);--shell: 1100px}html{font-size:16px}body{font-family:DM Sans,sans-serif;background:var(--sand-50);color:var(--ink);min-height:100vh;line-height:1.5}h1,h2,h3{font-family:"DM Serif Display",serif;line-height:1.2}button{cursor:pointer;font-family:inherit;border:none;outline:none}input,textarea{font-family:inherit;outline:none}a{color:inherit;text-decoration:none}.container{max-width:var(--shell);margin:0 auto;padding:0 var(--gutter)}.container-wide{--shell: 1440px}.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(18px,2vw,24px) clamp(16px,2vw,24px)}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--radius);font-size:.9rem;font-weight:500;transition:all .15s}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{background:#2d2820}.btn-ghost{background:transparent;color:var(--ink-muted);border:1px solid var(--sand-200)}.btn-ghost:hover{background:var(--sand-100)}.btn-danger{background:var(--no-light);color:var(--no-border);border:1px solid var(--no-border)}.btn-danger:hover{background:var(--no);color:#fff}.input{width:100%;padding:10px 14px;border:1px solid var(--sand-200);border-radius:var(--radius);font-size:.95rem;background:var(--sand-50);color:var(--ink);transition:border-color .15s}.input:focus{border-color:var(--sand-400);background:#fff}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;font-size:.78rem;font-weight:500}.tag-role{background:var(--sand-100);color:var(--sand-500)}.tag-yes{background:var(--yes-light);color:var(--yes-border)}.tag-maybe{background:var(--maybe-light);color:var(--maybe-border)}.tag-no{background:var(--no-light);color:var(--no-border)}.topbar{background:var(--ink);color:#fff;padding:clamp(10px,1.1vw,14px) 0;position:sticky;top:0;z-index:100}.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.topbar-title{font-family:"DM Serif Display",serif;font-size:clamp(1.05rem,.85rem + .55vw,1.3rem);letter-spacing:-.02em;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.topbar-title em{font-style:italic;color:var(--sand-300)}.topbar-right{display:flex;align-items:center;gap:12px;min-width:0}.topbar-status{color:var(--sand-300);font-size:clamp(.75rem,.68rem + .18vw,.85rem);white-space:nowrap}.topbar-actions{position:relative;display:flex;align-items:center;gap:8px;flex-shrink:0}.topbar-btn{color:#ccc;border-color:#444;white-space:nowrap;padding:clamp(7px,.8vw,10px) clamp(10px,1.4vw,20px);font-size:clamp(.8rem,.72rem + .2vw,.9rem)}.topbar-btn:hover{background:#2d2820;color:#fff}.topbar-menu-btn{display:none;padding:8px 12px;font-size:1.1rem;line-height:1}.topbar-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:200;min-width:168px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:6px}.topbar-menu-item{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:6px;background:none;color:var(--ink);font-size:.9rem}.topbar-menu-item:hover{background:var(--sand-100)}.topbar-menu-divider{height:1px;background:var(--sand-200);margin:6px 4px}.topbar-tools{position:relative;display:inline-flex}@media (max-width: 767px){.topbar-btn-wide{display:none}.topbar-menu-btn{display:block}.topbar-status,.topbar-tools{display:none}}.page{padding-top:clamp(24px,3vw,40px);padding-bottom:clamp(60px,6vw,80px)}.page-header{margin-bottom:clamp(22px,2.5vw,32px)}.page-header h1{font-size:clamp(1.75rem,1.45rem + 1.3vw,2.2rem);letter-spacing:-.03em}.page-header p{color:var(--ink-muted);margin-top:6px}.calendar-grid{-webkit-user-select:none;user-select:none;max-width:520px;margin-inline:auto}.calendar-day[data-date]{touch-action:none}.calendar-month{margin-bottom:32px}@media (min-width: 1280px){.calendar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;align-items:start;max-width:1072px}.calendar-grid>.legend{grid-column:1 / -1}}.calendar-month-title{font-family:"DM Serif Display",serif;font-size:1.3rem;margin-bottom:12px;color:var(--ink)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.calendar-weekday{text-align:center;font-size:.72rem;font-weight:600;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.05em;padding:4px 0}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day{aspect-ratio:1;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:clamp(.75rem,.7rem + .15vw,.85rem);font-weight:500;cursor:pointer;border:2px solid transparent;transition:transform .08s,box-shadow .08s;position:relative;min-height:clamp(36px,5vw,44px)}.calendar-day:hover:not(.empty){transform:scale(1.08);z-index:1}.calendar-day.empty{pointer-events:none}.calendar-day.out-of-range{opacity:.25;pointer-events:none}.calendar-day.neutral{background:var(--neutral);border-color:var(--neutral-border);color:var(--ink-muted)}.calendar-day.yes{background:var(--yes);border-color:var(--yes-border);color:var(--yes-text)}.calendar-day.maybe{background:var(--maybe);border-color:var(--maybe-border);color:var(--maybe-text)}.calendar-day.no{background:var(--no);border-color:var(--no-border);color:var(--no-text)}.calendar-day.selecting{box-shadow:0 0 0 3px var(--sand-400)}.day-number{font-size:.85rem;line-height:1}.day-icon{font-size:.65rem;margin-top:2px}.heatmap-day{aspect-ratio:1;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;cursor:default;position:relative;min-height:clamp(36px,5vw,44px);border:2px solid transparent;transition:transform .08s}.heatmap-day:hover:not(.empty){transform:scale(1.12);z-index:2}.heatmap-day .tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:8px 12px;border-radius:6px;font-size:.75rem;white-space:nowrap;z-index:10;pointer-events:none;font-family:DM Sans,sans-serif;font-weight:400;line-height:1.6;text-align:left;min-width:120px}.heatmap-day .tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--ink)}.heatmap-day:hover .tooltip{display:block}.drag-picker{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:var(--ink);border-radius:12px;padding:12px 20px;display:flex;gap:12px;align-items:center;z-index:200;box-shadow:var(--shadow-lg);color:#fff;font-size:.85rem;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.drag-picker-btn{padding:8px 16px;border-radius:8px;font-size:.85rem;font-weight:600;border:none;cursor:pointer;transition:opacity .1s}.drag-picker-btn:hover{opacity:.85}.drag-picker-btn.yes{background:var(--yes);color:#fff}.drag-picker-btn.maybe{background:var(--maybe);color:#fff}.drag-picker-btn.no{background:var(--no);color:#fff}.drag-picker-btn.clear{background:var(--sand-300);color:var(--ink)}.legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-bottom:24px;font-size:.82rem;color:var(--ink-muted)}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:14px;height:14px;border-radius:4px;border:2px solid}.participant-link{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--sand-200);border-radius:var(--radius);margin-bottom:8px;background:var(--sand-50)}.participant-link-url{flex:1 1 260px;font-size:.8rem;color:var(--ink-muted);word-break:break-all;font-family:monospace}.copy-btn{padding:6px 12px;border-radius:6px;background:var(--sand-200);color:var(--ink);font-size:.8rem;font-weight:500;border:none;cursor:pointer;white-space:nowrap;transition:background .1s}.copy-btn:hover{background:var(--sand-300)}.copy-btn.copied{background:var(--yes-light);color:var(--yes-border)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a171480;display:flex;align-items:center;justify-content:center;z-index:300;padding:24px}.modal{background:#fff;border-radius:12px;padding:clamp(22px,2.6vw,32px) clamp(18px,2.4vw,32px);width:100%;max-width:480px;box-shadow:var(--shadow-lg)}.modal h2{margin-bottom:20px;font-size:1.6rem}.form-group{margin-bottom:16px}.form-label{display:block;font-size:.82rem;font-weight:600;color:var(--ink-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.divider{height:1px;background:var(--sand-200);margin:24px 0}.empty-state{text-align:center;padding:48px 24px;color:var(--ink-muted)}.empty-state h3{font-size:1.4rem;margin-bottom:8px}.tab-bar{display:flex;gap:0;border-bottom:1px solid var(--sand-200);margin-bottom:0}.tab-btn{padding:10px clamp(14px,1.8vw,20px);border-radius:8px 8px 0 0;font-weight:600;font-size:clamp(.82rem,.76rem + .15vw,.9rem);cursor:pointer;border:none;background:transparent;color:var(--ink-muted);border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--ink)}.tab-btn.active{background:#fff;color:var(--ink);border-bottom-color:var(--ink)}.tool-layout{display:block}.tool-filter-col{display:none}@media (min-width: 1280px){.tool-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;column-gap:24px}.tool-filter-col{display:block}}.overview-calendar-col{min-width:0;padding:clamp(16px,2vw,28px)}.filter-sidebar{position:sticky;top:104px;max-height:calc(100vh - 90px);overflow-y:auto;background:#fff;border:1px solid var(--sand-400);border-radius:var(--radius);padding:20px 16px}.filter-bar-title{font-family:"DM Serif Display",serif;font-size:1rem;color:var(--ink);margin-bottom:14px}.filter-controls{display:flex;flex-direction:column;gap:0}.filter-section{padding:12px 0}.filter-section:first-child{padding-top:0}.filter-divider{height:1px;background:var(--sand-200)}.filter-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.filter-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted)}.filter-link{background:none;border:none;font-size:.78rem;color:var(--ink-muted);cursor:pointer;text-decoration:underline;padding:0;font-family:inherit}.filter-link:hover{color:var(--ink)}.filter-chips{display:flex;flex-wrap:wrap;gap:6px}.filter-chip{padding:3px 10px;border-radius:99px;font-size:.8rem;font-weight:500;cursor:pointer;border:1.5px solid;transition:all .12s;font-family:inherit}.filter-chip.active{background:var(--ink);border-color:var(--ink);color:#fff}.filter-chip.inactive{background:transparent;border-color:var(--sand-300);color:var(--ink-muted)}.filter-chip.inactive:hover{border-color:var(--ink-muted);color:var(--ink)}.filter-toggle-group{display:flex;flex-direction:column;gap:10px}.filter-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.filter-toggle input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.filter-toggle-track{width:32px;height:18px;border-radius:9px;background:var(--sand-300);position:relative;transition:background .15s;flex-shrink:0}.filter-toggle-track:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .15s;box-shadow:0 1px 3px #0003}.filter-toggle input:checked+.filter-toggle-track{background:var(--ink)}.filter-toggle input:checked+.filter-toggle-track:after{transform:translate(14px)}.filter-toggle-label{font-size:.85rem;color:var(--ink)}.filter-inline-field{display:flex;align-items:center;gap:8px;padding-left:40px}.filter-inline-label{font-size:.82rem;color:var(--ink-muted)}.filter-number-input{width:58px;padding:3px 6px;border:1px solid var(--sand-200);border-radius:6px;font-size:.85rem;background:#fff;color:var(--ink);font-family:inherit;text-align:center}.filter-number-input:focus{border-color:var(--sand-400);outline:none}.filter-slider{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:2px;background:var(--sand-300);outline:none;cursor:pointer;margin-top:4px}.filter-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--ink);cursor:pointer;box-shadow:0 1px 4px #0003}.filter-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--ink);cursor:pointer;border:none}.filter-slider-value{font-size:.85rem;font-weight:600;color:var(--ink)}.filter-bottom-sheet{position:fixed;bottom:0;left:0;right:0;z-index:150;background:#fff;border:1px solid var(--sand-300);border-bottom:0;border-radius:16px 16px 0 0;box-shadow:0 0 12px #1a17141a,0 -10px 32px #1a17141f}.filter-bottom-sheet.open{border-color:var(--sand-400);box-shadow:0 0 16px #1a171429,0 -16px 48px #1a17142e}.filter-bottom-sheet.open .filter-sheet-body{background:var(--sand-50);border-radius:0 0 15px 15px}.filter-sheet-handle{width:100%;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left}.filter-sheet-drag{width:36px;height:4px;border-radius:2px;background:var(--sand-300);margin:10px auto 6px}.filter-sheet-summary-row{display:flex;align-items:center;gap:8px;padding:0 16px 12px}.filter-bottom-sheet .filter-bar-title{font-size:.9rem;margin-bottom:0;white-space:nowrap}.filter-summary-text{flex:1;font-size:.78rem;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-sheet-chevron{font-size:.75rem;color:var(--ink-muted)}.filter-sheet-body{padding:4px 16px 24px;max-height:60vh;overflow-y:auto;border-top:1px solid var(--sand-100)}@media (min-width: 768px){.filter-bottom-sheet{max-width:min(720px,calc(100% - 2 * var(--gutter)));margin:0 auto}}@media (min-width: 1280px){.filter-bottom-sheet{display:none!important}}@media (max-width: 1279px){.overview-calendar-col{padding-bottom:140px}.finance-page{padding-bottom:150px}}@media (max-width: 767px){.day-icon{display:none}.drag-picker{left:var(--gutter);right:var(--gutter);transform:none;flex-wrap:wrap;gap:8px}}.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.hub-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px 26px;min-height:clamp(128px,14vw,148px);color:inherit;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.hub-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--sand-300)}.hub-card:focus-visible{outline:2px solid var(--sand-500);outline-offset:2px}.hub-card-title{font-family:"DM Serif Display",serif;font-size:1.35rem;line-height:1.2;margin-bottom:6px}.hub-card-hint{font-size:.95rem;color:var(--ink)}.hub-card-sub{font-size:.82rem;color:var(--ink-muted)}.hub-balance{font-family:"DM Serif Display",serif;font-size:1.5rem;line-height:1.1;margin:2px 0;color:var(--ink)}.hub-balance.is-up{color:var(--yes-text)}.hub-balance.is-down{color:var(--no-text)}.hub-card-go{position:absolute;right:20px;bottom:18px;color:var(--sand-400);font-size:1.1rem}@media (prefers-reduced-motion: reduce){.hub-card{transition:none}.hub-card:hover{transform:none}}.finance-main,.finance-tabs,.finance-header{max-width:940px;margin-left:auto;margin-right:auto}@media (min-width: 1280px){.finance-header{grid-column:1 / -1;max-width:none;margin-left:0;margin-right:0}.finance-tabs{grid-column:1;grid-row:2;max-width:none;margin:0}.finance-main{grid-column:1;grid-row:3;max-width:none;margin:0}.finance-page .tool-filter-col{grid-column:2;grid-row:3}}.expense-table-wrap{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}.expense-table{width:100%;border-collapse:collapse;font-size:.88rem;table-layout:fixed}.expense-table th:nth-child(1){width:15%}.expense-table th:nth-child(2){width:9%}.expense-table th:nth-child(3){width:22%}.expense-table th:nth-child(4){width:31%}.expense-table th:nth-child(5){width:15%}.expense-table th:nth-child(6){width:clamp(64px,8vw,92px)}.expense-table th{text-align:left;font-weight:600;font-size:.8rem;letter-spacing:.02em;color:var(--ink);padding:15px clamp(10px,1.4vw,16px);border-bottom:1px solid var(--sand-200)}.expense-table td{padding:14px clamp(10px,1.4vw,16px);border-bottom:1px solid var(--sand-100);vertical-align:top}.expense-table tbody tr:last-child td{border-bottom:0}.expense-table .num{text-align:left}.expense-table th:last-child,.expense-table td:last-child{text-align:right;padding-left:8px;padding-right:clamp(16px,1.6vw,20px)}.expense-table th:first-child,.expense-table td:first-child{padding-left:clamp(16px,1.6vw,20px)}.expense-title{display:block;font-weight:500}.expense-date{display:block;color:var(--ink-muted);font-size:.76rem;margin-top:2px;font-variant-numeric:tabular-nums}.expense-total{font-variant-numeric:tabular-nums}.expense-unassigned{display:block;color:var(--maybe-text);font-size:.72rem;margin-top:3px}.expense-people{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word}.person-chip{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap;background:transparent;border:1px solid var(--sand-200);border-radius:99px;padding:1px clamp(6px,.8vw,8px);margin:0 3px 3px 0;font-size:clamp(.72rem,.68rem + .1vw,.78rem);max-width:100%}.person-chip-name{overflow:hidden;text-overflow:ellipsis;min-width:0}.person-chip-amount{color:var(--sand-500);font-variant-numeric:tabular-nums}.person-chip.has-left{color:var(--ink-muted);border-style:dashed}.person-chip.is-muted{border-color:transparent;color:var(--ink-muted);font-style:italic}.expense-nobody{color:var(--sand-400)}.expense-tags{display:flex;flex-wrap:wrap;gap:5px}.expense-tag{background:var(--sand-100);color:var(--sand-500);border-radius:4px;padding:2px 7px;font-size:.72rem;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expense-total-row td{border-top:2px solid var(--sand-200);border-bottom:0;background:var(--sand-50);padding-top:16px;padding-bottom:16px}.expense-total-row .expense-title{font-weight:600}.expense-total-row .expense-total{font-weight:600;font-size:1rem}.expense-total-row .expense-people{-webkit-line-clamp:4;line-clamp:4}.btn-small{padding:5px 10px;font-size:.78rem}.expense-cards{display:none;flex-direction:column;gap:12px}.expense-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.expense-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.expense-card-head .expense-total{font-size:1.05rem;font-weight:500;white-space:nowrap}.expense-card-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,1.4vw,14px);font-size:.85rem}.expense-card-col{min-width:0}.expense-card-label{display:block;color:var(--ink-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.expense-card-split .expense-people{display:block;-webkit-line-clamp:none;line-clamp:none;overflow:visible}.expense-card-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--sand-100)}.expense-card-total{border:1px solid var(--sand-300);background:var(--sand-50)}.expense-card-total .expense-title{font-weight:600}.finance-fab{display:none;position:fixed;right:18px;bottom:84px;z-index:145;width:56px;height:56px;border-radius:50%;background:var(--ink);color:var(--sand-50);font-size:1.7rem;line-height:1;box-shadow:var(--shadow-lg)}.finance-fab:focus-visible{outline:2px solid var(--sand-500);outline-offset:3px}@media (max-width: 767px){.expense-table-wrap{display:none}.expense-cards{display:flex}.finance-fab{display:block}.finance-add{display:none}}.expense-form{max-width:520px;width:100%}.expense-form-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.expense-form-head h2{margin-bottom:0}.expense-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(4px,.6vw,6px);margin:18px 0 20px}.expense-step{display:flex;align-items:center;gap:8px;padding:8px 10px;background:none;border-radius:6px;border-bottom:2px solid var(--sand-200);color:var(--ink-muted);font-size:.8rem;text-align:left}.expense-step.active{color:var(--ink);border-bottom-color:var(--ink)}.expense-step.done{color:var(--ink);border-bottom-color:var(--sand-400)}.expense-step-index{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--sand-100);font-size:.7rem;font-weight:600;flex-shrink:0}.expense-step.active .expense-step-index{background:var(--ink);color:var(--sand-50)}.expense-form-body{min-height:240px}.expense-form-hint{color:var(--ink-muted);font-size:.85rem;margin-bottom:14px}.expense-form-actions-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.share-rows{display:flex;flex-direction:column;margin-bottom:12px}.share-row{display:grid;grid-template-columns:minmax(0,1fr) clamp(118px,12vw,150px) clamp(30px,3vw,34px);align-items:center;gap:8px;padding:6px 0}.share-row-name{display:flex;align-items:center;gap:6px;font-size:.9rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-row-amount{position:relative;display:flex;align-items:center}.share-row-amount .input{text-align:right;padding-left:46px;font-variant-numeric:tabular-nums}.share-row-currency{position:absolute;left:12px;color:var(--ink-muted);font-size:.76rem;pointer-events:none}.share-row-remove{padding:5px 8px;color:var(--ink-muted)}.balance-left-tag{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:4px;background:var(--sand-100);color:var(--sand-500);font-weight:600}.expense-running-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:18px;padding-top:14px;border-top:1px solid var(--sand-200);color:var(--ink-muted);font-size:.85rem}.expense-running-total strong{font-family:"DM Serif Display",serif;font-weight:400;font-size:1.5rem;color:var(--ink)}.expense-balance-hint{margin-top:16px;padding:11px 14px;border-radius:6px;font-size:.85rem}.expense-balance-hint.is-ok{background:var(--yes-light);color:var(--yes-text)}.expense-balance-hint.is-warn{background:var(--maybe-light);color:var(--maybe-text)}.expense-balance-hint.is-error{background:var(--no-light);color:var(--no-text)}.expense-form-error{color:var(--no-text);background:var(--no-light);border-radius:6px;padding:10px 14px;font-size:.85rem;margin-top:14px}.expense-form-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:22px}.expense-form-foot-right{display:flex;gap:10px;margin-left:auto}@media (max-width: 767px){.expense-form{max-width:none;border-radius:0;min-height:100vh}.expense-form-overlay{padding:0;align-items:stretch}.expense-step{flex-direction:column;align-items:flex-start;gap:4px;padding:8px 6px}.expense-step-label{font-size:.72rem}}.tool-filter-col .filter-sidebar{padding:18px 16px}.filter-date-range{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.filter-date-field{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--ink-muted)}.filter-date-field{flex:1 1 150px}.filter-date-field>span{width:34px;flex-shrink:0}.filter-date-field .input{flex:1;min-width:0;padding:8px 10px;font-size:.82rem}.tool-filter-col .filter-chip,.finance-sheet .filter-chip{font-size:.78rem;padding:5px 10px}.tool-filter-col .filter-controls .input,.finance-sheet .filter-controls .input{padding:9px 12px;font-size:.85rem}.tool-filter-col .input{background:#fff}.tool-filter-col .filter-divider{background:var(--sand-400)}.tool-filter-col .filter-section,.finance-sheet .filter-section{margin-bottom:0}.finance-count{color:var(--ink-muted);font-size:.82rem;margin:0 0 10px 2px}.finance-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.finance-header h1{margin-bottom:0}.finance-add{flex-shrink:0}.finance-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.finance-tabs .tab-bar{margin-bottom:14px}.stats{display:flex;flex-direction:column;gap:clamp(20px,2.4vw,32px)}.stats-scope{color:var(--ink-muted);font-size:.82rem;line-height:1.45;margin:-4px 0 12px}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,175px),1fr));gap:12px}.stat-tile{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(14px,1.4vw,18px);display:flex;flex-direction:column;gap:3px;min-width:0}.stat-tile.is-wide{grid-column:span 2}.stat-tile-label{font-size:.74rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}.stat-tile-value{font-size:clamp(1.3rem,1.05rem + 1vw,1.7rem);font-weight:600;line-height:1.15}.stat-tile-sub{font-size:.78rem;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-section-title,.bar-chart-title{font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:600;margin-bottom:10px}.stats-table-wrap{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}.stats-table{width:100%;border-collapse:collapse;font-size:.88rem}.stats-table th,.stats-table td{padding:11px clamp(10px,1vw,14px);text-align:left;border-bottom:1px solid var(--sand-100)}.stats-table tr:last-child td{border-bottom:none}.stats-table th{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);font-weight:600;white-space:nowrap}.stats-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.stats-lead{font-weight:600}.stats-person{display:inline-flex;flex-direction:column}.stats-person.has-left{color:var(--ink-muted)}.stats-person-note{font-size:.72rem;color:var(--ink-muted)}.stat-balance{font-variant-numeric:tabular-nums;color:var(--ink-muted)}.stat-balance.is-up{color:var(--yes-text);font-weight:600}.stat-balance.is-down{color:var(--no-text);font-weight:600}.stats-table-wrap{display:block}.stats-cards{display:none;flex-direction:column;gap:12px}@media (max-width: 767px){.stats-table-wrap{display:none}.stats-cards{display:flex}}.stats-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.stats-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;font-weight:600}.stats-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,120px),1fr));gap:10px 14px}.stats-card-grid dt{font-size:.72rem;color:var(--ink-muted)}.stats-card-grid dd{font-variant-numeric:tabular-nums;font-size:.92rem}.stats-note{margin-top:10px;font-size:.8rem;color:var(--ink-muted);line-height:1.5}.stats-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px;align-items:start}.bar-chart{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(14px,1.4vw,18px);min-width:0}.bar-chart-caption{font-size:.76rem;color:var(--ink-muted);margin:-6px 0 12px;line-height:1.4}.bar-list{display:flex;flex-direction:column;gap:11px}.bar-row{min-width:0}.bar-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:4px;font-size:.84rem}.bar-row-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-row-sub{color:var(--ink-muted);font-size:.76rem;margin-left:8px}.bar-row-value{flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--ink-muted)}.bar-fill{height:10px;background:var(--sand-500);border-radius:0 4px 4px 0}.bar-fill.is-muted{background:var(--sand-300)}.settle{display:flex;flex-direction:column;gap:clamp(20px,2.4vw,32px)}.settle-modes{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.settle-mode{padding:8px 14px;border-radius:99px;border:1px solid var(--sand-200);background:#fff;color:var(--ink-muted);font-size:.84rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.settle-mode:hover{border-color:var(--sand-400);color:var(--ink)}.settle-mode.active{background:var(--ink);border-color:var(--ink);color:#fff}.settle-hint{font-size:.8rem;color:var(--ink-muted);line-height:1.45;margin-bottom:14px}.settle-hub{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px;font-size:.86rem;color:var(--ink-muted)}.settle-hub .input{width:auto;min-width:180px;max-width:100%}.settle-list{list-style:none;display:flex;flex-direction:column;gap:8px}.settle-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:12px clamp(12px,1.4vw,16px);transition:opacity .15s}.settle-row.is-done{opacity:.55}.settle-row.is-done .settle-names{text-decoration:line-through}.settle-check{display:inline-flex;align-items:center;cursor:pointer}.settle-check input{width:18px;height:18px;accent-color:var(--ink);cursor:pointer}.settle-check-static{display:inline-block;width:18px;text-align:center;color:var(--yes-text)}.settle-names{flex:1 1 160px;min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;font-size:.92rem}.settle-arrow{color:var(--ink-muted);font-size:.85em}.settle-amount{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.settle-count{margin-top:10px;font-size:.8rem;color:var(--ink-muted);line-height:1.45}.settle-outstanding{margin-top:18px;padding:14px clamp(12px,1.4vw,16px);background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius)}.settle-outstanding-title{font-family:DM Sans,sans-serif;font-size:.86rem;font-weight:600;margin-bottom:10px}.settle-balance-list{list-style:none;display:flex;flex-direction:column;gap:6px;font-size:.86rem}.settle-balance-list li{display:flex;justify-content:space-between;gap:12px}.settle-balance{font-variant-numeric:tabular-nums;white-space:nowrap}.settle-balance.is-up{color:var(--yes-text)}.settle-balance.is-down{color:var(--no-text)}.settle-form-row{display:block;box-shadow:var(--shadow-lg)}.settle-form-fields{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.settle-form-fields .input{flex:1 1 190px;width:auto;min-width:0}.settle-form-fields .settle-form-amount{flex:0 1 108px;font-variant-numeric:tabular-nums}.settle-form-actions{display:flex;gap:8px;margin-left:auto}.settle-form-hint{margin-top:10px;font-size:.78rem;color:var(--ink-muted);line-height:1.45}.settle-form-error{margin-top:10px;font-size:.8rem;color:var(--no-text)}.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}.driving-page .page-header{align-items:flex-start}.driving-actions{display:flex;gap:10px;flex-shrink:0}.driving-scope{font-size:.82rem;color:var(--ink-muted);line-height:1.5;margin-bottom:20px;max-width:60ch}.driving-editor{display:flex;flex-direction:column;gap:10px}.driving-section-title{font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:600;margin-top:14px}.driving-hint{font-size:.78rem;color:var(--ink-muted);line-height:1.45}.driving-warn{font-size:.82rem;color:var(--maybe-text);line-height:1.5;margin-top:10px}.driving-amount{font-variant-numeric:tabular-nums;white-space:nowrap}.driving-people{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.driving-person,.driving-add-person{display:inline-flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius);padding:4px 4px 4px 8px}.driving-person-name{border:0;background:none;padding:4px 0;width:9ch;font-size:.9rem}.driving-add-person .input{border:0;background:none;padding:4px 0;width:11ch;font-size:.9rem}.driving-legs{list-style:none;display:flex;flex-direction:column;gap:12px}.driving-leg{background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(12px,1.4vw,18px);display:flex;flex-direction:column;gap:14px}.driving-leg-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.driving-leg-head .input{flex:1 1 140px;width:auto;min-width:0}.driving-arrow{color:var(--ink-muted)}.driving-leg-index{flex-shrink:0;width:22px;height:22px;border-radius:99px;background:var(--sand-100);color:var(--ink-muted);font-size:.75rem;display:inline-flex;align-items:center;justify-content:center}.driving-fields{display:flex;flex-wrap:wrap;gap:10px}.driving-field{flex:1 1 150px;display:flex;flex-direction:column;gap:4px;min-width:0}.driving-field>span:first-child{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);font-weight:600}.driving-input-unit{display:flex;align-items:center;gap:6px;border:1px solid var(--sand-200);border-radius:var(--radius);background:var(--sand-50);padding-right:10px}.driving-input-unit .input{border:0;background:none;flex:1 1 auto;min-width:0}.driving-input-unit>span{font-size:.78rem;color:var(--ink-muted);white-space:nowrap}.driving-block{display:flex;flex-direction:column;gap:8px}.driving-label{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);font-weight:600}.driving-chips{display:flex;flex-wrap:wrap;gap:6px}.driving-chip{border:1px solid var(--sand-200);background:#fff;color:var(--ink-muted);border-radius:99px;padding:4px 12px;font-size:.82rem;transition:background .12s,color .12s,border-color .12s}.driving-chip:hover{border-color:var(--sand-400);color:var(--ink)}.driving-chip.is-on{background:var(--ink);border-color:var(--ink);color:#fff}.driving-extras{list-style:none;display:flex;flex-direction:column;gap:10px}.driving-extra{border-left:2px solid var(--sand-200);padding-left:10px;display:flex;flex-direction:column;gap:6px}.driving-extra-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.driving-extra-row .input{flex:1 1 160px;width:auto;min-width:0}.driving-extra-row .driving-extra-amount{flex:0 1 110px;font-variant-numeric:tabular-nums}.driving-extra-who{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.driving-leg-foot{border-top:1px solid var(--sand-100);padding-top:10px;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;font-size:.84rem}.driving-leg-fuel{font-weight:600;font-variant-numeric:tabular-nums}.driving-leg-shares{color:var(--ink-muted);font-variant-numeric:tabular-nums}.driving-leg-warn{color:var(--maybe-text);flex-basis:100%}.driving-add-leg{align-self:flex-start;margin-top:4px}.driving-receipt{margin-top:clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:16px}.driving-receipt-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.driving-receipt-head h2{font-size:1.5rem;margin-bottom:4px}.driving-table-wrap{background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius);overflow-x:auto}.driving-table td:last-child,.driving-table th:last-child{text-align:right}.driving-table .driving-amount,.driving-table th,.driving-table td{white-space:nowrap}.driving-table tfoot td{border-top:2px solid var(--sand-200);font-weight:600;border-bottom:0}.driving-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px}.driving-card{background:#fff;border:1px solid var(--sand-200);border-radius:var(--radius);padding:clamp(12px,1.4vw,18px);display:flex;flex-direction:column;gap:12px}.driving-card-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.driving-card-head h3{font-size:1.25rem}.driving-card-head-right{display:inline-flex;align-items:baseline;gap:10px}.driving-card-total{font-size:1.1rem;font-weight:600}.driving-card-totals{display:flex;flex-wrap:wrap;gap:6px 20px;padding-bottom:12px;border-bottom:1px solid var(--sand-100)}.driving-card-totals div{display:flex;flex-direction:column;gap:2px}.driving-card-totals dt{font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);font-weight:600}.driving-card-totals dd{font-size:.95rem;font-variant-numeric:tabular-nums}.driving-card-legs{list-style:none;display:flex;flex-direction:column;gap:10px}.driving-card-leg{display:flex;flex-direction:column;gap:2px}.driving-card-leg-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:.9rem}.driving-card-leg-route{font-weight:500}.driving-card-extras{list-style:none;margin-left:12px;border-left:2px solid var(--sand-200);padding-left:10px;display:flex;flex-direction:column;gap:2px;font-size:.82rem;color:var(--ink-muted)}.driving-card-extras li{display:flex;justify-content:space-between;gap:10px}@media print{.topbar,.no-print{display:none!important}html,body{height:auto;min-height:0}body{background:#fff}.page{padding-top:0;padding-bottom:0}.driving-receipt{margin-top:0}.driving-page .page-header,.driving-receipt-head,.driving-table-wrap{display:none}.driving-receipt.is-print-one .driving-card:not(.is-print-target){display:none}.driving-card{box-shadow:none;border:1px solid #999}.driving-card{break-inside:avoid}@page{size:A4 portrait;margin:12mm}}
