/* =========================================================
   BUDO SENSHI LANDING PAGE - styles.css
   ========================================================= */

/* Global */
*,
*::before,
*::after { box-sizing: border-box; }

:root{
  --bg-image: url("/background2.png");
  --glass: rgba(0,0,0,.28);
  --panel: rgba(0,0,0,.35);
  --border: rgba(255,255,255,.12);
  --text: #ffffff;

  --accent: #ffd700;
  --btn-bg: rgba(0,0,0,.45);
  --btn-border: rgba(255,215,0,.6);

  --card-bg: rgba(0,0,0,.35);
  --card-border: rgba(255,255,255,.12);
}

body.theme-1{
  --bg-image:url("../background2.png");
  --glass:rgba(0,0,0,.28);
  --panel:rgba(0,0,0,.35);
  --border:rgba(255,255,255,.12);
  --text:#fff;
  --accent:#ffd700;
  --btn-bg:rgba(0,0,0,.45);
  --btn-border:rgba(255,215,0,.6);
  --card-bg:rgba(0,0,0,.35);
  --card-border:rgba(255,255,255,.12);
}

body.theme-2{
  --bg-image:url("../backgroundred.png");
  --glass:rgba(58,12,12,.32);
  --panel:rgba(72,14,14,.42);
  --border:rgba(255,255,255,.16);
  --text:#fffaf5;
  --accent:#b11226;
  --btn-bg:rgba(72,14,14,.62);
  --btn-border:rgba(177,18,38,.78);
  --card-bg:rgba(0,0,0,.40);
  --card-border:rgba(255,255,255,.14);
}

body.theme-3{
  --bg-image:url("../backgroundblue.png");
  --glass:rgba(24,119,242,.24);
  --panel:rgba(24,119,242,.30);
  --border:rgba(255,255,255,.22);
  --text:#f7fbff;
  --accent:#1877f2;
  --btn-bg:rgba(24,119,242,.62);
  --btn-border:rgba(24,119,242,.88);
  --card-bg:rgba(0,0,0,.38);
  --card-border:rgba(255,255,255,.14);
}

body.theme-4{
  --bg-image:url("../backgroundpink.png");
  --glass:rgba(255,182,193,.18);
  --panel:rgba(255,182,193,.24);
  --border:rgba(255,255,255,.26);
  --text:#fff7fb;
  --accent:#ff5a8a;
  --btn-bg:rgba(255,90,138,.22);
  --btn-border:rgba(255,90,138,.65);
  --card-bg:rgba(0,0,0,.36);
  --card-border:rgba(255,255,255,.14);
}

body.theme-5{
  --bg-image:url("../background-medieval.png");
  --glass:rgba(44,24,16,.58);
  --panel:rgba(58,34,22,.72);
  --border:rgba(212,175,55,.34);
  --text:#f6ead7;
  --accent:#d4af37;
  --btn-bg:linear-gradient(180deg, rgba(108,72,38,.95), rgba(74,45,24,.95));
  --btn-border:rgba(212,175,55,.72);
  --card-bg:rgba(34,20,14,.68);
  --card-border:rgba(212,175,55,.24);
}

body.theme-6{
  --bg-image:url("../budosenshired.png");
  --glass:rgba(10,8,8,.72);
  --panel:rgba(18,12,12,.82);
  --border:rgba(255,255,255,.10);
  --text:#fff5f5;
  --accent:#e50914;
  --btn-bg:linear-gradient(180deg, rgba(229,9,20,.96), rgba(133,0,8,.96));
  --btn-border:rgba(255,80,80,.62);
  --card-bg:rgba(16,10,10,.78);
  --card-border:rgba(255,255,255,.10);
}

body.theme-7{
  --bg-image:url("../background7.png");
  --glass:rgba(10,10,9,.68);
  --panel:rgba(18,16,12,.82);
  --border:rgba(214,175,74,.28);
  --text:#f8efde;
  --accent:#d6af4a;
  --btn-bg:linear-gradient(180deg, rgba(176,130,42,.96), rgba(92,64,18,.96));
  --btn-border:rgba(214,175,74,.62);
  --card-bg:rgba(16,14,12,.78);
  --card-border:rgba(214,175,74,.16);
}

body.theme-8{
  --bg-image:url("../background8.png");
  --glass:rgba(22,8,10,.68);
  --panel:rgba(34,10,14,.82);
  --border:rgba(214,70,78,.24);
  --text:#fff1f1;
  --accent:#b91c2b;
  --btn-bg:linear-gradient(180deg, rgba(177,18,38,.98), rgba(102,8,22,.98));
  --btn-border:rgba(220,88,98,.52);
  --card-bg:rgba(20,8,10,.78);
  --card-border:rgba(255,255,255,.09);
}

body.theme-9{
  --bg-image:url("../background9.png");
  --glass:rgba(18,18,20,.62);
  --panel:rgba(28,28,30,.78);
  --border:rgba(255,255,255,.12);
  --text:#f4f1ea;
  --accent:#c3a66b;
  --btn-bg:linear-gradient(180deg, rgba(58,58,60,.96), rgba(28,28,30,.96));
  --btn-border:rgba(195,166,107,.42);
  --card-bg:rgba(20,20,22,.72);
  --card-border:rgba(255,255,255,.10);
}

body.theme-10{
  --bg-image:url("../background10.png");
  --glass:rgba(26,16,28,.62);
  --panel:rgba(34,18,36,.78);
  --border:rgba(255,181,206,.22);
  --text:#fff4f8;
  --accent:#f27ca7;
  --btn-bg:linear-gradient(180deg, rgba(173,58,112,.96), rgba(94,26,60,.96));
  --btn-border:rgba(242,124,167,.48);
  --card-bg:rgba(22,12,24,.76);
  --card-border:rgba(255,255,255,.10);
}

/* =========================================
   MEDIEVAL THEME ENHANCEMENTS
========================================= */
body.theme-5{
  font-family:"Georgia", "Times New Roman", serif;
  background:
    linear-gradient(rgba(18,10,6,.45), rgba(18,10,6,.62)),
    var(--bg-image) center/cover no-repeat fixed;
}

body.theme-5 .overlay,
body.theme-5 .panel,
body.theme-5 .assistant-box,
body.theme-5 .footer-inner{
  box-shadow:
    0 12px 28px rgba(0,0,0,.45),
    inset 0 0 0 1px rgba(255,236,179,.04);
  backdrop-filter:blur(4px);
}

body.theme-5 .overlay{
  border:1px solid rgba(212,175,55,.38);
  background:
    linear-gradient(180deg, rgba(74,45,24,.60), rgba(38,22,14,.72));
}

