*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--navy: #0f2237;--navy-mid: #1a3a5c;--green: #2d6a4f;--green-light: #e8f4ee;--red: #9b2335;--amber: #c27b2e;--bg: #f2ede8;--surface: #ffffff;--border: #d8d0c8;--text: #1a1a1a;--muted: #6b6560;--radius-sm: 6px;--radius: 10px}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;min-height:100vh}.app-header{background:var(--navy);padding:20px 20px 16px;position:sticky;top:0;z-index:10}.app-title{font-size:22px;font-weight:700;color:#fff;letter-spacing:-.02em}.app-subtitle{font-size:13px;color:#ffffff8c;margin-top:2px;font-weight:500}.content{display:flex;flex-direction:column;gap:14px;padding:18px 16px 100px}.seg-control{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.seg-btn{flex:1;padding:10px 4px;border:none;border-right:1px solid var(--border);background:transparent;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;transition:background .12s}.seg-btn:last-child{border-right:none}.seg-btn:active{background:var(--bg)}.seg-active{background:var(--navy);color:#fff}.seg-done{background:var(--green-light);color:var(--green)}.seg-count{font-size:11px;font-weight:700;opacity:.8}.progress-track{height:4px;background:var(--border);border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:var(--green);border-radius:99px;transition:width .35s ease}.progress-label{font-size:12px;color:var(--muted);font-weight:500}.upload-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.upload-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}.upload-hint{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:12px}.btn-upload{padding:9px 18px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--navy);cursor:pointer}.btn-upload:disabled{opacity:.5}.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)}.section-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px}.add-item-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:8px}.add-row2{display:flex;gap:8px}.field{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:15px;background:var(--bg);color:var(--text);outline:none}.field:focus{border-color:var(--navy-mid);background:#fff}.btn-add{padding:10px 16px;background:var(--navy);color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;flex-shrink:0}.item-list{display:flex;flex-direction:column;gap:6px}.empty-hint{font-size:14px;color:var(--muted);text-align:center;padding:20px 0}.setup-item{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px}.setup-item-info{display:flex;flex-direction:column;gap:1px}.setup-item-name{font-size:14px;font-weight:500}.setup-item-qty{font-size:12px;color:var(--muted)}.btn-remove{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:4px 8px;flex-shrink:0}.checklist-item{width:100%;display:flex;align-items:center;gap:12px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;position:relative;overflow:hidden;transition:border-color .12s}.checklist-item:active{opacity:.85}.item-checked{border-color:var(--green);background:var(--green-light)}.check-box{width:24px;height:24px;border-radius:4px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0;color:#fff}.check-box-done{background:var(--green);border-color:var(--green)}.item-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.item-name{font-size:15px;font-weight:500;color:var(--text)}.item-checked .item-name{text-decoration:line-through;color:var(--muted)}.item-meta{font-size:12px;font-weight:600;color:var(--amber)}.item-checked .item-meta{color:var(--green)}.item-progress-bar{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--border)}.item-progress-fill{display:block;height:100%;background:var(--amber);transition:width .3s ease}.voice-area{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 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:3px solid transparent;font-size:30px;cursor:pointer;box-shadow:0 2px 12px #0f22374d;transition:all .12s;touch-action:none;-webkit-user-select:none;user-select:none}.voice-btn.recording{background:var(--red);transform:scale(1.12);box-shadow:0 4px 20px #9b233566}.voice-btn.processing{background:var(--amber);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.btn-primary{width:100%;padding:15px;background:var(--navy);color:#fff;border:none;border-radius:var(--radius-sm);font-size:16px;font-weight:700;cursor:pointer;letter-spacing:.01em}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-primary:not(:disabled):active{opacity:.85}.btn-ghost{width:100%;padding:12px;background:none;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:6px 14px;background:var(--bg);border:1px solid var(--border);border-radius:99px;font-size:13px;font-weight:600;cursor:pointer;color:var(--navy)}.done-banner{background:var(--green-light);border:1px solid var(--green);color:var(--green);border-radius:var(--radius-sm);padding:14px;font-weight:700;font-size:15px;text-align:center}
