:root{--bg:#f5f7fb;--surface:#fff;--text:#142033;--muted:#6e7a8d;--line:#e5eaf1;--primary:#315cf4;--primary-dark:#2448cf;--danger:#d94a5a;--shadow:0 18px 50px rgba(32,48,76,.08);--radius:18px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:#111a2b;color:#eaf0ff;padding:24px 16px;display:flex;flex-direction:column;z-index:20}.brand,.login-brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px}.brand{padding:0 10px 24px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#6b8cff,#315cf4);color:#fff}.main-nav{overflow:auto}.nav-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#71809a;padding:18px 10px 8px}.nav-item{display:flex;align-items:center;gap:10px;padding:11px 10px;border-radius:12px;color:#aebbd0;margin-bottom:3px}.nav-item:hover{background:#1a263b;color:#fff}.workspace-link{align-items:flex-start}.flag-pill,.country-badge{display:inline-flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:.04em}.flag-pill{min-width:35px;height:27px;background:#26344d;border-radius:8px;color:#cdd8eb;font-size:11px}.nav-copy{display:flex;flex-direction:column;min-width:0}.nav-copy strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}.nav-copy small,.sidebar-user small{font-size:11px;color:#7f8da5;margin-top:2px}.sidebar-user{margin-top:auto;padding:18px 10px 0;border-top:1px solid #253149;display:flex;align-items:center;justify-content:space-between;gap:10px}.sidebar-user div{display:flex;flex-direction:column;min-width:0}.content{margin-left:270px;padding:40px;max-width:1700px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.page-header h1{font-size:36px;margin:4px 0 6px;letter-spacing:-.04em}.page-header p{margin:0;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:#7d8ba2;font-weight:800}.button{border:0;border-radius:11px;padding:11px 16px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:8px}.button-primary{background:var(--primary);color:#fff;box-shadow:0 10px 25px rgba(49,92,244,.2)}.button-primary:hover{background:var(--primary-dark)}.button-secondary{background:#111a2b;color:#fff}.button-ghost{background:#f0f3f8;color:#344055}.button-danger{background:#fff0f2;color:var(--danger)}.full{width:100%}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:30px}.stat-card,.panel,.workspace-card,.trend-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.stat-card{padding:22px}.stat-card span{color:var(--muted);font-size:13px}.stat-card strong{display:block;font-size:34px;margin-top:8px}.section-block{margin-top:32px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-heading h2{margin:3px 0 0;font-size:23px;letter-spacing:-.025em}.section-heading.compact h2{font-size:20px}.workspace-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.workspace-card{padding:22px;transition:.2s ease;box-shadow:0 0 0 rgba(0,0,0,0)}.workspace-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#ccd7eb}.workspace-top{display:flex;justify-content:space-between;align-items:center}.country-badge{height:35px;min-width:44px;padding:0 10px;border-radius:10px;background:#eaf0ff;color:#315cf4}.count-pill{font-size:12px;color:var(--muted);background:#f4f6f9;padding:6px 9px;border-radius:999px}.workspace-card h3{margin:24px 0 8px;font-size:20px}.workspace-card p{color:var(--muted);margin:0}.card-link{display:inline-block;margin-top:22px;color:var(--primary);font-weight:750;font-size:13px}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{padding:22px}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#f3f5f9;border:1px solid #e7ebf2;border-radius:999px;padding:8px 11px;font-size:13px}.empty-state{background:#fff;border:1px dashed #ccd5e2;border-radius:var(--radius);text-align:center;padding:50px 24px}.empty-state.large{margin-top:24px;padding:90px 24px}.empty-state h3{margin:12px 0 8px}.empty-state p{color:var(--muted);margin:0 0 20px}.empty-icon{width:52px;height:52px;border-radius:16px;background:#edf2ff;color:var(--primary);display:grid;place-items:center;font-size:24px;margin:auto}.flash{padding:13px 16px;border-radius:12px;margin:0 0 18px;font-weight:650;font-size:14px}.flash-success{background:#eaf8ef;color:#247744}.flash-error{background:#fff0f2;color:#a93443}.workspace-meta{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.header-actions{display:flex;gap:10px;align-items:center}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.period-switcher,.mini-periods{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.period-switcher{margin-top:9px}.period-button,.mini-period,.tab-button{border:1px solid var(--line);background:#fff;border-radius:9px;font-weight:700;color:#657188}.period-button{padding:8px 11px}.mini-period{font-size:11px;padding:6px 8px}.period-button.active,.mini-period.active,.tab-button.active{background:#111a2b;color:#fff;border-color:#111a2b}.search-box{display:flex;align-items:center;gap:8px;width:min(350px,100%);background:#f4f6f9;padding:0 13px;border-radius:11px;color:#8b97aa}.search-box input{width:100%;border:0;background:transparent;outline:0;padding:11px 0}.trend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.trend-card{overflow:hidden;box-shadow:0 8px 30px rgba(32,48,76,.04)}.trend-card-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 20px 10px}.trend-card-header h2{font-size:18px;line-height:1.3;margin:0;word-break:break-word}.trend-card-header p{color:var(--muted);font-size:12px;margin:5px 0 0}.keyword-title-row{display:flex;align-items:center;gap:7px}.favorite-star{color:#f4b940}.card-actions{display:flex;gap:4px}.icon-button{border:0;background:transparent;color:#7f8da5;width:34px;height:34px;border-radius:9px;font-size:18px}.icon-button:hover{background:#26344d;color:#fff}.card-actions .icon-button:hover{background:#f2f5f9;color:#253149}.icon-button.danger:hover{background:#fff0f2;color:var(--danger)}.mini-periods{padding:0 20px 12px}.trend-preview{height:340px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafbfd;overflow:hidden}.trend-preview iframe{width:100%!important;height:340px!important;border:0!important}.widget-placeholder,.widget-fallback{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);text-align:center;padding:20px}.pulse-line{height:12px;border-radius:8px;background:#e8edf5;margin-bottom:20px;animation:pulse 1.5s infinite}.pulse-line.wide{width:55%}.pulse-chart{width:80%;height:120px;border-radius:14px;background:linear-gradient(100deg,#edf1f7 25%,#f7f9fc 50%,#edf1f7 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.widget-fallback strong{color:var(--text);margin-bottom:5px}.trend-card-footer{padding:14px}.modal{position:fixed;inset:0;background:rgba(10,18,32,.55);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;padding:20px;z-index:100}.modal.open{display:flex}.modal-card{width:min(470px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;padding:28px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.2)}.modal-wide{width:min(640px,100%)}.modal-card h2{margin:4px 0 22px}.modal-close{position:absolute;right:16px;top:14px;border:0;background:#f2f4f8;width:34px;height:34px;border-radius:10px;font-size:21px;color:#7a879a}.form-stack{display:grid;gap:15px}.form-stack label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#425069}.form-stack input,.form-stack select,.form-stack textarea{width:100%;border:1px solid #dce3ed;border-radius:10px;padding:11px 12px;outline:0;background:#fff;color:var(--text)}.form-stack input:focus,.form-stack select:focus,.form-stack textarea:focus{border-color:#7f9afa;box-shadow:0 0 0 3px rgba(49,92,244,.1)}.form-stack small{font-weight:500;color:var(--muted)}.tab-switch{display:flex;gap:7px;margin-bottom:18px}.tab-button{padding:8px 11px}.login-page,.error-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#edf2ff 0,#f6f8fc 35%,#eef2f8 100%)}.login-card,.error-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:36px;box-shadow:var(--shadow)}.login-brand{margin-bottom:30px}.login-card h1{font-size:31px;letter-spacing:-.04em;margin:0 0 8px}.login-card>p{color:var(--muted);line-height:1.6;margin:0 0 24px}.error-card{text-align:center}.error-code{display:grid;place-items:center;width:60px;height:60px;border-radius:18px;background:#fff0f2;color:var(--danger);font-size:30px;font-weight:900;margin:auto}.error-card h1{margin:18px 0 8px}.error-card p{color:var(--muted);margin:0 0 22px}@keyframes pulse{50%{opacity:.45}}@keyframes shimmer{to{background-position:-200% 0}}@media(max-width:1100px){.workspace-grid{grid-template-columns:repeat(2,1fr)}.trend-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{position:static;width:100%;min-height:auto}.main-nav{display:flex;overflow:auto;gap:5px;padding-bottom:4px}.nav-label,.sidebar-user{display:none}.nav-item{min-width:max-content}.content{margin-left:0;padding:24px 16px}.page-header,.toolbar{align-items:stretch;flex-direction:column}.page-header h1{font-size:30px}.header-actions{flex-wrap:wrap}.stats-grid,.workspace-grid,.two-column{grid-template-columns:1fr}.search-box{width:100%}.trend-preview{height:300px}.trend-preview iframe{height:300px!important}}

/* v1.2: feedback visual durante trocas de período sem recarregar a página */
.period-button.is-loading,
.mini-period.is-loading {
  opacity: .65;
  cursor: wait;
}

.period-button:disabled,
.mini-period:disabled {
  pointer-events: none;
}
