:root, [data-theme="dark"] {
  --bg:#0f1117; --surface:#181a22; --surface-2:#1f2230; --surface-3:#272a38;
  --border:#2a2d3a; --text:#e8e9ed; --text-muted:#8b8fa3; --text-dim:#5a5e72;
  --accent:#6c5ce7; --accent-light:#a29bfe; --danger:#e74c3c; --success:#2ecc71;
  --holiday:#e74c3c; --radius:10px; --radius-lg:16px; --shadow:0 4px 24px rgba(0,0,0,0.3);
}
[data-theme="light"] {
  --bg:#f0f2f5; --surface:#ffffff; --surface-2:#f7f8fa; --surface-3:#eceef2;
  --border:#dfe1e6; --text:#1a1a2e; --text-muted:#5a5f7a; --text-dim:#9298b0;
  --accent:#6c5ce7; --accent-light:#6c5ce7; --danger:#e74c3c; --success:#2ecc71;
  --holiday:#e74c3c; --shadow:0 4px 24px rgba(0,0,0,0.08);
}

/* ═══ STYLE: CARTOON ═══ */
[data-style="cartoon"] {
  --bg:#fffde7; --surface:#ffffff; --surface-2:#fff9c4; --surface-3:#fff59d;
  --border:#ffe082; --text:#37474f; --text-muted:#5d4037; --text-dim:#a1887f;
  --accent:#ff7043; --accent-light:#ff8a65; --danger:#e53935; --success:#43a047;
  --holiday:#e53935; --radius:18px; --radius-lg:26px; --shadow:3px 3px 0px rgba(255,112,67,0.25);
}
[data-style="cartoon"] .topbar{border-bottom:3px dashed var(--accent);background:var(--surface);}
[data-style="cartoon"] .topbar-brand h1{background:linear-gradient(135deg,#ff7043,#ffab91);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
[data-style="cartoon"] .btn{border-radius:24px;font-weight:700;letter-spacing:0.5px;}
[data-style="cartoon"] .btn-primary{background:#ff7043;box-shadow:2px 2px 0 #d84315;}
[data-style="cartoon"] .sidebar{border-right:3px dashed var(--border);background:var(--surface);}
[data-style="cartoon"] .day-cell{border-radius:14px;border:2px solid var(--border);}
[data-style="cartoon"] .day-cell:hover{background:#fff3e0;transform:scale(1.02);}

/* ═══ STYLE: ICELANDAIR ═══ */
[data-style="icelandair"] {
  --bg:#f5f7fa; --surface:#ffffff; --surface-2:#eef2f7; --surface-3:#e3e9f0;
  --border:#d0d8e4; --text:#001B71; --text-muted:#3a4d7a; --text-dim:#7a8aaa;
  --accent:#001B71; --accent-light:#0033a0; --danger:#e63946; --success:#2d6a4f;
  --holiday:#e63946; --radius:6px; --radius-lg:10px; --shadow:0 2px 12px rgba(0,27,113,0.08);
}
[data-style="icelandair"] .topbar{background:#001B71;border-bottom:none;}
[data-style="icelandair"] .topbar .btn-secondary,.topbar .btn-primary{color:#fff;}
[data-style="icelandair"] .topbar-brand h1{background:none;-webkit-text-fill-color:#ffffff;}
[data-style="icelandair"] .topbar-right .btn-secondary{background:rgba(255,255,255,0.15);color:#fff;border-color:rgba(255,255,255,0.25);}
[data-style="icelandair"] .topbar-right .btn-primary{background:#64dfda;color:#001B71;border-color:#64dfda;}
[data-style="icelandair"] .topbar-right .user-pill{color:#fff;}
[data-style="icelandair"] .topbar .search-box{background:rgba(255,255,255,0.12);border-color:rgba(255,255,255,0.2);color:#fff;}
[data-style="icelandair"] .topbar .search-box input{color:#fff;}
[data-style="icelandair"] .topbar .search-box input::placeholder{color:rgba(255,255,255,0.5);}
[data-style="icelandair"] .topbar .search-box svg{color:rgba(255,255,255,0.5);}
[data-style="icelandair"] .topbar .theme-toggle{color:#fff;}
[data-style="icelandair"] .btn-primary{background:#001B71;color:#fff;}
[data-style="icelandair"] .btn-primary:hover{background:#0033a0;}
[data-style="icelandair"] .sidebar{background:#001B71;border-right:none;color:#fff;}
[data-style="icelandair"] .sidebar h3,[data-style="icelandair"] .sidebar label,[data-style="icelandair"] .sidebar .checkbox-label{color:rgba(255,255,255,0.7);}
[data-style="icelandair"] .sidebar .sidebar-section{color:#fff;}
[data-style="icelandair"] .sidebar .sidebar-section h3{color:rgba(255,255,255,0.6);}
[data-style="icelandair"] .cal-item{color:#fff;}
[data-style="icelandair"] .cal-item.active{background:rgba(100,223,218,0.2);}
[data-style="icelandair"] .cal-item .cal-count{color:rgba(255,255,255,0.5);}
[data-style="icelandair"] .mini-calendar{background:rgba(255,255,255,0.08);color:#fff;}
[data-style="icelandair"] .mini-calendar button{color:#fff;}
[data-style="icelandair"] .mini-calendar td{color:rgba(255,255,255,0.8);}
[data-style="icelandair"] .member-filter label{color:#fff;}
[data-style="icelandair"] .sidebar .event-type-item{color:rgba(255,255,255,0.8);}
[data-style="icelandair"] .view-tabs .tab.active{background:#64dfda;color:#001B71;}
[data-style="icelandair"] .dropdown-menu{background:#ffffff;color:#001B71;}
[data-style="icelandair"] .dropdown-item{color:#001B71;}
[data-style="icelandair"] .dropdown-item:hover{background:#eef2f7;}

/* ═══ STYLE: OCEAN ═══ */
[data-style="ocean"] {
  --bg:#0a192f; --surface:#112240; --surface-2:#1a3050; --surface-3:#233d5c;
  --border:#2d4f6e; --text:#ccd6f6; --text-muted:#8892b0; --text-dim:#5a6a8a;
  --accent:#64ffda; --accent-light:#64ffda; --danger:#ff6b6b; --success:#64ffda;
  --holiday:#ff6b6b; --radius:6px; --radius-lg:10px; --shadow:0 10px 30px rgba(0,0,0,0.4);
}
[data-style="ocean"] .topbar-brand h1{background:linear-gradient(135deg,#64ffda,#48c9b0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
[data-style="ocean"] .btn-primary{background:#64ffda;color:#0a192f;}
[data-style="ocean"] .btn-primary:hover{background:#48c9b0;}
[data-style="ocean"] .view-tabs .tab.active{background:#64ffda;color:#0a192f;}

/* ═══ STYLE: SUNSET ═══ */
[data-style="sunset"] {
  --bg:#fff5f5; --surface:#ffffff; --surface-2:#ffeaea; --surface-3:#ffd6d6;
  --border:#ffb3b3; --text:#4a1942; --text-muted:#7a3b6a; --text-dim:#b07aa0;
  --accent:#ff6b6b; --accent-light:#ff8e8e; --danger:#e63946; --success:#2d6a4f;
  --holiday:#e63946; --radius:14px; --radius-lg:22px; --shadow:0 4px 20px rgba(255,107,107,0.12);
}
[data-style="sunset"] .topbar{background:linear-gradient(135deg,#ff6b6b,#ffa502);border-bottom:none;}
[data-style="sunset"] .topbar-brand h1{background:none;-webkit-text-fill-color:#fff;}
[data-style="sunset"] .topbar-right .btn-secondary{background:rgba(255,255,255,0.2);color:#fff;border-color:rgba(255,255,255,0.3);}
[data-style="sunset"] .topbar-right .btn-primary{background:#fff;color:#ff6b6b;border-color:#fff;}
[data-style="sunset"] .topbar-right .user-pill{color:#fff;}
[data-style="sunset"] .topbar-right .user-pill span{color:#fff;}
[data-style="sunset"] .topbar-right .user-pill svg{color:#fff;}
[data-style="sunset"] .topbar-right #userName{color:#fff!important;}
[data-style="sunset"] .topbar .search-box{background:rgba(255,255,255,0.2);border-color:rgba(255,255,255,0.3);}
[data-style="sunset"] .topbar .search-box input{color:#fff;}
[data-style="sunset"] .topbar .search-box input::placeholder{color:rgba(255,255,255,0.6);}
[data-style="sunset"] .topbar .search-box svg{color:rgba(255,255,255,0.6);}
[data-style="sunset"] .topbar .theme-toggle{color:#fff;}
[data-style="sunset"] .btn-primary{background:linear-gradient(135deg,#ff6b6b,#ffa502);color:#fff;border:none;}
[data-style="sunset"] .day-cell:hover{background:#fff0f0;}
[data-style="sunset"] .sidebar .checkbox-label{color:var(--text);}
[data-style="sunset"] .dropdown-menu{background:var(--surface);color:var(--text);}

/* ═══ STYLE: FOREST ═══ */
[data-style="forest"] {
  --bg:#f1f8e9; --surface:#ffffff; --surface-2:#e8f5e9; --surface-3:#c8e6c9;
  --border:#a5d6a7; --text:#1b5e20; --text-muted:#2e7d32; --text-dim:#66bb6a;
  --accent:#2e7d32; --accent-light:#43a047; --danger:#e53935; --success:#2e7d32;
  --holiday:#e53935; --radius:10px; --radius-lg:16px; --shadow:0 4px 16px rgba(46,125,50,0.1);
}
[data-style="forest"] .topbar-brand h1{background:linear-gradient(135deg,#2e7d32,#66bb6a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
[data-style="forest"] .btn-primary{background:#2e7d32;color:#fff;}
[data-style="forest"] .btn-primary:hover{background:#1b5e20;}
[data-style="forest"] .day-cell:hover{background:#e8f5e9;}

/* ═══ STYLE: ROSÉ ═══ */
[data-style="rose"] {
  --bg:#fdf2f8; --surface:#ffffff; --surface-2:#fce7f3; --surface-3:#fbcfe8;
  --border:#f9a8d4; --text:#831843; --text-muted:#9d174d; --text-dim:#db2777;
  --accent:#ec4899; --accent-light:#f472b6; --danger:#e11d48; --success:#059669;
  --holiday:#e11d48; --radius:14px; --radius-lg:22px; --shadow:0 4px 20px rgba(236,72,153,0.1);
}
[data-style="rose"] .topbar-brand h1{background:linear-gradient(135deg,#ec4899,#f472b6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
[data-style="rose"] .btn-primary{background:#ec4899;color:#fff;}
[data-style="rose"] .btn-primary:hover{background:#db2777;}
[data-style="rose"] .day-cell:hover{background:#fce7f3;}

/* ═══ STYLE: NEON ═══ */
[data-style="neon"] {
  --bg:#0a0a0a; --surface:#141414; --surface-2:#1e1e1e; --surface-3:#2a2a2a;
  --border:#333; --text:#f0f0f0; --text-muted:#aaa; --text-dim:#666;
  --accent:#00ff88; --accent-light:#00ff88; --danger:#ff0055; --success:#00ff88;
  --holiday:#ff0055; --radius:4px; --radius-lg:6px; --shadow:0 0 20px rgba(0,255,136,0.08);
}
[data-style="neon"] .topbar{border-bottom:1px solid #00ff8833;}
[data-style="neon"] .topbar-brand h1{background:linear-gradient(135deg,#00ff88,#00ccff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 30px rgba(0,255,136,0.3);}
[data-style="neon"] .btn-primary{background:transparent;color:#00ff88;border:1px solid #00ff88;box-shadow:0 0 10px rgba(0,255,136,0.3);}
[data-style="neon"] .btn-primary:hover{background:#00ff88;color:#0a0a0a;}
[data-style="neon"] .sidebar{border-right:1px solid #00ff8833;}
[data-style="neon"] .day-cell{border-color:#222;}
[data-style="neon"] .day-cell:hover{box-shadow:0 0 12px rgba(0,255,136,0.15);}
[data-style="neon"] .view-tabs .tab.active{background:#00ff88;color:#0a0a0a;}

/* ═══ STYLE: COFFEE ═══ */
[data-style="coffee"] {
  --bg:#faf6f1; --surface:#ffffff; --surface-2:#f5ebe0; --surface-3:#edddcc;
  --border:#d5c4a1; --text:#3e2723; --text-muted:#5d4037; --text-dim:#8d6e63;
  --accent:#6d4c41; --accent-light:#795548; --danger:#c62828; --success:#558b2f;
  --holiday:#c62828; --radius:10px; --radius-lg:16px; --shadow:0 4px 16px rgba(62,39,35,0.08);
}
[data-style="coffee"] .topbar-brand h1{background:linear-gradient(135deg,#6d4c41,#8d6e63);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
[data-style="coffee"] .btn-primary{background:#6d4c41;color:#fff;}
[data-style="coffee"] .btn-primary:hover{background:#5d4037;}
[data-style="coffee"] .day-cell:hover{background:#f5ebe0;}

/* ═══ STYLE: ARCTIC ═══ */
[data-style="arctic"] {
  --bg:#f0f4f8; --surface:#ffffff; --surface-2:#e8eef4; --surface-3:#d6e0ec;
  --border:#b8c9dc; --text:#1a365d; --text-muted:#2d5084; --text-dim:#7a9bbf;
  --accent:#3182ce; --accent-light:#4299e1; --danger:#e53e3e; --success:#38a169;
  --holiday:#e53e3e; --radius:8px; --radius-lg:12px; --shadow:0 2px 12px rgba(26,54,93,0.06);
}
[data-style="arctic"] .topbar-brand h1{background:linear-gradient(135deg,#3182ce,#63b3ed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
[data-style="arctic"] .btn-primary{background:#3182ce;color:#fff;}
[data-style="arctic"] .btn-primary:hover{background:#2b6cb0;}
[data-style="arctic"] .day-cell:hover{background:#ebf8ff;}

/* THEME PICKER */
.theme-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:6px;}
.theme-card{cursor:pointer;border:2px solid var(--border);border-radius:10px;padding:8px;text-align:center;transition:all 0.2s;position:relative;overflow:hidden;}
.theme-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.15);}
.theme-card.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);}
.theme-card-preview{height:32px;border-radius:6px;margin-bottom:6px;display:flex;overflow:hidden;}
.theme-card-preview div{flex:1;}
.theme-card-label{font-size:0.65rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;}

.app{display:grid;grid-template-columns:280px 1fr;grid-template-rows:64px 1fr;height:100vh;}

/* TOPBAR */
.topbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--border);z-index:10;gap:16px;}
.topbar-brand{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.topbar-brand svg{width:28px;height:28px;}
.topbar-brand h1{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:700;letter-spacing:-0.5px;background:linear-gradient(135deg,var(--accent-light),#74b9ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.topbar-center{flex:1;max-width:400px;position:relative;}
.topbar-right{display:flex;align-items:center;gap:12px;flex-shrink:0;}

/* SEARCH */
.search-box{position:relative;display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;transition:border-color 0.2s;}
.search-box:focus-within{border-color:var(--accent);}
.search-box svg{color:var(--text-dim);flex-shrink:0;}
.search-box input{background:none;border:none;color:var(--text);font-family:inherit;font-size:0.85rem;outline:none;width:100%;}
.search-box input::placeholder{color:var(--text-dim);}
.search-results{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);max-height:300px;overflow-y:auto;z-index:60;box-shadow:var(--shadow);}
.search-results.open{display:block;}
.search-result-item{padding:10px 14px;cursor:pointer;display:flex;align-items:center;gap:10px;font-size:0.85rem;transition:background 0.15s;border-bottom:1px solid var(--border);}
.search-result-item:last-child{border-bottom:none;}
.search-result-item:hover{background:var(--surface-3);}
.search-result-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.search-result-info{flex:1;overflow:hidden;}
.search-result-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.search-result-meta{font-size:0.75rem;color:var(--text-dim);}
.search-no-results{padding:16px;text-align:center;color:var(--text-dim);font-size:0.85rem;}

.user-pill{display:flex;align-items:center;gap:8px;background:var(--surface-2);padding:6px 14px 6px 8px;border-radius:50px;font-size:0.85rem;cursor:pointer;border:1px solid var(--border);transition:border-color 0.2s;position:relative;}
.user-pill:hover{border-color:var(--accent);}
.user-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.dropdown-menu{display:none;position:absolute;top:calc(100% + 6px);right:0;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;box-shadow:var(--shadow);z-index:50;overflow:hidden;}
.dropdown-menu.open{display:block;}
.dropdown-item{padding:10px 16px;font-size:0.85rem;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background 0.15s;color:var(--text-muted);border:none;background:none;width:100%;font-family:inherit;text-align:left;}
.dropdown-item:hover{background:var(--surface-3);color:var(--text);}
.dropdown-item.danger{color:var(--danger);}

/* BUTTONS */
.btn{padding:8px 18px;border-radius:var(--radius);border:none;font-family:inherit;font-size:0.85rem;font-weight:500;cursor:pointer;transition:all 0.2s;display:inline-flex;align-items:center;gap:6px;}
.btn-primary{background:var(--accent);color:#fff;}.btn-primary:hover{background:#5b4bd5;transform:translateY(-1px);}
.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border);}.btn-secondary:hover{background:var(--surface-3);}
.btn-ghost{background:transparent;color:var(--text-muted);padding:6px 10px;}.btn-ghost:hover{color:var(--text);background:var(--surface-2);}
.btn-danger{background:var(--danger);color:#fff;}.btn-danger:hover{background:#c0392b;}
.btn-sm{padding:5px 12px;font-size:0.8rem;}
.btn-google{background:#fff;color:#333;border:1px solid #ddd;font-weight:500;width:100%;justify-content:center;padding:10px;}.btn-google:hover{background:#f5f5f5;}.btn-google svg{width:18px;height:18px;}

/* SIDEBAR */
.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:24px;}
.sidebar-section h3{font-size:0.7rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);margin-bottom:12px;font-weight:600;}
.cal-switcher{background:var(--surface-2);border-radius:var(--radius);padding:4px;display:flex;flex-direction:column;gap:2px;}
.cal-switch-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;cursor:pointer;transition:background 0.15s;font-size:0.85rem;border:none;background:none;color:var(--text-muted);width:100%;text-align:left;font-family:inherit;}
.cal-switch-item:hover{background:var(--surface-3);color:var(--text);}
.cal-switch-item.active{background:var(--accent);color:#fff;}
.cal-switch-item .cal-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.cal-switch-item .cal-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cal-switch-item .cal-count{font-size:0.7rem;opacity:0.6;}

/* MEMBER FILTERS */
.member-filter{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--radius);cursor:pointer;font-size:0.85rem;transition:opacity 0.2s;}
.member-filter.dimmed{opacity:0.3;}
.member-filter .mf-check{width:16px;height:16px;border-radius:4px;border:2px solid;display:flex;align-items:center;justify-content:center;font-size:0.65rem;color:#fff;flex-shrink:0;}
.member-filter .mf-check.checked::after{content:'✓';}

/* HOLIDAY TOGGLES */
.holiday-toggle{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;font-size:0.85rem;color:var(--text-muted);transition:color 0.15s;}
.holiday-toggle:hover{color:var(--text);}
.holiday-toggle input{accent-color:var(--accent);}

.team-member{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius);font-size:0.88rem;}
.member-color{width:12px;height:12px;border-radius:50%;flex-shrink:0;border:2px solid transparent;}
.member-color.selected-ring{border:2px solid var(--text);}
.member-name{flex:1;}.member-events{font-size:0.75rem;color:var(--text-dim);background:var(--surface-2);padding:2px 8px;border-radius:50px;}
.mini-calendar{background:var(--surface-2);border-radius:var(--radius-lg);padding:16px;}
.mini-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.mini-cal-header span{font-weight:600;font-size:0.88rem;}
.mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center;font-size:0.75rem;}
.mini-cal-grid .day-label{color:var(--text-dim);font-weight:600;padding:4px 0;font-size:0.65rem;text-transform:uppercase;}
.mini-cal-grid .mini-day{padding:5px 0;border-radius:6px;cursor:pointer;transition:background 0.15s;color:var(--text-muted);}
.mini-cal-grid .mini-day:hover{background:var(--surface-3);}
.mini-cal-grid .mini-day.today{background:var(--accent);color:#fff;font-weight:600;}
.mini-cal-grid .mini-day.other-month{color:var(--text-dim);opacity:0.4;}
.event-types{display:flex;flex-direction:column;gap:6px;}
.event-type-item{display:flex;align-items:center;gap:8px;font-size:0.82rem;color:var(--text-muted);padding:4px 0;}
.eti{width:20px;text-align:center;font-size:0.9rem;}

/* MAIN */
.main{padding:24px;overflow-y:auto;background:var(--bg);}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;}
.cal-nav{display:flex;align-items:center;gap:12px;}
.cal-nav h2{font-family:'Playfair Display',serif;font-size:1.6rem;font-weight:600;min-width:240px;text-align:center;}
.cal-nav button:not(.btn){width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.15s;font-size:1.1rem;}
.cal-nav button:not(.btn):hover{background:var(--surface-2);border-color:var(--accent);}
.cal-views{display:flex;gap:4px;background:var(--surface);border-radius:var(--radius);padding:3px;border:1px solid var(--border);}
.cal-views button{padding:6px 14px;border:none;background:transparent;color:var(--text-muted);font-family:inherit;font-size:0.82rem;border-radius:7px;cursor:pointer;transition:all 0.15s;font-weight:500;}
.cal-views button:hover{color:var(--text);}
.cal-views button.active{background:var(--accent);color:#fff;}

/* MONTH GRID */
.cal-grid-header{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:1px;}
.cal-grid-header div{text-align:center;padding:10px;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);min-height:calc(100vh - 240px);}
.cal-day{background:var(--surface);min-height:0;padding:8px;cursor:pointer;transition:background 0.15s;}
.cal-day:hover{background:var(--surface-2);}
.cal-day.other-month{background:var(--bg);}.cal-day.other-month .day-number{color:var(--text-dim);opacity:0.3;}
.cal-day.today{background:rgba(108,92,231,0.08);}
.cal-day.today .day-number{background:var(--accent);color:#fff;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:600;}
.cal-day.holiday-day{background:rgba(231,76,60,0.05);}
.day-number{font-size:0.82rem;font-weight:500;color:var(--text-muted);margin-bottom:4px;}
.day-events{display:flex;flex-direction:column;gap:2px;}
.day-event{font-size:0.72rem;padding:3px 7px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;font-weight:500;transition:opacity 0.15s;border-left:3px solid;}
.day-event:hover{opacity:0.85;}
.day-event.holiday-event{border-left-color:var(--holiday)!important;background:rgba(231,76,60,0.1)!important;color:var(--holiday)!important;font-style:italic;}
.day-event-more{font-size:0.7rem;color:var(--text-dim);padding:2px 4px;cursor:pointer;}

/* WEEK VIEW */
.week-grid{display:grid;grid-template-columns:60px repeat(7,1fr);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--border);gap:1px;}
.week-header-cell{background:var(--surface);padding:10px 8px;text-align:center;font-size:0.75rem;font-weight:600;text-transform:uppercase;color:var(--text-dim);letter-spacing:0.5px;}
.week-header-cell.today-col{color:var(--accent-light);}
.week-header-cell .week-date{font-size:1.1rem;font-weight:600;color:var(--text);display:block;margin-top:2px;}
.week-header-cell.today-col .week-date{background:var(--accent);color:#fff;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;}
.week-corner{background:var(--surface);}
.week-time-label{background:var(--surface);padding:4px 8px;font-size:0.7rem;color:var(--text-dim);text-align:right;height:48px;display:flex;align-items:flex-start;justify-content:flex-end;}
.week-cell{background:var(--surface);height:48px;padding:2px 4px;cursor:pointer;transition:background 0.15s;position:relative;overflow:hidden;}
.week-cell:hover{background:var(--surface-2);}
.week-cell.today-col{background:rgba(108,92,231,0.04);}
.week-cell.holiday-col{background:rgba(231,76,60,0.04);}
.week-event{font-size:0.68rem;padding:2px 5px;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:2px solid;cursor:pointer;margin-bottom:1px;}
.week-allday-row{display:grid;grid-template-columns:60px repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;margin-bottom:0;}
.week-allday-label{background:var(--surface);padding:6px 8px;font-size:0.7rem;color:var(--text-dim);text-align:right;display:flex;align-items:center;justify-content:flex-end;}
.week-allday-cell{background:var(--surface);padding:4px;min-height:32px;}
.week-scroll{max-height:calc(100vh - 280px);overflow-y:auto;}

/* DAY VIEW */
.day-header-bar{display:flex;align-items:center;gap:16px;margin-bottom:16px;padding:12px 16px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);}
.day-header-bar .day-full-date{font-size:1.1rem;font-weight:600;}
.day-header-bar .day-holiday-badge{font-size:0.8rem;color:var(--holiday);background:rgba(231,76,60,0.1);padding:3px 10px;border-radius:50px;}
.day-grid{display:grid;grid-template-columns:60px 1fr;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--border);gap:1px;}
.day-allday-bar{display:grid;grid-template-columns:60px 1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;margin-bottom:0;}
.day-allday-label{background:var(--surface);padding:8px;font-size:0.7rem;color:var(--text-dim);text-align:right;}
.day-allday-events{background:var(--surface);padding:6px;display:flex;flex-wrap:wrap;gap:4px;min-height:36px;}
.day-time-label{background:var(--surface);padding:4px 8px;font-size:0.7rem;color:var(--text-dim);text-align:right;height:48px;display:flex;align-items:flex-start;justify-content:flex-end;}
.day-cell{background:var(--surface);height:48px;padding:2px 8px;cursor:pointer;transition:background 0.15s;position:relative;overflow:hidden;}
.day-cell:hover{background:var(--surface-2);}
.day-event-block{font-size:0.78rem;padding:4px 8px;border-radius:4px;border-left:3px solid;cursor:pointer;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.day-scroll{max-height:calc(100vh - 280px);overflow-y:auto;}

/* MODALS */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:100;}
.modal-overlay.active{display:flex;}
@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.modal{background:var(--surface);border-radius:var(--radius-lg);width:90%;max-width:480px;padding:28px;border:1px solid var(--border);box-shadow:var(--shadow);animation:slideUp 0.25s;max-height:90vh;overflow-y:auto;}
.modal h2{font-family:'Playfair Display',serif;font-size:1.3rem;margin-bottom:20px;}
.form-group{margin-bottom:16px;}.form-group label{display:block;font-size:0.78rem;font-weight:600;text-transform:uppercase;letter-spacing:0.8px;color:var(--text-dim);margin-bottom:6px;}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:0.9rem;outline:none;transition:border-color 0.2s;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);}
.form-group textarea{resize:vertical;min-height:70px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.time-row{margin-top:-8px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;}
.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:0.88rem;color:var(--text-muted);text-transform:none;letter-spacing:0;font-weight:400;}
.checkbox-label input[type="checkbox"]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer;}
.holiday-checkboxes{display:flex;flex-direction:column;gap:8px;}

.color-grid{display:flex;flex-wrap:wrap;gap:8px;}
.color-swatch{width:32px;height:32px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:all 0.2s;position:relative;}
.color-swatch:hover{transform:scale(1.15);}
.color-swatch.selected{border-color:var(--text);box-shadow:0 0 0 2px var(--bg);}
.color-swatch.taken{opacity:0.25;cursor:not-allowed;}
.color-swatch.taken::after{content:'✕';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:0.7rem;font-weight:700;}
.invite-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.invite-chip{display:inline-flex;align-items:center;gap:4px;background:var(--surface-3);padding:4px 10px;border-radius:50px;font-size:0.8rem;color:var(--text-muted);}
.invite-chip button{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:0.9rem;line-height:1;}.invite-chip button:hover{color:var(--danger);}
.invite-input-row{display:flex;gap:8px;}.invite-input-row input{flex:1;}

/* LOGIN */
.login-screen{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg);position:relative;overflow:hidden;}
.login-screen::before{content:'';position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(108,92,231,0.12),transparent 70%);top:-200px;right:-100px;}
.login-screen::after{content:'';position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(116,185,255,0.08),transparent 70%);bottom:-150px;left:-100px;}
.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:40px;width:90%;max-width:420px;box-shadow:var(--shadow);position:relative;z-index:1;animation:slideUp 0.4s;}
.login-card .topbar-brand{justify-content:center;margin-bottom:8px;}.login-card .topbar-brand h1{font-size:1.6rem;}
.login-subtitle{text-align:center;color:var(--text-muted);font-size:0.9rem;margin-bottom:28px;}
.login-card .form-group{margin-bottom:18px;}.login-card .btn-primary{width:100%;padding:12px;font-size:0.95rem;justify-content:center;}
.login-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--text-dim);font-size:0.78rem;}
.login-divider::before,.login-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.login-footer{text-align:center;margin-top:16px;font-size:0.85rem;color:var(--text-muted);}.login-footer a{color:var(--accent-light);text-decoration:none;cursor:pointer;}

.event-detail{padding:0;}
.event-detail-header{padding:20px 28px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:14px;}
.event-detail-color{width:14px;height:14px;border-radius:50%;margin-top:4px;flex-shrink:0;}
.event-detail-header h2{margin:0;font-size:1.2rem;}.event-detail-meta{font-size:0.82rem;color:var(--text-muted);margin-top:2px;}
.event-detail-body{padding:20px 28px;}
.event-detail-row{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:0.88rem;color:var(--text-muted);}
.event-detail-row svg{width:16px;height:16px;flex-shrink:0;color:var(--text-dim);}
.event-detail-actions{padding:16px 28px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;}

/* TOAST & UNDO */
.toast{position:fixed;bottom:24px;right:24px;background:var(--surface-3);border:1px solid var(--border);color:var(--text);padding:12px 20px;border-radius:var(--radius);font-size:0.85rem;box-shadow:var(--shadow);z-index:200;animation:slideUp 0.3s;display:none;max-width:400px;}
.toast.show{display:flex;align-items:center;gap:12px;}
.toast-msg{flex:1;}
.toast-undo{background:none;border:none;color:var(--accent-light);font-family:inherit;font-size:0.85rem;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:4px;white-space:nowrap;}
.toast-undo:hover{background:rgba(108,92,231,0.15);}

/* THEME TOGGLE */
.theme-toggle{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all 0.2s;}
.theme-toggle:hover{border-color:var(--accent);color:var(--text);}

/* ACTIVITY LOG */
.activity-log{max-height:400px;overflow-y:auto;}
.activity-item{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-size:0.84rem;}
.activity-item:last-child{border-bottom:none;}
.activity-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex-shrink:0;}
.activity-text{flex:1;color:var(--text-muted);line-height:1.4;}
.activity-text strong{color:var(--text);font-weight:600;}
.activity-time{font-size:0.72rem;color:var(--text-dim);white-space:nowrap;margin-top:2px;}
.activity-empty{text-align:center;padding:30px;color:var(--text-dim);font-size:0.85rem;}

/* RECURRING BADGE */
.recurring-badge{font-size:0.6rem;color:var(--accent-light);margin-left:2px;}
.recur-options{margin-top:8px;padding:10px 12px;background:var(--surface-2);border-radius:var(--radius);border:1px solid var(--border);}
.recur-options .form-row{margin-top:8px;}
.empty-state{text-align:center;padding:60px 20px;color:var(--text-dim);grid-column:1/-1;}.empty-state h3{font-size:1.1rem;color:var(--text-muted);margin-bottom:8px;}
/* ACCOUNT STATS */
.account-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;}
.stat-card{background:var(--surface-2);border-radius:var(--radius);padding:14px;text-align:center;}
.stat-number{font-size:1.4rem;font-weight:700;color:var(--accent-light);font-family:'Playfair Display',serif;}
.stat-label{font-size:0.72rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.5px;margin-top:2px;}
.stat-breakdown{margin-top:12px;}
.stat-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:0.8rem;}
.stat-bar-label{width:80px;color:var(--text-muted);text-align:right;}
.stat-bar-track{flex:1;height:8px;background:var(--surface-3);border-radius:4px;overflow:hidden;}
.stat-bar-fill{height:100%;border-radius:4px;transition:width 0.4s;}
.stat-bar-count{width:28px;color:var(--text-dim);font-size:0.75rem;}

/* ADMIN CONSOLE */
.admin-member-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface-2);border-radius:var(--radius);margin-bottom:6px;}
.admin-member-info{flex:1;display:flex;align-items:center;gap:10px;}
.admin-member-info .member-color{width:10px;height:10px;}
.admin-member-name{font-size:0.88rem;}
.admin-member-role{font-size:0.72rem;padding:2px 8px;border-radius:50px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;}
.admin-role-creator{background:rgba(108,92,231,0.2);color:var(--accent-light);}
.admin-role-admin{background:rgba(243,156,18,0.2);color:#f39c12;}
.admin-role-editor{background:rgba(46,204,113,0.2);color:var(--success);}
.admin-role-viewer{background:rgba(139,143,163,0.2);color:var(--text-muted);}
.admin-role-select{padding:4px 8px;background:var(--surface-3);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:inherit;font-size:0.8rem;outline:none;}
.admin-role-select:focus{border-color:var(--accent);}
.admin-section-title{font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin:16px 0 8px;}
.admin-info-box{background:var(--surface-2);border-radius:var(--radius);padding:12px 14px;font-size:0.8rem;color:var(--text-muted);line-height:1.5;margin-bottom:16px;border-left:3px solid var(--accent);}
.admin-danger-zone{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);}
.admin-danger-zone h4{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.8px;color:var(--danger);margin-bottom:10px;}
.admin-event-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surface-2);border-radius:6px;margin-bottom:4px;font-size:0.82rem;}
.admin-event-row .member-color{width:8px;height:8px;}
.admin-event-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-event-owner{font-size:0.72rem;color:var(--text-dim);}
.admin-del-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:0.85rem;padding:2px 6px;border-radius:4px;transition:all 0.15s;}
.admin-del-btn:hover{color:var(--danger);background:rgba(231,76,60,0.1);}

::-webkit-scrollbar{width:6px;}::-webkit-scrollbar-track{background:transparent;}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:3px;}
/* ─── MOBILE BOTTOM NAV ─── */
.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);z-index:30;padding:6px 0;padding-bottom:env(safe-area-inset-bottom,6px);}
.mobile-nav-items{display:flex;justify-content:space-around;align-items:center;}
.mobile-nav-btn{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;color:var(--text-dim);font-family:inherit;font-size:0.65rem;cursor:pointer;padding:4px 12px;border-radius:8px;transition:all 0.15s;}
.mobile-nav-btn.active{color:var(--accent-light);}
.mobile-nav-btn svg{width:22px;height:22px;}

/* MOBILE SLIDE PANEL */
.mobile-panel-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:40;}
.mobile-panel-overlay.open{display:block;}
.mobile-panel{position:fixed;top:0;bottom:0;right:-300px;width:300px;background:var(--surface);border-left:1px solid var(--border);z-index:41;transition:right 0.25s ease;overflow-y:auto;padding:20px;}
.mobile-panel.open{right:0;}
.mobile-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;}
.mobile-panel-header h3{font-family:'Playfair Display',serif;font-size:1.1rem;}
.mobile-panel-close{background:none;border:none;color:var(--text-muted);font-size:1.4rem;cursor:pointer;padding:4px 8px;}

/* MOBILE FAB */
.mobile-fab{display:none;position:fixed;bottom:76px;right:16px;width:52px;height:52px;border-radius:50%;background:var(--accent);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 16px rgba(108,92,231,0.4);z-index:25;font-size:1.5rem;align-items:center;justify-content:center;transition:transform 0.2s;}
.mobile-fab:active{transform:scale(0.92);}

@media(max-width:900px){
  .app{grid-template-columns:1fr;grid-template-rows:56px 1fr;padding-bottom:60px;}
  .sidebar{display:none;}
  .topbar-center{display:none;}
  .topbar{padding:0 12px;}
  .topbar-right .btn{display:none;}
  .topbar-brand h1{font-size:1.1rem;}
  .mobile-bottom-nav{display:block;}
  .mobile-fab{display:flex;}
  .main{padding:12px;padding-bottom:80px;}
  .cal-header{flex-direction:column;gap:10px;align-items:flex-start;}
  .cal-nav h2{font-size:1.2rem;min-width:auto;}
  .cal-views button{padding:5px 10px;font-size:0.75rem;}
  .cal-day{min-height:0;padding:4px;}
  .cal-grid{min-height:calc(100vh - 280px);}
  .day-number{font-size:0.72rem;}
  .day-event{font-size:0.6rem;padding:2px 4px;}
  .cal-day.today .day-number{width:22px;height:22px;font-size:0.72rem;}
  .modal{width:95%;max-width:none;padding:20px;margin:0 auto;}
  .week-grid{font-size:0.7rem;}
  .week-header-cell{padding:6px 2px;font-size:0.6rem;}
  .week-header-cell .week-date{font-size:0.85rem;}
  .week-time-label,.day-time-label{font-size:0.6rem;padding:2px 4px;}
  .week-cell,.day-cell{height:40px;}
  .user-pill span{display:none;}
}