body.theme-5 .panel,
body.theme-5 .assistant-box,
body.theme-5 .schedule-item,
body.theme-5 .feed-card,
body.theme-5 .club-row,
body.theme-5 .feed-note,
body.theme-5 .modal-box{
  background:
    linear-gradient(180deg, rgba(68,42,26,.72), rgba(34,20,14,.82));
  border-color:rgba(212,175,55,.24);
}

body.theme-5 .hero-logo{
  background:rgba(246,234,215,.96);
  border:2px solid rgba(212,175,55,.72);
  box-shadow:
    0 0 0 4px rgba(212,175,55,.20),
    0 14px 30px rgba(0,0,0,.42);
}

body.theme-5 .hero-text h1,
body.theme-5 .panel-title,
body.theme-5 .portal-title,
body.theme-5 .club-row-title,
body.theme-5 .schedule-class{
  color:#f4d98b;
  text-shadow:0 1px 0 rgba(0,0,0,.45);
  letter-spacing:.4px;
}

body.theme-5 .address,
body.theme-5 .welcome,
body.theme-5 .right-sub,
body.theme-5 .portal-desc,
body.theme-5 .footer-small,
body.theme-5 .feed-text,
body.theme-5 .schedule-time{
  color:#f6ead7;
}

body.theme-5 .btn,
body.theme-5 .portal-btn,
body.theme-5 .chip,
body.theme-5 .footer-chip,
body.theme-5 .assistant-input button,
body.theme-5 .assistant-suggestions button,
body.theme-5 .sched-toggle button,
body.theme-5 .modal-close{
  background:linear-gradient(180deg, rgba(122,82,44,.96), rgba(78,49,28,.96));
  border:1px solid rgba(212,175,55,.52);
  color:#f8edd8;
  box-shadow:
    inset 0 1px 0 rgba(255,240,200,.18),
    0 8px 18px rgba(0,0,0,.26);
}

body.theme-5 .btn:hover,
body.theme-5 .portal-btn:hover,
body.theme-5 .chip:hover,
body.theme-5 .footer-chip:hover,
body.theme-5 .assistant-input button:hover,
body.theme-5 .assistant-suggestions button:hover,
body.theme-5 .sched-toggle button:hover,
body.theme-5 .modal-close:hover{
  filter:brightness(1.08);
  transform:translateY(-1px);
}

body.theme-5 .assistant-chat,
body.theme-5 .assistant-input input{
  background:rgba(29,16,10,.72);
  border-color:rgba(212,175,55,.22);
  color:#f6ead7;
}

body.theme-5 .msg .bubble{
  background:rgba(48,28,18,.88);
  border-color:rgba(212,175,55,.14);
}

body.theme-5 .msg.user .bubble{
  background:rgba(95,62,35,.88);
  border-color:rgba(212,175,55,.22);
}

body.theme-5 .schedule-badge{
  background:linear-gradient(180deg, rgba(96,63,35,.88), rgba(60,37,20,.88));
  border-color:rgba(212,175,55,.28);
}

body.theme-5 .schedule-item.is-live{
  border-color:rgba(113,201,120,.55);
  box-shadow:0 0 0 2px rgba(113,201,120,.12);
}

body.theme-5 .schedule-item.is-next{
  border-color:rgba(212,175,55,.48);
  box-shadow:0 0 0 2px rgba(212,175,55,.10);
}

body.theme-5 .fb-float{
  background:linear-gradient(180deg, rgba(92,58,33,.96), rgba(56,33,18,.96));
  border-color:rgba(212,175,55,.42);
  color:#f6ead7;
}

body.theme-5 .portal-icon{
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.35));
}

/* =========================================
   NETFLIX / CINEMATIC THEME ENHANCEMENTS
========================================= */
body.theme-6{
  font-family:Arial, Helvetica, sans-serif;
  background:
    radial-gradient(circle at 50% 18%, rgba(255,110,40,.18), transparent 28%),
    radial-gradient(circle at 20% 80%, rgba(229,9,20,.14), transparent 30%),
    linear-gradient(rgba(6,4,4,.46), rgba(6,4,4,.82)),
    var(--bg-image) center/cover no-repeat fixed;
}

body.theme-6::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.18) 18%, rgba(0,0,0,.48) 58%, rgba(0,0,0,.82) 100%);
}

body.theme-6 .page,
body.theme-6 .fb-float{
  position:relative;
  z-index:1;
}

body.theme-6 .overlay,
body.theme-6 .panel,
body.theme-6 .assistant-box,
body.theme-6 .footer-inner{
  box-shadow:
    0 16px 38px rgba(0,0,0,.48),
    0 0 0 1px rgba(255,255,255,.03) inset;
  backdrop-filter:blur(8px);
}

body.theme-6 .overlay{
  background:linear-gradient(180deg, rgba(12,8,8,.60), rgba(8,6,6,.84));
  border:1px solid rgba(255,255,255,.08);
}

body.theme-6 .panel,
body.theme-6 .assistant-box,
body.theme-6 .schedule-item,
body.theme-6 .feed-card,
body.theme-6 .club-row,
body.theme-6 .feed-note,
body.theme-6 .modal-box{
  background:linear-gradient(180deg, rgba(22,14,14,.82), rgba(10,8,8,.90));
  border-color:rgba(255,255,255,.08);
}

body.theme-6 .hero-logo{
  background:rgba(255,255,255,.98);
  border:2px solid rgba(229,9,20,.68);
  box-shadow:
    0 0 0 4px rgba(229,9,20,.18),
    0 16px 34px rgba(0,0,0,.44);
}

body.theme-6 .hero-text h1{
  color:#ffffff;
  font-weight:1000;
  letter-spacing:.02em;
  text-transform:uppercase;
  text-shadow:
    0 2px 10px rgba(0,0,0,.55),
    0 0 24px rgba(229,9,20,.10);
}

body.theme-6 .panel-title,
body.theme-6 .portal-title,
body.theme-6 .club-row-title,
body.theme-6 .schedule-class{
  color:#ffffff;
  font-weight:900;
}

body.theme-6 .address,
body.theme-6 .welcome,
body.theme-6 .right-sub,
body.theme-6 .portal-desc,
body.theme-6 .footer-small,
body.theme-6 .feed-text,
body.theme-6 .schedule-time,
body.theme-6 .feed-date{
  color:#ffeaea;
}

