:root{--bg: #f6f7f9;--panel: #ffffff;--line: #e2e5ea;--text: #1c1f24;--muted: #6b7280;--accent: #2563eb;--danger: #b42318;--warn-bg: #fff7e6;--warn-line: #f0c36d;--sidebar-w: 200px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.6;-webkit-text-size-adjust:100%}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;padding-top:calc(10px + env(safe-area-inset-top,0px))}.header h1{font-size:16px;margin:0;white-space:nowrap}.header .spacer{flex:1}.search{flex:1;min-width:80px;max-width:360px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.btn{padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;white-space:nowrap}.btn:hover:not(:disabled){background:#f2f4f7}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-danger{color:var(--danger);border-color:#e7c3bd}.btn-small{padding:3px 8px;font-size:12px;border-radius:6px}.body{flex:1;display:flex;align-items:flex-start}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);padding:12px 8px;position:sticky;top:53px}.sidebar button{display:flex;justify-content:space-between;gap:8px;width:100%;text-align:left;padding:8px 12px;margin-bottom:2px;border:0;border-radius:8px;background:transparent;color:var(--text)}.sidebar button:hover{background:#eceff3}.sidebar button[aria-current=page]{background:#e3ebfd;color:var(--accent);font-weight:600}.main{flex:1;min-width:0;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.toolbar label{font-size:13px;color:var(--muted)}.toolbar select{padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:#fff}.list{list-style:none;margin:0;padding:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.row:hover{background:#fafbfc}.row.selected{background:#eef3fe}.row-main{flex:1;min-width:0;border:0;background:transparent;text-align:left;padding:0;color:inherit}.row-title{display:block;word-break:break-word}.row.done .row-title{text-decoration:line-through;color:var(--muted)}.meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;font-size:12px;color:var(--muted)}.tag{display:inline-block;padding:1px 7px;border:1px solid var(--line);border-radius:999px;background:#f7f8fa;white-space:nowrap}.tag-overdue{background:#fdecea;border-color:#eab9b2;color:var(--danger)}.tag-today{background:#fff4e5;border-color:#f0c36d;color:#92400e}.tag-warn{background:var(--warn-bg);border-color:var(--warn-line);color:#92400e}.tag-priority-high{background:#fdecea;border-color:#eab9b2;color:var(--danger)}.tag-priority-medium{background:#fff4e5;border-color:#f0c36d;color:#92400e}.check{width:22px;height:22px;flex:0 0 22px;margin-top:2px;border:1px solid #b6bcc6;border-radius:50%;background:#fff;color:transparent;line-height:1;padding:0}.check[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.reorder{display:flex;flex-direction:column;gap:2px}.reorder button{width:24px;height:18px;padding:0;border:1px solid var(--line);border-radius:5px;background:#fff;font-size:10px;line-height:1}.empty,.loading{padding:28px 12px;text-align:center;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:12px}.notice{padding:10px 12px;border-radius:10px;margin-bottom:12px;border:1px solid var(--line);background:var(--panel);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.notice-error{background:#fdecea;border-color:#eab9b2;color:var(--danger)}.notice-warn{background:var(--warn-bg);border-color:var(--warn-line);color:#92400e}.detail{width:360px;flex:0 0 360px;padding:16px 16px 16px 0;position:sticky;top:53px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.card h2{font-size:14px;margin:0 0 10px}.field{margin-bottom:10px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}.field input,.field select,.field textarea{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff}.field textarea{min-height:72px;resize:vertical}.field-row{display:flex;gap:10px}.field-row>*{flex:1;min-width:0}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.sheet-close{display:none}@media(max-width:860px){.body{flex-direction:column}.sidebar{width:100%;flex:none;position:static;display:flex;gap:6px;overflow-x:auto;padding:10px 12px 0;-webkit-overflow-scrolling:touch}.sidebar button{width:auto;white-space:nowrap;border:1px solid var(--line);background:#fff;padding:6px 12px}.sidebar .count{display:none}.main{width:100%;padding:12px}.detail{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;flex:none;padding:0;background:var(--bg);z-index:40;overflow-y:auto;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.detail .card{border:0;border-radius:0;min-height:100%}.sheet-close{display:inline-block;margin-bottom:10px}}.phone-qr{margin:28px auto 0;max-width:320px;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.phone-qr h2{font-size:13px;color:var(--muted);margin:0 0 10px;font-weight:600}.phone-qr img{display:block;margin:0 auto;width:220px;height:220px;background:#fff;border-radius:6px}.phone-qr-url{margin:10px 0 0;word-break:break-all;font-size:12px}.phone-qr-note{margin:8px 0 0;font-size:11px;color:var(--muted);text-align:left;line-height:1.5}.brand{border:0;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer}.brand:hover{color:var(--accent)}.main>.phone-qr{margin:0;max-width:none;border-width:0 0 1px 0;border-radius:0;display:flex;align-items:center;gap:14px;padding:10px 16px}.main>.phone-qr img{width:88px;height:88px;flex:0 0 88px}.main>.phone-qr .phone-qr-body{min-width:0}.main>.phone-qr h2{margin:0 0 2px}.main>.phone-qr .phone-qr-url,.main>.phone-qr .phone-qr-note{margin:0}.main>.phone-qr .phone-qr-note{margin-top:2px}
