/* ═══════════════════════════════════════════════════
   Meeting Analyzer — Style v3
   ═══════════════════════════════════════════════════ */

:root {
  --bg:      #080c18;
  --bg2:     #0d1424;
  --card:    rgba(255,255,255,0.04);
  --card-h:  rgba(255,255,255,0.07);
  --bd:      rgba(255,255,255,0.08);
  --bd-h:    rgba(99,102,241,0.5);
  --text:    #e2e8f0;
  --muted:   #64748b;
  --accent:  #6366f1;
  --accent2: #a855f7;
  --green:   #10b981;
  --red:     #ef4444;
  --yellow:  #f59e0b;
  --r:       16px;
  --rsm:     10px;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}

/* Orbs */
.bg-orb{position:fixed;border-radius:50%;filter:blur(120px);pointer-events:none;z-index:0}
.orb1{width:600px;height:600px;background:rgba(99,102,241,.12);top:-200px;left:-100px}
.orb2{width:500px;height:500px;background:rgba(168,85,247,.08);bottom:-100px;right:-100px}
.orb3{width:400px;height:400px;background:rgba(16,185,129,.04);top:50%;left:50%;transform:translate(-50%,-50%)}

/* Header */
header{position:sticky;top:0;z-index:100;background:rgba(8,12,24,.85);backdrop-filter:blur(20px);border-bottom:1px solid var(--bd)}
.header-inner{max-width:960px;margin:0 auto;padding:13px 24px;display:flex;align-items:center;justify-content:space-between}
.logo-wrap{display:flex;align-items:center;gap:12px}
.logo-icon svg{width:38px;height:38px}
.logo-text{font-size:1.05rem;font-weight:800;letter-spacing:-.3px}
.logo-sub{font-size:.72rem;color:var(--muted);margin-top:1px}
.hdr-right{display:flex;align-items:center;gap:10px}
.btn-header{display:flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--bd);color:var(--text);border-radius:var(--rsm);padding:8px 16px;font-size:.83rem;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit;text-decoration:none;white-space:nowrap}
.btn-header:hover{background:var(--card-h);border-color:var(--bd-h)}
.btn-login{background:linear-gradient(135deg,rgba(99,102,241,.2),rgba(168,85,247,.2));border-color:rgba(99,102,241,.35);color:#a5b4fc}
.btn-login:hover{background:linear-gradient(135deg,rgba(99,102,241,.35),rgba(168,85,247,.35));border-color:rgba(99,102,241,.6)}

/* User chip + dropdown */
.quota-badge{display:flex;align-items:center;gap:4px;background:rgba(245,158,11,.15);color:var(--yellow);border:1px solid rgba(245,158,11,.25);border-radius:20px;padding:4px 10px;font-size:.78rem;font-weight:600;letter-spacing:.3px;cursor:help}
.quota-badge.danger{background:rgba(239,68,68,.15);color:var(--red);border-color:rgba(239,68,68,.25)}
.user-chip{position:relative;display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--bd);border-radius:var(--rsm);padding:6px 12px 6px 6px;cursor:pointer;transition:all .2s}
.user-chip:hover{background:var(--card-h);border-color:var(--bd-h)}
.user-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid var(--bd)}
.user-name{font-size:.82rem;font-weight:600;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-menu{position:absolute;top:calc(100% + 8px);right:0;background:#0f1829;border:1px solid var(--bd);border-radius:var(--r);padding:0;min-width:220px;box-shadow:0 8px 32px rgba(0,0,0,.4);z-index:200;display:none;overflow:hidden}
.user-chip:hover .user-menu{display:block}
.um-info{padding:16px;border-bottom:1px solid var(--bd)}
.um-name{font-weight:700;font-size:.9rem;margin-bottom:2px}
.um-email{font-size:.78rem;color:var(--muted);margin-bottom:6px}
.um-badge{display:inline-flex;align-items:center;gap:5px;background:rgba(99,102,241,.15);color:#a5b4fc;border:1px solid rgba(99,102,241,.25);border-radius:20px;padding:2px 10px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.um-logout{display:flex;align-items:center;gap:8px;padding:12px 16px;color:var(--red);text-decoration:none;font-size:.85rem;font-weight:500;transition:background .2s}
.um-logout:hover{background:rgba(239,68,68,.08)}


/* Main */
main{position:relative;z-index:1;max-width:960px;margin:0 auto;padding:36px 24px 80px;display:flex;flex-direction:column;gap:24px}

/* Hero Section */
.hero-section{text-align:center;margin-bottom:12px}
.hero-title{font-size:2.2rem;font-weight:800;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:12px;letter-spacing:-0.5px}
.hero-desc{font-size:1.05rem;color:var(--muted);max-width:680px;margin:0 auto;line-height:1.6}

/* Mode tabs */
.mode-tabs{display:flex;gap:4px;background:var(--card);border:1px solid var(--bd);border-radius:var(--rsm);padding:4px;width:fit-content;margin-bottom:16px}
.mode-tab{display:flex;align-items:center;gap:7px;padding:9px 20px;border:none;background:none;color:var(--muted);border-radius:8px;cursor:pointer;font-size:.86rem;font-weight:500;transition:all .2s;font-family:inherit}
.mode-tab.active{background:var(--accent);color:#fff}
.mode-tab:not(.active):hover{color:var(--text)}

/* Drop zone */
.drop-zone{border:2px dashed var(--bd);border-radius:var(--r);padding:52px 32px;text-align:center;cursor:pointer;transition:all .25s;background:var(--card);position:relative;overflow:hidden}
.drop-zone::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(99,102,241,.07) 0%,transparent 70%);pointer-events:none}
.drop-zone:hover,.drop-zone.over{border-color:var(--accent);background:rgba(99,102,241,.06);box-shadow:0 0 60px rgba(99,102,241,.1)}
.drop-icon{color:var(--muted);margin-bottom:14px}
.drop-title{font-size:1.05rem;font-weight:600;margin-bottom:6px}
.drop-sub{color:var(--muted);font-size:.88rem}
.link{color:var(--accent);text-decoration:underline;cursor:pointer}
.drop-formats{margin-top:10px;font-size:.76rem;color:var(--muted)}

/* File preview */
.file-preview{display:flex;align-items:center;gap:12px;background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.2);border-radius:var(--rsm);padding:12px 16px;margin-top:20px;text-align:left}
.fp-icon{font-size:1.5rem}
.fp-info{flex:1;overflow:hidden}
.fp-name{font-weight:600;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fp-size{font-size:.78rem;color:var(--muted);margin-top:2px}
.fp-remove{background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);color:var(--red);border-radius:6px;width:28px;height:28px;cursor:pointer;font-size:.82rem;flex-shrink:0;font-family:inherit}

/* Analyze button & Output example */
.output-example{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px;margin-bottom:6px}
.oe-tag{font-size:0.8rem;color:var(--muted);background:var(--card);border:1px solid var(--bd);padding:4px 10px;border-radius:20px;display:flex;align-items:center;gap:4px}
.btn-analyze{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:14px;padding:16px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border:none;border-radius:var(--rsm);font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;letter-spacing:.2px;box-shadow:0 4px 24px rgba(99,102,241,.25);font-family:inherit}
.btn-analyze:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 32px rgba(99,102,241,.4)}
.btn-analyze:disabled{opacity:.35;cursor:not-allowed}
.btn-sm{width:auto!important;padding:12px 22px!important;margin-top:0!important}

