:root{--bg: #f4f6f8;--surface: #ffffff;--text: #1a2332;--muted: #5c6b7a;--border: #d8e0e8;--primary: #0f4c81;--primary-hover: #0b3a63;--success: #0f7b4a;--success-bg: #e8f7ef;--danger: #b42318;--danger-bg: #fdecec;--warning: #9a6700;--warning-bg: #fff7e6;--shadow: 0 10px 30px rgba(15, 76, 129, .08);--radius: 14px}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--text);background:radial-gradient(circle at top left,rgba(15,76,129,.08),transparent 35%),var(--bg);line-height:1.5}.page{min-height:100vh;display:flex;flex-direction:column}.header{background:linear-gradient(135deg,#0f4c81,#1a6b9a);color:#fff;padding:2.5rem 1.25rem 3rem}.header-inner{max-width:960px;margin:0 auto}.eyebrow{margin:0 0 .35rem;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;opacity:.85}.header h1{margin:0;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.15}.subtitle{margin:.85rem 0 0;max-width:52rem;opacity:.92}.main{max-width:960px;width:100%;margin:-1.75rem auto 2rem;padding:0 1.25rem;flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;margin-bottom:1rem}.upload-zone{padding:2.5rem 1.5rem;text-align:center;border:2px dashed transparent;transition:border-color .15s,background .15s;cursor:pointer}.upload-zone.dragover{border-color:var(--primary);background:#0f4c810a}.link-button{background:none;border:none;color:var(--primary);font:inherit;cursor:pointer;text-decoration:underline;padding:0}.options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1rem}.field-wide{grid-column:1 / -1}.preview-table th.col-exit,.preview-table td.col-exit{background:#0f4c811a;box-shadow:inset 3px 0 0 var(--primary)}.preview-table th.col-entry,.preview-table td.col-entry{background:#0f7b4a1a;box-shadow:inset 3px 0 0 var(--success)}.preview-table td{font-size:.88rem;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field{display:flex;flex-direction:column;gap:.35rem;font-size:.92rem}.field span{font-weight:600}.field select,.field input{padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;font:inherit;background:#fff}.primary-button,.secondary-button{border:none;border-radius:8px;padding:.7rem 1rem;font:inherit;font-weight:600;cursor:pointer}.primary-button{background:var(--primary);color:#fff}.primary-button:hover{background:var(--primary-hover)}.secondary-button{background:#fff;color:var(--primary);border:1px solid var(--border)}.message{padding:.85rem 1rem;border-radius:10px;margin-bottom:.5rem}.message.error{background:var(--danger-bg);color:var(--danger)}.message.warning{background:var(--warning-bg);color:var(--warning)}.message.success{background:var(--success-bg);color:var(--success)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1rem}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow)}.summary-card .label{color:var(--muted);font-size:.85rem;margin:0}.summary-card .value{margin:.25rem 0 0;font-size:1.6rem;font-weight:700}.summary-card.pass .value{color:var(--success)}.summary-card.fail .value{color:var(--danger)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.section-header h2,.card h2{margin:0;font-size:1.15rem}.section-intro{margin:0 0 .75rem;color:var(--muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.95rem}th,td{border-bottom:1px solid var(--border);padding:.65rem .75rem;text-align:left;vertical-align:top}th{background:var(--bg);font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}tbody tr:hover{background:#0f4c8108}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.8rem;font-weight:700}.badge.pass{background:var(--success-bg);color:var(--success)}.badge.fail{background:var(--danger-bg);color:var(--danger)}.chart-section{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}.chart-empty{margin:0 0 .75rem;color:var(--muted);font-size:.9rem}.chart-scroll{position:relative;overflow-x:auto;overflow-y:hidden;border:1px solid var(--border);border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f7fafc)}.rolling-chart{display:block}.chart-grid{stroke:#e6edf3;stroke-width:1}.chart-axis{stroke:#c5d0db;stroke-width:1}.chart-axis-label{fill:var(--muted);font-size:11px}.chart-axis-title{fill:var(--text);font-size:12px;font-weight:600}.chart-limit-line{stroke:var(--warning);stroke-width:1.5;stroke-dasharray:6 4}.chart-limit-label{fill:var(--warning);font-size:11px;font-weight:600}.chart-bar-pass{fill:#0f7b4ac7}.chart-bar-fail{fill:#b42318d1}.chart-bar-pass:hover,.chart-bar-fail:hover,.chart-bar-projected-pass:hover,.chart-bar-projected-fail:hover{opacity:.85}.chart-bar-projected-pass{fill:#0f7b4a8c;stroke:#0f7b4ae6;stroke-width:.5;stroke-dasharray:2 1.5}.chart-bar-projected-fail{fill:#b423188c;stroke:#b42318e6;stroke-width:.5;stroke-dasharray:2 1.5}.chart-today-line{stroke:var(--primary);stroke-width:2}.chart-zero-line{stroke:var(--success);stroke-width:2;stroke-dasharray:4 3}.chart-marker-label{font-size:10px;font-weight:700}.chart-marker-label.chart-today-line{fill:var(--primary)}.chart-marker-label.chart-zero-line{fill:var(--success)}.chart-footnote{margin:.75rem 0 0;color:var(--muted);font-size:.85rem}.chart-tooltip{position:fixed;pointer-events:none;background:#1a2332eb;color:#fff;padding:.35rem .55rem;border-radius:6px;font-size:.8rem;max-width:320px;white-space:normal;z-index:1000;transform:translate(0)}.chart-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.75rem;color:var(--muted);font-size:.85rem}.legend-item{display:inline-flex;align-items:center;gap:.4rem}.legend-swatch{width:14px;height:14px;border-radius:3px;display:inline-block}.legend-swatch.pass{background:#0f7b4ac7}.legend-swatch.fail{background:#b42318d1}.legend-swatch.limit{background:transparent;border:2px dashed var(--warning);height:0;width:18px}.legend-swatch.projected{background:#0f7b4a61}.legend-swatch.today{background:transparent;border:2px solid var(--primary);width:2px;height:14px;border-radius:0}.legend-swatch.zero{background:transparent;border:2px dashed var(--success);width:18px;height:0}.footer{padding:1rem 1.25rem 2rem;text-align:center;color:var(--muted);font-size:.9rem}.footer a{color:var(--primary)}@media(max-width:640px){.header{padding-top:2rem}.upload-zone{padding:2rem 1rem}}.page.centered,.page .centered{display:grid;place-items:center;min-height:100vh}.main.narrow{max-width:480px}.header.compact{padding-bottom:2rem}.header-row{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.header-actions{display:flex;gap:.75rem;align-items:center;flex-shrink:0}.user-chip{background:#ffffff24;border:1px solid rgba(255,255,255,.25);padding:.45rem .75rem;border-radius:999px;font-size:.85rem}.secondary-button.light{background:#ffffff1f;color:#fff;border-color:#ffffff59}.two-column{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.two-column .card{margin-bottom:0}.stack-form{display:grid;gap:.85rem}.inline-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;align-items:end}.upload-label{display:grid;gap:.35rem;cursor:pointer}.upload-label span{color:var(--muted);font-size:.9rem}.upload-config{margin-top:1rem;display:grid;gap:1rem}.badge.neutral{background:var(--bg);color:var(--muted)}.secondary-button.danger,.link-button.danger-text{color:var(--danger)}.secondary-button.danger{border-color:#b4231859;background:var(--danger-bg)}.secondary-button.danger:hover:not(:disabled){background:#f8d7d4}.tracker-table .date-input{border:1px solid var(--border);border-radius:.4rem;padding:.35rem .5rem;font:inherit;background:#fff;min-width:9.5rem}.tracker-table .date-input:focus{outline:2px solid rgba(37,99,235,.25);border-color:var(--accent)}.row-excluded{opacity:.7}.exclude-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--muted)}.exclude-toggle input{margin:0}.destination-cell,.notes-cell{max-width:12rem;overflow-wrap:anywhere}.notes-input{width:100%;border:1px solid var(--border);border-radius:.4rem;padding:.5rem .6rem;font:inherit;font-size:.9rem;background:#fff;resize:vertical;min-height:4.5rem}.notes-input:focus{outline:2px solid rgba(37,99,235,.25);border-color:var(--accent)}.exclude-badge{display:inline-flex;font-size:.75rem;font-weight:600;color:var(--warning);background:var(--warning-bg);border-radius:.35rem;padding:.15rem .4rem;white-space:nowrap}.row-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:.4rem;justify-content:flex-end;min-width:max-content}.secondary-button.compact{padding:.35rem .65rem;font-size:.8rem;font-weight:600;white-space:nowrap;flex-shrink:0}.tracker-table td:last-child{white-space:nowrap;width:1%}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:1rem;background:#0f203073}.modal-dialog{width:min(100%,34rem);max-height:min(90vh,44rem);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.15rem 1.25rem 1.25rem}.modal-dialog-wide{width:min(100%,40rem);max-height:min(92vh,52rem)}.doc-count-badge{display:inline-flex;font-size:.75rem;font-weight:600;color:var(--primary);background:#0f4c8114;border-radius:.35rem;padding:.15rem .4rem;white-space:nowrap}.trip-docs-panel{display:flex;flex-direction:column;gap:.65rem;padding-top:.35rem;border-top:1px solid var(--border)}.trip-docs-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.trip-docs-title{margin:0;font-size:.92rem;font-weight:600}.trip-docs-empty{margin:0;color:var(--muted);font-size:.9rem}.trip-docs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.trip-docs-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.45rem .55rem;border:1px solid var(--border);border-radius:.5rem;background:#0f4c8105}.trip-docs-meta{min-width:0;display:flex;flex-direction:column;gap:.1rem}.trip-docs-name{font-size:.88rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trip-docs-size{font-size:.78rem;color:var(--muted)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.modal-header h2{margin:0;font-size:1.15rem}.modal-form{display:flex;flex-direction:column;gap:1rem}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1rem}.modal-field-full{grid-column:1 / -1}.modal-readonly-value{margin:.2rem 0 0;font-size:1.05rem;font-weight:600}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;flex-wrap:wrap}@media(max-width:640px){.modal-grid{grid-template-columns:1fr}}.row-number{color:var(--muted);width:2rem}.save-status{font-size:.85rem;flex-shrink:0}.save-status.saving{color:var(--muted)}.save-status.saved{color:var(--success)}.save-status.unsaved{color:var(--warning)}.options-actions{display:flex;align-items:center;gap:1rem;margin-top:1rem}.field-hint{font-size:.8rem;color:var(--muted);line-height:1.4}.dashboard-card{padding-bottom:.5rem}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.dashboard-actions{display:flex;gap:.5rem;flex-shrink:0;flex-wrap:wrap}.dashboard-actions .secondary-button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.export-menu{position:relative}.export-dropdown{position:absolute;top:calc(100% + .35rem);right:0;z-index:20;min-width:10.5rem;display:flex;flex-direction:column;gap:.15rem;padding:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:.6rem;box-shadow:var(--shadow)}.export-dropdown button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;text-align:left;padding:.55rem .7rem;border-radius:.4rem;font:inherit;font-size:.9rem;color:var(--text);cursor:pointer}.export-dropdown button:hover:not(:disabled){background:#0f4c8114}.export-dropdown button:disabled{opacity:.55;cursor:not-allowed}.export-error{position:absolute;top:calc(100% + .35rem);right:0;margin:0;white-space:nowrap;font-size:.8rem;color:var(--danger)}.dashboard-panel{border:1px solid var(--border);border-radius:.75rem;background:var(--bg);padding:1rem;margin-bottom:1rem}.add-trip-form .form-actions,.upload-config .form-actions{display:flex;gap:.5rem;align-items:end}.empty-table-cell{text-align:center;color:var(--muted);padding:2rem 1rem!important}.chart-card{margin-bottom:1rem}.chart-empty{margin:0;padding:2.5rem 1rem;text-align:center;color:var(--muted);background:var(--bg);border-radius:.75rem;border:1px dashed var(--border)}.restoration-highlight{margin-bottom:1rem}.restoration-gain{color:var(--success);font-weight:600}.summary-value-compact{font-size:1rem!important;line-height:1.35}@media(max-width:640px){.dashboard-header{flex-direction:column}.dashboard-actions{width:100%}}.auth-card .link-button{margin-top:.75rem}.primary-button:disabled,.secondary-button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:640px){.header-row{flex-direction:column}.header-actions{width:100%;justify-content:space-between}}.landing-page{--landing-navy: #0f3d56;--landing-navy-deep: #0a2a3c;--landing-teal: #6ec1b0;--landing-teal-dim: rgba(110, 193, 176, .35);--landing-ink: #f4f7f9;--landing-muted: rgba(244, 247, 249, .72);--landing-body-bg: #eef2f5;--landing-body-text: #1a2332;--landing-body-muted: #5c6b7a;--font-landing-display: "Syne", system-ui, sans-serif;--font-landing-body: "Source Sans 3", system-ui, sans-serif;min-height:100vh;display:flex;flex-direction:column;background:var(--landing-body-bg);color:var(--landing-body-text);font-family:var(--font-landing-body)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.landing-nav{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:1.1rem clamp(1.25rem,4vw,2.5rem);max-width:1120px;margin-inline:auto;width:100%}.landing-nav-brand{font-family:var(--font-landing-display);font-weight:700;font-size:1.05rem;color:var(--landing-ink);text-decoration:none;letter-spacing:-.02em}.landing-nav-link{background:none;border:none;color:var(--landing-muted);font:inherit;font-weight:600;cursor:pointer;padding:.35rem 0}.landing-nav-link:hover{color:var(--landing-teal)}.landing-hero{background:radial-gradient(ellipse 80% 60% at 85% 40%,rgba(110,193,176,.14),transparent 55%),linear-gradient(145deg,#143d55 0%,var(--landing-navy) 45%,var(--landing-navy-deep) 100%);color:var(--landing-ink);min-height:100vh;min-height:100dvh;display:flex;align-items:center;padding:5.5rem clamp(1.25rem,4vw,2.5rem) 3.5rem;box-sizing:border-box}.landing-hero-inner{max-width:1120px;margin:0 auto;width:100%;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:center}.landing-hero-copy{animation:landing-fade-up .7s ease both}.landing-hero-eyebrow{margin:0 0 .75rem;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--landing-muted);font-weight:600}.landing-brand{margin:0;font-family:var(--font-landing-display);font-weight:800;font-size:clamp(3rem,8vw,4.75rem);line-height:.95;letter-spacing:-.04em;color:var(--landing-ink)}.landing-brand-under{position:relative;display:inline-block}.landing-brand-under:after{content:"";display:block;height:3px;width:0;margin-top:.4rem;background:var(--landing-teal);border-radius:2px;animation:landing-underline .85s .25s ease forwards}.landing-hero-headline{margin:1.35rem 0 0;font-family:var(--font-landing-display);font-weight:700;font-size:clamp(1.35rem,3vw,1.75rem);line-height:1.25;color:var(--landing-teal);letter-spacing:-.02em;animation:landing-fade-up .7s .12s ease both}.landing-hero-support{margin:.85rem 0 0;max-width:28rem;font-size:1.05rem;line-height:1.5;color:var(--landing-muted);animation:landing-fade-up .7s .2s ease both}.landing-hero-ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;animation:landing-fade-up .7s .28s ease both}.landing-cta-primary,.landing-cta-secondary{font:inherit;font-weight:700;font-size:1rem;padding:.8rem 1.35rem;border-radius:8px;cursor:pointer;border:1px solid transparent;transition:background .15s,color .15s,border-color .15s}.landing-cta-primary{background:var(--landing-teal);color:var(--landing-navy-deep)}.landing-cta-primary:hover{background:#7fcebd}.landing-cta-secondary{background:transparent;color:var(--landing-ink);border-color:#f4f7f959}.landing-cta-secondary:hover{border-color:var(--landing-teal);color:var(--landing-teal)}.landing-hero-visual{animation:landing-fade-up .8s .2s ease both;min-width:0}.hero-visual{width:100%;height:auto;display:block}.hero-visual-bar{opacity:0;transform-box:fill-box;transform-origin:bottom center;animation:landing-bar-in .55s ease forwards}.hero-visual-limit{stroke-dashoffset:0;animation:landing-limit-draw 1s .5s ease both}.landing-body{max-width:720px;width:100%;margin:0 auto;padding:3rem clamp(1.25rem,4vw,2rem) 1rem;flex:1}.landing-proof{margin-bottom:3rem}.landing-proof h2{margin:0 0 .75rem;font-family:var(--font-landing-display);font-weight:700;font-size:clamp(1.4rem,3vw,1.75rem);letter-spacing:-.02em;color:var(--landing-navy)}.landing-proof-intro{margin:0 0 2rem;color:var(--landing-body-muted);line-height:1.6;font-size:1.05rem}.landing-proof-grid{display:grid;gap:0;border-top:1px solid rgba(15,61,86,.14)}.landing-proof-grid article{padding:1.25rem 0;border-bottom:1px solid rgba(15,61,86,.14);animation:landing-fade-up .55s ease both}.landing-proof-grid article:nth-child(1){animation-delay:.05s}.landing-proof-grid article:nth-child(2){animation-delay:.12s}.landing-proof-grid article:nth-child(3){animation-delay:.19s}.landing-proof-grid h3{margin:0 0 .4rem;font-family:var(--font-landing-display);font-size:1.05rem;font-weight:700;color:var(--landing-navy)}.landing-proof-grid p{margin:0;color:var(--landing-body-muted);line-height:1.5;font-size:.98rem}@media(min-width:640px){.landing-proof-grid{grid-template-columns:repeat(3,1fr);gap:0;border-top:none}.landing-proof-grid article{padding:0 1.25rem 0 0;border-bottom:none;border-right:1px solid rgba(15,61,86,.14)}.landing-proof-grid article:first-child{padding-left:0}.landing-proof-grid article:last-child{border-right:none;padding-right:0}}.landing-auth{scroll-margin-top:1.5rem;margin-bottom:2.5rem}.landing-auth-card{max-width:420px;margin-inline:auto;box-shadow:0 12px 40px #0f3d5614}.landing-auth-card h2{font-family:var(--font-landing-display);letter-spacing:-.02em;color:var(--landing-navy)}.landing-auth-card .primary-button{background:var(--landing-navy)}.landing-auth-card .primary-button:hover{background:var(--landing-navy-deep)}.landing-auth-card .link-button{color:var(--landing-navy);margin-top:.75rem}.landing-faq-wrap{margin-bottom:2rem}.landing-faq{border-top:1px solid rgba(15,61,86,.14);padding-top:1rem}.landing-faq summary{cursor:pointer;font-family:var(--font-landing-display);font-weight:700;color:var(--landing-navy);list-style:none}.landing-faq summary::-webkit-details-marker{display:none}.landing-faq summary:before{content:"";display:inline-block;width:.45rem;height:.45rem;margin-right:.55rem;border-right:2px solid var(--landing-teal);border-bottom:2px solid var(--landing-teal);transform:rotate(-45deg) translateY(-2px);transition:transform .2s}.landing-faq[open] summary:before{transform:rotate(45deg) translateY(-2px)}.landing-faq dl{margin:1rem 0 0;display:grid;gap:.85rem}.landing-faq dt{font-weight:700;margin:0;color:var(--landing-navy)}.landing-faq dd{margin:.3rem 0 0;color:var(--landing-body-muted);line-height:1.55;font-size:.95rem}.landing-footer{padding:1rem 1.25rem 2.5rem;text-align:center;color:var(--landing-body-muted);font-size:.9rem}.landing-footer a{color:var(--landing-navy)}@keyframes landing-fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes landing-underline{0%{width:0}to{width:100%}}@keyframes landing-bar-in{0%{opacity:0;transform:scaleY(.15)}to{opacity:1;transform:scaleY(1)}}@keyframes landing-limit-draw{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.landing-hero-copy,.landing-hero-headline,.landing-hero-support,.landing-hero-ctas,.landing-hero-visual,.landing-proof-grid article,.hero-visual-bar,.hero-visual-limit,.landing-brand-under:after{animation:none!important}.landing-brand-under:after{width:100%}.hero-visual-bar{opacity:1}}@media(max-width:800px){.landing-hero{min-height:auto;padding-top:5rem;padding-bottom:2.5rem}.landing-hero-inner{grid-template-columns:1fr;gap:2.25rem}.landing-hero-ctas{width:100%}.landing-cta-primary,.landing-cta-secondary{flex:1 1 auto;text-align:center;min-width:9rem}.landing-hero-visual{order:1}}
