:root{--accent:#a9773c;--bg:#f3f0ea;--ink:#1a1a1a;--muted:#6b6f76;--line:#e6e1d8}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;-webkit-text-size-adjust:100%}a{color:var(--accent)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;justify-content:space-between;gap:12px;padding:12px 16px;background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--line)}.topbar,.topbar .brand{display:flex;align-items:center}.topbar .brand{font-weight:800;letter-spacing:.02em;font-size:16px;gap:8px}.topbar .brand .dot{color:var(--accent)}.signout{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}.signout:hover{color:var(--ink)}.datenav{display:flex;gap:8px;overflow-x:auto;padding:12px 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.datenav::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;display:block;min-width:92px;padding:8px 12px;border-radius:12px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--ink)}.chip .wd{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.chip .dt{font-size:15px;font-weight:700;margin:1px 0}.chip .loc{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.chip.active{background:var(--accent);border-color:var(--accent)}.chip.active .dt,.chip.active .loc,.chip.active .wd{color:#fff}.daywrap{max-width:700px;margin:0 auto;padding:6px 12px 40px}.day-frame{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;line-height:1.5;color:#222}.day-frame img{max-width:100%}.prevnext{display:flex;justify-content:space-between;gap:10px;max-width:700px;margin:0 auto;padding:0 12px 32px}.prevnext a,.prevnext span{flex:1 1;text-align:center;padding:12px;border-radius:12px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--accent);font-weight:600}.prevnext span{color:#c8c8c8;background:transparent;border-color:transparent}.empty{max-width:640px;margin:40px auto;padding:24px;text-align:center;color:var(--muted)}@media (max-width:380px){.day-frame td[style*="width:112px"]{width:88px!important}.day-frame td[style*="width:112px"] img{width:88px!important;height:66px!important}}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:36px 28px;text-align:center;box-shadow:0 8px 30px rgba(0,0,0,.06)}.login-mark{font-size:44px}.login-card h1{font-size:24px;margin:10px 0 4px}.login-card p{color:var(--muted);margin:0 0 22px}.login-card button{width:100%;padding:14px;border:none;border-radius:12px;background:var(--accent);color:#fff;font-weight:700;font-size:15px;cursor:pointer}.login-card button:disabled{opacity:.7;cursor:default}.login-link{display:inline-block;margin-top:8px;font-weight:600}.login-error{color:#c0392b;font-size:13px;margin-top:14px}.chip .date{font-size:12px;font-weight:700;margin-top:1px;color:var(--muted)}.chip.active .date{color:#fff}.res-range{color:var(--muted);font-size:13px;margin-bottom:14px}.res-progress{font-size:12px;color:var(--muted);margin:2px 0 10px}.res-error{font-size:13px;color:#a33;margin-bottom:10px}.res h2{font-size:16px;margin:22px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--line)}.res ul{list-style:none;padding:0;margin:0}.res .res-item{padding:11px 0;border-bottom:1px solid var(--line)}.res .res-row{display:flex;align-items:flex-start;gap:10px}.res .res-main{flex:1 1 auto;min-width:0}.res .res-toggle{flex:0 0 auto;align-self:center;font:inherit;font-size:12px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;white-space:nowrap}.res .res-toggle:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.res .res-toggle:disabled{opacity:.5;cursor:default}.res .res-item.res-done .res-toggle{border-color:rgba(40,160,90,.5);color:#28a05a}.res .res-photo-wrap{position:relative;margin-bottom:8px}.res .res-photo-wrap .res-photo{margin-bottom:0}.res .res-pills{position:absolute;right:8px;bottom:8px;display:flex;gap:6px}.res .res-pills-inline{display:flex;gap:6px;margin-top:8px}.res .res-pill-btn{font:inherit;font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px;border:1px solid rgba(0,0,0,.12);cursor:pointer;white-space:nowrap;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);box-shadow:0 1px 3px rgba(0,0,0,.25)}.res .res-photo-wrap .res-pill-btn{background:rgba(255,255,255,.88);color:#1a1a1a}.res .res-pills-inline .res-pill-btn{background:#fff;color:var(--muted);box-shadow:none}.res .res-pill-done:hover:not(:disabled){border-color:#28a05a;color:#28a05a}.res .res-pill-done.on{background:#28a05a;color:#fff;border-color:#28a05a}.res .res-pill-skip:hover:not(:disabled){border-color:#d1453b;color:#d1453b}.res .res-pill-skip.on{background:#d1453b;color:#fff;border-color:#d1453b}.res .res-pill-btn:disabled{opacity:.5;cursor:default}.res .res-photo-badge{position:absolute;left:8px;top:8px;font-size:11px;padding:2px 8px;border-radius:999px;background:rgba(40,160,90,.92);color:#fff}.res .res-name{font-weight:600;font-size:15px}.res .res-name a{color:inherit;text-decoration:underline;text-underline-offset:2px}.res .res-sub{font-size:14px;margin-top:2px}.res .res-sub a{color:inherit}.res .res-why{color:var(--muted);font-size:14px;margin-top:3px}.res .res-hook,.res .res-when{font-size:13px;margin-top:3px;color:var(--muted)}.res .res-src{font-size:12px;margin-top:2px}.res .res-addr{margin-top:3px}.res .res-addr,.res .res-rating{color:var(--muted);font-size:12px}.res .res-rating{font-weight:400;margin-left:3px}.res .res-badge{display:inline-block;font-size:11px;padding:1px 7px;border-radius:4px;border:1px solid var(--line);margin-left:5px;color:var(--muted);vertical-align:middle}.res .res-item.res-done .res-name,.res .res-item.res-skipped .res-name{text-decoration:line-through;text-decoration-thickness:1px}.res .res-item.res-done .res-addr,.res .res-item.res-done .res-hook,.res .res-item.res-done .res-name,.res .res-item.res-done .res-photo,.res .res-item.res-done .res-sub,.res .res-item.res-done .res-when,.res .res-item.res-done .res-why,.res .res-item.res-skipped .res-addr,.res .res-item.res-skipped .res-hook,.res .res-item.res-skipped .res-name,.res .res-item.res-skipped .res-photo,.res .res-item.res-skipped .res-sub,.res .res-item.res-skipped .res-when,.res .res-item.res-skipped .res-why{opacity:.45}.res .res-donebadge{border-color:rgba(40,160,90,.6);color:#28a05a}.res .res-photo{display:block;width:100%;max-height:200px;object-fit:cover;border-radius:10px;margin-bottom:8px;background:var(--line)}.res .res-item.res-done .res-photo{opacity:.5}