:root{--blue: #4a9ab8;--blue-dark: #3a7e99;--blue-pale: #e0f0f6;--cream: #fbf7ec;--card: #ffffff;--ink: #33484f;--ink-dim: #83989e;--line: #e5ece9;--danger: #c85a4d;--amber: #d9913b;--duck-yellow: #f5c33b;--soon-bg: #fdf6df}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--cream);color:var(--ink);font-family:Hiragino Maru Gothic ProN,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;font-size:15px;line-height:1.6}.app{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.header{display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:var(--cream);position:sticky;top:0;z-index:10}.header-title{font-weight:700;font-size:17px;color:var(--blue-dark)}.header-bubble{background:var(--card);border:1.5px solid var(--line);border-radius:12px;padding:4px 10px;font-size:12.5px;color:var(--ink);margin-top:2px;display:inline-block}.main{flex:1;padding-bottom:calc(76px + env(safe-area-inset-bottom))}.tab-body{padding:4px 14px 20px;display:flex;flex-direction:column;gap:12px}.card{background:var(--card);border-radius:16px;padding:14px 16px;box-shadow:0 1px 4px #33484f0f}.empty-card{text-align:center;color:var(--ink-dim);padding:28px 16px}.note-card{font-size:12.5px;color:var(--ink-dim);background:var(--blue-pale);box-shadow:none}.section-title{font-weight:700;color:var(--blue-dark);margin-bottom:8px;font-size:14.5px}.section-title-out{margin:2px 2px -4px}.section-over{border-left:5px solid var(--danger)}.section-over .section-title{color:var(--danger)}.section-today{border-left:5px solid var(--duck-yellow)}.section-today .section-title{color:var(--amber)}.section-soon{border-left:5px solid var(--blue)}.hello-card{display:flex;align-items:center;gap:12px}.hello-greeting{font-weight:700;font-size:16px;color:var(--blue-dark)}.hello-serifu{font-size:13px;color:var(--ink-dim)}.field-label{display:block;font-size:12.5px;color:var(--ink-dim);font-weight:600;margin:12px 0 4px}.input{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;font-size:16px;background:#fdfcf7;color:var(--ink);outline:none;font-family:inherit}.input:focus{border-color:var(--blue)}.add-form{display:flex;flex-direction:column;gap:10px}.add-form .btn-primary{margin-top:0}.date-row{display:flex;gap:8px;align-items:center}.date-row .input{flex:1}.chip-row{display:flex;flex-wrap:wrap;gap:7px}.chip{border:1.5px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:7px 16px;font-size:14px;white-space:nowrap;cursor:pointer;font-family:inherit}.chip-on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700}.btn-primary,.btn-secondary,.btn-danger{display:block;width:100%;border:none;border-radius:14px;padding:13px;font-size:15.5px;font-weight:700;cursor:pointer;margin-top:12px;font-family:inherit}.btn-primary{background:var(--blue);color:#fff}.btn-primary:active{background:var(--blue-dark)}.btn-primary:disabled{opacity:.5}.btn-secondary{background:var(--blue-pale);color:var(--blue-dark)}.btn-danger{background:#f9e8e5;color:var(--danger)}.btn-ghost{border:none;background:none;color:var(--blue-dark);font-size:14px;font-weight:700;cursor:pointer;padding:6px 10px;white-space:nowrap;font-family:inherit}.btn-toggle{border:none;background:none;color:var(--blue-dark);font-size:14px;font-weight:700;cursor:pointer;padding:4px 0;font-family:inherit;display:block;width:100%;text-align:left}.item-row{border-top:1px solid var(--line)}.item-row:first-of-type{border-top:none}.card .section-title+.item-row{border-top:none}.item-line{display:flex;align-items:center;gap:10px;padding:8px 0}.check-btn{width:34px;height:34px;border-radius:12px;border:2px solid var(--blue);background:var(--card);color:#fff;font-size:18px;font-weight:700;cursor:pointer;flex-shrink:0;line-height:1}.check-on{background:var(--blue)}.item-main{flex:1;border:none;background:none;text-align:left;cursor:pointer;font-family:inherit;color:inherit;padding:2px 0;min-width:0}.item-text{font-size:15px;font-weight:600;word-break:break-word}.item-done{text-decoration:line-through;color:var(--ink-dim);font-weight:400}.item-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.kind-badge{border-radius:6px;font-size:11px;font-weight:700;padding:1px 7px}.kind-buy{background:var(--soon-bg);color:var(--amber)}.kind-todo{background:var(--blue-pale);color:var(--blue-dark)}.item-date{font-size:11.5px;color:var(--ink-dim)}.date-soon{color:var(--blue-dark);font-weight:700}.date-over{color:var(--danger);font-weight:700}.item-actions{display:flex;gap:10px;padding-bottom:10px}.item-actions button{flex:1;margin-top:0;padding:10px;font-size:14px}.month-head{display:flex;justify-content:space-between;align-items:baseline;font-weight:700;color:var(--blue-dark);margin-bottom:4px}.month-sub{font-size:12px;color:var(--ink-dim);font-weight:600}.card .month-head+.item-row{border-top:none}.dialog-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#33484f66;z-index:30;display:flex;align-items:center;justify-content:center;padding:20px}.dialog{width:100%;max-width:420px;max-height:85dvh;overflow-y:auto}.tab-bar{position:fixed;bottom:0;left:0;right:0;max-width:480px;margin:0 auto;display:flex;background:var(--card);border-top:1.5px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:20}.tab-btn{flex:1;border:none;background:none;padding:8px 0 6px;display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;color:var(--ink-dim);font-family:inherit}.tab-on{color:var(--blue-dark)}.tab-icon{font-size:20px}.tab-label{font-size:10.5px;font-weight:700}
