*,:before,:after{box-sizing:border-box}:root{--bg:#f3f0eb;--bg-soft:#eae6df;--panel:#fff;--panel-soft:#faf8f5;--border:#d9d2c8;--border-strong:#c4bbb0;--text:#1c1a17;--text-muted:#5c564e;--text-faint:#8a8378;--accent:#2c4a3e;--accent-hover:#243d33;--accent-soft:#2c4a3e1a;--accent-ring:#2c4a3e59;--copper:#a65d3b;--copper-soft:#a65d3b1f;--success:#2d6a4f;--success-strong:#1b4332;--success-soft:#d8f3dc;--danger:#9b2c2c;--danger-soft:#fde8e8;--warn-bg:#faf0d7;--warn-text:#6b4e00;--good-bg:#d8f3dc;--good-text:#1b4332;--bad-bg:#fde8e8;--bad-text:#7f1d1d;--shadow:0 1px 2px #1c1a170a, 0 8px 24px #1c1a170f;--shadow-lg:0 4px 12px #1c1a170f, 0 16px 40px #1c1a1714;--radius:16px;--radius-sm:12px;--font:"Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:17px;line-height:1.45}body{background:radial-gradient(1200px 600px at 10% -10%, #2c4a3e12, transparent 55%), radial-gradient(900px 500px at 100% 0%, #a65d3b0f, transparent 50%), var(--bg);min-height:100svh;color:var(--text);margin:0}#root{min-height:100svh}button,input,select,textarea{font:inherit}.app-shell{max-width:720px;margin:0 auto;padding:20px 16px 120px}.app-main-col,.work-grid,.work-col{flex-direction:column;gap:14px;min-width:0;display:flex}@media (width>=1000px){.app-shell{max-width:1120px}.work-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}}.app-shell.admin-on{max-width:1180px}@media (width>=1100px){.app-shell.admin-on{grid-template-columns:minmax(0,1fr) minmax(300px,380px);align-items:start;gap:20px;display:grid}}@media (width>=1100px) and (width<=1399px){.app-shell.admin-on .work-grid{flex-direction:column;display:flex}}@media (width>=1400px){.app-shell.admin-on{max-width:1600px}}.app-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:4px 2px 2px;display:flex}.brand-mark{align-items:center;gap:12px;display:flex}.brand-logo{background:linear-gradient(145deg, var(--accent) 0%, #1a332a 100%);color:#fff;letter-spacing:.04em;width:44px;height:44px;box-shadow:var(--shadow);border-radius:12px;flex-shrink:0;place-items:center;font-size:.85rem;font-weight:800;display:grid}.app-header h1{letter-spacing:-.03em;color:var(--text);margin:0;font-size:clamp(1.35rem,4vw,1.65rem);font-weight:750;line-height:1.15}.app-sub{color:var(--text-muted);margin:3px 0 0;font-size:.9rem}.admin-toggle{flex-shrink:0;align-items:center;gap:6px;width:auto;min-height:44px;padding:8px 12px;font-size:.88rem;display:inline-flex}.admin-toggle.active{background:var(--accent);color:#fff;border-color:var(--accent)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.flow-strip{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;margin:0;padding:12px 10px 10px;list-style:none;display:grid}.flow-step{flex-direction:column;gap:7px;min-width:0;padding:2px 6px;display:flex;position:relative}.flow-step:before{content:"";background:var(--border);height:2px;transition:background .3s;position:absolute;top:14px;left:42px;right:-2px}.flow-step:last-child:before{display:none}.flow-step.is-done:before{background:var(--accent)}.flow-step-marker{background:var(--bg-soft);width:30px;height:30px;color:var(--text-faint);border:2px solid var(--border);z-index:1;border-radius:50%;place-items:center;font-size:.85rem;font-weight:800;transition:background .25s,border-color .25s,color .25s,box-shadow .25s;display:grid;position:relative}.flow-step.is-done .flow-step-marker{background:var(--accent);border-color:var(--accent);color:#fff}.flow-step.is-active .flow-step-marker{border-color:var(--copper);color:var(--copper);box-shadow:0 0 0 4px var(--copper-soft);background:#fff}.flow-step-body{flex-direction:column;gap:2px;min-width:0;display:flex}.flow-step-label{color:var(--text-faint);font-size:.82rem;font-weight:700;line-height:1.2;transition:color .25s}.flow-step.is-done .flow-step-label,.flow-step.is-active .flow-step-label{color:var(--text)}.flow-step-hint{color:var(--text-faint);font-size:.72rem;line-height:1.3}@media (width<=560px){.flow-step-hint{display:none}.flow-step-label{font-size:.76rem}}.restart-dictation{width:auto;min-height:40px;color:var(--text-faint);margin:8px auto 0;padding:8px 14px;font-size:.86rem}.restart-dictation:hover:not(:disabled){color:var(--danger)}.notice{border-radius:var(--radius-sm);border:1px solid;margin:0 0 14px;padding:12px 14px}.notice strong{margin-bottom:4px;display:block}.notice p{margin:0;font-size:.88rem;line-height:1.45}.notice code{background:#00000012;border-radius:5px;padding:1px 5px;font-size:.85em}.notice-warn{background:var(--warn-bg);color:var(--warn-text);border-color:#6b4e0047}.send-receipt{background:var(--good-bg);border-radius:var(--radius-sm);border:1px solid #1b433238;padding:14px}.send-receipt-head{align-items:flex-start;gap:10px;display:flex}.send-receipt-badge{background:var(--success);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:.8rem;font-weight:800;display:grid}.send-receipt-head strong{color:var(--good-text);line-height:1.3;display:block}.send-receipt-time{color:var(--success);font-size:.8rem}.send-receipt-sections{flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0 0 0 36px;list-style:none;display:flex}.send-receipt-sections li{color:var(--good-text);background:#ffffffb8;border:1px solid #1b43322e;border-radius:999px;padding:3px 9px;font-size:.78rem;font-weight:650}.send-receipt-foot{color:var(--good-text);opacity:.88;margin:10px 0 0;font-size:.86rem;line-height:1.45}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:18px}.panel h2{color:var(--text);align-items:center;gap:10px;margin:0 0 14px;font-size:1.02rem;font-weight:700;display:flex}.step-num{background:var(--accent-soft);width:28px;height:28px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.88rem;font-weight:800;display:inline-flex}.panel.is-active .step-num{background:var(--accent);color:#fff}.panel-hint{color:var(--text-muted);margin:-6px 0 14px;font-size:.9rem;line-height:1.4}label{color:var(--text-muted);margin-top:12px;margin-bottom:5px;font-size:.88rem;font-weight:650;display:block}select,input,textarea,button{border-radius:var(--radius-sm);border:1.5px solid var(--border);width:100%;color:var(--text);background:#fff;min-height:48px;padding:12px 14px}input,select,textarea{min-width:0}textarea{resize:vertical;min-height:110px;line-height:1.45}textarea.field-desc{min-height:88px}select.field-warn{border-color:var(--danger);background:var(--danger-soft)}:focus-visible{outline:3px solid var(--accent-ring);outline-offset:2px}button{cursor:pointer;background:var(--accent);border:1.5px solid var(--accent);color:#fff;justify-content:center;align-items:center;gap:8px;font-weight:700;transition:background .15s,border-color .15s,opacity .15s,transform .1s;display:inline-flex}button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button:active:not(:disabled){transform:translateY(1px)}button.secondary{color:var(--accent);border-color:var(--border-strong);background:#fff}button.secondary:hover:not(:disabled){background:var(--panel-soft);border-color:var(--accent)}button.success{background:var(--success);border-color:var(--success-strong)}button.success:hover:not(:disabled){background:var(--success-strong)}button.ghost{color:var(--text-muted);box-shadow:none;background:0 0;border-color:#0000;font-weight:600}button.ghost:hover:not(:disabled){background:var(--bg-soft);color:var(--text)}button.danger-ghost{color:var(--danger);background:#fff;border-color:#9b2c2c59;font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}.actions-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.actions-row button{flex:auto;width:auto}.admin-actions{border-top:1px dashed var(--border);padding-top:12px}.mic-button{letter-spacing:.01em;border-radius:18px;min-height:72px;font-size:1.12rem}.mic-button .mic-icon{font-size:1.25rem;line-height:1}.mic-button.recording{background:var(--danger);border-color:#7f1d1d;animation:1.6s ease-in-out infinite mic-pulse}.mic-button.connecting{background:var(--text-faint);border-color:var(--text-faint)}@keyframes mic-pulse{0%,to{box-shadow:0 0 #9b2c2c66}50%{box-shadow:0 0 0 14px #9b2c2c00}}.rec-dot{background:#fff;border-radius:50%;width:11px;height:11px;animation:1s steps(2,start) infinite rec-blink}@keyframes rec-blink{to{visibility:hidden}}.spinner{border:3px solid #ffffff59;border-top-color:currentColor;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.8s linear infinite spin}button.secondary .spinner,button.ghost .spinner,.extract-progress .spinner{border-color:#2c4a3e33;border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.extract-progress{border-radius:var(--radius-sm);background:var(--warn-bg);color:var(--warn-text);align-items:center;gap:10px;margin-top:12px;padding:12px 14px;font-weight:650;display:flex}.extract-progress button{width:auto;min-height:40px;margin-left:auto;padding:6px 14px}.status-box{border-radius:var(--radius-sm);border:1.5px solid #0000;padding:13px 15px;font-size:.98rem;font-weight:650;line-height:1.35}.status-box.good{background:var(--good-bg);color:var(--good-text);border-color:#1b43322e}.status-box.warn{background:var(--warn-bg);color:var(--warn-text);border-color:#6b4e002e}.status-box.bad{background:var(--bad-bg);color:var(--bad-text);border-color:#7f1d1d33}.target-summary{border-radius:var(--radius-sm);background:var(--panel-soft);border:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.target-summary-text{overflow-wrap:anywhere;min-width:0;font-weight:650;line-height:1.35}.target-summary button{flex-shrink:0;width:auto;min-height:42px;padding:8px 14px}.target-done{margin-top:14px}.empty-state{text-align:center;border-radius:var(--radius-sm);background:var(--panel-soft);border:1.5px dashed var(--border-strong);padding:28px 16px 20px}.empty-state-icon{background:var(--accent-soft);width:56px;height:56px;color:var(--accent);border-radius:16px;place-items:center;margin:0 auto 12px;font-size:1.5rem;display:grid}.empty-state strong{margin-bottom:6px;font-size:1.02rem;display:block}.empty-state p{color:var(--text-muted);margin:0;max-width:28ch;margin-inline:auto;font-size:.92rem;line-height:1.45}.points-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.points-toolbar .count-chip{color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:5px 11px;font-size:.82rem;font-weight:700}.points-toolbar button{width:auto;min-height:40px;padding:8px 12px;font-size:.88rem}.points-cards{flex-direction:column;gap:12px;display:flex}.point-card{border-radius:var(--radius-sm);background:var(--panel-soft);border:1.5px solid var(--border);min-width:0;padding:14px 14px 12px;transition:border-color .15s,box-shadow .15s}.point-card-main{background:#fff;border-color:#2c4a3e59;box-shadow:0 0 0 1px #2c4a3e0a}.point-card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:10px;display:flex}.point-card-title{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.point-card-title strong{font-size:.95rem}.point-chip{background:var(--copper-soft);color:var(--copper);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;max-width:100%;padding:3px 9px;font-size:.75rem;font-weight:700;overflow:hidden}.point-chip.muted{background:var(--bg-soft);color:var(--text-faint)}.point-card-header button{flex-shrink:0;width:auto;min-height:40px;padding:7px 12px;font-size:.85rem}.point-card-fields{flex-direction:column;gap:8px;display:flex}.field-row{flex-direction:column;gap:4px;min-width:0;display:flex}.field-row label{margin:0;font-size:.84rem}.field-row-inline{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=480px){.field-row-inline{grid-template-columns:1fr}}.details-toggle{width:auto;min-height:36px;color:var(--text-muted);align-self:flex-start;margin-top:4px;padding:6px 2px;font-size:.85rem}.details-toggle:hover:not(:disabled){color:var(--accent);background:0 0}details summary{cursor:pointer;list-style:none}details summary::-webkit-details-marker{display:none}details[open] .details-toggle:before{content:"▾ "}details:not([open]) .details-toggle:before{content:"▸ "}.review-check{border-radius:var(--radius-sm);background:var(--panel-soft);border:1.5px solid var(--border);cursor:pointer;color:var(--text);align-items:center;gap:12px;margin:0 0 14px;padding:13px 14px;font-size:.98rem;font-weight:650;display:flex}.review-check:has(input:checked){background:var(--success-soft);border-color:#2d6a4f59}.review-check input{width:24px;height:24px;min-height:0;accent-color:var(--success);flex-shrink:0;margin:0}.send-button{border-radius:14px;min-height:58px;font-size:1.02rem}.sticky-send{display:none}@media (width<=720px){.sticky-send.visible{z-index:40;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(180deg, transparent, var(--bg) 28%);display:block;position:fixed;bottom:0;left:0;right:0}.sticky-send .send-button{box-shadow:var(--shadow-lg)}.panel-send .send-button{display:none}.panel-send.has-sticky-hidden .review-check{margin-bottom:0}}.app-sidebar{border-radius:var(--radius);color:#ebe6df;min-width:0;box-shadow:var(--shadow-lg);background:#1c1a17;padding:16px}.app-sidebar h2{color:#a89f93;text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px;font-size:.8rem;font-weight:700}.app-sidebar h2+.preview-box{margin-bottom:16px}.preview-box{white-space:pre-wrap;word-break:break-word;background:#ffffff0d;border:1px solid #ffffff14;border-radius:10px;max-height:40vh;margin:0;padding:12px;font-family:ui-monospace,Consolas,monospace;font-size:.76rem;line-height:1.5;overflow:auto}.log-box{max-height:28vh}@media (width<=600px){:root{font-size:16px}.app-shell{padding:14px 12px 110px}.panel{padding:15px}.target-summary{flex-wrap:wrap}.send-button,.mic-button{font-size:1rem}.brand-logo{width:40px;height:40px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
