:root{--bg:#f7f8f7;--paper:#fff;--ink:#203332;--muted:#626f6d;--teal:#195e56;--pale:#eaf2ef;--line:#dce3df;--rust:#a03628;--radius:9px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit}svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #548bca;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1{font-size:23px;line-height:1.3;letter-spacing:-.5px}h2{font-size:16px;line-height:1.4}h3{font-size:14px}p{overflow-wrap:anywhere}.subtle,.field-help{color:var(--muted)}.visually-hidden,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link:focus{position:fixed;top:10px;left:10px;padding:10px;background:white;z-index:100}
.button,.link-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 14px;border:1px solid transparent;border-radius:7px;text-decoration:none;font-weight:550;line-height:1.3;background:transparent;color:var(--ink)}.button.primary{background:var(--teal);border-color:var(--teal);color:white}.button.primary:hover{background:#104c45}.button.secondary{background:var(--paper);border-color:var(--line)}.button.secondary:hover,.button.ghost:hover,.link-button:hover{background:var(--pale)}.button.small{font-size:13px;padding:7px 11px}.button.danger{background:var(--rust);color:white}.link-button{padding:8px;color:var(--teal);font-size:13px}.icon-button{width:44px;min-width:44px;padding:0;font-size:25px}.icon-button:hover{background:var(--pale)}.danger-text{color:var(--rust)}.full{width:100%}
.app-header{background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{max-width:1000px;margin:auto;display:flex;align-items:center;gap:24px;min-height:68px;padding:10px 24px}.brand{display:flex;align-items:center;gap:7px;text-decoration:none;font-size:18px;font-weight:650;letter-spacing:-.5px}.brand-mark{color:var(--teal);font-size:30px;line-height:1}.trip-selector{min-width:0;flex:1}.trip-selector select{width:auto;max-width:100%;min-height:44px;border:0;background:transparent;padding:8px 26px 8px 8px;color:var(--ink);font-size:14px;font-weight:550;text-overflow:ellipsis}.space-menu{position:relative}.space-menu summary{list-style:none;font-size:13px;cursor:pointer}.space-menu summary::-webkit-details-marker{display:none}.menu-items{position:absolute;right:0;top:calc(100% + 5px);min-width:190px;z-index:10;padding:6px;background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 25px #20333215}.menu-items button,.menu-items a{display:flex;width:100%;align-items:center;min-height:44px;text-align:left;padding:9px 12px;border:0;background:transparent;border-radius:5px;text-decoration:none;color:var(--ink)}.menu-items button:hover,.menu-items a:hover{background:var(--pale)}
.workspace{max-width:1000px;margin:auto;padding:0 24px}.trip-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0 18px}.trip-caption{min-width:0;color:var(--muted);font-size:13px}.trip-caption>span{display:block}.sync-status{font-size:11px;margin-top:3px}.quick-actions{display:flex;gap:8px;flex:none}.nav{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-bottom:24px}.nav-item{position:relative;min-height:46px;padding:10px 2px;border:0;background:transparent;color:var(--muted);font-weight:550}.nav-item.active{color:var(--teal)}.nav-item.active:after{position:absolute;content:'';height:2px;background:var(--teal);bottom:-1px;left:0;right:0}.nav-item:hover{color:var(--ink)}main#main:focus{outline:none}.page-heading,.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.page-heading p{color:var(--muted);font-size:13px;margin-top:3px}.heading-actions,.inline-actions{display:flex;gap:8px;align-items:center}.app-footer{padding:28px 0 18px;font-size:11px;color:var(--muted)}.eyebrow{font-size:12px;color:var(--muted);margin-bottom:4px}
.balance-summary{background:var(--pale);border:1px solid #d4e4dc;border-radius:var(--radius);margin-bottom:18px}.balance-summary>summary{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 15px;min-height:48px;cursor:pointer;list-style:none}.balance-summary>summary::-webkit-details-marker{display:none}.balance-lines{display:flex;flex-wrap:wrap;gap:5px 20px;min-width:0}.balance-lines>span{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:baseline}.balance-lines strong{font-variant-numeric:tabular-nums}.disclosure-hint{display:flex;align-items:center;gap:6px;color:var(--teal);font-size:12px;flex:none}.chevron{display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 3px 3px}.balance-summary[open] .chevron,details[open]>summary>.chevron{transform:rotate(225deg);margin-bottom:0}.balance-details{border-top:1px solid #d4e4dc;padding:12px 15px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.balance-row{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin:4px 0}.balance-details h3{font-size:12px;margin-bottom:8px}.balance-foot{padding:0 15px 12px;font-size:12px;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:10px}.notice{padding:10px 13px;border:1px solid var(--line);border-radius:var(--radius);margin:12px 0;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;background:var(--paper)}.error-notice{border-color:#d3a39b;color:var(--rust)}.upload-status{flex-wrap:wrap}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.filter-group{display:flex;gap:3px}.filter{background:transparent;border:0;border-radius:6px;min-height:40px;padding:8px 11px;color:var(--muted);font-size:13px}.filter.active{background:#e4eae6;color:var(--ink);font-weight:550}.toolbar-note{font-size:12px;color:var(--muted)}.list{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.list-row{display:flex;gap:12px;align-items:center;padding:11px 15px;border-bottom:1px solid var(--line);min-width:0}.list-row:last-child{border-bottom:0}.row-main{min-width:0;flex:1}.row-title{font-size:14px;font-weight:550;overflow-wrap:anywhere}.row-button{display:block;background:none;border:0;padding:4px 0;min-height:32px;color:var(--ink);text-align:left;font-weight:550;line-height:1.4;overflow-wrap:anywhere}.row-button:hover{color:var(--teal);text-decoration:underline}.row-meta{color:var(--muted);font-size:12px;margin-top:2px;overflow-wrap:anywhere}.row-amount{font-size:14px;font-weight:550;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.row-amount small{display:block;color:var(--muted);font-size:11px;font-weight:400}.row-actions{display:flex;align-items:center;flex:none}.row-actions .link-button{color:var(--muted)}.tag{font-size:11px;color:var(--muted)}.tag.pending{color:#946214}.section-gap{margin-top:26px}.compact-details{border-top:1px solid var(--line);margin-top:22px}.compact-details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;cursor:pointer;min-height:48px;font-weight:550}.compact-details>summary::-webkit-details-marker{display:none}.compact-details .list{margin-top:8px}.empty-state{border:1px dashed var(--line);border-radius:var(--radius);padding:28px 20px;text-align:center;color:var(--muted)}.empty-state h3{color:var(--ink);font-size:15px}.empty-state p{font-size:13px;margin-top:5px}.empty-state .button{margin-top:14px}
.task-check{position:relative;display:grid;place-items:center;width:44px;height:44px;min-width:44px;background:transparent;border:0;color:white;font-size:13px;isolation:isolate;margin:-5px -4px -5px -8px}.task-check:before{content:'';position:absolute;inset:12px;border:1.5px solid #a3b3ac;border-radius:5px;z-index:-1}.task-check[aria-checked=true]:before{border-color:var(--teal);background:var(--teal)}.task-check:hover:before{border-color:var(--teal)}.done .row-title{color:var(--muted);text-decoration:line-through}.notes-text{white-space:pre-wrap;font-size:13px;color:var(--muted);padding:0 0 14px;overflow-wrap:anywhere}.note-entry{border-bottom:1px solid var(--line)}.note-entry:last-child{border:0}.note-entry>summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;padding:12px 0;min-height:44px}.note-entry>summary strong{flex:1;font-size:14px}.note-body{padding-bottom:10px}.notes-section .section-heading{margin-bottom:4px}
.file-thumb{display:grid;place-items:center;flex:none;width:40px;height:44px;border-radius:4px;background:var(--pale);text-decoration:none;color:var(--teal);font-size:10px;overflow:hidden}.file-thumb img{width:100%;height:100%;object-fit:cover}.file-name{display:inline-block;padding:4px 0;text-decoration:none;overflow-wrap:anywhere}.file-name:hover{text-decoration:underline}.status-toggle{display:block;min-height:32px;padding:4px 0;border:0;background:transparent;color:#946214;font-size:12px}.status-toggle[aria-pressed=true]{color:var(--muted)}.status-toggle:hover{text-decoration:underline}.files-help{font-size:12px;color:var(--muted);margin:12px 0}.files-help summary{min-height:44px;cursor:pointer;padding:12px 0}.files-help p{max-width:600px}.files-help .inline-actions{margin:5px 0}.file-note{white-space:pre-wrap;font-size:13px;color:var(--muted)}
.trip-facts{color:var(--muted);font-size:13px;margin:4px 0 20px}.trip-note{font-size:13px;white-space:pre-wrap;margin-bottom:20px;max-width:680px}.flight-entry{border-bottom:1px solid var(--line)}.flight-entry:last-child{border:0}.flight-entry>summary{display:grid;grid-template-columns:105px 1fr auto 12px;align-items:center;gap:16px;padding:14px 15px;cursor:pointer;list-style:none;min-height:64px}.flight-entry>summary::-webkit-details-marker{display:none}.flight-date{font-size:12px;color:var(--muted)}.flight-route{font-weight:600;letter-spacing:.3px}.flight-route span{font-weight:400;color:var(--muted);padding:0 7px}.flight-times{font-size:13px;font-variant-numeric:tabular-nums}.flight-detail{padding:0 15px 14px}.flight-airports{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:12px 0;border-top:1px solid var(--line)}.airport>span,.airport>strong{display:block;font-size:13px}.airport>span{color:var(--muted)}.flight-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted)}.muted-note{font-size:12px;color:var(--muted);margin:8px 0 16px}
dialog{border:1px solid var(--line);padding:22px;background:var(--paper);color:var(--ink);border-radius:12px;width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 32px);box-shadow:0 16px 80px #102d3230;overflow-y:auto}dialog::backdrop{background:#122a2b66}.dialog-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:20px}.dialog-header h2{font-size:21px;letter-spacing:-.3px}.dialog-header .icon-button{margin:-9px -10px 0 0}.field{margin-bottom:14px;min-width:0}.field label,.login-card label{display:block;font-size:13px;font-weight:550;margin-bottom:5px}.field input,.field select,.field textarea{width:100%;max-width:100%;min-width:0;border:1px solid #c5d0ca;background:white;border-radius:6px;padding:9px 10px;color:var(--ink);min-height:44px;font-size:16px}.field textarea{resize:vertical;min-height:80px}.field input[type=file]{font-size:13px;padding:8px}.field input[type=file]::file-selector-button{min-height:36px;margin-right:8px;border:1px solid var(--line);border-radius:5px;background:var(--pale)}.field-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 12px}.amount-grid{grid-template-columns:minmax(0,1fr) 105px}.flight-grid{grid-template-columns:80px minmax(0,1fr)}.money-fields{padding:0;margin:0;border:0;min-width:0}.money-fields legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.choice-field{padding:0;margin:0 0 14px;border:0;min-width:0}.choice-field legend{position:static;width:auto;height:auto;clip:auto;overflow:visible;font-size:13px;font-weight:550;margin-bottom:7px}.choices{display:flex;gap:6px;flex-wrap:wrap}.choice{position:relative;flex:1;min-width:70px}.choice input{position:absolute;opacity:0;width:1px;height:1px}.choice span{min-height:44px;display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid #c5d0ca;border-radius:6px;padding:8px;font-size:13px;cursor:pointer}.choice input:checked+span{background:var(--pale);color:var(--teal);border-color:var(--teal);font-weight:600}.choice-check{display:none;font-style:normal;font-size:12px}.choice input:checked+span .choice-check{display:inline}.choice input:focus-visible+span{outline:3px solid #548bca;outline-offset:2px}.check-label{display:flex;align-items:center;gap:9px;min-height:44px;font-size:13px}.check-label input{width:18px;height:18px;accent-color:var(--teal)}.form-details{margin:4px 0 8px;border-top:1px solid var(--line)}.form-details>summary{min-height:44px;padding:11px 0;font-size:13px;color:var(--muted);cursor:pointer}.form-details[open]>summary{margin-bottom:4px}.form-subtitle{font-size:14px;margin:8px 0 12px}.field-help,.money-explainer{font-size:12px;margin:4px 0 12px}.form-error{color:var(--rust);font-size:13px;white-space:pre-wrap;margin:8px 0}.form-error:empty{display:none}.dialog-actions{position:sticky;bottom:-22px;display:flex;justify-content:flex-end;align-items:center;gap:8px;background:var(--paper);padding:14px 0 0;margin-top:16px;border-top:1px solid var(--line);z-index:2}.action-spacer{flex:1}.summary-box{padding:10px;background:var(--pale);font-size:13px;margin-bottom:14px;border-radius:6px}.upload-progress{font-size:13px;color:var(--teal);white-space:pre-wrap}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:11px 17px;border-radius:8px;background:var(--teal);color:white;box-shadow:0 4px 24px #14292a30;z-index:50;max-width:calc(100vw - 28px);font-size:13px;text-align:center}.toast.error{background:var(--rust)}.login-screen{min-height:100dvh;display:grid;place-content:center;padding:70px 24px}.back-site{position:absolute;top:25px;left:24px;font-size:13px;color:var(--muted);text-decoration:none}.login-card{width:min(340px,calc(100vw - 48px))}.login-card h1{font-size:30px;margin:8px 0}.login-card>.subtle{margin-bottom:24px}.password-field{display:flex;border:1px solid #c5d0ca;border-radius:7px;background:white}.password-field input{flex:1;min-width:0;width:100%;padding:11px;border:0;border-radius:7px;font-size:16px;background:transparent}.reveal{border:0;background:transparent;color:var(--muted);padding:0 12px;min-height:44px;font-size:12px}.login-card .full{margin-top:14px}.login-status{font-size:12px;color:var(--muted);margin-top:12px}
@media(max-width:600px){.header-inner{padding:8px 16px;gap:10px;min-height:60px}.brand{font-size:16px}.brand-mark{font-size:25px}.trip-selector select{font-size:13px;padding-left:4px}.space-menu summary{padding:8px;gap:4px;font-size:12px}.workspace{padding:0 16px}.trip-toolbar{align-items:stretch;flex-direction:column;gap:12px;padding:14px 0 10px}.trip-caption{display:flex;gap:10px;align-items:baseline;justify-content:space-between;font-size:12px}.trip-caption>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sync-status{margin:0;white-space:nowrap}.quick-actions .button{flex:1}.nav{gap:0;justify-content:space-between;margin-bottom:20px;position:sticky;top:0;background:var(--bg);z-index:5}.nav-item{flex:1;font-size:13px}.nav-item.active:after{left:15%;right:15%}.page-heading{margin-bottom:13px}.page-heading h1{font-size:21px}.page-heading p{font-size:12px}.balance-summary>summary{padding:10px 12px;align-items:flex-start}.balance-lines{display:grid;gap:5px;font-size:12px}.disclosure-hint{padding-top:1px;font-size:11px}.balance-details{grid-template-columns:1fr}.balance-foot{display:block}.filter{padding:8px 10px;font-size:12px}.toolbar-note{font-size:11px}.list-row{padding:9px 11px;gap:9px}.row-title{font-size:13px}.row-amount{font-size:13px}.row-actions .link-button{padding:8px 4px;font-size:12px}.row-meta{font-size:11px}.file-thumb{width:32px;height:40px}.flight-entry>summary{grid-template-columns:1fr auto 10px;gap:4px 10px;padding:11px 12px}.flight-date{grid-column:1/-1}.flight-route{font-size:14px}.flight-times{font-size:12px}.flight-airports{gap:12px}.flight-bottom{flex-wrap:wrap}.notice{font-size:12px;flex-wrap:wrap}.inline-actions{flex-wrap:wrap}.field-grid{gap:0 10px}.dialog-actions{padding-bottom:8px}dialog{padding:20px;max-height:calc(100dvh - 24px)}.dialog-actions{bottom:-20px}.dialog-header h2{font-size:20px}.app-footer{padding-top:22px}}
@media(max-width:360px){.header-inner{gap:7px}.brand>span:last-child{display:none}.workspace{padding:0 12px}.trip-caption{font-size:11px}.sync-status{font-size:10px}.quick-actions .button{font-size:13px;padding:9px 10px}.toolbar-note{display:none}.row-amount{font-size:12px}.row-meta{font-size:11px}.field-grid:not(.amount-grid){grid-template-columns:1fr}.balance-foot{padding-bottom:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
