:root{--ink: #1c1c1e;--ink-soft: #8a8a8e;--paper: #ffffff;--grey-bg: #f4f4f5;--line: #e8e8ea;--mitchell: #0f7a6b;--malcolm: #b5522a;--pending: #b5522a;--alert: #c23b33;--confirmed: #0f7a6b;--font-body: -apple-system, "SF Pro Text", "Inter", sans-serif;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .9375rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 20px;--space-5: 32px;--space-6: 48px;--radius-sm: 6px;--radius-md: 10px;color-scheme:light}@media (prefers-color-scheme: dark){:root{--ink: #f2f2f3;--ink-soft: #9b9b9f;--paper: #0e0e10;--grey-bg: #1c1c1e;--line: #2c2c2e;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-body);font-weight:600;margin:0;letter-spacing:-.01em}h1{font-size:var(--text-xl)}.tabular{font-variant-numeric:tabular-nums}button{font-family:var(--font-body)}a{color:inherit}:focus-visible{outline:2px solid var(--mitchell);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.app-shell{max-width:640px;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-6)}@media (min-width: 860px){.app-shell{max-width:680px;padding-top:var(--space-6)}}.auth-screen{max-width:380px;margin:22vh auto 0;padding:0 var(--space-4)}.auth-screen p{color:var(--ink-soft);margin:var(--space-3) 0 var(--space-4);font-size:var(--text-sm)}.btn-primary,.btn-secondary{font-size:var(--text-sm);font-weight:500;padding:10px var(--space-4);border-radius:var(--radius-sm);border:none;cursor:pointer}.btn-primary{background:var(--ink);color:var(--paper)}.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn-text{background:none;border:none;color:var(--mitchell);font-size:var(--text-xs);font-weight:500;cursor:pointer;padding:0}.top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-1)}.top-bar-actions{display:flex;align-items:center;gap:var(--space-3)}.icon-btn{background:none;border:none;color:var(--ink-soft);cursor:pointer;padding:var(--space-1);display:flex;align-items:center}.add-trip-btn{display:flex;align-items:center;gap:5px;font-size:var(--text-sm);font-weight:500;color:var(--mitchell);background:none;border:none;cursor:pointer}.timeline-section{margin-top:var(--space-6)}.timeline-section-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin:0 0 var(--space-3)}.empty-state{color:var(--ink-soft);font-size:var(--text-sm);padding:var(--space-4) 0}.trip{margin-bottom:var(--space-5)}.trip-header{display:flex;align-items:center;gap:9px;margin-bottom:2px}.trip-flag{font-size:15px;line-height:1}.trip-header h3{font-size:var(--text-lg);font-weight:600;flex:1}.trip-edit-btn{opacity:0;transition:opacity .1s}.trip:hover .trip-edit-btn,.trip:focus-within .trip-edit-btn{opacity:1}.trip-tag{font-size:var(--text-xs);color:var(--ink-soft)}.trip-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:var(--text-sm);color:var(--ink-soft);margin:3px 0 var(--space-3) 29px}.trip-meta-dot{opacity:.5}.status-pill{font-size:var(--text-xs);font-weight:500;padding:1px 9px;border-radius:999px;border:1px dashed var(--line);color:var(--ink-soft);margin-left:2px}.trip-budget{margin:var(--space-2) 0 0 29px;font-size:var(--text-sm);color:var(--ink-soft)}.segment-list{display:flex;flex-direction:column}.segment{display:flex;align-items:flex-start;gap:var(--space-3);padding:11px 10px;border-top:1px solid var(--line);border-radius:var(--radius-sm)}.segment:first-child{border-top:none}.segment.emphasis{background:var(--grey-bg);border-top:none;margin:2px 0}.segment-who{display:flex;gap:3px;margin-top:5px;flex-shrink:0;width:14px}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.segment-main{flex:1;min-width:0}.segment-row1{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2)}.segment-leg-label{font-size:var(--text-xs);color:var(--ink-soft);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.segment-time{font-size:var(--text-sm);color:var(--ink-soft);white-space:nowrap}.segment-title{font-size:var(--text-base);margin-top:1px}.segment-code{font-size:var(--text-xs);color:var(--ink-soft);margin-top:1px}.segment-cancelled .segment-title{text-decoration:line-through;color:var(--ink-soft)}.segment-review{font-size:var(--text-xs);color:var(--pending);margin-top:3px;display:flex;align-items:center;gap:4px}.segment-edit{opacity:0;transition:opacity .1s;color:var(--ink-soft);background:none;border:none;cursor:pointer;padding:2px}.segment:hover .segment-edit,.segment:focus-within .segment-edit{opacity:1}.amendment-note{margin-top:4px;font-size:var(--text-sm);color:var(--ink-soft);display:flex;align-items:center;gap:var(--space-2)}.amendment-note b{color:var(--ink);font-weight:500}.idea{display:flex;gap:14px;align-items:baseline;border:1px dashed var(--line);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2)}.idea-when{font-size:var(--text-sm);color:var(--ink-soft);width:92px;flex-shrink:0}.idea-body{flex:1}.idea-top{display:flex;justify-content:space-between;align-items:baseline}.idea-body h4{font-size:var(--text-base);font-weight:600;margin:0}.idea-body p{font-size:var(--text-sm);color:var(--ink-soft);margin:3px 0 0}.legend{display:flex;gap:18px;margin-top:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--line);font-size:var(--text-xs);color:var(--ink-soft)}.legend span{display:flex;align-items:center;gap:6px}.settings-group{margin-bottom:var(--space-5)}.settings-group-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin:0 0 var(--space-3)}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;border-top:1px solid var(--line)}.settings-row:first-child{border-top:none}.segmented{display:flex;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.segmented button{font-size:var(--text-sm);padding:6px 14px;border:none;background:var(--paper);color:var(--ink-soft);cursor:pointer}.segmented button.active{background:var(--ink);color:var(--paper)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;display:flex;align-items:flex-end;justify-content:center;z-index:100}@media (min-width: 640px){.modal-overlay{align-items:center}}.modal-panel{background:var(--paper);width:100%;max-width:480px;max-height:88vh;overflow-y:auto;border-radius:var(--radius-md) var(--radius-md) 0 0;padding:var(--space-4)}@media (min-width: 640px){.modal-panel{border-radius:var(--radius-md);padding:var(--space-5)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.modal-header h3{font-size:var(--text-lg)}.field{margin-bottom:var(--space-4)}.field label{display:block;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:var(--space-2)}.field input[type=text],.field input[type=datetime-local],.field input[type=number],.field select,.field textarea{width:100%;font-family:var(--font-body);font-size:var(--text-base);padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink)}.field textarea{resize:vertical;min-height:60px}.field-row{display:flex;gap:var(--space-3)}.field-row .field{flex:1}.chip-group{display:flex;gap:var(--space-2);flex-wrap:wrap}.chip{font-size:var(--text-sm);padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);cursor:pointer}.chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.form-actions{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--line)}.form-actions-right{display:flex;gap:var(--space-3)}.form-error{font-size:var(--text-sm);color:var(--alert);margin-bottom:var(--space-3)}.segment-add-row{padding:10px;margin-top:2px}.segment-add-row button{display:flex;align-items:center;gap:5px;font-size:var(--text-sm);color:var(--ink-soft);background:none;border:none;cursor:pointer;padding:0}.filter-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.search-toggle-btn{display:none;background:none;border:none;color:var(--ink-soft);cursor:pointer;padding:var(--space-1);margin-left:auto;flex-shrink:0}.search-field{margin-left:auto;display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:6px 13px;color:var(--ink-soft);min-width:140px}.search-field input{border:none;outline:none;background:none;font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink);width:100%}.search-field input::placeholder{color:var(--ink-soft)}.search-close-btn{background:none;border:none;color:var(--ink-soft);cursor:pointer;padding:0;display:flex;flex-shrink:0}@media (max-width: 640px){.filter-bar{flex-wrap:nowrap}.search-toggle-btn{display:flex}.search-field,.filter-bar.search-expanded .chip-group,.filter-bar.search-expanded .search-toggle-btn{display:none}.filter-bar.search-expanded .search-field{display:flex;flex:1 1 auto;width:100%;animation:search-expand .18s ease}@keyframes search-expand{0%{opacity:0;transform:scaleX(.9)}to{opacity:1;transform:scaleX(1)}}}.visuals-dock,.visuals-reveal-btn{display:none}@media (min-width: 1080px){.home-layout.visuals-open{display:flex;align-items:flex-start;gap:40px;max-width:1800px;margin:0 auto;padding:var(--space-6) var(--space-5)}.home-layout.visuals-open .app-shell{margin:0;padding:0;flex:1 1 620px;max-width:680px}.visuals-dock{display:flex;flex-direction:column;flex:3 1 0;min-width:420px;position:sticky;top:var(--space-5);max-height:calc(100vh - var(--space-6) * 2);overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4)}.home-layout:not(.visuals-open) .app-shell{margin:0 auto}.visuals-reveal-btn{display:flex;align-items:center;justify-content:center;position:fixed;right:24px;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);cursor:pointer;box-shadow:0 2px 8px #00000026;z-index:10}.visuals-toggle-btn{display:none}}.visuals-dock-header{display:flex;justify-content:flex-end;margin-bottom:var(--space-2)}.visuals-panel .chip-group{margin-bottom:var(--space-4)}.chip-disabled{opacity:.4;cursor:default}.gantt{display:flex;gap:var(--space-3)}.gantt-labels{flex-shrink:0}.gantt-label-spacer{border-bottom:1px solid var(--line)}.gantt-row-label{display:flex;align-items:center;font-size:var(--text-xs);color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-scroll{flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.gantt-inner{position:relative}.gantt-header{position:relative;border-bottom:1px solid var(--line)}.gantt-month-tick{position:absolute;font-size:var(--text-xs);color:var(--ink-soft);transform:translate(4px);white-space:nowrap}.gantt-today-line{position:absolute;width:1.5px;background:var(--malcolm);z-index:1;pointer-events:none}.gantt-track-row{position:relative;display:flex;align-items:center}.gantt-track{position:relative;width:100%;height:14px;background:var(--grey-bg);border-radius:4px}.gantt-bar{position:absolute;top:0;height:100%;border-radius:4px}.gantt-bar.planning{background:transparent!important;border:1.5px dashed var(--ink-soft)}.gantt-jump-btn{position:absolute;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 3px #0000001f;z-index:2}
