:root{--bg:#fff;--bg-soft:#f4f6f8;--fg:#1f2328;--muted:#656d76;--border:#d8dee4;--accent:#1a73e8;--accent-fg:#fff;--selected:#e8f0fe;--error:#c5221f;--success:#188038;--cal0:#eef1f4;--cal1:#c6dbfa;--cal2:#8ab4f8;--cal3:#4a8af0;--cal4:#1a5fd0;--header-h:48px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#16191d;--bg-soft:#1f2328;--fg:#e6edf3;--muted:#9198a1;--border:#353b42;--accent:#8ab4f8;--accent-fg:#0b1a33;--selected:#20314d;--error:#f28b82;--success:#81c995;--cal0:#262b31;--cal1:#1e3a66;--cal2:#2b5aa3;--cal3:#4a84e0;--cal4:#8ab4f8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Hiragino Sans,Noto Sans JP,Yu Gothic UI,sans-serif;font-size:15px;line-height:1.5}a{color:var(--accent)}button,input,textarea{font:inherit;color:inherit}button[type=submit],.file-button{background:var(--accent);color:var(--accent-fg);cursor:pointer;border:none;border-radius:8px;padding:8px 18px;font-weight:600;display:inline-block}button:disabled,.file-button.disabled{opacity:.5;cursor:default}input:not([type=file]),textarea{background:var(--bg);border:1px solid var(--border);border-radius:8px;width:100%;padding:6px 10px}.muted{color:var(--muted)}.error{color:var(--error)}.success{color:var(--success)}.icon-btn,.text-btn,.link-btn{cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px}.icon-btn{min-width:32px;min-height:32px;font-size:18px;line-height:1}.icon-btn:hover,.text-btn:hover{background:var(--bg-soft)}.text-btn{color:var(--accent)}.link-btn{color:var(--accent);padding:0;text-decoration:underline}.app{flex-direction:column;height:100dvh;display:flex}.header{height:var(--header-h);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;padding:0 16px;display:flex}.brand{color:var(--fg);font-weight:700;text-decoration:none}.header nav{gap:4px;display:flex}.header nav a{color:var(--muted);border-radius:6px;padding:6px 12px;text-decoration:none}.header nav a.active{color:var(--fg);background:var(--bg-soft);font-weight:600}.logout{margin-left:auto}.content{flex:1;min-height:0;overflow:auto}.login{text-align:center;flex-direction:column;gap:12px;max-width:320px;margin:15vh auto 0;padding:0 16px;display:flex}.login h1,.login p{margin:0}.day-view{grid-template-columns:minmax(340px,420px) 1fr;height:100%;display:grid}.side{border-right:1px solid var(--border);padding:12px 16px 24px;overflow:auto}.main{min-width:0;position:relative}.date-nav{align-items:center;gap:4px;display:flex}.date-nav input[type=date]{flex:1;width:auto;min-width:0}.day-title{margin:16px 0 0;font-size:18px}.day-title+.muted{margin:2px 0 8px}.trip-banner{background:var(--bg-soft);border-radius:8px;margin:8px 0;padding:6px 10px;font-size:14px}.calendar{margin-top:8px}.calendar-head{justify-content:center;align-items:center;gap:2px;display:flex}.calendar-title{text-align:center;min-width:110px;font-weight:600}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:3px;margin-top:4px;display:grid}.calendar-wd{text-align:center;color:var(--muted);font-size:12px}.calendar-day{aspect-ratio:1.4;cursor:pointer;border:2px solid #0000;border-radius:6px;padding:0;font-size:13px}.calendar-day.lv0{background:var(--cal0)}.calendar-day.lv1{background:var(--cal1)}.calendar-day.lv2{background:var(--cal2)}.calendar-day.lv3{background:var(--cal3);color:#fff}.calendar-day.lv4{background:var(--cal4);color:#fff}@media (prefers-color-scheme:dark){.calendar-day.lv4{color:#0b1a33}}.calendar-day.selected{border-color:var(--fg);font-weight:700}.calendar-foot{text-align:right;margin-top:4px;font-size:12px}.timeline{margin:8px 0 0;padding:0;list-style:none}.visit{cursor:pointer;border-radius:8px;gap:10px;padding:10px 8px;display:flex}.visit:hover{background:var(--bg-soft)}.visit.selected{background:var(--selected)}.badge{color:#fff;background:#d93025;border-radius:50%;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:grid}.badge.type-HOME,.badge.type-INFERRED_HOME{background:#188038}.badge.type-WORK,.badge.type-INFERRED_WORK{background:#1a73e8}.visit-body{flex:1;min-width:0}.visit-time{font-size:13px}.visit-name{font-size:16px;font-weight:600}.chip{border:1px solid var(--border);vertical-align:2px;border-radius:10px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:400}.visit-memo{white-space:pre-wrap;font-size:13px}.visit-meta{font-size:12px}.visit-actions{flex-wrap:wrap;gap:4px 14px;margin-top:4px;font-size:13px;display:flex}.note-form{flex-direction:column;gap:6px;margin-top:8px;display:flex}.note-form-buttons{align-items:center;gap:8px;font-size:12px;display:flex}.activity{border-left:2px dashed var(--border);align-items:center;gap:10px;margin-left:20px;padding:2px 8px 2px 10px;font-size:13px;display:flex}.activity-icon{text-align:center;width:20px}.map,.map-canvas{position:absolute;inset:0}.map-placeholder{text-align:center;background:var(--bg-soft);flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex}.map-error{background:var(--bg);color:var(--error);border-radius:8px;padding:8px 12px;position:absolute;top:12px;left:12px;right:12px;box-shadow:0 1px 4px #0003}.infowindow{color:#1f2328;font-size:14px}.infowindow div{gap:12px;margin-top:4px;display:flex}.page{max-width:760px;margin:0 auto;padding:12px 16px 32px}.card{border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:4px 16px 16px}.card h3{font-size:15px}.stats{margin:0;padding-left:20px}.progress{align-items:center;gap:12px;margin-top:12px;display:flex}.progress progress{flex:1}.help{margin-top:16px;font-size:14px}.help summary{cursor:pointer;color:var(--accent)}.history{border-collapse:collapse;width:100%;font-size:13px}.history th,.history td{text-align:left;border-bottom:1px solid var(--border);padding:4px 8px 4px 0}@media (width<=800px){.day-view{flex-direction:column-reverse;height:auto;display:flex}.main{z-index:1;flex-shrink:0;height:45vh;position:sticky;top:0}.side{border-right:none;overflow:visible}.header{gap:8px}}.visit.nested{margin-left:24px;padding-top:2px}.visit.nested .badge{background:#9aa0a6;width:14px;height:14px;margin:4px 6px 0}.visit.nested .visit-time{display:none}.visit.nested .visit-name{font-size:14px}.brand-short{display:none}@media (width<=600px){.brand-full{display:none}.brand-short{display:inline}}
