*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--navy: #1a3a5c;--green: #2e7d32;--red: #c62828;--bg: #f0f4f8;--card: #ffffff;--border: #dde3ec;--text: #1a1a2e;--muted: #6b7a99;--radius: 14px}html,body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-tap-highlight-color:transparent}.app{max-width:480px;margin:0 auto;min-height:100vh}.screen{display:flex;flex-direction:column;gap:12px;padding:16px 16px 100px}.header{padding:12px 4px 4px}.header h1{font-size:26px;font-weight:700;color:var(--navy)}.subtitle{color:var(--muted);font-size:14px;margin-top:2px}.card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:0 1px 4px #00000014}.tab-bar{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.tab-bar::-webkit-scrollbar{display:none}.tab{flex:1;min-width:90px;padding:8px 6px;border:2px solid var(--border);border-radius:10px;background:var(--card);font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;position:relative;white-space:nowrap;transition:all .15s}.tab-active{border-color:var(--navy);color:var(--navy);background:#e8eef7}.tab-done{border-color:var(--green);color:var(--green);background:#e8f5e9}.badge{display:inline-block;margin-left:4px;background:var(--navy);color:#fff;font-size:11px;font-weight:700;padding:1px 6px;border-radius:20px}.tab-done .badge{background:var(--green)}.input-row{display:flex;gap:8px;align-items:center}.text-input{flex:1;padding:10px 14px;border:2px solid var(--border);border-radius:10px;font-size:15px;outline:none;background:var(--bg)}.text-input:focus{border-color:var(--navy)}.btn-icon{width:42px;height:42px;border-radius:10px;background:var(--navy);color:#fff;font-size:22px;font-weight:300;border:none;cursor:pointer;flex-shrink:0}.item-list{margin-top:10px;display:flex;flex-direction:column;gap:6px}.empty-hint{color:var(--muted);font-size:14px;text-align:center;padding:12px 0}.item-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--bg);border-radius:9px;font-size:14px}.btn-remove{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:0 4px}.checklist-item{width:100%;display:flex;align-items:center;gap:12px;padding:14px 12px;background:var(--bg);border-radius:10px;border:2px solid transparent;cursor:pointer;text-align:left;font-size:15px;font-weight:500;transition:all .15s}.checklist-item:active{transform:scale(.98)}.item-checked{background:#e8f5e9;border-color:var(--green);color:var(--green);text-decoration:line-through;opacity:.75}.check-circle{width:26px;height:26px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;color:var(--green)}.item-checked .check-circle{background:var(--green);border-color:var(--green);color:#fff}.item-name{flex:1}.progress-bar{height:6px;background:var(--border);border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:var(--green);border-radius:99px;transition:width .4s ease}.progress-label{font-size:13px;color:var(--muted);text-align:right}.voice-area{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 0 8px}.voice-hint{font-size:13px;color:var(--muted);font-weight:500}.voice-btn{width:80px;height:80px;border-radius:50%;background:var(--navy);border:none;font-size:32px;cursor:pointer;box-shadow:0 4px 16px #1a3a5c59;transition:all .15s;touch-action:none;-webkit-user-select:none;user-select:none}.voice-btn:active,.voice-btn-active{background:var(--red);transform:scale(1.1);box-shadow:0 6px 24px #c6282866}.voice-btn-processing{background:#e65100;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.btn-primary{width:100%;padding:16px;background:var(--navy);color:#fff;border:none;border-radius:var(--radius);font-size:16px;font-weight:700;cursor:pointer;transition:opacity .15s}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary:active{opacity:.85}.btn-secondary{padding:10px 16px;background:var(--navy);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.btn-ghost{width:100%;padding:12px;background:none;color:var(--navy);border:2px dashed var(--border);border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer}.qty-input{max-width:70px;flex-shrink:0}.item-qty{font-size:13px;font-weight:400;color:var(--muted);margin-left:2px}.item-checked .item-qty{color:var(--green);opacity:.7}.upload-card{border:2px dashed var(--border)}.upload-hint{font-size:13px;color:var(--muted);margin-bottom:12px;line-height:1.5}.btn-upload{width:100%;padding:12px;background:var(--bg);color:var(--navy);border:2px solid var(--navy);border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;transition:all .15s}.btn-upload:disabled{opacity:.6;cursor:not-allowed}.btn-upload:not(:disabled):active{background:#e8eef7}.parse-success{margin-top:10px;font-size:13px;font-weight:600;color:var(--green)}.parse-error{margin-top:10px;font-size:13px;font-weight:600;color:var(--red)}.label{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--muted);letter-spacing:.05em;margin-bottom:8px}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:6px 14px;background:var(--bg);border:2px solid var(--border);border-radius:99px;font-size:13px;font-weight:600;cursor:pointer;color:var(--navy)}.chip:active{background:#e8eef7}.all-done-banner{background:#e8f5e9;border:2px solid var(--green);color:var(--green);border-radius:var(--radius);padding:14px 18px;font-weight:700;font-size:15px;text-align:center}
