:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--bg-alt:#f7f6f9;--border:#e5e4e7;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--danger:#d61f1f;--danger-bg:#d61f1f14;--sky:#0ea5e9;--sky-bg:#0ea5e91a;--sky-border:#0ea5e980;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/145% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--bg-alt:#1c1d24;--border:#2e303a;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--danger:#ff5c5c;--danger-bg:#ff5c5c1f;--sky:#38bdf8;--sky-bg:#38bdf826;--sky-border:#38bdf880;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}}*{box-sizing:border-box}html,body{height:100%;margin:0}#app{flex-direction:column;width:100%;height:100svh;display:flex}h1,h2,h3{font-family:var(--sans);color:var(--text-h);margin:0;font-weight:600}p{margin:0}button{font:inherit;cursor:pointer}.app-shell{flex-direction:column;height:100%;display:flex}.site-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.site-logo{color:var(--text-h);background:0 0;border:none;padding:0;font-size:18px;font-weight:700}.site-logo:hover{color:var(--accent)}.login-button{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);border-radius:6px;padding:6px 16px;font-size:14px;font-weight:600}.login-button:hover{background:var(--accent-border)}.site-header-user{align-items:center;gap:12px;display:flex}.site-header-email{color:var(--text);font-size:14px}.auth-loading{color:var(--text);flex:1;justify-content:center;align-items:center;display:flex}.auth-screen{flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.auth-form{flex-direction:column;gap:14px;width:100%;max-width:340px;display:flex}.auth-title{text-align:center;margin-bottom:6px;font-size:22px}.auth-field{color:var(--text);flex-direction:column;gap:6px;font-size:14px;display:flex}.auth-field input{border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;padding:10px 12px;font-size:14px}.auth-field input:focus{border-color:var(--accent-border);outline:none}.auth-error{color:var(--danger);font-size:13px}.auth-info{color:var(--accent);font-size:13px}.auth-submit{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:10px;font-size:15px;font-weight:600}.auth-submit:disabled{opacity:.6;cursor:default}.auth-switch{color:var(--text);background:0 0;border:none;padding:4px;font-size:13px;text-decoration:underline}.auth-divider{color:var(--text);align-items:center;gap:10px;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.google-button{border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;justify-content:center;align-items:center;gap:10px;padding:10px;font-size:14px;font-weight:600;display:flex}.google-button:hover{background:var(--bg-alt)}.google-button:disabled{opacity:.6;cursor:default}.site-footer{border-top:1px solid var(--border);color:var(--text);flex-shrink:0;justify-content:center;align-items:center;padding:14px 20px;font-size:13px;display:flex}.content-row{flex:1;min-height:0;display:flex}.side-menu{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;width:96px;padding:16px 8px;display:flex}.side-menu-item{color:var(--text);background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:12px;display:flex}.side-menu-item:hover{background:var(--bg-alt)}.side-menu-item.is-active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.side-menu-icon{font-size:20px;line-height:1}.side-menu-label{font-weight:600}.main-layout{flex:1;grid-template-columns:2fr 1fr;min-height:0;display:grid}.left-col{border-right:1px solid var(--border);grid-template-rows:1fr 1fr;min-height:0;display:grid}.calendar-pane{border-bottom:1px solid var(--border);min-height:0;padding:16px 20px;overflow:auto}.map-pane{min-height:0;position:relative}.right-col{min-height:0}.schedule-pane{border-bottom:1px solid var(--border);min-height:0;padding:16px 20px;overflow-y:auto}.record-pane{min-height:0;padding:16px 20px;overflow-y:auto}@media (width<=900px){.content-row{flex-direction:column;overflow-y:auto}.side-menu{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;justify-content:center;width:auto}.main-layout{grid-template-rows:auto auto auto;grid-template-columns:1fr;overflow-y:auto}.left-col{border-right:none;grid-template-rows:auto 320px}.schedule-list{grid-template-rows:none;height:auto}.schedule-pane,.record-pane{overflow-y:visible}}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.calendar-title{font-size:18px}.calendar-nav{border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;width:28px;height:28px;font-size:16px;line-height:1}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekday{text-align:center;color:var(--text);padding:4px 0;font-size:12px}.calendar-cell{aspect-ratio:1.4;color:var(--text-h);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:flex-start;padding-top:6px;font-size:14px;display:flex;position:relative}.calendar-cell:hover{background:var(--bg-alt)}.calendar-cell.is-outside{color:var(--border)}.calendar-cell.is-today{border-color:var(--danger)}.calendar-cell.is-today .calendar-cell-date{color:var(--danger);font-weight:800}.calendar-cell.is-selected{background:var(--accent-bg);border-color:var(--accent-border)}.calendar-cell-dot{background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;bottom:6px}.calendar-cell-total{color:var(--accent);white-space:nowrap;font-size:9px;font-weight:600;position:absolute;bottom:14px}.map-view,.map-canvas{width:100%;height:100%}.map-error{text-align:center;background:var(--bg-alt);color:var(--danger);justify-content:center;align-items:center;padding:16px;font-size:14px;display:flex;position:absolute;inset:0}.schedule-list{grid-template-rows:1fr 1fr;height:100%;min-height:0;display:grid}.schedule-pane-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.schedule-list-title{font-size:20px}.schedule-add-button{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);border-radius:6px;padding:6px 12px;font-size:13px;font-weight:600}.schedule-add-button:hover{background:var(--accent-border)}.schedule-empty{color:var(--text);font-size:14px}.schedule-timeline{border-left:2px solid var(--border);margin:0 0 24px;padding:0;list-style:none}.schedule-timeline-item{padding:0 0 16px 18px;position:relative}.schedule-timeline-item:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:4px;left:-5px}.schedule-timeline-item.is-upcoming:before{background:var(--sky)}.schedule-timeline-item.is-ongoing:before{background:var(--danger)}.schedule-timeline-item.is-upcoming .schedule-timeline-time{color:var(--sky)}.schedule-timeline-item.is-ongoing{border:1px solid var(--danger);background:var(--danger-bg);border-radius:8px;margin:0 0 8px -4px;padding:8px 10px 8px 22px}.schedule-timeline-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.schedule-timeline-time{color:var(--text);font-size:12px;font-weight:600;display:block}.schedule-timeline-title{color:var(--text-h);font-weight:600}.schedule-timeline-place{color:var(--text);font-size:13px}.schedule-timeline-actions{gap:6px;display:flex}.schedule-timeline-actions button{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:2px 8px;font-size:12px}.schedule-timeline-actions button:hover{background:var(--bg-alt)}.schedule-edit-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.schedule-edit-row input{border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;padding:6px 8px;font-size:13px}.schedule-edit-actions{gap:6px;margin-left:auto;display:flex}.record-pane-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.record-list-title{color:var(--text);text-transform:uppercase;letter-spacing:.06em;margin-bottom:0;font-size:14px}.record-card{border:1px solid var(--border);background:var(--bg-alt);border-radius:10px;margin-bottom:14px;padding:12px}.record-card-meta{color:var(--text);align-items:center;gap:8px;margin-bottom:8px;font-size:13px;display:flex}.record-card-meta .schedule-timeline-actions{margin-left:auto}.record-card-time{color:var(--text-h);font-weight:700}.record-photos{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;margin-bottom:8px;display:grid}.record-photo{aspect-ratio:4/3;object-fit:cover;width:100%;box-shadow:var(--shadow);border-radius:6px}.record-content{color:var(--text-h);font-size:14px;line-height:150%}.record-schedule-link{color:var(--accent);margin-top:6px;font-size:12px}.receipt-items{border-top:1px dashed var(--border);margin:8px 0 0;padding:0;list-style:none}.receipt-items li{color:var(--text);justify-content:space-between;gap:8px;padding:4px 0;font-size:13px;display:flex}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--bg);border:1px solid var(--border);width:100%;max-width:560px;max-height:80vh;box-shadow:var(--shadow);border-radius:12px;padding:20px;overflow-y:auto}.modal-title{margin-bottom:14px;font-size:18px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.modal-cancel{border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;padding:8px 16px;font-size:14px}.modal-cancel:hover{background:var(--bg-alt)}.modal-save{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600}.modal-save:disabled{opacity:.6;cursor:default}.schedule-sheet-wrap{overflow-x:auto}.schedule-sheet{border-collapse:collapse;width:100%}.schedule-sheet th{text-align:left;color:var(--text);padding:4px 6px;font-size:12px;font-weight:600}.schedule-sheet td{padding:4px 6px}.schedule-sheet input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);border-radius:6px;padding:6px 8px;font-size:13px}.sheet-row-remove{color:var(--text);background:0 0;border:none;padding:4px 8px;font-size:16px;line-height:1}.sheet-row-remove:hover{color:var(--danger)}.sheet-add-row{border:1px dashed var(--border);color:var(--text);background:0 0;border-radius:6px;margin-top:8px;padding:6px 12px;font-size:13px}.sheet-add-row:hover{background:var(--bg-alt)}.record-editor-fields{gap:10px;margin-bottom:12px;display:flex}.record-editor-field{color:var(--text);flex-direction:column;flex:1;gap:6px;font-size:13px;display:flex}.record-editor-field input,.record-editor-field select,.record-editor-field textarea{border:1px solid var(--border);background:var(--bg);color:var(--text-h);resize:vertical;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:14px}.record-editor-text{margin-top:12px}.record-editor-schedule-link{margin-bottom:12px}.record-editor-gps,.record-editor-gps-note{color:var(--text);align-items:center;gap:6px;margin-bottom:12px;font-size:13px;display:flex}.record-editor-photo-actions{gap:8px;margin-bottom:12px;display:flex}.record-editor-photo-button{border:1px solid var(--border);color:var(--text-h);background:var(--bg-alt);border-radius:6px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;display:inline-flex;position:relative}.record-editor-photo-button:hover{background:var(--border)}.record-editor-photo-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.record-editor-previews{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-bottom:12px;display:grid}.record-editor-preview{aspect-ratio:1;position:relative}.record-editor-preview img{object-fit:cover;border-radius:6px;width:100%;height:100%}.record-editor-preview button{background:var(--danger);color:#fff;border:none;border-radius:50%;width:20px;height:20px;padding:0;font-size:14px;line-height:1;position:absolute;top:-6px;right:-6px}.receipt-ocr-status{color:var(--accent);margin-bottom:12px;font-size:13px}.receipts-panel{height:100%;min-height:0;padding:16px 20px 40px;overflow-y:auto}.receipts-total{color:var(--text-h);margin-bottom:12px;font-size:14px;font-weight:700}.receipt-amount{color:var(--text-h);margin-left:auto;font-weight:700}.menu-placeholder{height:100%;color:var(--text);justify-content:center;align-items:center;padding:20px;font-size:14px;display:flex}.trips-panel{flex:1;min-height:0;padding:20px;overflow-y:auto}.trips-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.trip-card{border:1px solid var(--border);background:var(--bg-alt);cursor:pointer;text-align:left;border-radius:10px;padding:16px}.trip-card:hover{border-color:var(--accent-border)}.trip-card-title{margin-bottom:6px;font-size:16px}.trip-card-dates{color:var(--text);margin-bottom:4px;font-size:13px}.trip-card-members{color:var(--text);margin-bottom:12px;font-size:13px}.trip-card-stats{color:var(--text-h);border-top:1px dashed var(--border);flex-direction:column;gap:4px;padding-top:10px;font-size:13px;font-weight:600;display:flex}.trip-back-button{margin-bottom:6px;padding:4px 10px;display:block}.trip-detail-title{margin:0}.trip-day-block{margin-bottom:24px}.trip-day-title{color:var(--text-h);border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:6px;font-size:15px}.trip-row{margin-bottom:16px}.trip-row-label{color:var(--accent);margin-bottom:8px;font-size:13px;font-weight:700}.trip-row-cols{grid-template-columns:1fr 1fr;gap:12px;display:grid}.trip-col{flex-direction:column;gap:10px;min-width:0;display:flex}@media (width<=900px){.trip-row-cols{grid-template-columns:1fr}}
