:root{--bg-primary: #FAFAFA;--bg-card: #FFFFFF;--text-primary: #1A1A1A;--text-secondary: #666666;--accent: #E53935;--accent-muted: #FFCDD2;--success: #2E7D32;--warning: #F57F17;--error: #C62828;--text-xl: 24px;--text-lg: 18px;--text-base: 15px;--text-sm: 13px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-full: 50%}*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,sans-serif;font-size:var(--text-base);line-height:1.5;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);background:var(--bg-card);border-bottom:1px solid #E0E0E0;position:sticky;top:0;z-index:100}.header-logo{font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.header-nav{display:flex;gap:var(--space-sm)}.header-nav button{background:none;border:none;padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);min-height:44px}.header-nav button.active{color:var(--text-primary);font-weight:600;background:var(--bg-primary)}.page{padding:var(--space-md);max-width:480px;margin:0 auto}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;gap:var(--space-xl);text-align:center}.login-logo{font-size:36px;font-weight:800;color:var(--text-primary)}.login-tagline{font-size:var(--text-base);color:var(--text-secondary)}.login-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--bg-card);border:1px solid #DADCE0;border-radius:var(--radius-sm);font-size:var(--text-base);cursor:pointer;min-height:48px;color:var(--text-primary);font-weight:500}.login-btn:hover{background:#f5f5f5}.record-area{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xl) 0}.record-btn{width:72px;height:72px;border-radius:var(--radius-full);border:none;background:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #e539354d;transition:transform .1s}.record-btn:active{transform:scale(.95)}.record-btn.recording{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;box-shadow:0 2px 8px #e539354d}50%{opacity:.7;box-shadow:0 2px 16px #e5393580}}.record-btn svg{width:28px;height:28px;fill:#fff}.timer{font-size:var(--text-xl);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary)}.waveform{display:flex;align-items:center;justify-content:center;gap:3px;height:32px}.waveform-bar{width:3px;background:var(--accent);border-radius:2px;animation:wave .8s ease-in-out infinite}.waveform-bar:nth-child(1){animation-delay:0s}.waveform-bar:nth-child(2){animation-delay:.1s}.waveform-bar:nth-child(3){animation-delay:.2s}.waveform-bar:nth-child(4){animation-delay:.3s}.waveform-bar:nth-child(5){animation-delay:.4s}.waveform-bar:nth-child(6){animation-delay:.5s}.waveform-bar:nth-child(7){animation-delay:.6s}@keyframes wave{0%,to{height:8px}50%{height:28px}}.field{margin-bottom:var(--space-md)}.field label{display:block;font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-xs);font-weight:500}.field select,.field input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid #E0E0E0;border-radius:var(--radius-sm);font-size:var(--text-base);background:var(--bg-card);color:var(--text-primary);min-height:44px}.field select:focus,.field input:focus{outline:none;border-color:var(--accent)}.field.dimmed{opacity:.5;pointer-events:none}.meeting-list{margin-top:var(--space-lg)}.meeting-list h3{font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-sm)}.meeting-card{background:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-sm);box-shadow:0 1px 3px #00000014}.meeting-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.meeting-card-type{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.meeting-card-time{font-size:var(--text-sm);color:var(--text-secondary)}.meeting-card-attendees{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-xs)}.meeting-card-stats{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-sm)}.meeting-card-actions{display:flex;gap:var(--space-sm)}.meeting-card-actions button{flex:1;padding:var(--space-sm);border:1px solid #E0E0E0;border-radius:var(--radius-sm);background:var(--bg-card);font-size:var(--text-sm);cursor:pointer;min-height:44px;color:var(--text-primary);display:flex;align-items:center;justify-content:center;gap:var(--space-xs)}.meeting-card-actions button:active{background:#f5f5f5}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.badge-processed{background:#e8f5e9;color:var(--success)}.badge-processing{background:#fff3e0;color:var(--warning)}.badge-failed{background:#ffebee;color:var(--error)}.badge-pending{background:#f5f5f5;color:var(--text-secondary)}.brief-panel{background:var(--bg-card);border:1px solid #E0E0E0;border-radius:var(--radius-md);margin-bottom:var(--space-md);overflow:hidden}.brief-teaser{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);cursor:pointer;min-height:44px}.brief-teaser-text{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.brief-teaser-chevron{color:var(--text-secondary);transition:transform .2s}.brief-teaser-chevron.open{transform:rotate(180deg)}.brief-details{padding:0 var(--space-md) var(--space-md);font-size:var(--text-sm);color:var(--text-secondary);border-top:1px solid #F0F0F0}.brief-details dt{font-weight:600;color:var(--text-primary);margin-top:var(--space-sm)}.toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%);background:var(--text-primary);color:#fff;padding:var(--space-sm) var(--space-lg);border-radius:20px;font-size:var(--text-sm);font-weight:500;z-index:200;animation:toast-in .3s ease-out,toast-out .3s ease-in 1.7s forwards}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(20px)}}@keyframes toast-out{to{opacity:0;transform:translate(-50%) translateY(-10px)}}.search-input{width:100%;padding:var(--space-md);border:1px solid #E0E0E0;border-radius:var(--radius-md);font-size:var(--text-base);background:var(--bg-card);min-height:48px}.search-input:focus{outline:none;border-color:var(--accent)}.search-empty{text-align:center;padding:var(--space-xl);color:var(--text-secondary)}.upload-area{border:2px dashed #E0E0E0;border-radius:var(--radius-md);padding:var(--space-xl);text-align:center;cursor:pointer;min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);color:var(--text-secondary)}.upload-area.has-file{border-color:var(--success);border-style:solid}.btn-primary{width:100%;padding:var(--space-md);background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:600;cursor:pointer;min-height:48px}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary:active:not(:disabled){opacity:.9}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:300;display:flex;align-items:flex-end}.modal{background:var(--bg-card);width:100%;max-height:85vh;border-radius:16px 16px 0 0;overflow-y:auto;padding:var(--space-lg)}.modal h2{font-size:var(--text-lg);margin-bottom:var(--space-md)}.modal-section{margin-bottom:var(--space-md)}.modal-section h4{font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-xs)}.modal-close{position:sticky;top:0;text-align:right}.modal-close button{background:none;border:none;font-size:var(--text-lg);cursor:pointer;padding:var(--space-sm);min-height:44px;min-width:44px}.spinner{width:20px;height:20px;border:2px solid #E0E0E0;border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar{width:100%;height:4px;background:#e0e0e0;border-radius:2px;overflow:hidden;margin-top:var(--space-sm)}.progress-bar-fill{height:100%;background:var(--accent);transition:width .3s}
