:root{--bg: #f5f6fa;--card: #fff;--text: #1c1e26;--muted: #8a8f9c;--accent: #4f46e5;--danger: #dc2626;--radius: 12px}*{box-sizing:border-box;margin:0}body{font-family:-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}.layout{min-height:100vh;min-height:100dvh;padding-bottom:calc(64px + env(safe-area-inset-bottom))}main{padding:16px;max-width:560px;margin:0 auto}h1{font-size:22px;margin-bottom:14px}h2{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:18px 0 8px}input,textarea,select{width:100%;padding:12px 14px;font-size:16px;font-family:inherit;border:1px solid #d9dce3;border-radius:var(--radius);background:var(--card);color:var(--text)}input:focus,textarea:focus{outline:2px solid var(--accent);border-color:transparent}input[type=checkbox]{width:22px;height:22px;flex:none;accent-color:var(--accent)}input[type=date]{min-height:47px}button{padding:12px 16px;font-size:16px;font-family:inherit;border:0;border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer}button.secondary{background:#e2e4ea;color:var(--text)}button.danger{background:var(--danger)}button.link{background:none;color:var(--accent);padding:6px}button.compact{padding:8px 12px;font-size:14px;flex:none}button:disabled{opacity:.6}form.inline{display:flex;gap:8px;margin-bottom:14px}form.inline input{flex:1 1 140px;min-width:0}form.inline button{flex:none;padding:12px}form.inline input[type=date]{flex:1 1 112px}form.inline input[type=time]{flex:1 1 96px}.card{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 2px #0000000f}.row{display:flex;align-items:center;gap:10px;padding:13px 14px;border-bottom:1px solid #eef0f4;text-decoration:none;color:var(--text)}.row:last-child{border-bottom:0}.row .grow{flex:1;min-width:0}.row .title{font-weight:600}.row .sub{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row.done .title{text-decoration:line-through;color:var(--muted)}.row.tappable{cursor:pointer}.row.tappable:active{background:#f2f3f8}.count{background:#e2e4ea;border-radius:99px;padding:2px 9px;font-size:13px}.overdue{color:var(--danger);font-weight:600}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--card);border-top:1px solid #e6e8ee;padding-bottom:env(safe-area-inset-bottom)}.tabbar a{flex:1;text-align:center;padding:9px 0 7px;text-decoration:none;color:var(--muted);font-size:11px}.tabbar a span{display:block;font-size:22px;margin-bottom:2px}.tabbar a.active{color:var(--accent);font-weight:600}.login-wrap{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px;gap:12px}.login-wrap form{width:100%;max-width:340px;display:flex;flex-direction:column;gap:10px}.login-logo{font-size:56px}.hint{color:var(--muted);font-size:13px}.error{color:var(--danger);font-size:14px}#toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translate(-50%) translateY(10px);background:#262a33;color:#fff;padding:10px 16px;border-radius:99px;font-size:14px;opacity:0;pointer-events:none;transition:.2s;z-index:9}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}.back{display:inline-block;margin-bottom:10px;color:var(--accent);text-decoration:none;font-weight:600}label{display:block;font-size:13px;color:var(--muted);margin:12px 0 4px}.form-actions{display:flex;gap:8px;margin-top:16px}.form-actions button{flex:1}.muted{color:var(--muted)}.center{text-align:center}details summary{cursor:pointer;color:var(--muted);padding:10px 0;font-size:14px}.copy-row{display:flex;gap:8px;align-items:center}.copy-row input{flex:1}.offline-bar{position:fixed;left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom));background:#fef3c7;color:#92400e;font-size:13px;text-align:center;padding:6px 12px;z-index:8}.pending{font-size:12px;flex:none}.seg{display:flex;background:#e2e4ea;border-radius:99px;padding:3px;margin-bottom:14px}.seg a{flex:1;text-align:center;padding:7px 0;border-radius:99px;text-decoration:none;color:var(--muted);font-size:14px;font-weight:600}.seg a.active{background:var(--card);color:var(--text);box-shadow:0 1px 2px #0000001a}.mini-form{display:flex;flex-direction:column;gap:8px}.mini-form .trow{display:flex;gap:8px;align-items:center}.mini-form select,.mini-form input:not([type=checkbox]){flex:1;min-width:0;padding:10px 12px;font-size:15px}.mini-form .pin{display:flex;align-items:center;gap:6px;margin:0;color:var(--text);font-size:14px;flex:none;white-space:nowrap}.add-form{padding:10px 12px 12px;margin-bottom:14px}.add-toggle{width:100%;margin-bottom:14px}.edit-form{padding:10px 12px 12px;border-top:1px dashed #dfe3ec;background:#f8f9fd}.form-actions .secondary,.form-actions .danger{flex:1}.sub>*+*{margin-left:8px}.sub>*+*:before{content:"·";margin-right:8px;color:var(--muted);font-weight:400}.badge{display:inline-block;border-radius:99px;padding:1px 8px;font-size:12px;font-weight:600}.badge.high{background:#fee2e2;color:#b91c1c}.badge.low{background:#e0e7ff;color:#4338ca}form.inline .qty{flex:0 0 76px;text-align:center}
