:root{--bg: #f5ebe0;--bg-soft: #faf6f1;--surface: #fffcf9;--text: #4a4038;--muted: #9a8f84;--border: #e8ddd2;--shadow: rgba(74, 64, 56, .08);--yan: #7a9ec4;--yan-soft: #e3ecf5;--liza: #a88bc4;--liza-soft: #efe6f5;--home: #c4a07a;--home-soft: #f5ebe0;--wedding: #c49a9a;--wedding-soft: #f5e8e8;--extra: #8fb89a;--extra-soft: #e8f2eb;--radius: 14px;--safe-b: env(safe-area-inset-bottom, 0px);font-family:SF Pro Text,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;color:var(--text);background:linear-gradient(165deg,var(--bg) 0%,var(--bg-soft) 50%,var(--surface) 100%);line-height:1.45}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{-webkit-font-smoothing:antialiased}button,input{font:inherit}.app{min-height:100dvh;padding-bottom:calc(var(--safe-b) + 16px);max-width:520px;margin:0 auto}.header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px}.header h1{margin:0;font-size:1.4rem;font-weight:700}.btn-icon{border:none;background:var(--surface);border:1px solid var(--border);width:40px;height:40px;border-radius:12px;cursor:pointer;font-size:1.1rem}.error-toast{margin:0 16px 10px;padding:10px 12px;background:#fce8e8;color:#8a4545;border-radius:10px;font-size:.85rem}.tabs{display:flex;gap:8px;padding:0 16px 12px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex-shrink:0;border:1px solid var(--border);background:var(--surface);padding:8px 14px;border-radius:20px;font-size:.88rem;font-weight:500;color:var(--muted);cursor:pointer}.tab.active{color:var(--text);font-weight:600;border-color:transparent}.tab--yan.active{background:var(--yan-soft);color:#3d5a78}.tab--liza.active{background:var(--liza-soft);color:#5c4570}.tab--home.active{background:var(--home-soft);color:#6b5340}.tab--wedding.active{background:var(--wedding-soft);color:#704848}.tab--extra.active{background:var(--extra-soft);color:#3d5c48}.content{padding:0 16px}.section-title{margin:0 0 14px;font-size:1.05rem;font-weight:600}.section-title--yan{color:#3d5a78}.section-title--liza{color:#5c4570}.section-title--home{color:#6b5340}.section-title--wedding{color:#704848}.section-title--extra{color:#3d5c48}.add-form{display:flex;gap:8px;margin-bottom:16px}.input{flex:1;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);min-width:0}.input::placeholder{color:var(--muted)}.btn-add{width:44px;border:none;border-radius:var(--radius);background:var(--text);color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;flex-shrink:0}.btn-add:disabled{opacity:.4}.todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.todo-item{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 2px 8px var(--shadow);cursor:pointer}.todo-item.done .todo-text{text-decoration:line-through;color:var(--muted)}.todo-item input[type=checkbox]{width:20px;height:20px;accent-color:var(--text);flex-shrink:0}.todo-text{flex:1;word-break:break-word}.todo-del{border:none;background:transparent;color:var(--muted);font-size:1.25rem;padding:4px 8px;cursor:pointer;flex-shrink:0}.muted{color:var(--muted)}.empty{text-align:center;padding:24px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#4a403840;display:flex;align-items:flex-end;justify-content:center;padding:16px;padding-bottom:calc(var(--safe-b) + 16px)}.sheet{width:100%;max-width:420px;background:var(--surface);border-radius:20px 20px 16px 16px;padding:18px 16px 16px;box-shadow:0 -8px 32px var(--shadow);animation:slide-up .25s ease}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.sheet h2{margin:0 0 14px;font-size:1.1rem}.cat-list{list-style:none;margin:0 0 14px;padding:0}.cat-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.cat-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.cat-dot--yan{background:var(--yan)}.cat-dot--liza{background:var(--liza)}.cat-dot--home{background:var(--home)}.cat-dot--wedding{background:var(--wedding)}.cat-dot--extra{background:var(--extra)}.cat-name{flex:1;font-weight:500}.cat-del{border:none;background:transparent;color:var(--muted);font-size:1.2rem;cursor:pointer;padding:4px 8px}.cat-add{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.btn-primary{padding:12px;border:none;border-radius:var(--radius);background:var(--text);color:#fff;font-weight:600;cursor:pointer}.btn-primary:disabled{opacity:.4}.btn-ghost{padding:12px;border:none;border-radius:var(--radius);background:var(--bg-soft);color:var(--text);font-weight:600;cursor:pointer}.btn-ghost.full{width:100%}