/* Record card */
.record-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:36px 28px;text-align:center}
.rv-wrap{height:56px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.rv-bars{display:flex;align-items:center;gap:3px;height:100%}
.rv-bar{width:4px;border-radius:2px;background:linear-gradient(to top,var(--accent),var(--accent2));transition:height .08s}
.rec-status{color:var(--muted);font-size:1.05rem;margin-bottom:8px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:6px}
.mic-status-icon{font-size:1.3rem}
.rec-status.recording{color:var(--red)}
.rec-status.recording .mic-status-icon{animation:pulse-mic 1s infinite alternate}
@keyframes pulse-mic{from{opacity:0.6}to{opacity:1}}
.rec-timer{font-family:'JetBrains Mono',monospace;font-size:2.6rem;font-weight:700;margin-bottom:12px;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.rec-hint{font-size:0.85rem;color:var(--muted);margin-bottom:24px}
.rec-controls{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap}
.btn-rec{display:flex;align-items:center;gap:9px;padding:12px 26px;border:2px solid var(--red);background:rgba(239,68,68,.1);color:var(--red);border-radius:var(--rsm);cursor:pointer;font-weight:600;font-size:.92rem;transition:all .2s;font-family:inherit}
.btn-rec.recording{background:var(--red);color:#fff;animation:pulse-r 1.5s ease-in-out infinite}
@keyframes pulse-r{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 0 12px rgba(239,68,68,0)}}
.rec-dot{width:10px;height:10px;border-radius:50%;background:currentColor;flex-shrink:0}
/* Recorded preview */
.rec-preview{display:flex;align-items:center;gap:12px;background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.2);border-radius:var(--rsm);padding:12px 16px;margin-top:16px}
.rp-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.rp-icon{font-size:1.3rem}
.rp-name{font-size:.85rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-size{font-size:.78rem;color:var(--muted);white-space:nowrap;flex-shrink:0}
.btn-dl-rec{display:flex;align-items:center;gap:6px;background:rgba(16,185,129,.15);border:1px solid rgba(16,185,129,.3);color:var(--green);border-radius:var(--rsm);padding:7px 14px;font-size:.82rem;font-weight:500;cursor:pointer;white-space:nowrap;font-family:inherit;transition:all .2s;flex-shrink:0}
.btn-dl-rec:hover{background:rgba(16,185,129,.25)}

/* Progress */
.progress-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:30px}
.pg-title{font-size:1.05rem;font-weight:700;margin-bottom:4px}
.pg-estimate{font-size:0.85rem;color:var(--accent);margin-bottom:12px}
.pg-file{font-size:.83rem;color:var(--muted);margin-bottom:20px}
.pg-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.pgstep{display:flex;align-items:center;gap:14px;padding:13px 16px;background:rgba(255,255,255,.02);border:1px solid var(--bd);border-radius:var(--rsm);transition:all .3s}
.pgstep.active{border-color:var(--accent);background:rgba(99,102,241,.06)}
.pgstep.done{border-color:var(--green);background:rgba(16,185,129,.05)}
.pgstep.dim{opacity:.38}
.pgs-icon{font-size:1.3rem;flex-shrink:0}
.pgs-body{flex:1;display:flex;flex-direction:column;gap:2px}
.pgs-body b{font-size:.88rem;font-weight:600}
.pgs-body span{font-size:.78rem;color:var(--muted)}
.pgs-stat{font-size:.82rem;font-weight:600;color:var(--green);flex-shrink:0}
.mini-spin{width:16px;height:16px;border:2px solid var(--bd);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.pg-tips{font-size:0.9rem;font-style:italic;color:var(--muted);text-align:center;margin-bottom:16px;height:20px;transition:opacity 0.3s}
.pg-track{height:4px;background:rgba(255,255,255,.06);border-radius:2px;overflow:hidden}
.pg-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:2px;transition:width .5s ease}

/* Meta row */
.meta-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}
.meta-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--rsm);padding:14px 16px}
.mc-l{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}
.mc-v{font-weight:700;font-size:.95rem}
.mc-s{font-size:.73rem;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Audio Player */
.player-card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:18px 20px;margin-bottom:16px}
.player-header{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;color:var(--accent2);margin-bottom:2px}
audio::-webkit-media-controls-panel{background:#1e293b}

/* Result tabs */
.rtabs{display:flex;gap:4px;background:var(--card);border:1px solid var(--bd);border-radius:var(--rsm);padding:4px;margin-bottom:14px}
.rtab{flex:1;padding:11px;background:none;border:none;color:var(--muted);border-radius:8px;cursor:pointer;font-size:.86rem;font-weight:500;transition:all .2s;font-family:inherit}
.rtab:hover{color:var(--text)}
.rtab.active{background:var(--accent);color:#fff}
.rtab-pane{display:none}
.rtab-pane.active{display:block}
.box-content{background:var(--card);border:1px solid var(--bd);border-radius:var(--rsm);padding:26px}

/* Summary */
.summary-box h2{font-size:1.2rem;color:#a5b4fc;margin:22px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--bd)}
.summary-box h2:first-child{margin-top:0}
.summary-box h3{font-size:.98rem;margin:14px 0 7px}
.summary-box ul{padding-left:20px;margin:8px 0}
.summary-box li{margin:5px 0;line-height:1.65}
.summary-box p{margin:9px 0;line-height:1.7}
.summary-box strong{color:#fbbf24}
.summary-box hr{border:none;border-top:1px solid var(--bd);margin:18px 0}
.simple-table{width:100%;border-collapse:collapse;margin:10px 0;font-size:.86rem}
.simple-table td,.simple-table th{padding:9px 13px;text-align:left;border-bottom:1px solid var(--bd)}
.simple-table th{background:rgba(99,102,241,.1);font-weight:600;color:#a5b4fc}
.simple-table tr:hover td{background:rgba(99,102,241,.04)}
.transcript-box{font-size:.95rem;line-height:1.9;color:var(--text)}
.transcript-box p{margin-bottom:16px}
.ts-link{color:#a5b4fc;text-decoration:none;cursor:pointer;font-family:'JetBrains Mono',monospace;font-size:0.85em;background:rgba(99,102,241,0.1);padding:2px 6px;border-radius:4px;margin-right:8px;transition:all 0.2s}
.ts-link:hover{background:rgba(99,102,241,0.3);color:#fff}
.timeline-row{display:flex;gap:13px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.04);align-items:baseline}
.timeline-row:last-child{border-bottom:none}
.tl-ts{flex-shrink:0;font-family:'JetBrains Mono',monospace;font-size:.8rem;color:#a5b4fc;background:rgba(99,102,241,.1);padding:4px 8px;border-radius:4px;cursor:pointer;transition:all 0.2s}
.tl-ts:hover{background:var(--accent);color:#fff}
.tl-text{font-size:.9rem;line-height:1.6}

/* Result actions */
.result-actions{display:flex;gap:9px;margin-top:14px;flex-wrap:wrap}
.btn-act{padding:10px 18px;background:var(--card);border:1px solid var(--bd);color:var(--text);border-radius:var(--rsm);cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s;font-family:inherit}
.btn-act:hover{background:var(--card-h);border-color:var(--bd-h)}
.btn-new{margin-left:auto;background:linear-gradient(135deg,var(--accent),var(--accent2));border-color:transparent;color:#fff}
.btn-new:hover{opacity:.9;border-color:transparent}

/* Drawer */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:200;opacity:0;pointer-events:none;transition:opacity .3s}
.overlay.open{opacity:1;pointer-events:all}
.drawer{position:fixed;top:0;right:0;height:100vh;width:400px;background:#0e1829;border-left:1px solid var(--bd);z-index:201;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
.drawer.open{transform:translateX(0)}
.dw-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--bd);flex-shrink:0}
.dw-title{font-weight:700;font-size:.98rem}
.dw-close{background:none;border:none;color:var(--muted);font-size:1.1rem;cursor:pointer;font-family:inherit}
.dw-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px}
.dw-empty{color:var(--muted);text-align:center;padding:48px 0;font-size:.88rem}
.dw-item{background:var(--card);border:1px solid var(--bd);border-radius:var(--rsm);padding:14px;cursor:default;transition:border-color .2s}
.dw-item:hover{border-color:rgba(99,102,241,.4)}
.dwi-name{font-weight:600;font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px}
.dwi-summary{font-size:0.78rem;color:var(--text);margin-bottom:8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dwi-meta{font-size:.76rem;color:var(--muted);margin-bottom:8px}
.dwi-btns{display:flex;gap:6px}
.dwi-btn{padding:5px 11px;font-size:.75rem;border-radius:6px;border:1px solid var(--bd);background:none;color:var(--muted);cursor:pointer;font-family:inherit;transition:all .2s}
.dwi-btn:hover{color:var(--text);border-color:var(--bd-h)}
.dwi-del{color:var(--red)!important;border-color:rgba(239,68,68,.25)!important}
.dwi-del:hover{background:rgba(239,68,68,.1)!important}

/* Toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(16px);background:#1e293b;border:1px solid var(--bd);color:var(--text);padding:11px 22px;border-radius:var(--rsm);font-size:.88rem;opacity:0;pointer-events:none;transition:all .3s;z-index:400;white-space:nowrap}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Responsive & Mobile Optimization */
@media(max-width: 640px) {
  /* Header */
  .header-inner { padding: 10px 14px; gap: 8px; }
  .logo-text { font-size: 0.95rem; }
  .logo-icon svg { width: 30px; height: 30px; }
  .logo-sub { display: none; /* Ẩn sub text cho gọn */ }
  .btn-header { padding: 6px 10px; font-size: 0.75rem; gap: 4px; }
  .btn-header span { display: none; /* Chỉ hiện icon trên mobile nếu có, hoặc để chữ gọn */ }
  #btnHistoryToggle span { display: inline; } /* Giữ chữ Lịch sử */
  .user-name { max-width: 70px; font-size: 0.75rem; }
  .user-chip { padding: 4px 8px 4px 4px; gap: 6px; }
  .user-avatar { width: 24px; height: 24px; }
  .user-menu { width: 240px; right: -10px; }

  /* Main wrapper */
  main { padding: 16px 12px 80px; gap: 16px; }

  /* Hero */
  .hero-title { font-size: 1.5rem; margin-bottom: 8px; line-height: 1.3; }
  .hero-desc { font-size: 0.85rem; padding: 0 10px; }

  /* Mode Tabs */
  .mode-tabs { width: 100%; display: grid; grid-template-columns: 1fr 1fr; padding: 4px; }
  .mode-tab { justify-content: center; padding: 10px; font-size: 0.8rem; border-radius: 6px; }

  /* Drop zone */
  .drop-zone { padding: 32px 16px; }
  .drop-icon { font-size: 2rem; margin-bottom: 10px; }
  .drop-title { font-size: 0.95rem; line-height: 1.4; }
  .drop-sub { font-size: 0.8rem; }
  .output-example { flex-direction: column; gap: 6px; align-items: stretch; }
  .oe-tag { justify-content: center; font-size: 0.75rem; padding: 6px; }

  /* File preview */
  .file-preview { flex-direction: column; text-align: center; gap: 8px; padding: 14px; }
  .fp-info { width: 100%; }

  /* Record */
  .record-card { padding: 24px 14px; }
  .rec-timer { font-size: 2.2rem; }
  .btn-rec { width: 100%; justify-content: center; padding: 14px; font-size: 0.9rem; }

  /* Result Tabs */
  .rtabs { flex-wrap: wrap; flex-direction: row; }
  .rtab { flex: 1 1 calc(50% - 4px); padding: 10px 4px; font-size: 0.8rem; text-align: center; border-radius: 6px; }

  /* Content Boxes */
  .box-content { padding: 16px 14px; }
  .summary-box h2 { font-size: 1.05rem; margin-top: 16px; }
  .summary-box h3 { font-size: 0.9rem; }
  .summary-box p, .summary-box li { font-size: 0.88rem; line-height: 1.6; }
  .timeline-row { flex-direction: column; gap: 6px; }
  
  .meta-row { grid-template-columns: 1fr 1fr; gap: 8px; }
  .meta-card { padding: 10px; }
  .mc-l { font-size: 0.65rem; }
  .mc-v { font-size: 0.85rem; }

  /* Progress */
  .progress-card { padding: 20px 14px; }
  .pgstep { padding: 10px; gap: 10px; }
  .pgs-icon { font-size: 1.1rem; }
  .pgs-body b { font-size: 0.8rem; }
  .pgs-body span { font-size: 0.7rem; }
  .pg-estimate { font-size: 0.8rem; }

  /* Actions */
  .result-actions { flex-direction: column; gap: 8px; }
  .btn-act { width: 100%; justify-content: center; padding: 12px; font-size: 0.9rem; }
  .btn-new { margin-left: 0; margin-top: 8px; }

  /* Drawer */
  .drawer { width: 100%; }
  .dw-head { padding: 14px 16px; }
  
  /* Toast */
  .toast { width: 90%; white-space: normal; text-align: center; bottom: 20px; font-size: 0.8rem; padding: 10px 14px; }
  
  /* Utilities */
  button, a { touch-action: manipulation; } /* Ngăn zoom delay trên mobile */
}

@media(max-width: 380px) {
  .meta-row { grid-template-columns: 1fr; }
  .rtab { flex: 1 1 100%; }
  .mode-tabs { grid-template-columns: 1fr; }
}