body.theme-6 .btn,
body.theme-6 .portal-btn,
body.theme-6 .assistant-input button{
  background:linear-gradient(180deg, rgba(229,9,20,.98), rgba(140,0,8,.98));
  border:1px solid rgba(255,110,110,.44);
  color:#fff;
  box-shadow:
    0 10px 24px rgba(120,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.14);
}

body.theme-6 .btn:hover,
body.theme-6 .portal-btn:hover,
body.theme-6 .assistant-input button:hover{
  filter:brightness(1.08);
  transform:translateY(-1px);
}

body.theme-6 .chip,
body.theme-6 .footer-chip,
body.theme-6 .assistant-suggestions button,
body.theme-6 .sched-toggle button,
body.theme-6 .modal-close{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  color:#fff5f5;
  box-shadow:0 8px 18px rgba(0,0,0,.18);
}

body.theme-6 .chip:hover,
body.theme-6 .footer-chip:hover,
body.theme-6 .assistant-suggestions button:hover,
body.theme-6 .sched-toggle button:hover,
body.theme-6 .modal-close:hover{
  background:rgba(229,9,20,.16);
  border-color:rgba(229,9,20,.42);
}

body.theme-6 .sched-toggle button.is-active{
  background:rgba(229,9,20,.18);
  border-color:rgba(229,9,20,.60);
  color:#fff;
}

body.theme-6 .assistant-chat,
body.theme-6 .assistant-input input{
  background:rgba(0,0,0,.34);
  border-color:rgba(255,255,255,.08);
  color:#fff5f5;
}

body.theme-6 .msg .bubble{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.08);
}

body.theme-6 .msg.user .bubble{
  background:rgba(37,17,18,.16);
  border-color:rgba(229,9,20,.26);
}

body.theme-6 .schedule-badge{
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  border-color:rgba(255,255,255,.10);
  box-shadow:0 8px 16px rgba(0,0,0,.20);
}

body.theme-6 .schedule-item{
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease;
}

body.theme-6 .schedule-item:hover,
body.theme-6 .feed-card:hover,
body.theme-6 .club-row:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 28px rgba(0,0,0,.34);
}

body.theme-6 .schedule-item.is-live{
  border-color:rgba(255,70,70,.55);
  box-shadow:0 0 0 2px rgba(229,9,20,.14), 0 14px 26px rgba(0,0,0,.26);
  background:linear-gradient(180deg, rgba(44,10,10,.92), rgba(12,8,8,.92));
}

body.theme-6 .schedule-item.is-live .schedule-badge{
  filter:drop-shadow(0 0 10px rgba(229,9,20,.48));
}

body.theme-6 .schedule-item.is-live::after{
  color:#ff7272;
}

body.theme-6 .schedule-item.is-next{
  border-color:rgba(255,180,80,.42);
  box-shadow:0 0 0 2px rgba(255,180,80,.10);
}

body.theme-6 .schedule-item.is-next::before{
  background:rgba(18,8,8,.82);
  border-color:rgba(255,180,80,.45);
  color:#ffd59a;
}

body.theme-6 .sched-live{
  background:rgba(229,9,20,.18);
  border-color:rgba(229,9,20,.42);
}

body.theme-6 .sched-next{
  background:rgba(255,166,0,.14);
  border-color:rgba(255,166,0,.40);
}

body.theme-6 .sched-done{
  background:rgba(255,255,255,.05);
  border-color:rgba(255,255,255,.12);
}

body.theme-6 .feed-card{
  overflow:hidden;
}

body.theme-6 .feed-img{
  position:relative;
}

body.theme-6 .feed-img::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 20%, rgba(0,0,0,.42) 100%);
}

body.theme-6 .portal-icon{
  filter:drop-shadow(0 6px 14px rgba(229,9,20,.25));
}

body.theme-6 .fb-float{
  background:linear-gradient(180deg, rgba(229,9,20,.96), rgba(120,0,8,.96));
  border-color:rgba(255,110,110,.42);
  color:#fff;
  box-shadow:0 12px 24px rgba(0,0,0,.28);
}

/* =========================================
   SHOGUN GOLD THEME ENHANCEMENTS
========================================= */
body.theme-7{
  font-family:"Georgia", "Times New Roman", serif;
  background:
    radial-gradient(circle at 50% 12%, rgba(214,175,74,.16), transparent 24%),
    linear-gradient(rgba(5,5,5,.48), rgba(5,5,5,.84)),
    var(--bg-image) center/cover no-repeat fixed;
}

body.theme-7::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.18) 22%, rgba(0,0,0,.58) 66%, rgba(0,0,0,.82) 100%);
}

body.theme-7 .page,
body.theme-7 .fb-float{
  position:relative;
  z-index:1;
}

body.theme-7 .overlay,
body.theme-7 .panel,
body.theme-7 .assistant-box,
body.theme-7 .footer-inner{
  box-shadow:
    0 14px 34px rgba(0,0,0,.46),
    inset 0 0 0 1px rgba(255,223,144,.04);
  backdrop-filter:blur(7px);
}

body.theme-7 .overlay{
  background:linear-gradient(180deg, rgba(16,14,12,.64), rgba(8,8,7,.82));
  border:1px solid rgba(214,175,74,.24);
}

body.theme-7 .panel,
body.theme-7 .assistant-box,
body.theme-7 .schedule-item,
body.theme-7 .feed-card,
body.theme-7 .club-row,
body.theme-7 .feed-note,
body.theme-7 .modal-box{
  background:linear-gradient(180deg, rgba(24,20,14,.86), rgba(10,10,9,.90));
  border-color:rgba(214,175,74,.14);
}

body.theme-7 .hero-logo{
  background:rgba(255,248,231,.98);
  border:2px solid rgba(214,175,74,.72);
  box-shadow:
    0 0 0 4px rgba(214,175,74,.16),
    0 16px 34px rgba(0,0,0,.42);
}

body.theme-7 .hero-text h1,
body.theme-7 .panel-title,
body.theme-7 .portal-title,
body.theme-7 .club-row-title,
body.theme-7 .schedule-class{
  color:#f6deb0;
  text-shadow:0 1px 0 rgba(0,0,0,.45);
  letter-spacing:.04em;
}

body.theme-7 .address,
body.theme-7 .welcome,
body.theme-7 .right-sub,
body.theme-7 .portal-desc,
body.theme-7 .footer-small,
body.theme-7 .feed-text,
body.theme-7 .schedule-time,
body.theme-7 .feed-date{
  color:#f8efde;
}

