@font-face{font-family:Newsreader;src:url(/fonts/newsreader-latin.woff2) format("woff2");font-style:normal;font-weight:400 500;font-display:swap}@font-face{font-family:Newsreader;src:url(/fonts/newsreader-latin-italic.woff2) format("woff2");font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/plus-jakarta-latin.woff2) format("woff2");font-style:normal;font-weight:400 500;font-display:swap}:root{--bg: #faf6ed;--surface: #fffaf1;--ink: #183b40;--muted: #31565b;--line: #d8dfd8;--accent: #087c91;--on-accent: #fffdf7;--accent-soft: rgba(8, 124, 145, .08);--badge-bg: #ece7da;--notice-bg: rgba(8, 124, 145, .055);--bg-glow: rgba(8, 124, 145, .045);--shadow: rgba(24, 59, 64, .06);--font-display: "Newsreader", "Songti SC", "Noto Serif SC", "Source Han Serif SC", "Source Han Serif CN", "SimSun", serif;--font-ui: "Plus Jakarta Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #091b25;--surface: #102833;--ink: #f1eee5;--muted: #c4d8d3;--line: #28404a;--accent: #89c9cb;--on-accent: #091b25;--accent-soft: rgba(137, 201, 203, .12);--badge-bg: #18323c;--notice-bg: rgba(137, 201, 203, .08);--bg-glow: rgba(137, 201, 203, .055);--shadow: rgba(0, 0, 0, .25);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{min-height:100%}body{margin:0;background-color:var(--bg);background-image:radial-gradient(1100px 620px at 50% -10%,var(--bg-glow),transparent 72%);background-attachment:fixed;color:var(--ink);font-family:var(--font-ui);font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}ul{margin:0;padding:0;list-style:none}h1,h2,p{margin:0}::selection{background:var(--accent-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app{display:flex;flex-direction:column;min-height:100dvh}.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:calc(clamp(20px,6vw,44px) + env(safe-area-inset-top)) clamp(20px,4.5vw,40px) 0}.site-header.is-history{padding-top:calc(clamp(18px,3vw,30px) + env(safe-area-inset-top))}.wordmark{color:var(--ink);font-family:var(--font-display);font-size:clamp(1.9rem,6vw,3rem);font-weight:500;line-height:1;letter-spacing:-.015em}.site-header.is-history .wordmark{font-size:clamp(1.65rem,2.6vw,1.8rem)}.header-actions{display:flex;min-height:42px;align-items:center;justify-content:flex-end}.carry-button{padding:.66rem 1.15rem;border:1px solid var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,transparent);border-radius:999px;background:transparent;color:var(--accent);font-size:clamp(.76rem,2.5vw,.95rem);font-weight:500;line-height:1.35;letter-spacing:.01em;white-space:nowrap;transition:background-color .18s ease,border-color .18s ease,opacity .18s ease}.carry-button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.carry-button:disabled{border-color:var(--line);color:var(--muted);opacity:.55}.carry-banner{display:flex;align-items:center;gap:.85rem;padding:.54rem .66rem .54rem 1.08rem;border-radius:999px;background:var(--badge-bg);color:var(--ink);font-size:clamp(.8rem,2.6vw,.95rem);animation:banner-in .24s cubic-bezier(.2,.8,.2,1) both}.carry-banner-count{font-weight:500;white-space:nowrap}.undo-button{padding:.18rem .4rem;border:0;border-radius:5px;background:transparent;color:var(--accent);font-size:inherit;font-weight:500;transition:background-color .16s ease,color .16s ease}.undo-button:hover{background:var(--accent-soft)}.storage-notice{display:flex;align-items:flex-start;gap:12px;width:calc(100% - 40px);max-width:640px;margin:14px auto 0;padding:.7rem .65rem .7rem 1rem;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:8px;background:var(--notice-bg);color:var(--ink);font-size:.82rem;line-height:1.55;animation:banner-in .22s ease both}.storage-notice span{flex:1}.notice-dismiss{flex:none;width:26px;height:26px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:1.1rem;line-height:1;transition:background-color .16s ease,color .16s ease}.notice-dismiss:hover{background:var(--accent-soft);color:var(--accent)}.app-main{display:flex;flex:1;flex-direction:column;width:100%}.today{flex:1;width:100%;max-width:720px;margin:0 auto;padding-right:clamp(20px,4.5vw,40px);padding-left:clamp(20px,4.5vw,40px)}.today.is-empty{display:flex;flex-direction:column;align-items:center;padding-top:clamp(18px,10vh,132px);padding-bottom:clamp(14px,3vh,28px);text-align:center}.date-nav{display:flex;align-items:center;justify-content:center;gap:clamp(8px,3vw,36px);width:100%}.empty-date{color:var(--ink);font-family:var(--font-display);font-size:clamp(2.85rem,12.5vw,6rem);font-weight:400;line-height:1.02;letter-spacing:-.025em;white-space:nowrap}.nav-chevron{display:grid;flex:none;place-items:center;width:clamp(36px,9vw,48px);height:clamp(36px,9vw,48px);padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);transition:color .18s ease,background-color .18s ease,transform .16s ease,opacity .18s ease}.nav-chevron:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.nav-chevron:active:not(:disabled){transform:scale(.94)}.nav-chevron:disabled{opacity:.2}.empty-meta{margin-top:clamp(10px,2vh,16px);color:var(--muted);font-size:clamp(.92rem,2.6vw,1.05rem);letter-spacing:.035em;line-height:1.6}.empty-circle{width:min(52vw,34vh,340px);aspect-ratio:1;margin:clamp(30px,8.5vh,96px) auto clamp(30px,8.5vh,96px);border:1.5px solid var(--accent);border-radius:50%;opacity:.94}.empty-invitation{max-width:34rem;color:var(--muted);font-size:clamp(1rem,2.8vw,1.12rem);line-height:1.85;letter-spacing:.015em;text-wrap:balance}.today-tasks{padding-top:clamp(8px,2.5vh,22px);padding-bottom:clamp(6px,2vh,14px)}.compact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:clamp(20px,6vh,72px)}.compact-head-copy{min-width:0}.compact-date{color:var(--ink);font-family:var(--font-display);font-size:clamp(2.7rem,10vw,4.5rem);font-weight:400;line-height:1.05;letter-spacing:-.02em}.compact-meta{margin-top:.45rem;color:var(--muted);font-size:clamp(.92rem,2.5vw,1rem);letter-spacing:.02em}.history-peek{display:grid;flex:none;place-items:center;width:40px;height:40px;margin-top:6px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);transition:color .18s ease,background-color .18s ease}.history-peek:hover{background:var(--accent-soft);color:var(--accent)}.task-list{margin-top:clamp(26px,5vh,48px)}.task-row{display:flex;align-items:flex-start;gap:clamp(20px,8vw,56px);padding:clamp(18px,4.8vh,40px) 0;border-bottom:1px solid var(--line)}.task-check{display:grid;flex:none;place-items:center;width:clamp(36px,6vw,44px);height:clamp(36px,6vw,44px);margin-top:-5px;padding:0;border:1.5px solid var(--muted);border-color:color-mix(in srgb,var(--muted) 78%,transparent);border-radius:50%;background:transparent;color:var(--on-accent);transition:background-color .18s ease,border-color .18s ease,transform .16s ease}.task-check svg{width:clamp(17px,3vw,20px);height:auto}.task-check:hover{border-color:var(--accent);background:var(--accent-soft)}.task-check:active{transform:scale(.94)}.task-check[aria-pressed=true]{border-color:var(--accent);background:var(--accent)}.task-copy{display:flex;min-width:0;flex-direction:column;gap:3px}.task-text{overflow-wrap:anywhere;color:var(--ink);font-size:clamp(1.1rem,3.2vw,1.42rem);line-height:1.5;letter-spacing:.005em}.task-source{color:var(--accent);font-size:clamp(.76rem,2.1vw,.86rem);line-height:1.4;letter-spacing:.025em}.task-row.is-done .task-text{color:var(--muted);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--muted) 55%,transparent);text-decoration-thickness:1px}.task-section-label{padding:clamp(32px,6vh,48px) 0 6px;animation:label-in .2s ease both}.task-section-label h2{color:var(--muted);font-size:.88rem;font-weight:500;letter-spacing:.12em;line-height:1.5}.composer-dock{position:sticky;bottom:0;z-index:20;width:100%;margin-top:auto;padding:clamp(14px,3vh,22px) clamp(20px,4.5vw,40px) calc(clamp(16px,6vh,76px) + env(safe-area-inset-bottom));background:linear-gradient(to bottom,transparent 0%,var(--bg) 34%)}.composer{display:flex;align-items:center;gap:12px;width:100%;max-width:640px;min-height:clamp(64px,6.2vh,74px);margin:0 auto;padding:9px 10px 9px 22px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 10px 36px var(--shadow);transition:border-color .18s ease,box-shadow .18s ease}.composer:focus-within{border-color:color-mix(in srgb,var(--accent) 65%,var(--line));box-shadow:0 0 0 3px var(--accent-soft),0 10px 36px var(--shadow)}.composer-input{flex:1;min-width:0;height:50px;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:clamp(1.02rem,2.7vw,1.12rem);letter-spacing:.005em}.composer-input::placeholder{color:var(--muted);opacity:.72}.composer-add{display:grid;flex:none;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--accent);color:var(--on-accent);transition:transform .16s ease,background-color .16s ease,box-shadow .16s ease}.composer-add:hover{background:color-mix(in srgb,var(--accent) 88%,var(--ink));box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 28%,transparent)}.composer-add:active{transform:scale(.95)}.history{flex:1;width:100%;max-width:700px;margin:0 auto;padding:clamp(0px,1vh,8px) clamp(20px,5vw,28px) clamp(24px,4vh,40px)}.history-head{display:flex;flex-direction:column;align-items:center;gap:14px}.history-title-row{display:flex;align-items:center;justify-content:center;gap:clamp(4px,1.8vw,12px);width:100%}.history-title{display:flex;align-items:baseline;gap:.55em;color:var(--ink);font-family:var(--font-display);font-size:clamp(1.65rem,5.2vw,2.35rem);font-weight:400;line-height:1.2;letter-spacing:-.015em;white-space:nowrap}.history-weekday{font-size:.8em;letter-spacing:.015em}.history-arrow{padding:2px 7px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-family:var(--font-display);font-size:clamp(1.4rem,4vw,1.8rem);line-height:1;transition:color .18s ease,background-color .18s ease}.history-arrow:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.history-arrow:disabled{opacity:.22}.history-badge{display:inline-flex;align-items:center;padding:.28rem .8rem;border-radius:6px;background:var(--badge-bg);color:var(--muted);font-size:.76rem;font-weight:500;letter-spacing:.09em;line-height:1.5}.history-rule{margin-top:clamp(18px,4vh,28px);border-top:1px solid var(--line)}.history-note{margin-top:clamp(14px,3vh,20px);color:var(--muted);font-family:var(--font-display);font-size:clamp(.98rem,2.5vw,1.06rem);letter-spacing:.04em;line-height:1.6;text-align:center}.history-sections{margin-top:clamp(28px,5.2vh,42px)}.history-section+.history-section{margin-top:clamp(28px,5vh,40px)}.history-section-title{margin-bottom:4px;color:var(--ink);font-size:1.18rem;font-weight:500;letter-spacing:.015em;line-height:1.5}.history-row{display:flex;align-items:center;gap:14px;min-height:50px;padding:.72rem 0;border-bottom:1px solid var(--line)}.history-marker{display:block;flex:none;width:20px;height:20px;border:2px solid var(--ink);border-radius:50%}.history-marker.is-filled{border-color:var(--accent);background:var(--accent)}.history-row-text{overflow-wrap:anywhere;color:var(--ink);font-size:clamp(.98rem,2.5vw,1.06rem);line-height:1.55}.history-none{padding:.55rem 0;color:var(--muted);font-size:.88rem;letter-spacing:.015em}.history-empty{margin:clamp(38px,8vh,64px) auto;color:var(--muted);font-family:var(--font-display);font-size:1.08rem;letter-spacing:.03em;text-align:center}.history-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:clamp(34px,7vh,56px)}.back-today{padding:.3rem 0;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--accent);font-size:.88rem;letter-spacing:.02em;line-height:1.5;transition:border-color .16s ease}.back-today:hover{border-bottom-color:var(--accent)}.date-jump{display:flex;align-items:center;color:var(--muted)}.date-jump-input{max-width:142px;padding:.28rem .35rem;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font-size:.72rem;line-height:1.4;transition:border-color .16s ease,color .16s ease}.date-jump-input:hover,.date-jump-input:focus{border-color:var(--line);color:var(--ink)}.date-jump-input::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}@keyframes banner-in{0%{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes label-in{0%{opacity:0}to{opacity:1}}@media(min-width:680px){.history{margin-top:-36px}}@media(min-width:560px){.task-check{margin-top:-7px}.storage-notice{width:calc(100% - 80px)}}@media(max-height:720px){.today.is-empty{padding-top:4px}.empty-date{font-size:clamp(2.35rem,9vw,4rem)}.empty-circle{width:min(41vw,29vh,220px);margin:18px auto 20px}.empty-invitation{font-size:.96rem;line-height:1.7}}@media(max-height:540px){.empty-circle{display:none}.empty-invitation{margin-top:18px}}@media(max-width:400px){.site-header{gap:10px}.carry-button{padding:.56rem .78rem;font-size:.7rem}.carry-banner{gap:.55rem;padding-left:.8rem;font-size:.72rem}.history-footer{align-items:flex-start;flex-direction:column;gap:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
