:root{--bg: #ffffff;--text: #1f2328;--muted: #6b7280;--line: #e5e7eb;--primary: #1d6fe0;--primary-dark: #1557b0;--danger: #c62828;--done-bg: #f3f4f6;--done-text: #9ca3af;--warn-bg: #fff7e0;--warn-line: #f0c36d;--check: #16a34a;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic UI,Meiryo,sans-serif;font-size:18px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;background:var(--bg)}.app{max-width:560px;margin:0 auto;padding:calc(12px + env(safe-area-inset-top)) 16px calc(88px + env(safe-area-inset-bottom))}.app-header{position:sticky;top:0;z-index:10;margin:calc(-12px - env(safe-area-inset-top)) -16px 12px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:#fffffff5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.app-header-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.app-header h1{margin:0;font-size:1.4rem;letter-spacing:.05em}.btn-jump{flex-shrink:0;color:var(--primary-dark);border-color:#c9dbf7}.progress{display:flex;align-items:center;gap:10px;margin-top:8px}.progress-bar{flex:1;height:10px;border-radius:999px;background:var(--line);overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:var(--check);transition:width .25s ease}.progress-text{flex-shrink:0;font-size:.9rem;font-weight:700;color:var(--text)}.btn{min-height:48px;padding:0 18px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);font:inherit;font-weight:600;cursor:pointer;touch-action:manipulation}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:active{background:var(--primary-dark)}.btn-danger{color:var(--danger);border-color:#f2c4c4}.btn-small{min-height:44px;padding:0 12px;font-size:.85rem}.btn-large{width:100%;min-height:56px;font-size:1.1rem}.text-input{width:100%;min-height:52px;padding:10px 14px;border:2px solid var(--line);border-radius:12px;font:inherit;font-size:1.05rem;background:#fff;color:var(--text)}.text-input:focus{outline:none;border-color:var(--primary)}.notice{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px;padding:12px 14px;border-radius:12px;font-size:.9rem}.notice p{margin:0}.notice-warning{background:var(--warn-bg);border:1px solid var(--warn-line)}.empty{margin:24px 0;padding:28px 16px;border:2px dashed var(--line);border-radius:16px;text-align:center;color:var(--muted)}.section-title{margin:20px 0 8px;font-size:1rem;color:var(--text)}.section-title-done{color:var(--muted)}.section-count{font-weight:400;color:var(--muted)}.all-done{margin:8px 0;color:var(--muted)}.item-list{list-style:none;margin:0;padding:0}.item{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:6px 8px 6px 4px;border:1px solid var(--line);border-radius:14px;background:#fff}.item-check{flex:1;display:flex;align-items:center;gap:12px;min-height:56px;padding:4px 8px;cursor:pointer;min-width:0}.item-check input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex-shrink:0;width:36px;height:36px;margin:0;border:2.5px solid #9aa3af;border-radius:8px;background:#fff center / 24px 24px no-repeat;cursor:pointer}.item-check input[type=checkbox]:checked{border-color:var(--check);background-color:var(--check);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='4 12.5 9.5 18 20 6.5'/%3E%3C/svg%3E")}.item-check input[type=checkbox]:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}.item-name{font-size:1.15rem;word-break:break-word}.item-actions{display:flex;gap:6px;flex-shrink:0}.item.is-purchased{background:var(--done-bg);border-color:var(--done-bg)}.item.is-purchased .item-name{color:var(--done-text);text-decoration:line-through}.item.is-purchased .item-check input[type=checkbox]{opacity:.75}.item.is-editing{padding:10px;border-color:var(--primary)}.edit-form{width:100%}.edit-actions{display:flex;gap:8px;margin-top:8px}.edit-actions .btn{flex:1}.summary{margin:20px 0 12px;padding:10px;border-radius:12px;background:#f7f9fc;text-align:center;font-size:1.05rem}.summary strong{font-size:1.3rem}.add-form{display:flex;flex-direction:column;gap:8px}.add-label{font-weight:700}.hint{margin:0;font-size:.85rem;color:var(--muted)}.btn-mic{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:64px;border:none;background:#0f766e;color:#fff;font-size:1.2rem}.btn-mic:active{background:#0b5d57}.btn-mic.is-listening{background:#d93025;animation:mic-pulse 1.2s ease-in-out infinite}.mic-dot{width:14px;height:14px;border-radius:50%;background:#fff;animation:mic-blink 1s ease-in-out infinite}@keyframes mic-pulse{0%,to{box-shadow:0 0 #d9302573}50%{box-shadow:0 0 0 10px #d9302500}}@keyframes mic-blink{50%{opacity:.3}}@media (prefers-reduced-motion: reduce){.btn-mic.is-listening,.mic-dot{animation:none}}.voice-live{margin:0;padding:10px 12px;border:2px dashed #d93025;border-radius:12px;background:#fff5f4;word-break:break-word}.voice-live-label{display:inline-block;margin-right:8px;padding:0 8px;border-radius:999px;background:#d93025;color:#fff;font-size:.8rem;font-weight:700;vertical-align:2px}.voice-error{margin:0;padding:10px 12px;border-radius:12px;background:var(--warn-bg);border:1px solid var(--warn-line);font-size:.9rem}.voice-info{margin:0;color:#0b5d57;font-size:.9rem;font-weight:600}.voice-unavailable{margin:0;padding:10px 12px;border-radius:12px;background:#f7f9fc;font-size:.9rem;color:var(--muted)}.message{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;width:min(92vw,520px);margin:0;padding:12px 16px;border-radius:12px;background:#1f2937;color:#fff;text-align:center;font-size:.95rem;box-shadow:0 6px 20px #0000002e;transform:translate(-50%);pointer-events:none;visibility:hidden;opacity:0;transition:opacity .2s ease}.message.is-visible{visibility:visible;opacity:1}.end-area{margin-top:28px;padding-top:20px;border-top:2px dashed var(--line)}.btn-end{background:#fff;border:2px solid #374151;color:#111827}.btn-end:disabled{border-color:var(--line);color:var(--done-text);cursor:not-allowed}.end-hint{margin-top:8px;text-align:center}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:16px 12px calc(16px + env(safe-area-inset-bottom));background:#11182773}@media (min-height: 640px){.dialog-backdrop{align-items:center}}.dialog{width:100%;max-width:480px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;padding:20px 16px 16px;border-radius:18px;background:#fff;box-shadow:0 12px 40px #00000040}.dialog-title{margin:0 0 10px;font-size:1.2rem}.dialog-body p{margin:0 0 8px}.dialog-warning{font-weight:700;color:#b45309}.dialog-note{font-size:.9rem;color:var(--muted)}.dialog-list{max-height:30vh;overflow-y:auto;margin:0 0 8px;padding:8px 12px 8px 1.6em;border-radius:10px;background:var(--warn-bg);font-size:1.05rem}.dialog-actions{display:flex;flex-direction:column;gap:10px;margin-top:14px}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.app-footer{margin-top:28px;padding-top:12px;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}.app-footer summary{cursor:pointer;padding:8px 0}.app-footer ul{padding-left:1.2em}