body.theme-7 .btn,
body.theme-7 .portal-btn,
body.theme-7 .assistant-input button{
  background:linear-gradient(180deg, rgba(184,140,52,.98), rgba(98,66,18,.98));
  border:1px solid rgba(214,175,74,.48);
  color:#fff9ef;
  box-shadow:
    0 10px 24px rgba(90,64,12,.24),
    inset 0 1px 0 rgba(255,245,220,.18);
}

body.theme-7 .chip,
body.theme-7 .footer-chip,
body.theme-7 .assistant-suggestions button,
body.theme-7 .sched-toggle button,
body.theme-7 .modal-close{
  background:rgba(255,224,160,.06);
  border:1px solid rgba(214,175,74,.16);
  color:#f8efde;
}

body.theme-7 .chip:hover,
body.theme-7 .footer-chip:hover,
body.theme-7 .assistant-suggestions button:hover,
body.theme-7 .sched-toggle button:hover,
body.theme-7 .modal-close:hover{
  background:rgba(214,175,74,.14);
  border-color:rgba(214,175,74,.38);
}

body.theme-7 .sched-toggle button.is-active{
  background:rgba(214,175,74,.16);
  border-color:rgba(214,175,74,.56);
  color:#fff9ef;
}

body.theme-7 .assistant-chat,
body.theme-7 .assistant-input input{
  background:rgba(0,0,0,.32);
  border-color:rgba(214,175,74,.12);
  color:#f8efde;
}

body.theme-7 .msg .bubble{
  background:rgba(255,230,172,.05);
  border-color:rgba(214,175,74,.10);
}

body.theme-7 .msg.user .bubble{
  background:rgba(125,92,25,.22);
  border-color:rgba(214,175,74,.20);
}

body.theme-7 .schedule-badge{
  background:linear-gradient(180deg, rgba(255,225,150,.08), rgba(255,225,150,.03));
  border-color:rgba(214,175,74,.16);
}

body.theme-7 .schedule-item.is-live{
  border-color:rgba(214,175,74,.50);
  box-shadow:0 0 0 2px rgba(214,175,74,.10);
}

body.theme-7 .schedule-item.is-next{
  border-color:rgba(255,214,120,.42);
  box-shadow:0 0 0 2px rgba(255,214,120,.08);
}

body.theme-7 .fb-float{
  background:linear-gradient(180deg, rgba(168,126,44,.98), rgba(88,60,18,.98));
  border-color:rgba(214,175,74,.42);
  color:#fff8ec;
}

/* =========================================
   IMPERIAL CRIMSON THEME ENHANCEMENTS
========================================= */
body.theme-8{
  font-family:Arial, Helvetica, sans-serif;
  background:
    radial-gradient(circle at 50% 15%, rgba(185,28,43,.20), transparent 22%),
    linear-gradient(rgba(8,4,4,.50), rgba(8,4,4,.84)),
    var(--bg-image) center/cover no-repeat fixed;
}

body.theme-8::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.74) 0%, rgba(0,0,0,.20) 18%, rgba(0,0,0,.56) 62%, rgba(0,0,0,.82) 100%);
}

body.theme-8 .page,
body.theme-8 .fb-float{
  position:relative;
  z-index:1;
}

body.theme-8 .overlay,
body.theme-8 .panel,
body.theme-8 .assistant-box,
body.theme-8 .footer-inner{
  box-shadow:
    0 14px 32px rgba(0,0,0,.44),
    inset 0 0 0 1px rgba(255,255,255,.03);
  backdrop-filter:blur(7px);
}

body.theme-8 .overlay{
  background:linear-gradient(180deg, rgba(28,8,10,.62), rgba(12,4,6,.84));
  border:1px solid rgba(220,88,98,.18);
}

body.theme-8 .panel,
body.theme-8 .assistant-box,
body.theme-8 .schedule-item,
body.theme-8 .feed-card,
body.theme-8 .club-row,
body.theme-8 .feed-note,
body.theme-8 .modal-box{
  background:linear-gradient(180deg, rgba(32,10,14,.84), rgba(12,6,8,.90));
  border-color:rgba(255,255,255,.08);
}

body.theme-8 .hero-logo{
  background:rgba(255,255,255,.98);
  border:2px solid rgba(185,28,43,.65);
  box-shadow:
    0 0 0 4px rgba(185,28,43,.16),
    0 16px 34px rgba(0,0,0,.42);
}

body.theme-8 .hero-text h1,
body.theme-8 .panel-title,
body.theme-8 .portal-title,
body.theme-8 .club-row-title,
body.theme-8 .schedule-class{
  color:#fff7f7;
  text-shadow:0 2px 10px rgba(0,0,0,.42);
}

body.theme-8 .address,
body.theme-8 .welcome,
body.theme-8 .right-sub,
body.theme-8 .portal-desc,
body.theme-8 .footer-small,
body.theme-8 .feed-text,
body.theme-8 .schedule-time,
body.theme-8 .feed-date{
  color:#fff1f1;
}

body.theme-8 .btn,
body.theme-8 .portal-btn,
body.theme-8 .assistant-input button{
  background:linear-gradient(180deg, rgba(185,28,43,.98), rgba(100,8,22,.98));
  border:1px solid rgba(220,88,98,.42);
  color:#fff;
  box-shadow:
    0 10px 24px rgba(90,0,10,.26),
    inset 0 1px 0 rgba(255,255,255,.14);
}

body.theme-8 .chip,
body.theme-8 .footer-chip,
body.theme-8 .assistant-suggestions button,
body.theme-8 .sched-toggle button,
body.theme-8 .modal-close{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.10);
  color:#fff2f2;
}

body.theme-8 .chip:hover,
body.theme-8 .footer-chip:hover,
body.theme-8 .assistant-suggestions button:hover,
body.theme-8 .sched-toggle button:hover,
body.theme-8 .modal-close:hover{
  background:rgba(185,28,43,.16);
  border-color:rgba(220,88,98,.34);
}

body.theme-8 .sched-toggle button.is-active{
  background:rgba(185,28,43,.18);
  border-color:rgba(220,88,98,.52);
  color:#fff;
}

body.theme-8 .assistant-chat,
body.theme-8 .assistant-input input{
  background:rgba(0,0,0,.32);
  border-color:rgba(255,255,255,.08);
  color:#fff1f1;
}

body.theme-8 .msg .bubble{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.08);
}

body.theme-8 .msg.user .bubble{
  background:rgba(185,28,43,.16);
  border-color:rgba(220,88,98,.20);
}

body.theme-8 .schedule-badge{
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  border-color:rgba(255,255,255,.10);
}

body.theme-8 .schedule-item.is-live{
  border-color:rgba(255,98,110,.44);
  box-shadow:0 0 0 2px rgba(185,28,43,.12);
}

