@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";:root{--accent:#6366f1;--accent-primary:#6366f1;--accent-primary-hover:#818cf8;--accent-primary-glow:#6366f14d;--accent-secondary:#8b5cf6;--accent-gradient:linear-gradient(135deg, #6366f1, #8b5cf6);--accent-hover:#a5b4fc;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.35s cubic-bezier(.4, 0, .2, 1);--font-family:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-xs:.75rem;--font-sm:.85rem;--font-base:.95rem;--font-md:1rem;--font-lg:1.15rem;--font-xl:1.5rem;--font-2xl:2rem;--sidebar-width:260px;--header-height:64px}[data-theme=dark]{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-tertiary:#1a2036;--bg-card:#1a2036b3;--bg-glass:#ffffff08;--bg-hover:#ffffff0f;--bg-active:#6366f11a;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#78889a;--text-muted:#5a6b7d;--campaign-red:#f87171;--campaign-red-bg:#ef444438;--campaign-red-border:#ef444480;--campaign-blue:#60a5fa;--campaign-blue-bg:#3b82f638;--campaign-blue-border:#3b82f680;--campaign-yellow:#fbbf24;--campaign-yellow-bg:#f59e0b38;--campaign-yellow-border:#f59e0b80;--campaign-purple:#c084fc;--campaign-purple-bg:#a855f738;--campaign-purple-border:#a855f780;--campaign-orange:#fb923c;--campaign-orange-bg:#f9731638;--campaign-orange-border:#f9731680;--campaign-green:#34d399;--campaign-green-bg:#10b98138;--campaign-green-border:#10b98180;--border-color:#ffffff0f;--border-hover:#ffffff1f;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px var(--accent-primary-glow);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg-primary:#f1f5f9;--bg-secondary:#fff;--bg-tertiary:#e2e8f0;--bg-card:#fff;--bg-glass:#00000008;--bg-hover:#6366f10d;--bg-active:#6366f11a;--text-primary:#0f172a;--text-secondary:#334155;--text-tertiary:#64748b;--text-muted:#94a3b8;--accent-primary-hover:#4f46e5;--accent-primary-glow:#6366f133;--campaign-red:#dc2626;--campaign-red-bg:#fef2f2;--campaign-red-border:#fca5a5;--campaign-blue:#2563eb;--campaign-blue-bg:#eff6ff;--campaign-blue-border:#93c5fd;--campaign-yellow:#b45309;--campaign-yellow-bg:#fffbeb;--campaign-yellow-border:#fcd34d;--campaign-purple:#7c3aed;--campaign-purple-bg:#f5f3ff;--campaign-purple-border:#c4b5fd;--campaign-orange:#c2410c;--campaign-orange-bg:#fff7ed;--campaign-orange-border:#fdba74;--campaign-green:#047857;--campaign-green-bg:#ecfdf5;--campaign-green-border:#6ee7b7;--border-color:#e2e8f0;--border-hover:#cbd5e1;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -2px #0000000f;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000d;--shadow-glow:0 0 0 3px #6366f126;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden}#root{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-header{padding:var(--space-lg);border-bottom:1px solid var(--border-color)}.sidebar-logo{align-items:center;gap:var(--space-sm);display:flex}.sidebar-logo .logo-icon{background:var(--accent-gradient);border-radius:var(--radius-md);color:#fff;width:36px;height:36px;box-shadow:var(--shadow-glow);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-logo h1{font-size:var(--font-md);background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700}.sidebar-logo .subtitle{font-size:var(--font-xs);color:var(--text-tertiary);margin-top:2px}.sidebar-nav{padding:var(--space-md);gap:var(--space-xs);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.sidebar-nav-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-fast);text-align:left;background:0 0;border:1px solid #0000;width:100%;font-weight:500;display:flex}.sidebar-nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-nav-item.active{background:var(--bg-active);color:var(--accent-primary-hover);border-color:#6366f126}.sidebar-nav-item svg{flex-shrink:0;width:18px;height:18px}.sidebar-section-title{font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);padding:var(--space-md) var(--space-md) var(--space-xs);font-weight:600}.sidebar-stats{padding:var(--space-md);border-top:1px solid var(--border-color)}.stat-item{padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs);justify-content:space-between;display:flex}.stat-label{color:var(--text-tertiary);align-items:center;display:flex}.stat-label svg{opacity:.7}.stat-value{color:var(--text-primary);font-weight:600}.main-content{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex;overflow-x:hidden}.header{height:var(--header-height);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);padding:0 var(--space-xl);z-index:50;background:#111827d9;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:var(--space-md);display:flex}.header-title{font-size:var(--font-lg);font-weight:700}.header-nav-date{align-items:center;gap:var(--space-sm);display:flex}.header-nav-date .nav-btn{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-glass);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.header-nav-date .nav-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-hover)}.header-nav-date .current-period{font-size:var(--font-base);text-align:center;min-width:180px;color:var(--text-primary);font-weight:600}.today-btn{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);color:var(--accent-primary-hover);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);font-weight:500;font-family:var(--font-family);background:#6366f114;border:1px solid #6366f140;align-items:center;display:flex}.today-btn:hover{color:#fff;background:#6366f126;border-color:#6366f166}.header-right{align-items:center;gap:var(--space-sm);display:flex}.view-tabs{background:var(--bg-glass);border-radius:var(--radius-md);border:1px solid var(--border-color);padding:3px;display:flex}.view-tab{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);font-weight:500;font-family:var(--font-family);align-items:center;gap:var(--space-xs);background:0 0;border:none;display:flex}.view-tab:hover{color:var(--text-primary)}.view-tab.active{background:var(--accent-primary);color:#fff;box-shadow:var(--shadow-sm)}.view-tab svg{width:14px;height:14px}.btn{align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-secondary);font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-fast);font-weight:500;font-family:var(--font-family);white-space:nowrap;display:inline-flex}.btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-hover)}.btn svg{width:16px;height:16px}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-glow);border:none}.btn-primary:hover{opacity:.9;box-shadow:0 0 30px var(--accent-primary-glow)}.btn-danger{color:var(--campaign-red);border-color:var(--campaign-red-border)}.btn-danger:hover{background:var(--campaign-red-bg);color:var(--campaign-red)}.calendar-container{padding:var(--space-lg) var(--space-xl);flex:1;min-width:0;overflow:auto}.calendar-grid{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden}.calendar-weekdays{border-bottom:1px solid var(--border-color);grid-template-columns:repeat(7,1fr);display:grid}.weekday-header{padding:var(--space-sm) var(--space-md);text-align:center;font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.calendar-days{grid-template-columns:repeat(7,1fr);display:grid}.calendar-day{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);height:130px;padding:var(--space-sm);transition:background var(--transition-fast);cursor:pointer;position:relative;overflow:hidden}.calendar-day:nth-child(7n){border-right:none}.calendar-day:hover{background:var(--bg-hover);z-index:10;overflow:visible}.calendar-day:hover .day-events{z-index:10;position:relative}.calendar-day.other-month{opacity:1}.calendar-day.past-day{opacity:.4}.calendar-day.today{background:var(--bg-active)}.calendar-day.today .day-number{background:var(--accent-primary);color:#fff;border-radius:var(--radius-full);justify-content:center;align-items:center;width:26px;height:26px;display:flex}.day-number{font-size:var(--font-sm);color:var(--text-primary);margin-bottom:4px;padding:1px 4px;font-weight:600}.day-events{flex-direction:column;gap:3px;display:flex}.campaign-bar{border-radius:var(--radius-sm);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;padding:4px 8px;font-weight:600;position:relative;overflow:hidden}.campaign-bar:hover{box-shadow:var(--shadow-md);filter:brightness(1.2);transform:translateY(-1px)}.campaign-bar.dragging{opacity:.5;transform:scale(.95)}.campaign-bar.red{background:var(--campaign-red-bg);color:var(--campaign-red);border-left:3px solid var(--campaign-red)}.campaign-bar.blue{background:var(--campaign-blue-bg);color:var(--campaign-blue);border-left:3px solid var(--campaign-blue)}.campaign-bar.yellow{background:var(--campaign-yellow-bg);color:var(--campaign-yellow);border-left:3px solid var(--campaign-yellow)}.campaign-bar.purple{background:var(--campaign-purple-bg);color:var(--campaign-purple);border-left:3px solid var(--campaign-purple)}.campaign-bar.orange{background:var(--campaign-orange-bg);color:var(--campaign-orange);border-left:3px solid var(--campaign-orange)}.campaign-bar.green{background:var(--campaign-green-bg);color:var(--campaign-green);border-left:3px solid var(--campaign-green)}.bar-content,.bar-continuation{align-items:center;gap:3px;min-width:0;display:flex}.bar-brand-icon{flex-shrink:0;font-size:.65rem;line-height:1}.bar-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.bar-continuation{opacity:.7}.campaign-bar.bar-mid,.campaign-bar.bar-end{border-left:2px solid;border-left-color:inherit}.campaign-more{color:var(--text-tertiary);background:var(--bg-hover);border-radius:var(--radius-sm);text-align:center;cursor:pointer;opacity:.7;transition:opacity var(--transition-fast);padding:2px 6px;font-size:.6rem;font-weight:600}.campaign-more:hover{opacity:1}.week-view{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);min-width:0;overflow-x:auto}.week-header{border-bottom:1px solid var(--border-color);grid-template-columns:repeat(7,minmax(140px,1fr));display:grid}.week-header-cell{padding:var(--space-md) var(--space-sm);text-align:center;border-right:1px solid var(--border-color)}.week-header-cell:last-child{border-right:none}.week-header-cell .day-name{font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.week-header-cell .day-num{font-size:var(--font-xl);color:var(--text-primary);margin-top:var(--space-xs);font-weight:700}.week-header-cell.today .day-num{color:var(--accent-primary-hover)}.week-body{grid-template-columns:repeat(7,minmax(140px,1fr));min-height:500px;display:grid}.week-day-column{border-right:1px solid var(--border-color);padding:var(--space-sm);gap:var(--space-xs);flex-direction:column;display:flex}.week-day-column:last-child{border-right:none}.week-campaign-bar{padding:var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);font-weight:600}.week-campaign-bar:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.week-campaign-title{margin-bottom:2px;font-weight:600}.week-campaign-time{opacity:.8;font-size:.65rem}.timeline-wrapper{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);min-width:0;display:flex;overflow:hidden}.timeline-fixed-col{border-right:1px solid var(--border-color);background:var(--bg-secondary);z-index:5;flex-shrink:0;min-width:200px;max-width:200px}.timeline-label-col{padding:var(--space-sm) var(--space-md);font-size:var(--font-xs);color:var(--text-tertiary);border-bottom:1px solid var(--border-color);align-items:center;min-height:52px;font-weight:600;display:flex}.timeline-row-label{padding:var(--space-sm) var(--space-md);align-items:center;gap:var(--space-sm);cursor:pointer;border-bottom:1px solid var(--border-color);min-height:48px;transition:background var(--transition-fast);display:flex}.timeline-row-label:hover{background:var(--bg-hover)}.timeline-row-label .campaign-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.timeline-row-label .campaign-name{font-size:var(--font-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.timeline-scroll-area{flex:1;min-width:0;overflow-x:auto}.timeline-dates{border-bottom:1px solid var(--border-color);min-height:52px;display:flex}.timeline-date-cell{width:45px;min-width:45px;padding:var(--space-sm) 0;text-align:center;border-right:1px solid var(--border-color);font-size:var(--font-xs);color:var(--text-tertiary);flex-shrink:0}.timeline-date-cell .date-day{color:var(--text-secondary);font-weight:600}.timeline-date-cell .date-weekday{text-transform:uppercase;letter-spacing:-.01em;font-size:.65rem}.timeline-date-cell.today{background:var(--bg-active)}.timeline-date-cell.today .date-day{color:var(--accent-primary-hover)}.timeline-date-cell.weekend{background:#ffffff03}.timeline-row-grid{border-bottom:1px solid var(--border-color);align-items:center;min-height:48px;display:flex;position:relative}.timeline-cell{border-right:1px solid var(--border-color);flex-shrink:0;width:45px;min-width:45px;height:100%}.timeline-cell.weekend{background:#ffffff03}.timeline-cell.today{background:var(--bg-active)}.timeline-bar-wrapper{z-index:1;align-items:center;display:flex;position:absolute;top:8px;bottom:8px}.timeline-bar{border-radius:var(--radius-sm);height:32px;padding:0 var(--space-sm);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;text-overflow:ellipsis;align-items:center;min-width:20px;font-weight:600;display:flex;overflow:hidden}.timeline-bar:hover{filter:brightness(1.3);box-shadow:var(--shadow-md);transform:scaleY(1.1)}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;animation:fadeIn var(--transition-base) ease;background:#0009;position:fixed;inset:0}.modal-container{z-index:201;padding:var(--space-xl);animation:fadeIn var(--transition-base) ease;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:900px;max-height:90vh;box-shadow:0 25px 80px #00000080, 0 0 40px var(--accent-primary-glow);animation:modalSlideUp var(--transition-slow) ease;flex-direction:column;display:flex}.modal-sm .modal-content{max-width:540px}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.modal-header-left{align-items:center;gap:var(--space-md);display:flex}.modal-header h2{font-size:var(--font-lg);color:var(--text-primary);font-weight:700}.modal-brand-badge{border-radius:var(--radius-full);font-size:var(--font-xs);align-items:center;gap:4px;padding:3px 10px;font-weight:600;display:inline-flex}.modal-body{padding:var(--space-xl);gap:var(--space-xl);flex:1;display:flex;overflow-y:auto}.modal-col{gap:var(--space-lg);flex-direction:column;display:flex}.modal-col-main{flex:1.6;min-width:0}.modal-col-side{min-width:0;padding-left:var(--space-xl);border-left:1px solid var(--border-color);flex:1}.modal-footer{padding:var(--space-md) var(--space-xl);border-top:1px solid var(--border-color);gap:var(--space-sm);flex-shrink:0;justify-content:flex-end;display:flex}.drawer-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;animation:fadeIn var(--transition-base) ease;background:#00000080;position:fixed;inset:0}.drawer{background:var(--bg-secondary);border-left:1px solid var(--border-color);z-index:201;width:440px;max-width:90vw;animation:slideInRight var(--transition-slow) ease;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-10px 0 40px #0000004d}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{padding:var(--space-lg);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.drawer-header h2{font-size:var(--font-lg);font-weight:700}.drawer-close{border-radius:var(--radius-md);border:1px solid var(--border-color);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.drawer-close:hover{background:var(--campaign-red-bg);color:var(--campaign-red);border-color:var(--campaign-red-border)}.drawer-body{padding:var(--space-lg);gap:var(--space-lg);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-color);gap:var(--space-sm);justify-content:flex-end;display:flex}.media-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));display:grid}.media-item{aspect-ratio:16/10;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-glass);position:relative;overflow:hidden}.media-item img{object-fit:cover;width:100%;height:100%;display:block}.media-remove{border-radius:var(--radius-full);width:24px;height:24px;color:var(--campaign-red);cursor:pointer;opacity:0;transition:opacity var(--transition-fast);background:#000000b3;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:4px;right:4px}.media-item:hover .media-remove{opacity:1}.media-remove:hover{background:var(--campaign-red);color:#fff}.media-add-btn{aspect-ratio:16/10;border-radius:var(--radius-md);border:2px dashed var(--border-color);color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-xs);font-size:var(--font-xs);font-family:var(--font-family);transition:all var(--transition-fast);background:0 0;flex-direction:column;min-height:80px;display:flex}.media-add-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary-hover);background:var(--bg-active)}.form-input-lg{font-weight:600;font-size:var(--font-md)!important;padding:var(--space-md)!important}.detail-modal{max-width:960px}.detail-header{border-bottom:1px solid var(--border-color);flex-shrink:0}.detail-topbar{padding:var(--space-sm) var(--space-lg);justify-content:space-between;align-items:center;gap:var(--space-sm);background:var(--bg-glass);display:flex}.detail-header-badges{align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.detail-header-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.detail-action-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.detail-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.detail-title{font-size:var(--font-xl);color:var(--text-primary);padding:var(--space-md) var(--space-lg);margin:0;font-weight:700}.detail-category-badge,.detail-status-badge{border-radius:var(--radius-full);font-size:var(--font-xs);align-items:center;gap:4px;padding:3px 10px;font-weight:600;display:inline-flex}.detail-title{color:var(--text-primary);margin:0;font-size:1.4rem;font-weight:800;line-height:1.3}.detail-section{gap:var(--space-sm);flex-direction:column;display:flex}.detail-section-label{font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);align-items:center;gap:6px;font-weight:700;display:flex}.detail-section-label svg{color:var(--accent-primary);opacity:.7}.detail-quote{font-style:italic;font-size:var(--font-base);color:var(--campaign-orange);background:0 0;border:none;margin:0;padding:0;font-weight:600;line-height:1.6}.detail-channels{gap:var(--space-xs);flex-wrap:wrap;display:flex}.detail-channel-tag{border-radius:var(--radius-full);font-size:var(--font-xs);color:var(--accent-primary-hover);transition:all var(--transition-fast);background:#6366f114;border:1px solid #6366f126;padding:4px 12px;font-weight:500}.detail-channel-tag:hover{background:#6366f126}.detail-notes{font-size:var(--font-sm);color:var(--text-secondary);white-space:pre-wrap;margin:0;line-height:1.7}.detail-content-block{padding:var(--space-md);border-radius:var(--radius-md);background:var(--bg-glass);border:1px solid var(--border-color);font-size:var(--font-sm);color:var(--text-secondary);white-space:pre-wrap;margin:0;line-height:1.8}.detail-content-block.md-rendered{white-space:normal;max-height:400px;overflow-y:auto}.md-rendered h1,.md-rendered h2,.md-rendered h3{color:var(--text-primary);margin:var(--space-md) 0 var(--space-xs) 0;line-height:1.3}.md-rendered h1{font-size:1.3em}.md-rendered h2{font-size:1.15em}.md-rendered h3{font-size:1.05em}.md-rendered h1:first-child,.md-rendered h2:first-child,.md-rendered h3:first-child{margin-top:0}.md-rendered p{margin:0 0 var(--space-sm) 0}.md-rendered p:last-child{margin-bottom:0}.md-rendered strong{color:var(--text-primary);font-weight:600}.md-rendered em{color:var(--text-secondary);font-style:italic}.md-rendered ul,.md-rendered ol{margin:var(--space-xs) 0 var(--space-sm) 0;padding-left:var(--space-lg)}.md-rendered li{margin-bottom:4px}.md-rendered li::marker{color:var(--accent)}.md-rendered blockquote{margin:var(--space-sm) 0;padding:var(--space-sm) var(--space-md);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-secondary);background:#6366f10d;font-style:italic}.md-rendered hr{border:none;border-top:1px solid var(--border-color);margin:var(--space-md) 0}.md-rendered a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.md-rendered a:hover{color:var(--accent-hover)}.md-rendered code{border-radius:var(--radius-sm);color:var(--campaign-purple);background:#ffffff0f;padding:2px 6px;font-family:SF Mono,Fira Code,monospace;font-size:.9em}.md-rendered pre{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin:var(--space-sm) 0;background:#0000004d;overflow-x:auto}.md-rendered pre code{color:var(--text-secondary);background:0 0;padding:0}.md-editor{border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast);flex-direction:column;display:flex;overflow:hidden}.md-editor:focus-within{border-color:var(--accent)}.md-toolbar{border-bottom:1px solid var(--border-color);background:#ffffff08;align-items:center;gap:1px;padding:4px 6px;display:flex}.md-toolbar-btn{border-radius:var(--radius-sm);width:26px;height:26px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.md-toolbar-btn:hover{color:var(--text-primary);background:#ffffff14}.md-toolbar-btn:active{color:var(--accent);background:#6366f126}.md-textarea{box-sizing:border-box;resize:none;min-height:160px;max-height:320px;overflow-y:auto;width:100%!important;padding:var(--space-sm) var(--space-md)!important;border:none!important;border-radius:0!important}.md-textarea:focus{box-shadow:none!important}.form-label-hint{font-size:var(--font-xs);color:var(--text-tertiary);opacity:.7;margin-left:auto;font-weight:400}.detail-media-gallery{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.detail-media-item{aspect-ratio:16/10;border-radius:var(--radius-md);border:1px solid var(--border-color);overflow:hidden}.detail-media-item img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-base);display:block}.detail-media-item:hover img{transform:scale(1.05)}.detail-progress-card{padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-glass)}.detail-progress-label{font-size:var(--font-xs);color:var(--text-tertiary);margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.detail-progress-bar-bg{border-radius:var(--radius-full);background:var(--bg-secondary);height:8px;margin-bottom:var(--space-xs);overflow:hidden}.detail-progress-bar-fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow) ease}.detail-progress-text{font-size:var(--font-sm);text-align:right;font-weight:700}.detail-info-card{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-glass);overflow:hidden}.detail-info-item{align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);border-bottom:1px solid var(--border-color);display:flex}.detail-info-item>svg{color:var(--accent-primary);opacity:.6;flex-shrink:0;margin-top:2px}.detail-info-item:last-child{border-bottom:none}.detail-info-item.highlight{background:var(--campaign-amber-bg);color:var(--campaign-amber)}.detail-info-item.highlight-blue{background:var(--campaign-blue-bg);color:var(--campaign-blue)}.detail-info-label{font-size:var(--font-xs);color:var(--text-tertiary)}.detail-info-value{font-size:var(--font-sm);color:var(--text-primary);font-weight:600}.detail-info-item.highlight .detail-info-label,.detail-info-item.highlight-blue .detail-info-label{opacity:.8}.detail-info-item.highlight .detail-info-value{color:var(--campaign-amber)}.detail-info-item.highlight-blue .detail-info-value{color:var(--campaign-blue)}.detail-milestone-count{background:var(--bg-glass);border-radius:var(--radius-full);font-size:var(--font-xs);border:1px solid var(--border-color);text-transform:none;letter-spacing:0;margin-left:auto;padding:1px 8px;font-weight:600}.detail-milestone-list{flex-direction:column;gap:2px;display:flex}.detail-milestone{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);display:flex}.detail-milestone:hover{background:var(--bg-hover)}.detail-milestone-check{color:var(--text-muted);transition:color var(--transition-fast);flex-shrink:0}.detail-milestone.completed .detail-milestone-check{color:var(--campaign-green)}.detail-milestone.overdue .detail-milestone-check{color:var(--campaign-red)}.detail-milestone.urgent .detail-milestone-check{color:var(--campaign-amber)}.detail-milestone-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.detail-milestone-text{font-size:var(--font-sm);font-weight:500}.detail-milestone-text.done{color:var(--text-muted);text-decoration:line-through}.detail-milestone-date{font-size:var(--font-xs);color:var(--text-tertiary)}.detail-milestone-warning{border-radius:var(--radius-full);flex-shrink:0;align-items:center;gap:3px;padding:2px 8px;font-size:.65rem;font-weight:700;display:flex}.detail-milestone-warning.overdue{background:var(--campaign-red-bg);color:var(--campaign-red)}.detail-milestone-warning.urgent{background:var(--campaign-amber-bg);color:var(--campaign-amber)}.detail-milestone-warning.soon{background:var(--campaign-blue-bg);color:var(--campaign-blue)}.form-group{gap:var(--space-xs);flex-direction:column;display:flex}.form-label{font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:4px;font-weight:600;display:flex}.form-label svg{color:var(--accent-primary);opacity:.7}.form-input,.form-select,.form-textarea{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--font-sm);font-family:var(--font-family);transition:all var(--transition-fast);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-glow)}.form-textarea{resize:vertical;min-height:80px}.form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.datepicker-wrapper{position:relative}.datepicker-trigger{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.datepicker-trigger.focused{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-glow)}.datepicker-value{font-size:var(--font-sm);color:var(--text-primary)}.datepicker-value.placeholder{color:var(--text-muted)}.datepicker-icon{color:var(--accent-primary);opacity:.6;transition:opacity var(--transition-fast);flex-shrink:0}.datepicker-trigger:hover .datepicker-icon{opacity:1}.datepicker-dropdown{background:var(--bg-secondary);border:1px solid var(--border-hover);border-radius:var(--radius-lg);min-width:100%;box-shadow:var(--shadow-lg), 0 0 20px #0000004d;z-index:300;padding:var(--space-sm);animation:datepickerFadeIn var(--transition-fast) ease;position:absolute;top:calc(100% + 6px);left:0;right:0}@keyframes datepickerFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.datepicker-header{padding:var(--space-xs) var(--space-xs);margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;display:flex}.datepicker-month-label{font-size:var(--font-sm);color:var(--text-primary);text-transform:capitalize;font-weight:600}.datepicker-nav-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.datepicker-nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.datepicker-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:2px;display:grid}.datepicker-weekday{text-align:center;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:4px 0;font-size:.65rem;font-weight:600}.datepicker-days{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.datepicker-day{aspect-ratio:1;border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-xs);font-weight:500;font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.datepicker-day:hover{background:var(--bg-hover)}.datepicker-day.other-month{color:var(--text-muted);opacity:.4}.datepicker-day.other-month:hover{opacity:.7}.datepicker-day.today{color:var(--accent-primary-hover);background:#6366f114;font-weight:700}.datepicker-day.selected{background:var(--accent-primary);color:#fff;box-shadow:0 2px 8px var(--accent-primary-glow);font-weight:700}.datepicker-day.selected:hover{background:var(--accent-primary-hover)}.datepicker-footer{padding:var(--space-xs);margin-top:var(--space-xs);border-top:1px solid var(--border-color);justify-content:space-between;display:flex}.datepicker-footer-btn{color:var(--text-tertiary);font-size:var(--font-xs);font-weight:500;font-family:var(--font-family);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;padding:4px 8px}.datepicker-footer-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.datepicker-today-btn{color:var(--accent-primary-hover)}.datepicker-today-btn:hover{color:var(--accent-primary-hover);background:#6366f11a}.milestone-item .datepicker-wrapper{flex-shrink:0}.milestone-item .datepicker-trigger{font-size:var(--font-xs);background:0 0;border:none;gap:4px;padding:0 4px}.milestone-item .datepicker-trigger:focus,.milestone-item .datepicker-trigger.focused{box-shadow:none;border-color:#0000}.milestone-item .datepicker-value{font-size:var(--font-xs);color:var(--text-tertiary)}.milestone-item .datepicker-icon{width:12px;height:12px}.milestone-item .datepicker-dropdown{min-width:240px;right:auto}.form-row{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.channel-grid{gap:var(--space-sm);flex-wrap:wrap;display:flex}.channel-chip{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-secondary);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;font-weight:500}.channel-chip:hover{border-color:var(--border-hover)}.channel-chip.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.category-option{align-items:center;gap:var(--space-sm);display:flex}.category-dot{border-radius:var(--radius-full);flex-shrink:0;width:10px;height:10px}.filter-bar{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--border-color);background:#11182766;flex-wrap:wrap;display:flex}.filter-chip{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-secondary);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:var(--space-xs);font-weight:500;display:flex}.filter-chip:hover{border-color:var(--border-hover);color:var(--text-primary)}.filter-chip.active{border-color:var(--accent-primary);color:var(--accent-primary-hover);background:var(--bg-active)}.filter-chip .filter-dot{border-radius:var(--radius-full);width:8px;height:8px}.search-input{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-glass);color:var(--text-primary);font-size:var(--font-xs);font-family:var(--font-family);width:200px;transition:all var(--transition-fast);outline:none}.search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-glow);width:260px}.search-input::placeholder{color:var(--text-muted)}.overlap-badge{align-items:center;gap:var(--space-xs);padding:2px var(--space-sm);border-radius:var(--radius-full);background:var(--campaign-orange-bg);color:var(--campaign-orange);border:1px solid var(--campaign-orange-border);font-size:.65rem;font-weight:600;display:inline-flex}.milestone-list{gap:var(--space-sm);flex-direction:column;display:flex}.milestone-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm);background:var(--bg-glass);border-radius:var(--radius-sm);border:1px solid var(--border-color);display:flex}.milestone-item input{color:var(--text-primary);font-size:var(--font-xs);font-family:var(--font-family);background:0 0;border:none;outline:none;flex:1}.milestone-date{font-size:var(--font-xs);color:var(--text-tertiary)}.milestone-remove{border-radius:var(--radius-sm);width:20px;height:20px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.milestone-remove:hover{color:var(--campaign-red);background:var(--campaign-red-bg)}.add-milestone-btn{align-items:center;gap:var(--space-xs);padding:var(--space-sm);border-radius:var(--radius-sm);border:1px dashed var(--border-color);color:var(--text-tertiary);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family);background:0 0;justify-content:center;width:100%;display:flex}.add-milestone-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary-hover);background:var(--bg-active)}.timeline-view.exporting{-webkit-backdrop-filter:none;backdrop-filter:none;background:#111827}.timeline-view.exporting .timeline-header{background:#111827}.timeline-view.exporting .timeline-bar{font-weight:700}.timeline-view.exporting .timeline-date-cell.today,.timeline-view.exporting .timeline-cell.today{background:#6366f11a}.timeline-view.exporting .timeline-cell.weekend{background:#ffffff03}.timeline-view.exporting .campaign-name{color:#f1f5f9}.timeline-view.exporting .timeline-date-cell .date-day{color:#94a3b8}.timeline-view.exporting .timeline-date-cell .date-weekday{color:#64748b}.timeline-view.exporting .timeline-date-cell.today .date-day{color:#818cf8}.export-loading{z-index:300;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.export-loading-content{background:var(--bg-secondary);padding:var(--space-xl);border-radius:var(--radius-lg);border:1px solid var(--border-color);align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.spinner{border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{padding:var(--space-2xl);color:var(--text-tertiary);text-align:center;justify-content:center;align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.empty-state svg{opacity:.3;width:48px;height:48px}.empty-state h3{font-size:var(--font-md);color:var(--text-secondary);font-weight:600}.empty-state p{font-size:var(--font-sm);max-width:300px}.calendar-day.drag-over{background:var(--bg-active);outline:2px dashed var(--accent-primary);outline-offset:-2px}.tooltip{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);box-shadow:var(--shadow-lg);z-index:150;pointer-events:none;animation:fadeIn var(--transition-fast) ease;min-width:180px;position:absolute}.tooltip-title{font-size:var(--font-sm);color:var(--text-primary);margin-bottom:var(--space-xs);font-weight:600}.tooltip-detail{font-size:var(--font-xs);color:var(--text-tertiary)}@media (width<=1024px){.sidebar{transition:transform var(--transition-slow);transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}}@media (width<=768px){.header{height:auto;padding:var(--space-sm) var(--space-md);gap:var(--space-sm);flex-wrap:wrap}.header-left{justify-content:space-between;width:100%}.header-right{justify-content:center;width:100%}.header-nav-date .current-period{min-width:120px;font-size:var(--font-sm)}.view-tabs{justify-content:center;width:100%}.view-tab{font-size:var(--font-xs);padding:var(--space-xs) var(--space-sm);flex:1;justify-content:center}.calendar-day{height:90px;padding:2px}.calendar-day .day-number{font-size:var(--font-xs);margin-bottom:2px;padding:1px 3px}.campaign-bar{padding:2px 4px;font-size:.65rem}.bar-brand-icon{display:none}.calendar-grid{border-radius:var(--radius-md)}.weekday-header{padding:var(--space-xs);font-size:.65rem}.drawer{width:100%;max-width:100%}.modal-container{padding:var(--space-sm)}.modal-content{border-radius:var(--radius-md);max-height:95vh}.modal-body{padding:var(--space-md);gap:var(--space-md);flex-direction:column}.modal-header{padding:var(--space-md)}.modal-footer{padding:var(--space-sm) var(--space-md);flex-wrap:wrap}.modal-col-side{border-left:none;border-top:1px solid var(--border-color);padding-left:0;padding-top:var(--space-md)}.filter-bar{padding:var(--space-sm) var(--space-md);gap:var(--space-xs);flex-wrap:wrap}.filter-chip{font-size:var(--font-xs);padding:3px 8px}.search-input{min-width:100%}.calendar-container{padding:var(--space-sm) var(--space-md)}.form-row{grid-template-columns:1fr}.today-btn{padding:3px 8px;font-size:.65rem}.dashboard-stats{gap:var(--space-sm);grid-template-columns:repeat(2,1fr)}.stat-card{padding:var(--space-md)}.stat-card-icon{width:36px;height:36px}.stat-card-icon svg{width:16px;height:16px}.stat-card-value{font-size:var(--font-lg)}.dashboard-grid{grid-template-columns:1fr}.timeline-row-label{min-width:120px;max-width:120px;font-size:var(--font-xs)}.timeline-row-label .campaign-name{font-size:var(--font-xs)}.week-header-cell .day-num{font-size:var(--font-lg)}.week-campaign-bar{font-size:var(--font-xs);padding:var(--space-xs)}.comment-list{max-height:200px}}@media (width<=480px){.dashboard-stats{grid-template-columns:1fr}.calendar-day{height:70px}.campaign-bar{padding:1px 3px;font-size:.6rem}.header-nav-date .nav-btn{width:28px;height:28px}.modal-content{max-width:100%}.detail-header-actions{gap:var(--space-xs);flex-wrap:wrap}.detail-header-actions .btn{font-size:var(--font-xs);padding:4px 8px}}.brand-item-wrapper{align-items:center;display:flex;position:relative}.brand-item-wrapper .sidebar-nav-item{flex:1}.brand-nav-item{position:relative}.brand-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex}.brand-name-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.brand-count{background:var(--bg-glass);border-radius:var(--radius-full);color:var(--text-muted);border:1px solid var(--border-color);flex-shrink:0;margin-left:auto;padding:1px 6px;font-size:.65rem;font-weight:600}.brand-edit-btn{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);opacity:0;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;right:8px}.brand-item-wrapper:hover .brand-edit-btn{opacity:1}.brand-edit-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.brand-add-btn{border-radius:var(--radius-sm);border:1px dashed var(--border-color);width:20px;height:20px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.brand-add-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary-hover);background:var(--bg-active)}.login-page{background:var(--bg-primary);min-height:100vh;padding:var(--space-lg);justify-content:center;align-items:center;display:flex}.login-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:400px;padding:var(--space-xl);box-shadow:var(--shadow-lg), 0 0 40px var(--accent-primary-glow)}.login-logo{align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl);display:flex}.login-logo .logo-icon{background:var(--accent-gradient);border-radius:var(--radius-md);color:#fff;width:48px;height:48px;box-shadow:var(--shadow-glow);flex-shrink:0;justify-content:center;align-items:center;display:flex}.login-logo h1{font-size:var(--font-xl);background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-weight:800}.login-logo p{font-size:var(--font-xs);color:var(--text-tertiary);margin:0}.login-tabs{background:var(--bg-glass);border-radius:var(--radius-md);border:1px solid var(--border-color);margin-bottom:var(--space-lg);padding:3px;display:flex}.login-tab{justify-content:center;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-sm);font-weight:500;font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex:1;display:flex}.login-tab.active{background:var(--accent-primary);color:#fff;box-shadow:var(--shadow-sm)}.login-error{padding:var(--space-sm) var(--space-md);background:var(--campaign-red-bg);color:var(--campaign-red);border:1px solid var(--campaign-red-border);border-radius:var(--radius-md);font-size:var(--font-xs);margin-bottom:var(--space-md);font-weight:500}.login-form{gap:var(--space-md);flex-direction:column;display:flex}.login-submit{width:100%;padding:var(--space-sm) var(--space-md);margin-top:var(--space-xs);justify-content:center}.login-hint{text-align:center;font-size:var(--font-xs);color:var(--text-muted);margin:0}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper .form-input{width:100%;padding-right:36px}.password-toggle{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;right:8px}.password-toggle:hover{color:var(--text-primary)}.user-badge{align-items:center;gap:var(--space-sm);padding:var(--space-md);border-top:1px solid var(--border-color);display:flex}.user-badge-avatar{border-radius:var(--radius-full);width:32px;height:32px;font-size:var(--font-xs);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.user-badge-info{flex:1;min-width:0}.user-badge-name{font-size:var(--font-xs);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.user-badge-role{font-size:.65rem;font-weight:500}.user-badge-logout{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-badge-logout:hover{background:var(--campaign-red-bg);color:var(--campaign-red)}.user-edit-panel{border-top:1px solid var(--border-color);background:var(--bg-tertiary);animation:fadeIn var(--transition-fast) ease}.user-edit-header{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.user-edit-body{padding:var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.user-edit-body .form-group{margin:0}.user-edit-body .form-label{font-size:var(--font-xs);margin-bottom:2px}.user-edit-body .form-input{font-size:var(--font-sm);padding:var(--space-xs) var(--space-sm)}.user-mgmt-list{flex-direction:column;display:flex}.user-mgmt-row{align-items:center;gap:var(--space-sm);padding:var(--space-md);border-bottom:1px solid var(--border-color);flex-wrap:wrap;display:flex}.user-mgmt-row:last-child{border-bottom:none}.user-mgmt-avatar{border-radius:var(--radius-full);width:32px;height:32px;font-size:var(--font-sm);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.user-mgmt-info{flex:1;min-width:100px}.user-mgmt-name{font-size:var(--font-sm);color:var(--text-primary);align-items:center;gap:var(--space-xs);font-weight:600;display:flex}.user-mgmt-you{border-radius:var(--radius-full);background:var(--accent-primary-glow);color:var(--accent-primary-hover);padding:1px 6px;font-size:.6rem;font-weight:600}.user-mgmt-username{font-size:var(--font-xs);color:var(--text-muted)}.user-mgmt-role-select{width:auto;min-width:90px;font-size:var(--font-xs)!important;padding:4px 28px 4px 8px!important}.user-mgmt-actions{flex-shrink:0;gap:4px;display:flex}.user-mgmt-pw-row{gap:var(--space-sm);width:100%;padding-top:var(--space-sm);margin-top:var(--space-xs);border-top:1px dashed var(--border-color);display:flex}.user-mgmt-add-form{gap:var(--space-sm);padding:var(--space-md);border-top:1px solid var(--border-color);background:var(--bg-glass);flex-direction:column;display:flex}.changelog-filter{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-xl);border-bottom:1px solid var(--border-color);color:var(--text-muted);display:flex}.changelog-body{flex:1;max-height:60vh;overflow-y:auto}.changelog-item{gap:var(--space-sm);padding:var(--space-sm) var(--space-xl);border-bottom:1px solid var(--border-color);transition:background var(--transition-fast);display:flex}.changelog-item:hover{background:var(--bg-hover)}.changelog-item:last-child{border-bottom:none}.changelog-icon{width:28px;height:28px;font-size:var(--font-sm);flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;display:flex}.changelog-content{flex:1;min-width:0}.changelog-action{font-size:var(--font-sm);color:var(--text-primary);align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.changelog-action strong{color:var(--accent-primary-hover);font-weight:600}.changelog-action-label{color:var(--text-secondary);font-weight:400}.changelog-target{font-size:var(--font-xs);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;overflow:hidden}.changelog-time{color:var(--text-muted);margin-top:2px;font-size:.65rem}.brand-emoji-grid{gap:var(--space-xs);flex-wrap:wrap;display:flex}.brand-emoji-btn{border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-glass);cursor:pointer;width:36px;height:36px;transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:18px;display:flex}.brand-emoji-btn:hover{border-color:var(--border-hover);background:var(--bg-hover);transform:scale(1.1)}.brand-emoji-btn.active{border-color:var(--accent-primary);background:var(--bg-active);box-shadow:0 0 0 2px var(--accent-primary-glow)}.brand-color-grid{gap:var(--space-sm);flex-wrap:wrap;display:flex}.brand-color-btn{border-radius:var(--radius-full);cursor:pointer;width:32px;height:32px;transition:all var(--transition-fast);border:3px solid #0000}.brand-color-btn:hover{transform:scale(1.15)}.brand-color-btn.active{box-shadow:0 0 0 2px var(--accent-primary-glow);border-color:#fff;transform:scale(1.15)}.brand-preview{align-items:center;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-color);display:flex}.brand-preview-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.timeline-bar,.timeline-row-label,.detail-milestone,.filter-chip,.channel-chip,.brand-emoji-btn,.brand-color-btn{cursor:pointer}.confirm-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:300;animation:fadeIn var(--transition-fast) ease;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--space-xl);width:90%;max-width:400px;animation:modalSlideUp var(--transition-base) ease;box-shadow:0 25px 80px #00000080}.confirm-dialog h3{font-size:var(--font-lg);color:var(--text-primary);margin-bottom:var(--space-sm);align-items:center;gap:var(--space-sm);font-weight:700;display:flex}.confirm-dialog p{font-size:var(--font-base);color:var(--text-secondary);margin-bottom:var(--space-lg);line-height:1.5}.confirm-actions{gap:var(--space-sm);justify-content:flex-end;display:flex}.sidebar-mobile-toggle{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-glass);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:none}.sidebar-mobile-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-backdrop{z-index:99;background:#00000080;display:none;position:fixed;inset:0}@media (width<=1024px){.sidebar-mobile-toggle{display:flex}.sidebar-backdrop.visible{display:block}}.btn.loading{opacity:.7;pointer-events:none;position:relative}.btn.loading:after{content:"";width:14px;height:14px;margin-left:var(--space-xs);border:2px solid #0000;border-top-color:currentColor;border-radius:50%;animation:.6s linear infinite spin}.dashboard{gap:var(--space-lg);flex-direction:column;display:flex}.dashboard-stats{gap:var(--space-md);grid-template-columns:repeat(4,1fr);display:grid}.dashboard-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.dashboard-card-title{font-size:var(--font-base);color:var(--text-primary);margin-bottom:var(--space-md);align-items:center;gap:var(--space-sm);font-weight:700;display:flex}.stat-card{align-items:center;gap:var(--space-md);display:flex}.stat-card-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.stat-card-value{font-size:var(--font-xl);color:var(--text-primary);font-weight:800}.stat-card-label{font-size:var(--font-sm);color:var(--text-tertiary)}.dashboard-grid{gap:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}.dashboard-col{gap:var(--space-lg);flex-direction:column;display:flex}.category-bars{gap:var(--space-sm);flex-direction:column;display:flex}.category-bar-row{align-items:center;gap:var(--space-sm);display:flex}.category-bar-label{min-width:120px;font-size:var(--font-sm);color:var(--text-secondary);align-items:center;gap:var(--space-xs);display:flex}.category-bar-track{background:var(--bg-glass);border-radius:var(--radius-full);flex:1;height:8px;overflow:hidden}.category-bar-fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-base)}.category-bar-count{text-align:right;min-width:24px;font-size:var(--font-sm);color:var(--text-primary);font-weight:600}.budget-total{font-size:var(--font-lg);color:var(--campaign-green);margin-bottom:var(--space-md);font-weight:800}.budget-brands{gap:var(--space-sm);flex-direction:column;display:flex}.budget-brand-row{align-items:center;gap:var(--space-sm);display:flex}.budget-brand-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.budget-brand-name{font-size:var(--font-sm);color:var(--text-secondary);flex:1}.budget-brand-value{font-size:var(--font-sm);color:var(--text-primary);font-weight:600}.milestone-upcoming-list{gap:var(--space-sm);flex-direction:column;display:flex}.milestone-upcoming-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm);background:var(--bg-glass);display:flex}.milestone-upcoming-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.milestone-upcoming-info{flex:1;min-width:0}.milestone-upcoming-text{font-size:var(--font-sm);color:var(--text-primary);font-weight:600}.milestone-upcoming-campaign{font-size:var(--font-xs);color:var(--text-tertiary)}.milestone-upcoming-days{font-size:var(--font-xs);flex-shrink:0;font-weight:600}.overlap-list{gap:var(--space-xs);flex-direction:column;display:flex}.overlap-item{align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.overlap-name{font-size:var(--font-sm);color:var(--text-primary);cursor:pointer;font-weight:600}.overlap-name:hover{color:var(--accent-primary-hover)}.active-campaign-list{gap:var(--space-xs);flex-direction:column;display:flex}.active-campaign-item{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:var(--bg-glass);cursor:pointer;transition:background var(--transition-fast);border-left:3px solid}.active-campaign-item:hover{background:var(--bg-hover)}.active-campaign-name{font-size:var(--font-sm);color:var(--text-primary);font-weight:600}.active-campaign-dates{font-size:var(--font-xs);color:var(--text-tertiary);margin-top:2px}.comment-thread{gap:var(--space-md);flex-direction:column;display:flex}.comment-list{gap:var(--space-sm);flex-direction:column;max-height:300px;display:flex;overflow-y:auto}.comment-item{gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm);background:var(--bg-glass);display:flex}.comment-avatar{border-radius:var(--radius-full);width:32px;height:32px;font-size:var(--font-xs);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.comment-body{flex:1;min-width:0}.comment-header{align-items:center;gap:var(--space-xs);margin-bottom:2px;display:flex}.comment-username{font-size:var(--font-sm);color:var(--text-primary);font-weight:600}.comment-role{border-radius:var(--radius-full);padding:1px 6px;font-size:.6rem;font-weight:600}.comment-time{font-size:var(--font-xs);color:var(--text-tertiary);margin-left:auto}.comment-text{font-size:var(--font-sm);color:var(--text-secondary);word-break:break-word;line-height:1.5}.comment-delete{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:0;transition:all var(--transition-fast);background:0 0;border:none;padding:2px}.comment-item:hover .comment-delete{opacity:1}.comment-delete:hover{color:var(--campaign-red);background:var(--campaign-red-bg)}.comment-input-row{gap:var(--space-sm);display:flex}.comment-input-row .form-input{flex:1}.comment-input-row .btn{flex-shrink:0}.comment-empty{text-align:center;padding:var(--space-md);color:var(--text-tertiary);font-size:var(--font-sm)}@media (width<=768px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}[data-theme=light] .modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a40}[data-theme=light] .confirm-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a59}[data-theme=light] .modal-content{box-shadow:0 25px 50px #0000001f, 0 0 0 1px var(--border-color)}[data-theme=light] .sidebar{border-right:1px solid var(--border-color);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}[data-theme=light] .header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffe6}[data-theme=light] .login-page{background:linear-gradient(135deg,#e0e7ff 0%,#f1f5f9 50%,#ede9fe 100%)}[data-theme=light] .login-card{box-shadow:0 20px 60px #00000014, 0 0 0 1px var(--border-color)}[data-theme=light] .splash-screen{background:linear-gradient(135deg,#e0e7ff 0%,#f1f5f9 50%,#ede9fe 100%)}[data-theme=light] .campaign-bar{border-left-width:3px;font-weight:600}[data-theme=light] .campaign-bar:hover{filter:brightness(.97);box-shadow:var(--shadow-md)}[data-theme=light] .timeline-bar:hover{filter:brightness(.97)}[data-theme=light] .btn{border-color:var(--border-color)}[data-theme=light] .btn:hover{border-color:var(--border-hover);background:var(--bg-hover)}[data-theme=light] .btn-primary{box-shadow:0 1px 3px #6366f14d}[data-theme=light] .view-tab.active{box-shadow:0 1px 3px #6366f133}[data-theme=light] .today-btn{background:#6366f10f;border-color:#6366f14d}[data-theme=light] .calendar-grid,[data-theme=light] .week-view,[data-theme=light] .timeline-wrapper{box-shadow:var(--shadow-sm)}[data-theme=light] .calendar-day.today{background:#6366f10f}[data-theme=light] .dashboard-card{box-shadow:var(--shadow-sm);border-color:var(--border-color)}[data-theme=light] .stat-card-icon{box-shadow:var(--shadow-sm)}[data-theme=light] .form-input,[data-theme=light] .form-select,[data-theme=light] .form-textarea{background:var(--bg-primary);border-color:var(--border-color);color:var(--text-primary)}[data-theme=light] .form-input:focus,[data-theme=light] .form-select:focus,[data-theme=light] .form-textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f11a}[data-theme=light] .filter-chip{background:var(--bg-secondary);border-color:var(--border-color)}[data-theme=light] .filter-chip.active{background:var(--bg-active);border-color:var(--accent-primary)}[data-theme=light] .sidebar-nav-item.active{background:#6366f114;border-color:#6366f133}[data-theme=light] .overlap-badge{background:var(--campaign-red-bg);border:1px solid var(--campaign-red-border)}[data-theme=light] .detail-quote{color:#c2410c}[data-theme=light] ::-webkit-scrollbar-thumb{background:#cbd5e1}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#94a3b8}[data-theme=light] .search-input{background:var(--bg-primary);border:1px solid var(--border-color)}[data-theme=light] .channel-chip,[data-theme=light] .brand-emoji-btn{background:var(--bg-primary);border-color:var(--border-color)}[data-theme=light] .detail-topbar,[data-theme=light] .comment-item,[data-theme=light] .milestone-upcoming-item,[data-theme=light] .active-campaign-item{background:var(--bg-primary)}.splash-screen{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;animation:.3s fadeIn;display:flex}.splash-content{flex-direction:column;align-items:center;gap:12px;animation:.6s cubic-bezier(.16,1,.3,1) splashIn;display:flex}.splash-logo{background:var(--accent-gradient);border-radius:var(--radius-xl);color:#fff;width:64px;height:64px;box-shadow:var(--shadow-glow), 0 0 40px var(--accent-primary-glow);justify-content:center;align-items:center;display:flex}.splash-title{font-size:var(--font-2xl);background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-weight:800}.splash-subtitle{font-size:var(--font-sm);color:var(--text-tertiary);letter-spacing:.1em;text-transform:uppercase;margin:0}.splash-bar{background:var(--bg-tertiary);border-radius:var(--radius-full);width:120px;height:3px;margin-top:8px;overflow:hidden}.splash-bar-fill{background:var(--accent-gradient);border-radius:var(--radius-full);width:0%;height:100%;animation:1.2s ease-in-out forwards splashProgress}@keyframes splashIn{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes splashProgress{0%{width:0%}30%{width:40%}60%{width:70%}to{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.modal-content,.modal-overlay,.modal-container,.drawer,.drawer-overlay,.sidebar{transition:none!important;animation:none!important}.campaign-bar:hover,.timeline-bar:hover,.brand-emoji-btn:hover,.brand-color-btn:hover{transform:none}}
