.auth-container{align-items:center;background:var(--bg-app);display:flex;justify-content:center;min-height:100vh;padding:var(--space-md)}.auth-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-width:380px;padding:var(--space-xl);width:100%}.auth-card h1{color:var(--text-main);font-size:24px;font-weight:800;letter-spacing:-1px;margin:0 0 var(--space-xs) 0;text-align:center}.auth-card h2{color:var(--text-muted);font-size:14px;font-weight:500;letter-spacing:1px;margin:0 0 var(--space-xl) 0;text-align:center;text-transform:uppercase}.form-group{margin-bottom:var(--space-lg)}.form-group label{color:var(--text-main);display:block;font-size:13px;font-weight:600;margin-bottom:var(--space-xs)}.form-group input{background:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-main);font-size:15px;padding:10px 12px;transition:border-color .2s,background .2s;width:100%}.form-group input:focus{background:var(--bg-surface);border-color:var(--text-main);outline:none}.btn-auth{background-color:var(--text-main);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px;transition:opacity .2s,transform .1s;width:100%}.btn-auth:hover:not(:disabled){opacity:.9}.btn-auth:active{transform:scale(.98)}.btn-auth:disabled{background-color:var(--border-subtle);color:var(--text-muted);cursor:not-allowed}.error{background-color:var(--danger-bg);border-radius:var(--radius);color:var(--danger);margin-bottom:var(--space-lg);padding:var(--space-sm)}.auth-link,.error{font-size:13px;text-align:center}.auth-link{color:var(--text-muted);margin-top:var(--space-xl)}.auth-link a{border-bottom:1px solid #0000;color:var(--text-main);font-weight:600;text-decoration:none;transition:border-color .2s}.auth-link a:hover{border-bottom-color:var(--text-main)}.dashboard-header{align-items:center;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;padding:var(--space-md) var(--space-xl);position:-webkit-sticky;position:sticky;top:0;z-index:50}.dashboard-header h1{color:var(--text-main);font-size:20px;font-weight:600;letter-spacing:-.5px}.user-section{align-items:center;display:flex;gap:var(--space-lg)}.user-section span{color:var(--text-muted);font-size:14px}.logout-btn{background:#0000;border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-main);cursor:pointer;font-size:13px;padding:var(--space-xs) var(--space-sm);transition:all .2s}.logout-btn:hover{background:var(--bg-app);border-color:var(--text-muted)}.settings-btn{background:#0000;border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;font-size:13px;padding:var(--space-xs) var(--space-sm);transition:all .2s}.settings-btn:hover{border-color:var(--text-main);color:var(--text-main)}.audio-recorder{align-items:center;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);transition:box-shadow .2s}.audio-recorder:focus-within{border-color:var(--primary);box-shadow:var(--shadow-md)}.recorder-controls{display:flex;gap:var(--space-md);justify-content:center;width:100%}.btn-danger,.btn-primary,.btn-success{align-items:center;border:none;border-radius:50px;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:8px;padding:12px 24px;transition:transform .1s,opacity .2s}.btn-danger:active,.btn-primary:active,.btn-success:active{transform:scale(.98)}.btn-primary{background:var(--text-main);color:#fff}.btn-primary:hover{background:#000;box-shadow:0 4px 12px #00000026}.btn-danger{background:var(--danger-bg);border:1px solid var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-success{background:var(--primary);color:#fff;justify-content:center;width:100%}.btn-success:hover:not(:disabled){background:var(--primary-hover)}.btn-success:disabled{background:var(--border-subtle);color:var(--text-muted);cursor:not-allowed}.recorder-status{text-align:center;width:100%}.recording-indicator{align-items:center;background:var(--danger-bg);border-radius:20px;color:var(--danger);display:inline-flex;font-size:14px;font-weight:600;gap:10px;padding:6px 16px}.recording-indicator .dot{animation:pulse 1.5s ease-in-out infinite;background:var(--danger);border-radius:50%;height:8px;width:8px}.status-message{background:var(--bg-app);border-radius:var(--radius);color:var(--text-muted);font-size:13px;margin-top:var(--space-md);padding:var(--space-sm)}.status-message.error{background:var(--danger-bg);color:var(--danger)}.status-message.success{background:#eff6ff;color:var(--primary)}.cuppings-list{margin:0 auto;max-width:1200px;padding:var(--space-lg)}.list-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-xl)}.list-header h2{color:var(--text-main);font-size:24px;font-weight:700;letter-spacing:-.5px}.btn-refresh{align-items:center;background:#0000;border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;display:flex;font-size:14px;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);transition:all .2s}.btn-refresh:hover{background:#fff;border-color:var(--primary);color:var(--primary)}.batch-block{margin-bottom:var(--space-xl)}.batch-header{padding-bottom:var(--space-sm)}.batch-header h3{font-size:18px}.batch-id-small{color:var(--text-muted);font-family:monospace;font-size:12px}.cuppings-grid{grid-gap:var(--space-md);display:grid;gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.cupping-card{background:var(--bg-surface);border:1px solid #0000;border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;padding:var(--space-md);transition:transform .2s,box-shadow .2s}.cupping-card:hover{border-color:var(--border-subtle);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:var(--space-sm)}.card-header h4{font-size:16px;font-weight:600}.date{font-size:12px}.date,.preview{color:var(--text-muted)}.preview{flex-grow:1;font-size:14px;line-height:1.4;margin-bottom:var(--space-md)}.card-actions{border-top:1px solid var(--bg-app);display:flex;gap:var(--space-sm);padding-top:var(--space-md)}.btn-delete,.btn-view{border:none;border-radius:var(--radius);cursor:pointer;flex:1 1;font-size:13px;font-weight:500;padding:6px 12px;transition:background .2s}.btn-view{background:var(--bg-app);color:var(--text-main)}.btn-view:hover{background:var(--border-subtle)}.btn-delete{color:var(--text-muted)}.btn-delete:hover{background:var(--danger-bg);color:var(--danger)}.empty-state,.loading,.no-cuppings{background:var(--bg-surface);border:1px dashed var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);padding:var(--space-xl);text-align:center}.cupping-detail-modal{align-items:center;display:flex;inset:0;justify-content:center;padding:var(--space-md);position:fixed;z-index:100}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000004d;inset:0;position:absolute}.modal-content{background:var(--bg-surface);border-radius:12px;box-shadow:var(--shadow-lg);max-height:85vh;max-width:600px;overflow-y:auto;padding:var(--space-xl);position:relative;width:100%}.modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:20px;padding:var(--space-xs);position:absolute;right:var(--space-md);top:var(--space-md)}.detail-section{margin-top:var(--space-xl)}.detail-section h3{color:var(--text-muted);font-size:14px;font-weight:600;letter-spacing:.5px;margin-bottom:var(--space-md);text-transform:uppercase}.entry-item,.note-field{border-bottom:1px solid var(--bg-app);padding:var(--space-sm) 0}.note-field strong{font-size:14px;font-weight:500}.note-field span{color:var(--text-main);line-height:1.5;word-break:break-word}.entry-time{font-size:12px;margin-bottom:4px}.dashboard-container{background-color:var(--bg-app);min-height:100vh}.dashboard-content{margin:0 auto;max-width:800px;padding:var(--space-xl) var(--space-md)}.recorder-section{margin-bottom:var(--space-xl)}.recorder-section h2{color:var(--text-muted);font-size:14px;font-weight:600;letter-spacing:.05em;margin-bottom:var(--space-md);text-transform:uppercase}.sessions-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-lg)}.sessions-header h2{color:var(--text-main);font-size:24px;font-weight:600;margin:0}.btn-new-session{background:var(--text-main);border:none;border-radius:var(--radius);color:var(--bg-surface);cursor:pointer;font-size:14px;font-weight:500;padding:var(--space-sm) var(--space-lg);transition:all .2s}.btn-new-session:hover{opacity:.8}.filter-section{border-bottom:1px solid var(--border-subtle);display:flex;gap:var(--space-sm);margin-bottom:var(--space-xl);padding-bottom:var(--space-md)}.filter-btn{background:#0000;border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;font-size:13px;padding:var(--space-xs) var(--space-md);transition:all .2s}.filter-btn:hover{border-color:var(--text-main);color:var(--text-main)}.filter-btn.active{background:var(--text-main);border-color:var(--text-main);color:var(--bg-surface)}.sessions-list{display:flex;flex-direction:column;gap:var(--space-md)}.session-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:var(--space-lg);transition:all .2s}.session-card:hover{border-color:var(--text-muted);box-shadow:0 2px 8px #0000000d}.session-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-md)}.session-date{color:var(--text-main);font-size:15px;font-weight:500}.session-status{align-items:center;border-radius:var(--radius);display:flex;font-size:12px;font-weight:500;gap:var(--space-xs);letter-spacing:.05em;padding:var(--space-xs) var(--space-sm);text-transform:uppercase}.status-icon{font-size:14px}.status-red{background:#ef44441a;color:#ef4444}.status-yellow{background:#eab3081a;color:#eab308}.status-blue{background:#3b82f61a;color:#3b82f6}.status-green{background:#22c55e1a;color:#22c55e}.session-info{margin-bottom:var(--space-md)}.session-counts{color:var(--text-muted);font-size:14px;margin-bottom:var(--space-xs)}.session-batches{color:var(--text-main);font-size:13px;font-weight:500}.more-batches{color:var(--text-muted);font-weight:400}.session-batch-list{margin-bottom:var(--space-md)}.session-batch-item{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;gap:var(--space-sm);padding:var(--space-xs) 0}.session-batch-item:last-child{border-bottom:none}.session-roaster-name{color:var(--text-muted);flex-shrink:0;font-size:13px;font-weight:500}.session-batch-label{font-size:13px;font-weight:600}.session-batch-label,.session-batch-score{color:var(--text-main);flex-grow:0;flex-shrink:0}.session-batch-score{font-size:15px;font-weight:700;text-align:center;width:20px}.session-batch-notes{color:var(--text-muted);flex:1 1;font-size:13px}.session-pending-note{color:var(--text-muted);flex:1 1;font-size:12px;font-style:italic}.session-actions{gap:var(--space-sm)}.session-actions .btn-primary{background:var(--text-main);border:none;border-radius:var(--radius);color:var(--bg-surface);cursor:pointer;flex:1 1;font-size:13px;font-weight:500;padding:var(--space-sm) var(--space-md);transition:all .2s}.session-actions .btn-primary:hover{opacity:.9}.btn-disabled{background:var(--border-subtle);border:none;border-radius:var(--radius);color:var(--text-muted);cursor:not-allowed;flex:1 1;font-weight:500}.btn-delete,.btn-disabled{font-size:13px;padding:var(--space-sm) var(--space-md)}.btn-delete{background:#0000;border:1px solid var(--border-subtle);border-radius:var(--radius);cursor:pointer;transition:all .2s}.btn-delete:hover{background:#ef44441a;border-color:#ef4444}.empty-state{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);margin-top:var(--space-lg);padding:var(--space-xl) var(--space-lg);text-align:center}.empty-state p{color:var(--text-muted);font-size:15px;margin-bottom:var(--space-lg)}.empty-state .btn-primary{background:var(--text-main);border:none;border-radius:var(--radius);color:var(--bg-surface);cursor:pointer;font-size:14px;font-weight:500;padding:var(--space-sm) var(--space-xl);transition:all .2s}.empty-state .btn-primary:hover{opacity:.8}.error-message{background:#ef44441a;color:#ef4444}.pagination{align-items:center;border-top:1px solid var(--border-subtle);display:flex;gap:var(--space-lg);justify-content:center;margin-top:var(--space-xl);padding-top:var(--space-lg)}.pagination-btn{background:#0000;border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-main);cursor:pointer;font-size:13px;padding:var(--space-sm) var(--space-md);transition:all .2s}.pagination-btn:hover:not(:disabled){background:var(--bg-app);border-color:var(--text-main)}.pagination-btn:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.5}.pagination-info{color:var(--text-muted);font-size:13px}@media (max-width:768px){.sessions-header{align-items:stretch;flex-direction:column;gap:var(--space-md)}.btn-new-session{width:100%}.session-batch-item{align-items:flex-start;flex-wrap:wrap}.session-batch-label{order:1}.session-batch-score{order:2}.session-batch-notes,.session-pending-note{flex-basis:100%;font-size:12px;margin-top:2px;order:3}}.roaster-matched{align-items:center;background-color:#e8f5e9;border:1px solid #4caf50;border-radius:6px;display:flex;gap:8px;padding:8px 12px}.roaster-matched .roaster-name{color:#2e7d32;font-weight:500}.roaster-matched .checkmark{color:#4caf50;font-size:18px}.roaster-new{display:flex;flex-direction:column;gap:8px}.roaster-name-row{align-items:center;display:flex;gap:8px}.roaster-input{border:2px solid #ff9800;border-radius:6px;flex:1 1;font-size:14px;padding:8px 12px}.roaster-input:focus{border-color:#f57c00;outline:none}.new-badge{background-color:#ff9800;border-radius:4px;color:#fff;font-size:12px;font-weight:600;padding:4px 8px;white-space:nowrap}.roaster-suggestions{display:flex;flex-direction:column;gap:8px}.suggestions-toggle{background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;color:#666;cursor:pointer;font-size:13px;padding:6px 12px;text-align:left}.suggestions-toggle:hover{background-color:#eee}.suggestions-dropdown{background-color:#fff;border:1px solid #ddd;border-radius:6px;display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto;padding:8px}.suggestion-item{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 12px;text-align:left}.suggestion-item:hover{background-color:#e3f2fd;border-color:#2196f3}.link-existing-btn{background-color:initial;border:1px dashed #999;border-radius:4px;color:#666;cursor:pointer;font-size:13px;padding:6px 12px}.link-existing-btn:hover{border-color:#666;color:#333}.create-roaster-btn{background-color:#ff9800;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px}.create-roaster-btn:hover:not(:disabled){background-color:#f57c00}.create-roaster-btn:disabled{background-color:#ccc;cursor:not-allowed}.roaster-none{background-color:#f5f5f5;border:1px solid #ddd;border-radius:6px;padding:8px 12px}.no-roaster-label{color:#999;font-size:14px;font-style:italic}.confirm-content{max-width:600px}.confirm-header{margin-bottom:var(--space-xl)}.confirm-header h2{color:var(--text-main);font-size:24px;font-weight:600;margin:0 0 var(--space-xs) 0}.confirm-subtitle{margin:0}.batches-section h3,.confirm-subtitle{color:var(--text-muted);font-size:14px}.batches-section h3{font-weight:600;letter-spacing:.05em;margin-bottom:var(--space-md);text-transform:uppercase}.no-batches-message{background:var(--bg-surface);border:1px dashed var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);font-size:14px;font-style:italic;padding:var(--space-lg);text-align:center}.batch-list{flex-direction:column}.batch-item-row,.batch-list{display:flex;gap:var(--space-md)}.batch-item-row{align-items:flex-start;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:var(--space-lg);transition:all .2s}.batch-item-row:hover{border-color:var(--text-muted)}.batch-item-row.uncertain{background:#eab3080d;border-color:#eab308}.batch-item-content{display:flex;flex:1 1;flex-direction:column;gap:var(--space-md)}.batch-roaster{display:flex;flex-direction:column;gap:var(--space-xs)}.batch-label-section label,.batch-roaster label{color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.batch-label-section{display:flex;flex-direction:column;gap:var(--space-xs)}.batch-item{align-items:center;background:var(--bg-surface);border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:var(--space-md);transition:all .2s}.batch-item:hover{border-color:var(--text-muted)}.batch-item.uncertain{background:#eab3080d}.batch-label{align-items:center;color:var(--text-main);display:flex;font-size:15px;font-weight:500;gap:var(--space-xs)}.warning-icon{color:#eab308;font-size:18px;margin-right:var(--space-sm)}.btn-remove{align-items:center;background:#0000;border:none;border-radius:var(--radius);color:var(--text-muted);cursor:pointer;display:flex;font-size:18px;height:24px;justify-content:center;line-height:1;padding:var(--space-xs);transition:all .2s;width:24px}.btn-remove:hover{background:#ef44441a;color:#ef4444}.add-batch-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);margin-bottom:var(--space-xl);padding:var(--space-lg)}.add-batch-section h3{color:var(--text-main);font-size:14px;font-weight:500;margin:0 0 var(--space-md) 0}.add-batch-controls{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.roaster-input-field{background:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-main);flex:1 1;font-size:14px;min-width:200px;padding:var(--space-sm) var(--space-md);transition:all .2s}.roaster-input-field:focus{border-color:var(--text-main);outline:none}.batch-input{background:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-main);flex:1 1;font-size:14px;min-width:200px;padding:var(--space-sm) var(--space-md);transition:all .2s}.batch-input:focus{border-color:var(--text-main);outline:none}.btn-add{background:var(--text-main);border:none;border-radius:var(--radius);color:var(--bg-surface);cursor:pointer;font-size:14px;font-weight:500;padding:var(--space-sm) var(--space-lg);transition:all .2s;white-space:nowrap}.btn-add:hover{opacity:.9}.agent-notes{background:#3b82f60d;border:1px solid #3b82f633;border-radius:var(--radius);margin-bottom:var(--space-xl);padding:var(--space-md)}.agent-notes h3{color:#3b82f6;font-size:13px;font-weight:600;letter-spacing:.05em;margin:0 0 var(--space-xs) 0;text-transform:uppercase}.agent-notes p{color:var(--text-main);font-size:14px;line-height:1.5;margin:0}.confirm-actions{border-top:1px solid var(--border-subtle);display:flex;gap:var(--space-md);padding-top:var(--space-lg)}.btn-confirm{background:var(--text-main);border:none;border-radius:var(--radius);color:var(--bg-surface);cursor:pointer;flex:2 1;font-size:14px;font-weight:600;padding:var(--space-sm) var(--space-xl);transition:all .2s}.btn-confirm:hover:not(:disabled){opacity:.8}.btn-confirm:disabled{background:var(--border-subtle);color:var(--text-muted);cursor:not-allowed;transform:none}.cupping-guide-widget{margin:var(--space-lg) 0}.guide-toggle{align-items:center;background:#0000;border:none;color:var(--text-main);cursor:pointer;display:flex;font-size:16px;font-weight:500;gap:var(--space-sm);justify-content:space-between;padding:0;transition:opacity .2s ease;-webkit-user-select:none;user-select:none;width:100%}.guide-toggle:hover{opacity:.7}.guide-title{border-bottom:1px solid var(--text-main);flex:1 1;padding-bottom:2px;text-align:left}.guide-toggle .expand-icon{align-items:center;background:#f3f4f6;border-radius:50%;color:var(--text-muted);display:flex;flex-shrink:0;font-size:18px;font-weight:300;height:24px;justify-content:center;transition:all .2s ease;width:24px}.guide-toggle:hover .expand-icon{background:#e5e7eb;color:var(--text-main)}.guide-content{animation:expandContent .3s ease;padding:var(--space-md) 0 0 0}.scoring-scale{background:#f3f4f6;border-radius:var(--radius);margin-bottom:var(--space-lg);padding:var(--space-md)}.scoring-scale h4{color:var(--text-main);font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 var(--space-sm) 0;text-transform:uppercase}.scale-items{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:13px;gap:var(--space-sm)}.scale-items span{white-space:nowrap}.categories-grid{grid-gap:var(--space-sm);display:grid;gap:var(--space-sm);grid-template-columns:1fr}@media (min-width:768px){.categories-grid{grid-template-columns:repeat(2,1fr)}}.category-item{background:#0000}.category-header{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;gap:var(--space-sm);justify-content:space-between;padding:var(--space-md);text-align:left;transition:background-color .2s ease;-webkit-user-select:none;user-select:none;width:100%}.category-header:hover{background:#f9fafb}.category-info{flex:1 1;min-width:0}.category-info h5{color:var(--text-main);font-size:15px;font-weight:600;margin:0 0 var(--space-xs) 0}.category-short{color:var(--text-muted);font-size:13px;line-height:1.4;margin:0}.category-expand{align-items:center;background:#f3f4f6;border-radius:50%;color:var(--text-muted);display:flex;flex-shrink:0;font-size:18px;font-weight:300;height:24px;justify-content:center;transition:all .2s ease;width:24px}.category-header:hover .category-expand{background:#e5e7eb;color:var(--text-main)}.category-details{animation:expandCategoryDetails .2s ease;border-top:1px solid #f3f4f6;padding:0 var(--space-md) var(--space-md)}@keyframes expandCategoryDetails{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.detail-section{margin-top:var(--space-md)}.detail-section:first-child{margin-top:var(--space-sm)}.detail-section strong{color:var(--text-main);display:block;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:var(--space-xs);text-transform:uppercase}.detail-section p{color:var(--text-muted);font-size:14px;line-height:1.5;margin:0}.example-text{background:#f9fafb;border-left:3px solid #d1d5db;border-radius:4px;color:#6b7280;font-style:italic;padding:var(--space-sm)}@media (max-width:767px){.guide-toggle{font-size:15px}.guide-content{padding:var(--space-md) 0 0 0}.scoring-scale{padding:var(--space-sm)}.scale-items{font-size:12px;gap:var(--space-xs)}.category-header{padding:var(--space-sm)}.category-info h5{font-size:14px}.category-short{font-size:12px}.category-expand{font-size:16px;height:20px;width:20px}.category-details{padding:0 var(--space-sm) var(--space-sm)}.detail-section strong{font-size:11px}.detail-section p{font-size:13px}}.recording-content{margin:0 auto;max-width:800px;padding:var(--space-xl) var(--space-md)}.session-header{margin-bottom:var(--space-xl)}.session-header h2{color:var(--text-main);font-size:24px;font-weight:600;margin:0 0 var(--space-xs) 0}.session-started{color:var(--text-muted);font-size:14px;margin:0}.record-section{gap:var(--space-md);margin:var(--space-xl) 0}.record-button,.record-section{align-items:center;display:flex;flex-direction:column}.record-button{background:var(--text-main);border:none;border-radius:50%;box-shadow:var(--shadow-lg);color:var(--bg-surface);cursor:pointer;font-size:24px;font-weight:600;gap:var(--space-sm);height:200px;justify-content:center;position:relative;transition:all .2s;width:200px}.record-button:hover:not(:disabled){opacity:.9;transform:scale(1.02)}.record-button:active:not(:disabled){transform:scale(.98)}.record-button:disabled{cursor:not-allowed;opacity:.6}.record-button.recording{animation:pulse 1.5s infinite;background:var(--danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.record-icon{font-size:3rem}.record-text{font-size:1.2rem;letter-spacing:2px;text-transform:uppercase}.recording-time{bottom:30px;font-size:1rem;font-weight:400;position:absolute}.recording-pulse{animation:ripple 1.5s infinite;border:4px solid #fff;border-radius:50%;height:100%;pointer-events:none;position:absolute;width:100%}@keyframes ripple{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.4)}}.btn-retry-permission{background:var(--text-main);border:none;border-radius:var(--radius);box-shadow:var(--shadow-sm);color:var(--bg-surface);cursor:pointer;font-size:14px;font-weight:600;padding:var(--space-sm) var(--space-xl);transition:all .2s}.btn-retry-permission:hover:not(:disabled){opacity:.8}.btn-retry-permission:disabled{background:var(--border-subtle);color:var(--text-muted);cursor:not-allowed;transform:none}.uploading-indicator{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);margin-bottom:var(--space-lg);padding:var(--space-lg);text-align:center}.uploading-indicator p{color:var(--text-muted);font-size:14px;margin:var(--space-sm) 0 0 0}.spinner{animation:spin 1s linear infinite;border-top:3px solid var(--border-subtle);border:3px solid var(--border-subtle);border-radius:50%;border-top-color:var(--text-main);height:30px;margin:0 auto;width:30px}.spinner.large{border-width:4px;height:50px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.entries-section{margin-top:var(--space-xl)}.entries-section h3{font-weight:600;letter-spacing:.05em;margin:0 0 var(--space-md) 0;text-transform:uppercase}.entries-section h3,.no-entries{color:var(--text-muted);font-size:14px}.no-entries{background:var(--bg-surface);border:1px dashed var(--border-subtle);border-radius:var(--radius);font-style:italic;padding:var(--space-xl);text-align:center}.entries-list{display:flex;flex-direction:column;gap:var(--space-md)}.entry-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:var(--space-md);transition:all .2s}.entry-card:hover{border-color:var(--text-muted);box-shadow:var(--shadow-sm)}.entry-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-sm)}.entry-time{color:var(--text-muted);font-size:13px;font-weight:500}.entry-transcript{color:var(--text-main);font-size:15px;line-height:1.6;margin:var(--space-sm) 0}.entry-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.btn-delete-entry{background:#0000;border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--danger);cursor:pointer;font-size:13px;padding:var(--space-xs) var(--space-md);transition:all .2s}.btn-delete-entry:hover{background:var(--danger-bg);border-color:var(--danger)}.session-actions{border-top:1px solid var(--border-subtle);display:flex;gap:var(--space-md);margin-top:var(--space-xl);padding-top:var(--space-lg)}.btn-cancel{border-radius:var(--radius);color:var(--text-muted);cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:var(--space-sm) var(--space-lg);transition:all .2s}.btn-cancel:hover{border-color:var(--text-main);color:var(--text-main)}.btn-process{background:var(--text-main);border:none;border-radius:var(--radius);color:var(--bg-surface);cursor:pointer;flex:2 1;font-size:14px;font-weight:600;padding:var(--space-sm) var(--space-xl);transition:all .2s}.btn-process:hover:not(:disabled){opacity:.8}.btn-process:disabled{background:var(--border-subtle);color:var(--text-muted);cursor:not-allowed;transform:none}.loading-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.loading-content{background:var(--bg-surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:var(--space-xl);text-align:center}.loading-content p{color:var(--text-main);font-size:14px;margin:var(--space-md) 0 0 0}@media (max-width:768px){.recording-content{padding:var(--space-md)}.record-button{font-size:18px;height:160px;width:160px}.record-icon{font-size:2.5rem}.record-text{font-size:1rem}.session-actions{flex-direction:column}.btn-cancel,.btn-process{width:100%}}.session-results{margin:0 auto;max-width:1200px;padding:var(--space-xl) var(--space-md)}.results-header{align-items:center;display:flex;gap:var(--space-md);justify-content:space-between;margin-bottom:var(--space-xl)}.results-header h2{color:var(--text-main);font-size:24px;font-weight:600;margin:0}.status-badge{border-radius:var(--radius);display:inline-block;font-size:12px;font-weight:500;letter-spacing:.05em;padding:var(--space-xs) var(--space-sm);text-transform:uppercase}.status-complete{background:#22c55e1a;color:#22c55e}.batches-section{margin-bottom:var(--space-xl)}.batches-section>h3{color:var(--text-muted);font-size:14px;font-weight:600;letter-spacing:.05em;margin:0 0 var(--space-md) 0;text-transform:uppercase}.batch-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);margin-bottom:var(--space-md);overflow:hidden;transition:all .2s}.batch-card:hover{border-color:var(--text-muted);box-shadow:var(--shadow-sm)}.batch-header{align-items:center;background:var(--text-main);cursor:pointer;display:flex;justify-content:space-between;padding:var(--space-md) var(--space-lg) var(--space-md) var(--space-lg);-webkit-user-select:none;user-select:none}.batch-header h3{font-weight:600;margin:0}.batch-header h3,.expand-icon{color:var(--bg-surface);font-size:16px}.expand-icon{align-items:center;background:#fff3;border-radius:50%;display:flex;flex-shrink:0;font-weight:300;height:24px;justify-content:center;transition:all .2s ease;width:24px}.batch-content{animation:expandContent .3s ease;padding:var(--space-lg) var(--space-sm)}@keyframes expandContent{0%{max-height:0;opacity:0}to{max-height:1000px;opacity:1}}.cupping-notes{grid-gap:var(--space-sm);display:grid;gap:var(--space-sm)}.note-field{background:var(--bg-app);border:1px solid #0000;border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);transition:all .2s}.note-field:hover{border-color:var(--border-subtle)}.note-field-header{align-items:center;display:flex;gap:var(--space-md);justify-content:space-between}.note-field strong{color:var(--text-muted);font-size:13px;font-weight:600}.note-score{flex-shrink:0;font-weight:600}.note-field-content,.note-score{color:var(--text-main);font-size:14px}.note-field-content{line-height:1.5;white-space:pre-wrap;word-break:break-word}.unprocessed-notes{background:#eab3080d;border:1px solid #eab3084d;border-radius:var(--radius);margin-top:var(--space-xl);padding:var(--space-lg)}.unprocessed-notes h3{color:#eab308;font-size:14px;font-weight:600;letter-spacing:.05em;margin:0 0 var(--space-md) 0;text-transform:uppercase}.unprocessed-note{background:var(--bg-surface);border-left:3px solid #eab308;border-radius:var(--radius);margin-bottom:var(--space-sm);padding:var(--space-sm) var(--space-md)}.unprocessed-note:last-child{margin-bottom:0}.unprocessed-note p{color:var(--text-main);font-size:14px;line-height:1.5;margin:0}.no-results{background:var(--bg-surface);border:1px dashed var(--border-subtle);border-radius:var(--radius);margin:var(--space-xl) 0;padding:var(--space-xl);text-align:center}.no-results p{color:var(--text-muted);font-size:14px;font-style:italic;margin:0}.results-actions{border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-start;margin-top:var(--space-xl);padding-top:var(--space-lg)}.btn-back{background:var(--text-main);border:none;color:var(--bg-surface);font-weight:500}.btn-back:hover{opacity:.8}.loading{color:var(--text-muted);font-size:14px;padding:var(--space-xl);text-align:center}.error-message{background:var(--danger-bg);border:1px solid #ef444433;color:var(--danger);font-weight:500;margin-bottom:var(--space-md);text-align:center}@media (max-width:768px){.session-results{padding:var(--space-md)}.results-header{align-items:flex-start;flex-direction:column}.note-field{gap:var(--space-xs);grid-template-columns:1fr}.note-field strong{font-size:12px}.batch-header h3{font-size:14px}.results-header h2{font-size:20px}}.cupping-notes-editor{grid-gap:var(--space-md);display:grid;gap:var(--space-md)}.note-field-editor{grid-gap:var(--space-xs);background:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius);display:grid;gap:var(--space-xs);padding:var(--space-md)}.note-field-editor label{color:var(--text-muted);font-size:13px;font-weight:600}.field-inputs{grid-gap:var(--space-sm);align-items:start;display:grid;gap:var(--space-sm);grid-template-columns:120px 1fr}.score-input{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-main);font-size:14px;padding:var(--space-sm);transition:all .2s}.score-input:focus{border-color:var(--text-main);outline:none}.notes-textarea{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-main);font-family:inherit;font-size:14px;min-height:60px;padding:var(--space-sm);resize:vertical;transition:all .2s}.notes-textarea:focus{border-color:var(--text-main);outline:none}.edit-actions{justify-content:flex-end;margin-top:var(--space-md)}.btn-cancel,.btn-edit,.btn-save{border:none;border-radius:var(--radius);cursor:pointer;font-size:14px;font-weight:500;padding:var(--space-sm) var(--space-lg);transition:all .2s}.btn-edit{background:var(--text-main);color:var(--bg-surface)}.btn-edit:hover{opacity:.9}.btn-save{background:#22c55e;color:#fff}.btn-save:hover:not(:disabled){background:#16a34a}.btn-save:disabled{opacity:.5}.btn-cancel{background:#0000;border:1px solid var(--border-subtle);color:var(--text-main)}.btn-cancel:hover:not(:disabled){background:var(--bg-app)}.btn-cancel:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.field-inputs{grid-template-columns:1fr}.edit-actions{flex-direction:column}.btn-cancel,.btn-edit,.btn-save{width:100%}}.settings-header{margin-bottom:var(--space-lg)}.settings-header h2{color:var(--text-main);font-size:24px;font-weight:600;margin:0}.settings-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);margin-bottom:var(--space-xl);padding:var(--space-xl)}.section-header{margin-bottom:var(--space-lg)}.section-header h3{color:var(--text-main);font-size:18px;font-weight:600;margin:0 0 var(--space-sm) 0}.section-description{color:var(--text-muted);font-size:14px;line-height:1.5;margin:0}.patterns-list{display:flex;flex-direction:column;gap:var(--space-lg);margin-bottom:var(--space-lg)}.empty-patterns{color:var(--text-muted);padding:var(--space-xl);text-align:center}.empty-patterns p{margin:0 0 var(--space-xs) 0}.empty-patterns .hint{font-size:13px;opacity:.8}.pattern-card{background:var(--bg-main);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:var(--space-lg)}.pattern-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-md)}.pattern-number{color:var(--text-muted);font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.btn-remove-pattern{align-items:center;background:#0000;border:none;border-radius:var(--radius);color:var(--text-muted);cursor:pointer;display:flex;font-size:20px;height:28px;justify-content:center;transition:all .2s;width:28px}.btn-remove-pattern:hover{background:#ff00001a;color:#e53e3e}.pattern-field{margin-bottom:var(--space-md)}.pattern-field:last-child{margin-bottom:0}.pattern-field label{color:var(--text-main);display:block;font-size:14px;font-weight:500;margin-bottom:var(--space-xs)}.pattern-field .required{color:#e53e3e}.pattern-field input[type=text]{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);box-sizing:border-box;color:var(--text-main);font-size:14px;padding:var(--space-sm) var(--space-md);transition:border-color .2s;width:100%}.pattern-field input[type=text]:focus{border-color:var(--text-main);outline:none}.pattern-field input[type=text]::placeholder{color:var(--text-muted);opacity:.6}.field-hint{color:var(--text-muted);font-size:12px;margin:0 0 var(--space-sm) 0}.examples-list{flex-direction:column;margin-bottom:var(--space-sm)}.example-row,.examples-list{display:flex;gap:var(--space-sm)}.example-row{align-items:center}.example-row input{flex:1 1}.btn-remove-example{align-items:center;background:#0000;border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;font-size:18px;height:32px;justify-content:center;transition:all .2s;width:32px}.btn-remove-example:hover{border-color:#e53e3e;color:#e53e3e}.btn-add-example{background:#0000;border:none;color:var(--text-muted);cursor:pointer;font-size:13px;padding:var(--space-xs) var(--space-sm);text-align:left;transition:color .2s}.btn-add-example:hover,.btn-add-pattern{color:var(--text-main)}.btn-add-pattern{background:#0000;border:2px dashed var(--border-subtle);border-radius:var(--radius);cursor:pointer;font-size:14px;font-weight:500;padding:var(--space-md);transition:all .2s;width:100%}.btn-add-pattern:hover{background:#00000005;border-color:var(--text-main)}.settings-actions{display:flex;gap:var(--space-md);justify-content:flex-end}.btn-save{border:none;border-radius:var(--radius);cursor:pointer;font-size:14px;font-weight:500;padding:var(--space-sm) var(--space-xl);transition:all .2s}.btn-save:hover:not(:disabled){opacity:.8}.btn-save:disabled{cursor:not-allowed;opacity:.6}.success-message{background:#48bb781a;border:1px solid #48bb784d;border-radius:var(--radius);color:#2f855a}.error-message,.success-message{font-size:14px;margin-bottom:var(--space-lg);padding:var(--space-md)}.error-message{background:#f565651a;border:1px solid #f565654d;border-radius:var(--radius);color:#c53030}.loading-message{color:var(--text-muted);padding:var(--space-xl);text-align:center}.link-button{background:none;border:none;color:var(--text-main);cursor:pointer;font-size:inherit;padding:0;text-decoration:underline}.link-button:hover{opacity:.8}.roasters-list{margin-bottom:var(--space-md)}.empty-roasters{color:var(--text-muted);padding:var(--space-xl);text-align:center}.empty-roasters p{margin:0 0 var(--space-xs) 0}.empty-roasters .hint{font-size:13px;opacity:.8}.roaster-items{display:flex;flex-direction:column;gap:var(--space-sm);list-style:none;margin:0;margin-bottom:var(--space-md);padding:0}.roaster-item{align-items:center;background:var(--bg-main);border:1px solid var(--border-subtle);border-radius:var(--radius);display:flex;justify-content:space-between;padding:var(--space-md)}.roaster-name{font-size:14px}.roaster-info{align-items:center;display:flex;gap:var(--space-sm)}.default-badge{background:var(--border-subtle);border-radius:12px;color:var(--text-muted);display:inline-block;font-size:11px;font-weight:500;letter-spacing:.5px;padding:2px 8px;text-transform:uppercase}.roaster-name-input{background:var(--bg-surface);border:1px solid var(--text-main);font-weight:500;padding:var(--space-xs) var(--space-sm)}.roaster-edit-actions{display:flex;gap:var(--space-xs)}.btn-cancel-edit,.btn-confirm-edit{align-items:center;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);cursor:pointer;display:flex;font-size:16px;height:28px;justify-content:center;transition:all .2s;width:28px}.btn-confirm-edit{color:#48bb78}.btn-confirm-edit:hover{background:#48bb781a;border-color:#48bb78}.btn-cancel-edit:hover{background:#0000000d;border-color:var(--text-muted)}.roaster-menu{position:relative}.btn-menu{align-items:center;background:#0000;border:none;border-radius:var(--radius);color:var(--text-muted);cursor:pointer;display:flex;font-size:18px;height:28px;justify-content:center;transition:all .2s;width:28px}.btn-menu:hover{background:#0000000d;color:var(--text-main)}.menu-dropdown{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:0 4px 12px #0000001a;margin-top:var(--space-xs);min-width:160px;overflow:hidden;position:absolute;right:0;top:100%;z-index:10}.menu-dropdown button{background:#0000;border:none;color:var(--text-main);cursor:pointer;font-size:14px;padding:var(--space-sm) var(--space-md);text-align:left;transition:background .2s;width:100%}.menu-dropdown button:hover{background:#0000000d}.menu-dropdown button.danger{color:#e53e3e}.menu-dropdown button.danger:hover{background:#e53e3e1a}.new-roaster-form{align-items:center;background:var(--bg-main);border:1px solid var(--border-subtle);border-radius:var(--radius);display:flex;gap:var(--space-sm);justify-content:space-between;margin-bottom:var(--space-md);padding:var(--space-md)}.roasters-content{max-width:800px}.roasters-header{margin-bottom:var(--space-xl)}.roasters-header h2{color:var(--text-main);font-size:24px;font-weight:600;margin:0 0 var(--space-xs) 0}.roasters-subtitle{color:var(--text-muted);font-size:14px;margin:0}.create-roaster-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);margin-bottom:var(--space-xl);padding:var(--space-lg)}.create-roaster-section h3{color:var(--text-main);font-size:14px;font-weight:500;margin:0 0 var(--space-md) 0}.create-form{display:flex;gap:var(--space-sm)}.roaster-name-input{background:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-main);flex:1 1;font-size:14px;padding:var(--space-sm) var(--space-md);transition:all .2s}.roaster-name-input:focus{border-color:var(--text-main);outline:none}.btn-create{background:var(--text-main);border:none;border-radius:var(--radius);color:var(--bg-surface);cursor:pointer;font-size:14px;font-weight:500;padding:var(--space-sm) var(--space-lg);transition:all .2s;white-space:nowrap}.btn-create:hover{opacity:.9}.roasters-list-section{margin-bottom:var(--space-xl)}.roasters-list-section h3{color:var(--text-muted);font-size:14px;font-weight:600;letter-spacing:.05em;margin-bottom:var(--space-md);text-transform:uppercase}.no-roasters-message{background:var(--bg-surface);border:1px dashed var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);font-size:14px;font-style:italic;padding:var(--space-lg);text-align:center}.roasters-list{display:flex;flex-direction:column;gap:var(--space-sm)}.roaster-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:var(--space-md);transition:all .2s}.roaster-card:hover{border-color:var(--text-muted)}.roaster-view-mode{align-items:center;display:flex;gap:var(--space-md);justify-content:space-between}.roaster-info{flex:1 1}.roaster-name{color:var(--text-main);font-size:16px;font-weight:500;margin:0 0 var(--space-xs) 0}.roaster-date{color:var(--text-muted);font-size:12px;margin:0}.roaster-actions{display:flex;gap:var(--space-sm)}.btn-delete,.btn-edit{background:#0000;border:1px solid var(--border-subtle);border-radius:var(--radius);cursor:pointer;font-size:13px;padding:var(--space-xs) var(--space-md);transition:all .2s}.btn-edit{color:var(--text-main)}.btn-edit:hover{background:var(--text-main);border-color:var(--text-main);color:var(--bg-surface)}.btn-delete{border-color:#ef4444;color:#ef4444}.btn-delete:hover{background:#ef4444;color:#fff}.roaster-edit-mode{display:flex;flex-direction:column;gap:var(--space-sm)}.roaster-edit-input{background:var(--bg-app);border:2px solid var(--text-main);border-radius:var(--radius);color:var(--text-main);font-size:14px;padding:var(--space-sm) var(--space-md)}.roaster-edit-input:focus{outline:none}.edit-actions{display:flex;gap:var(--space-sm)}.btn-cancel-edit,.btn-save{border:none;border-radius:var(--radius);cursor:pointer;font-size:13px;padding:var(--space-xs) var(--space-md);transition:all .2s}.btn-save{background:var(--text-main);color:var(--bg-surface)}.btn-save:hover{opacity:.9}.btn-cancel-edit{background:#0000;border:1px solid var(--border-subtle);color:var(--text-muted)}.btn-cancel-edit:hover{border-color:var(--text-main);color:var(--text-main)}.back-action{border-top:1px solid var(--border-subtle);padding-top:var(--space-lg)}.btn-back{background:#0000;border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-main);cursor:pointer;font-size:14px;padding:var(--space-sm) var(--space-lg);transition:all .2s}.btn-back:hover{border-color:var(--text-main)}:root{--bg-app:#f9fafb;--bg-surface:#fff;--text-main:#111827;--text-muted:#6b7280;--border-subtle:#e5e7eb;--primary:#2563eb;--primary-hover:#1d4ed8;--danger:#ef4444;--danger-bg:#fef2f2;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--radius:8px}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;background-color:#f9fafb;background-color:var(--bg-app);color:#111827;color:var(--text-main);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;line-height:1.5}#root,body{max-width:100vw;overflow-x:hidden}button{font-family:inherit}
/*# sourceMappingURL=main.c52ba74b.css.map*/