body.theme-8 .schedule-item.is-live .schedule-badge{
  filter:drop-shadow(0 0 8px rgba(185,28,43,.38));
}

body.theme-8 .schedule-item.is-next{
  border-color:rgba(255,195,120,.38);
  box-shadow:0 0 0 2px rgba(255,195,120,.08);
}

body.theme-8 .fb-float{
  background:linear-gradient(180deg, rgba(185,28,43,.98), rgba(104,8,22,.98));
  border-color:rgba(220,88,98,.36);
  color:#fff;
}

/* =========================================
   ZEN INK THEME ENHANCEMENTS
========================================= */
body.theme-9{
  font-family:"Helvetica Neue", Arial, sans-serif;
  background:
    radial-gradient(circle at 50% 16%, rgba(195,166,107,.12), transparent 20%),
    linear-gradient(rgba(12,12,12,.42), rgba(12,12,12,.82)),
    var(--bg-image) center/cover no-repeat fixed;
}

body.theme-9::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.14) 18%, rgba(0,0,0,.48) 60%, rgba(0,0,0,.80) 100%);
}

body.theme-9 .page,
body.theme-9 .fb-float{
  position:relative;
  z-index:1;
}

body.theme-9 .overlay,
body.theme-9 .panel,
body.theme-9 .assistant-box,
body.theme-9 .footer-inner{
  box-shadow:
    0 14px 30px rgba(0,0,0,.42),
    inset 0 0 0 1px rgba(255,255,255,.03);
  backdrop-filter:blur(6px);
}

body.theme-9 .overlay{
  background:linear-gradient(180deg, rgba(28,28,30,.58), rgba(18,18,20,.80));
  border:1px solid rgba(255,255,255,.08);
}

body.theme-9 .panel,
body.theme-9 .assistant-box,
body.theme-9 .schedule-item,
body.theme-9 .feed-card,
body.theme-9 .club-row,
body.theme-9 .feed-note,
body.theme-9 .modal-box{
  background:linear-gradient(180deg, rgba(36,36,38,.80), rgba(18,18,20,.90));
  border-color:rgba(255,255,255,.08);
}

body.theme-9 .hero-logo{
  background:rgba(255,255,255,.98);
  border:2px solid rgba(195,166,107,.48);
  box-shadow:
    0 0 0 4px rgba(195,166,107,.12),
    0 14px 28px rgba(0,0,0,.38);
}

body.theme-9 .hero-text h1,
body.theme-9 .panel-title,
body.theme-9 .portal-title,
body.theme-9 .club-row-title,
body.theme-9 .schedule-class{
  color:#f4f1ea;
}

body.theme-9 .address,
body.theme-9 .welcome,
body.theme-9 .right-sub,
body.theme-9 .portal-desc,
body.theme-9 .footer-small,
body.theme-9 .feed-text,
body.theme-9 .schedule-time,
body.theme-9 .feed-date{
  color:#e9e3d6;
}

body.theme-9 .btn,
body.theme-9 .portal-btn,
body.theme-9 .assistant-input button{
  background:linear-gradient(180deg, rgba(74,74,76,.96), rgba(28,28,30,.96));
  border:1px solid rgba(195,166,107,.32);
  color:#faf7ef;
  box-shadow:
    0 10px 22px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.12);
}

body.theme-9 .chip,
body.theme-9 .footer-chip,
body.theme-9 .assistant-suggestions button,
body.theme-9 .sched-toggle button,
body.theme-9 .modal-close{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.10);
  color:#f4f1ea;
}

body.theme-9 .chip:hover,
body.theme-9 .footer-chip:hover,
body.theme-9 .assistant-suggestions button:hover,
body.theme-9 .sched-toggle button:hover,
body.theme-9 .modal-close:hover{
  background:rgba(195,166,107,.10);
  border-color:rgba(195,166,107,.28);
}

body.theme-9 .sched-toggle button.is-active{
  background:rgba(195,166,107,.12);
  border-color:rgba(195,166,107,.40);
  color:#fff;
}

body.theme-9 .assistant-chat,
body.theme-9 .assistant-input input{
  background:rgba(0,0,0,.28);
  border-color:rgba(255,255,255,.08);
  color:#f4f1ea;
}

body.theme-9 .msg .bubble{
  background:rgba(255,255,255,.05);
  border-color:rgba(255,255,255,.08);
}

body.theme-9 .msg.user .bubble{
  background:rgba(195,166,107,.14);
  border-color:rgba(195,166,107,.20);
}

body.theme-9 .schedule-badge{
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
  border-color:rgba(255,255,255,.10);
}

body.theme-9 .schedule-item.is-live{
  border-color:rgba(195,166,107,.38);
  box-shadow:0 0 0 2px rgba(195,166,107,.10);
}

body.theme-9 .schedule-item.is-next{
  border-color:rgba(255,214,120,.34);
  box-shadow:0 0 0 2px rgba(255,214,120,.08);
}

body.theme-9 .fb-float{
  background:linear-gradient(180deg, rgba(74,74,76,.98), rgba(24,24,26,.98));
  border-color:rgba(195,166,107,.30);
  color:#faf7ef;
}

/* =========================================
   SAKURA NIGHT THEME ENHANCEMENTS
========================================= */
body.theme-10{
  font-family:Arial, Helvetica, sans-serif;
  background:
    radial-gradient(circle at 50% 15%, rgba(242,124,167,.16), transparent 22%),
    radial-gradient(circle at 75% 70%, rgba(255,182,206,.10), transparent 26%),
    linear-gradient(rgba(10,6,10,.42), rgba(10,6,10,.84)),
    var(--bg-image) center/cover no-repeat fixed;
}

body.theme-10::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.70) 0%, rgba(0,0,0,.16) 20%, rgba(0,0,0,.50) 62%, rgba(0,0,0,.80) 100%);
}

body.theme-10 .page,
body.theme-10 .fb-float{
  position:relative;
  z-index:1;
}

body.theme-10 .overlay,
body.theme-10 .panel,
body.theme-10 .assistant-box,
body.theme-10 .footer-inner{
  box-shadow:
    0 14px 30px rgba(0,0,0,.42),
    inset 0 0 0 1px rgba(255,255,255,.03);
  backdrop-filter:blur(7px);
}

body.theme-10 .overlay{
  background:linear-gradient(180deg, rgba(34,18,36,.58), rgba(18,10,18,.82));
  border:1px solid rgba(255,181,206,.16);
}

