#bb-calgen{
  --bg:#fff; --panel:#f6f6f6; --border:#e5e5e5; --text:#111; --muted:rgba(0,0,0,.65);
  --accent:#111; --accentText:#fff; --chipBg:#111; --chipText:#fff;
  --cellBg:#fff; --cellAlt:#fafafa; --sel:#eef6ff; --soft:#f3f3f3;
  color:var(--text);
  max-width:980px; margin:0 auto; padding:16px;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
}
#bb-calgen.theme-dark{
  --bg:#0f1115; --panel:#151924; --border:#2a3145; --text:#e9ecf5; --muted:rgba(233,236,245,.7);
  --accent:#e9ecf5; --accentText:#0f1115; --chipBg:#e9ecf5; --chipText:#0f1115;
  --cellBg:#121826; --cellAlt:#0f1115; --sel:#1a2a44; --soft:#1a2233;
}
#bb-calgen.theme-cute{
  --bg:#fff7fb; --panel:#ffe9f4; --border:#ffd0e6; --text:#2b1b25; --muted:rgba(43,27,37,.7);
  --accent:#ff3f9e; --accentText:#fff; --chipBg:#ff3f9e; --chipText:#fff;
  --cellBg:#fff; --cellAlt:#fff0f8; --sel:#ffe1f0; --soft:#ffe6f3;
}

#bb-calgen .panel{background:var(--panel); border:1px solid var(--border); border-radius:14px; padding:12px;}
#bb-calgen .muted{opacity:.75}
#bb-calgen input,#bb-calgen select,#bb-calgen textarea{
  padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);
}
#bb-calgen textarea{width:100%;height:150px;margin-top:10px}
#bb-calgen .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
#bb-calgen button{
  padding:10px 12px;border-radius:10px;cursor:pointer;border:1px solid var(--border);background:var(--bg);color:var(--text)
}
#bb-calgen button.primary{border:1px solid var(--accent);background:var(--accent);color:var(--accentText)}
#bb-calgen button:disabled{opacity:.5;cursor:not-allowed}
#bb-calgen .row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
#bb-calgen .right{margin-left:auto}
#bb-calgen .grow{flex:1}
#bb-calgen .grid2{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}
@media (max-width:920px){#bb-calgen .grid2{grid-template-columns:1fr}}
#bb-calgen .small{font-size:12px;opacity:.8}
#bb-calgen .hr{border:none;border-top:1px solid var(--border);margin:12px 0}
#bb-calgen .stack{display:grid;gap:10px}

#bb-calgen .calWrap{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--bg)}
#bb-calgen .calHead{display:grid;grid-template-columns:repeat(7,1fr);background:var(--accent);color:var(--accentText)}
#bb-calgen .calHead div{padding:10px 8px;font-size:12px;text-align:center;opacity:.92}
#bb-calgen .calBody{display:grid;grid-template-columns:repeat(7,1fr)}
#bb-calgen .calCell{
  min-height:86px;border:1px solid var(--border);background:var(--cellBg);
  padding:8px;text-align:left;outline:none
}
#bb-calgen .calCell.blank{background:var(--cellAlt)}
#bb-calgen .calCell.selected{background:var(--sel)}
#bb-calgen .badge{font-size:10px;background:var(--chipBg);color:var(--chipText);border-radius:999px;padding:2px 6px}
#bb-calgen .miniCard{margin-top:6px;font-size:11px;line-height:1.2;padding:6px;border-radius:10px;background:var(--soft);border:1px solid var(--border)}
#bb-calgen .list{font-size:13px;line-height:1.5;max-height:220px;overflow:auto}
