:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;color:#17324d;background:#f5f2ea;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 10% 0%,#fffaf1 0%,#f5f2ea 42%,#e8eee9 100%)}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:3px solid #f4c95d;outline-offset:3px}.shell{width:min(100% - 28px,760px);margin:0 auto;padding:calc(24px + env(safe-area-inset-top)) 0 calc(32px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:4px 2px 24px}.eyebrow,.section-kicker{margin:0 0 7px;color:#a25847;font-size:13px;font-weight:700;letter-spacing:.12em}.topbar h1{margin:0;color:#102a43;font-size:clamp(28px,8vw,42px);letter-spacing:.08em;font-weight:800}.icon-button{width:44px;height:44px;border:1px solid #c6bcae;border-radius:14px;background:#fffaf1;color:#a25847;font-size:24px;line-height:1;box-shadow:0 6px 18px #17324d12}.notice{margin:0 0 14px;padding:12px 14px;border-radius:12px;background:#fff7dd;color:#67501b;font-size:14px}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:5px;margin-bottom:28px;border:1px solid #d4cbbb;border-radius:17px;background:#eee9df}.tab{border:0;border-radius:12px;background:transparent;color:#687380;padding:11px 7px;font-size:14px;font-weight:700}.tab.active{background:#102a43;color:#fff8ee;box-shadow:0 3px 10px #102a4330}.view[hidden]{display:none}.intro-copy{margin:4px 6px 20px}.intro-copy h2,.view-heading h2,.dialog-heading h2{margin:0;color:#102a43;font-size:clamp(24px,7vw,34px);letter-spacing:.04em}.intro-copy p:last-child{margin:10px 0 0;color:#64717a;font-size:15px;line-height:1.7}.card{border:1px solid #ddd4c4;border-radius:22px;background:#fffdf8;box-shadow:0 14px 32px #17324d0c}.task-form{display:grid;gap:9px;padding:20px}.task-form label,.dialog-form label{margin-top:8px;color:#52616d;font-size:14px;font-weight:700}.optional{margin-left:5px;color:#a69b8e;font-size:12px;font-weight:400}.task-form input,.dialog-form input{width:100%;min-height:52px;padding:12px 14px;border:1px solid #d7d0c5;border-radius:13px;background:#fff;color:#17324d;font-size:16px}.task-form input::placeholder{color:#9da4a5}.field-note{margin:0 0 6px;color:#8a8e8c;font-size:12px}.primary-button,.secondary-button,.small-button{border-radius:13px;padding:13px 16px;border:1px solid transparent;font-weight:800}.primary-button{background:#e76f51;color:white;box-shadow:0 7px 14px #e76f5130}.primary-button:hover{background:#cf5c42}.secondary-button{background:#fffaf1;border-color:#c9c0b4;color:#17324d}.small-button{padding:9px 12px;background:#fffaf1;border-color:#c9c0b4;color:#a25847;font-size:14px}.view-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:4px 2px 18px}.view-heading h2{font-size:28px}.task-list{display:grid;gap:10px}.task-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:15px 16px;border:1px solid #ddd4c4;border-radius:18px;background:#fffdf8;box-shadow:0 8px 22px #17324d0b}.task-row.overdue{border-color:#edb6a5;background:#fff9f5}.task-check{width:24px;height:24px;accent-color:#e76f51}.task-main{min-width:0}.task-title{display:block;overflow:hidden;color:#17324d;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.task-title.done{text-decoration:line-through;color:#a19c94}.task-meta{display:block;margin-top:5px;color:#8d8e8a;font-size:12px}.task-actions{display:flex;gap:4px}.task-actions button{border:0;background:transparent;color:#a25847;padding:8px;font-size:13px}.empty-state{padding:55px 20px;text-align:center;color:#788083}.empty-icon{display:block;margin-bottom:12px;color:#e76f51;font-size:38px}.empty-state strong{display:block;color:#17324d;font-size:17px}.empty-state p{margin:8px 0 20px;font-size:14px}.calendar-title-row{align-items:center}.month-controls{display:flex;align-items:center;gap:8px;color:#17324d;font-size:14px}.circle-button{width:32px;height:32px;border:1px solid #c9c0b4;border-radius:50%;background:#fffaf1;color:#a25847;font-size:24px;line-height:1}.calendar-card{padding:14px}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekdays{margin-bottom:6px;color:#9a938b;font-size:12px;text-align:center}.calendar-day{position:relative;min-height:45px;border:1px solid transparent;border-radius:12px;background:transparent;color:#52616d}.calendar-day:hover{background:#f6eee1}.calendar-day.muted{color:#c6c1ba}.calendar-day.today{border-color:#f4c95d;color:#a25847;font-weight:800}.calendar-day.selected{background:#102a43;color:#fff}.calendar-day.has-task:after{content:"";position:absolute;bottom:5px;left:50%;width:5px;height:5px;border-radius:50%;background:#e76f51;transform:translateX(-50%)}.calendar-day.selected.has-task:after{background:#f4c95d}.day-details{margin-top:14px;padding:18px}.day-details h3{margin:0 0 12px;color:#17324d;font-size:17px}.day-details .task-row{padding:10px 0;border:0;border-bottom:1px solid #eee6da;border-radius:0;box-shadow:none}.day-details .task-row:last-child{border-bottom:0}.day-empty{margin:0;color:#8d8e8a;font-size:14px}.history{margin:8px 0 0;color:#a25847;font-size:12px}.toast{position:fixed;right:14px;bottom:calc(18px + env(safe-area-inset-bottom));left:14px;z-index:10;padding:13px 16px;border-radius:13px;background:#102a43;color:#fff;box-shadow:0 10px 25px #102a4340;text-align:center;opacity:0;pointer-events:none;transform:translateY(12px);transition:.2s}.toast.show{opacity:1;transform:translateY(0)}dialog{width:min(calc(100% - 28px),560px);padding:0;border:1px solid #d4cbbb;border-radius:22px;background:#fffdf8;color:#17324d;box-shadow:0 24px 80px #102a4350}dialog::backdrop{background:#102a4366;backdrop-filter:blur(4px)}.dialog-form{display:grid;gap:9px;padding:22px}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.close-button{border:0;background:transparent;color:#a25847;font-size:28px;line-height:1}.dialog-actions{display:flex;gap:9px;margin-top:10px}.dialog-actions>*{flex:1}.calendar-day,.task-check{-webkit-appearance:none}.task-check{appearance:none;width:23px;height:23px;border:2px solid #bfb5a8;border-radius:7px;background:#fff}.task-check:checked{border-color:#e76f51;background:#e76f51;box-shadow:inset 0 0 0 4px #fff}.task-row:has(.task-check:checked){opacity:.7}@media(min-width:600px){.shell{padding-top:42px}.task-form{grid-template-columns:1fr 1fr;column-gap:14px}.task-form label:first-of-type,.task-form input[name=title],.task-form .field-note,.task-form .primary-button{grid-column:1/-1}.task-form .primary-button{margin-top:8px}.task-form label:nth-of-type(2),.task-form input[name=due],.task-form label:nth-of-type(3),.task-form input[name=reminder]{grid-column:auto}.calendar-day{min-height:58px;padding-top:8px}}