body.theme-10 .panel,
body.theme-10 .assistant-box,
body.theme-10 .schedule-item,
body.theme-10 .feed-card,
body.theme-10 .club-row,
body.theme-10 .feed-note,
body.theme-10 .modal-box{
  background:linear-gradient(180deg, rgba(42,20,42,.78), rgba(18,10,20,.90));
  border-color:rgba(255,255,255,.08);
}

body.theme-10 .hero-logo{
  background:rgba(255,255,255,.98);
  border:2px solid rgba(242,124,167,.54);
  box-shadow:
    0 0 0 4px rgba(242,124,167,.12),
    0 14px 28px rgba(0,0,0,.38);
}

body.theme-10 .hero-text h1,
body.theme-10 .panel-title,
body.theme-10 .portal-title,
body.theme-10 .club-row-title,
body.theme-10 .schedule-class{
  color:#fff4f8;
}

body.theme-10 .address,
body.theme-10 .welcome,
body.theme-10 .right-sub,
body.theme-10 .portal-desc,
body.theme-10 .footer-small,
body.theme-10 .feed-text,
body.theme-10 .schedule-time,
body.theme-10 .feed-date{
  color:#ffe8f0;
}

body.theme-10 .btn,
body.theme-10 .portal-btn,
body.theme-10 .assistant-input button{
  background:linear-gradient(180deg, rgba(173,58,112,.98), rgba(94,26,60,.98));
  border:1px solid rgba(242,124,167,.40);
  color:#fff;
  box-shadow:
    0 10px 22px rgba(82,20,52,.24),
    inset 0 1px 0 rgba(255,255,255,.12);
}

body.theme-10 .chip,
body.theme-10 .footer-chip,
body.theme-10 .assistant-suggestions button,
body.theme-10 .sched-toggle button,
body.theme-10 .modal-close{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.10);
  color:#fff4f8;
}

body.theme-10 .chip:hover,
body.theme-10 .footer-chip:hover,
body.theme-10 .assistant-suggestions button:hover,
body.theme-10 .sched-toggle button:hover,
body.theme-10 .modal-close:hover{
  background:rgba(242,124,167,.14);
  border-color:rgba(242,124,167,.30);
}

body.theme-10 .sched-toggle button.is-active{
  background:rgba(242,124,167,.16);
  border-color:rgba(242,124,167,.44);
  color:#fff;
}

body.theme-10 .assistant-chat,
body.theme-10 .assistant-input input{
  background:rgba(0,0,0,.28);
  border-color:rgba(255,255,255,.08);
  color:#fff4f8;
}

body.theme-10 .msg .bubble{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.08);
}

body.theme-10 .msg.user .bubble{
  background:rgba(242,124,167,.14);
  border-color:rgba(242,124,167,.18);
}

body.theme-10 .schedule-badge{
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
  border-color:rgba(255,255,255,.10);
}

body.theme-10 .schedule-item.is-live{
  border-color:rgba(242,124,167,.34);
  box-shadow:0 0 0 2px rgba(242,124,167,.10);
}

body.theme-10 .schedule-item.is-next{
  border-color:rgba(255,206,132,.34);
  box-shadow:0 0 0 2px rgba(255,206,132,.08);
}

body.theme-10 .fb-float{
  background:linear-gradient(180deg, rgba(173,58,112,.98), rgba(84,20,52,.98));
  border-color:rgba(242,124,167,.30);
  color:#fff;
}

html, body { margin:0; padding:0; width:100%; height:100%; }

body{
  background: var(--bg-image) center/cover no-repeat fixed;
  font-family: Arial, sans-serif;
  color: var(--text);
  position: relative;
}

.page { min-height: 100vh; display:flex; flex-direction:column; }
.container{ width:min(1700px, 100%); margin:0 auto; padding:0 14px; }

.main{
  flex:1;
  display:flex;
  width:100%;
  gap:16px;
  align-items:flex-start;
  padding-top:10px;
}

.side{ width:230px; flex:0 0 230px; }
.right{ width:330px; flex:0 0 330px; }

.content{
  flex:1.6;
  padding:20px 0;
  display:flex;
  justify-content:center;
}

.overlay{
  width:100%;
  max-width:1200px;
  margin:0 auto;
  background: var(--glass);
  border:1px solid var(--border);
  border-radius:20px;
  backdrop-filter: blur(6px);
  padding:24px;
  text-align:center;
}

.address{
  margin-top:6px;
  font-weight:900;
  opacity:.95;
}

/* =========================
   Hero Header (Logo + Title)
   ========================= */
.hero-header{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin-bottom:10px;
}

.hero-logo{
  width:96px;
  height:96px;
  object-fit:contain;
  border-radius:50%;
  padding:8px;
  background: rgba(255,255,255,.97);
  border: 2px solid rgba(255,255,255,.75);
  box-shadow:
    0 0 0 4px rgba(255,215,0,.38),
    0 12px 28px rgba(0,0,0,.40);
  flex-shrink: 0;
}

.hero-text h1{ margin:0; }

@media (max-width: 640px){
  .hero-logo{ width:72px; height:72px; padding:8px; }
}

/* =========================
   Buttons
   ========================= */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid var(--btn-border);
  background: var(--btn-bg);
  color: var(--text);
  text-decoration:none;
  font-weight:900;
  cursor:pointer;
}
.btn:hover{ filter:brightness(1.08); }

.cta{
  margin-top:16px;
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}

.welcome{
  margin-top:18px;
  opacity:.95;
  line-height:1.45;
}

/* =========================
   Panels / Titles
   ========================= */
.panel{
  background: var(--panel);
  border:1px solid var(--border);
  border-radius:18px;
  padding:14px;
  backdrop-filter: blur(6px);
}

.panel-title{
  margin:0;
  font-size:1.05rem;
  font-weight:900;
  letter-spacing:.2px;
}

/* =========================
   Schedule
   ========================= */
.schedule-wrap{ margin-top:18px; text-align:left; }
.sched-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.sched-toggle{ display:flex; gap:8px; }
.sched-toggle button{
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.25);
  color: var(--text);
  font-weight:900;
  cursor:pointer;
  font-size:12px;
}
.sched-toggle button.is-active{
  border-color: var(--btn-border);
  background: rgba(0,0,0,.40);
}
.sched-view{ margin-top:10px; }
.sched-subtitle{ font-weight:900; margin-bottom:8px; }

.sched-list{ display:flex; flex-direction:column; gap:10px; }

.schedule-item{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.25);
  position: relative;
}

/* LIVE / NEXT state */
.schedule-item.is-live{
  border-color: rgba(60, 255, 160, .55);
  box-shadow: 0 0 0 2px rgba(60,255,160,.18);
  background: rgba(0,0,0,.32);
}

.schedule-item.is-live .schedule-badge{
  background: rgba(60,255,160,.14);
  border-color: rgba(60,255,160,.35);
}

.schedule-item.is-next{
  border-color: rgba(255, 215, 0, .55);
  box-shadow: 0 0 0 2px rgba(255,215,0,.14);
}

.schedule-left{ display:flex; gap:10px; align-items:flex-start; }

.schedule-badge{
  width:40px;
  height:40px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}

.schedule-class{ font-weight:900; line-height:1.25; }
.schedule-time{ opacity:.9; font-size:12px; margin-top:2px; }

/* ✅ LIVE / NEXT / DONE pills under time */
.schedule-meta{
  margin-top: 6px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.sched-pill{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.35);
  color: var(--text);
  line-height: 1.2;
}

.sched-live{
  border-color: rgba(255, 60, 60, .45);
  background: rgba(255, 0, 0, .18);
}

.sched-live::before{
  content: "●";
  font-size: 10px;
  animation: pulseDot 1s infinite;
}

@keyframes pulseDot{
  0%{ opacity:.25; }
  50%{ opacity:1; }
  100%{ opacity:.25; }
}

.sched-next{
  border-color: rgba(250,204,21,.55);
  background: rgba(250,204,21,.14);
}

.sched-done{
  border-color: rgba(255,255,255,.18);
  background: rgba(0,0,0,.25);
  opacity: .9;
}

/* ✅ DONE state (ended class) */
.schedule-item.is-done{
  opacity:.55;
  filter:saturate(.9);
}

.schedule-type{
  text-align:right;
  opacity:.92;
  font-weight:900;
  font-size:12px; 
  text-decoration:none;
  color:var(--text);
}

.schedule-type:hover{
  text-decoration:underline;
  filter:brightness(1.1);
}

/* ✅ LIVE / NEXT indicators */
.schedule-item.is-live{
  border-color: rgba(34,197,94,.55);
  box-shadow: 0 0 0 2px rgba(34,197,94,.18);
}

.schedule-item.is-live .schedule-badge{
  filter: drop-shadow(0 0 6px rgba(34,197,94,.55));
}

.schedule-item.is-live::after{
  content:"ONGOING";
  margin-left:auto;
  align-self:center;
  font-weight:900;
  font-size:12px;
  letter-spacing:.08em;
  color:rgba(34,197,94,.95);
}

.schedule-item.is-next{
  border-color: rgba(250,204,21,.45);
  box-shadow: 0 0 0 2px rgba(250,204,21,.14);
}

.schedule-item.is-next::before{
  content:"STARTING SOON";
  position:absolute;
  top:-9px;
  left:12px;
  font-size:11px;
  font-weight:900;
  padding:4px 8px;
  border-radius:999px;
  background: rgba(0,0,0,.55);
  border: 1px solid rgba(250,204,21,.55);
  color: rgba(250,204,21,.95);
}

.week-day{ margin-top:14px; }

.week-day-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-weight:900;
  margin-bottom:8px;
}

.week-day-badge{
  font-size:12px;
  font-weight:900;
  padding:4px 8px;
  border-radius:999px;
  background: rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.12);
}

.muted{ opacity:.85; }

/* =========================
   Latest Updates (Center)
   ========================= */
.center-latest{ margin-top:18px; text-align:left; }

.feed-note{
  margin-top:10px;
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.25);
}

.feed-note-title{ font-weight:900; margin-bottom:6px; }
.feed-note-link{ color: var(--text); font-weight:900; text-decoration:none; }
.feed-note-error{ margin-top:8px; font-size:12px; opacity:.95; }
.feed-note-tip{ margin-top:8px; font-size:12px; opacity:.85; }

.feed-grid{
  margin-top:12px;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}

.feed-card{
  display:block;
  text-decoration:none;
  color:var(--text);
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.25);
}

.feed-card:hover{ filter:brightness(1.06); }

.feed-img{
  width:100%;
  height:160px;
  background-size:cover;
  background-position:center;
}

.feed-body{ padding:12px; }
.feed-date{ font-size:12px; opacity:.85; font-weight:900; }
.feed-text{ margin-top:6px; line-height:1.35; font-size:13px; }
.feed-cta{ margin-top:10px; font-weight:900; font-size:12px; opacity:.95; }

/* =========================
   Right Panel (Clubs)
   ========================= */
.right-box .panel{ position: sticky; top: 14px; }
.right-sub{ font-size:12px; opacity:.9; margin:6px 0 10px 0; }

.club-mini{ display:flex; flex-direction:column; gap:10px; margin-top:6px; }

.club-row{
  padding:10px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.25);
  transition: filter .18s ease;
}

.club-row:hover{ filter:brightness(1.06); }

.club-row-title{ font-weight:900; margin-bottom:8px; }
.chip-row{ display:flex; gap:8px; flex-wrap:wrap; }

/* Collapse club actions until hover (desktop) */
.club-row .chip-row{
  max-height:0;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
  transform:translateY(-4px);
  transition:max-height .18s ease, opacity .18s ease, transform .18s ease;
}

.club-row:hover .chip-row,
.club-row:focus-within .chip-row{
  max-height:120px;
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}

.chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  text-decoration:none;
  color:var(--text);
  background: rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.14);
  transition:transform .12s ease, background .12s ease, border-color .12s ease, box-shadow .12s ease;
  cursor:pointer;
}

.chip:hover{
  background: rgba(0,0,0,.55);
  border-color: var(--btn-border);
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(0,0,0,.25);
}

.chip:focus-visible{
  outline:2px solid var(--btn-border);
  outline-offset:2px;
}

@media (max-width: 980px){
  .club-row .chip-row{
    max-height:none;
    opacity:1;
    pointer-events:auto;
    transform:none;
  }
}

/* =========================
   Dojo Assistant (LEFT)
   ========================= */
.assistant-box{
  background: var(--panel);
  border:1px solid var(--border);
  border-radius:16px;
  backdrop-filter: blur(6px);
  padding:14px;
  position: sticky;
  top:14px;
  overflow:visible;
}

.assistant-title{
  margin:0 0 10px 0;
  font-size:1.05rem;
  letter-spacing:.2px;
  font-weight:900;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.assistant-header{ display:flex; align-items:center; gap:10px; }

.assistant-avatar{
  width:42px;
  height:42px;
  border-radius:999px;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.35);
}

.assistant-meta{ display:flex; flex-direction:column; line-height:1.15; }
.assistant-name{ font-weight:900; font-size:14px; }

.assistant-sub{
  font-size:12px;
  font-weight:900;
  opacity:.85;
  padding:3px 8px;
  border-radius:999px;
  background: rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.12);
  width:fit-content;
}

.assistant-chat{
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  border-radius:14px;
  padding:10px;
  height:340px;
  overflow-y:auto;
  overflow-x:hidden;
  position:relative;
  z-index:1;
}

.msg{
  display:flex;
  gap:10px;
  margin:10px 0;
  align-items:flex-start;
}

.msg .bubble{
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.35);
  max-width:95%;
  line-height:1.35;
  font-size:13px;
  white-space:pre-wrap;
  word-break:break-word;
}

.msg.user{ justify-content:flex-end; }

.msg.user .bubble{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.16);
}

.assistant-suggestions{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  position:relative;
  z-index:5;
}

.assistant-suggestions button{
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:var(--text);
  font-weight:900;
  cursor:pointer;
  font-size:12px;
}

.assistant-suggestions button:hover{ background:rgba(255,255,255,.14); }

.assistant-input{
  margin-top:10px;
  display:flex;
  gap:8px;
  position:relative;
  z-index:10;
}

.assistant-input input{
  flex:1;
  min-width:0;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.35);
  color:var(--text);
  outline:none;
  font-weight:700;
}

.assistant-input button{
  flex:0 0 auto;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.45);
  color:var(--text);
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}

.assistant-input button:hover{ filter:brightness(1.08); }
.assistant-input button:disabled{ opacity:.6; cursor:not-allowed; }

.assistant-note{
  margin-top:10px;
  font-size:12px;
  opacity:.85;
  line-height:1.35;
}

/* =========================
   Footer + Floating FB
   ========================= */
.footer{ margin-top:18px; padding:18px 0; }

.footer-inner{
  background: var(--glass);
  border:1px solid var(--border);
  border-radius:20px;
  backdrop-filter: blur(6px);
  padding:18px;
}

.footer-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:16px;
}

.footer-links{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}

.footer-chip{
  display:inline-flex;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  color: var(--text);
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
  font-size:12px;
}

.footer-chip:hover{ background: rgba(255,255,255,.14); }
.footer-small{ margin-top:10px; font-size:12px; opacity:.85; line-height:1.35; }

.fb-float{
  position:fixed;
  right:14px;
  bottom:14px;
  width:52px;
  height:52px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.45);
  color: var(--text);
  font-weight:900;
  text-decoration:none;
  backdrop-filter: blur(6px);
  z-index:999;
}

.fb-float:hover{ filter:brightness(1.08); }

/* =========================
   Modals
   ========================= */
.modal{
  display:none;
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.65);
  z-index:1000;
  align-items:center;
  justify-content:center;
  padding:18px;
}

.modal-box{
  width:min(820px, 100%);
  background: rgba(20,20,20,.95);
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  padding:16px;
  color: var(--text);
  text-align:center;
}

.modal-close{
  margin-top:12px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  font-weight:900;
  cursor:pointer;
}

.modal-close:hover{ background: rgba(255,255,255,.14); }

.map-frame{
  border-radius:12px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
}

.map-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:12px;
}

/* Debug */
.debug-box{
  margin-top:14px;
  text-align:left;
  font-size:12px;
  white-space:pre-wrap;
  overflow:auto;
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.25);
}

/* Responsive */
@media (max-width: 1200px){
  .feed-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .right{ width:300px; flex:0 0 300px; }
}

@media (max-width: 980px){
  .main{ flex-direction:column; }
  .side, .right{ width:100%; flex:0 0 auto; }
  .right-box .panel, .assistant-box{ position:relative; top:auto; }
  .content{ padding:10px 0; }
  .feed-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .schedule-type{ max-width:55%; }
}

/* prevent desktop stacking (garbled view) */
@media (min-width: 981px){
  .main{ flex-direction:row !important; }
  .side{ order:0 !important; }
  .content{ order:1 !important; }
  .right{ order:2 !important; }
}

/* Pink theme readability overlay */
body.theme-4::before{
  content:"";
  position:fixed;
  inset:0;
  background: rgba(255,255,255,.35);
  pointer-events:none;
  z-index:0;
}

.page,
.fb-float{
  position:relative;
  z-index:1;
}

/* Ensure schedule tabs are always clickable */
.sched-head,
.sched-toggle,
.sched-toggle button{
  position:relative;
  z-index:50;
  pointer-events:auto;
}

.schedule-heartbeat{
  display:none;
  margin-left:8px;
  width:10px;
  height:10px;
  border-radius:50%;
  background:#19e58c;
  box-shadow:0 0 0 rgba(25,229,140,.7);
}

/* pulsing animation */
.schedule-heartbeat.is-on{
  display:inline-block;
  animation:heartbeatPulse 1s ease-out infinite;
}

@keyframes heartbeatPulse{
  0%{
    box-shadow:0 0 0 0 rgba(25,229,140,.7);
    transform:scale(1);
  }
  70%{
    box-shadow:0 0 0 8px rgba(25,229,140,0);
    transform:scale(1.15);
  }
  100%{
    box-shadow:0 0 0 0 rgba(25,229,140,0);
    transform:scale(1);
  }
}

.panel-title{
  display:flex;
  align-items:center;
}

.schedule-heartbeat{
  order:-1;
  margin-right:8px;
  margin-left:0;
  transform:translateY(-1px);
}

/* =========================================
   MEMBER PORTAL PANEL
========================================= */
.portal-panel{
  text-align:center;
}

.portal-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  padding:16px;
}

.portal-icon{
  font-size:44px;
}

.portal-title{
  font-size:18px;
  font-weight:700;
}

.portal-desc{
  font-size:13px;
  opacity:.8;
  max-width:260px;
}

.portal-btn{
  display:inline-block;
  padding:10px 16px;
  background:#0f6fff;
  color:#fff;
  text-decoration:none;
  border-radius:8px;
  font-weight:600;
  transition:all .25s ease;
}

.portal-btn:hover{
  background:#0c57cc;
  transform:translateY(-2px);
}

.schedule-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  text-align:right;
  min-width:280px;
  gap:4px;
}

.schedule-studio{
  font-size:.82rem;
  line-height:1.2;
  color:rgba(255,255,255,.82);
  font-weight:700;
  opacity:.9;
}

@media (max-width: 768px){
  .schedule-right{
    min-width:0;
    align-items:flex-start;
    text-align:left;
    margin-top:8px;
  }

  .schedule-studio{
    font-size:.78rem;
  }
}

.schedule-type{
  white-space: nowrap;
  font-weight: 700;
}