:root{
  --bg:#ffffff;
  --text:#0f172a;
  --muted:#475569;
  --line:#e2e8f0;
  --chip:#0b0b0b;
  --card:#ffffff;
  --shadow:0 10px 25px rgba(0,0,0,.06);
  --radius:16px;
}
*{box-sizing:border-box}
body{margin:0;font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Noto Sans JP, 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;color:var(--text);background:var(--bg)}
.container{max-width:1200px;margin:0 auto;padding:20px 16px 40px}
h1{font-size:clamp(22px, 2.4vw, 28px);margin:0 0 6px}
.sub{color:var(--muted);font-size:14px;margin:0 0 16px}
.controls{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
  height:0 !important;
}

.pc-grid{display:none;grid-template-columns:repeat(7,1fr);gap:12px}
.day-col{display:flex;flex-direction:column;gap:12px}
.day-head{background:rgba(255,255,255,.85);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--radius);text-align:center;font-weight:700;padding:8px 10px;z-index:10}
.card{
  position:relative;border:1px solid var(--line);background:var(--card);
  border-radius:var(--radius);padding:12px;box-shadow:var(--shadow);
  overflow:hidden;
}
.col-body { display: flex; flex-direction: column; gap: 12px; }
.chip {
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #334155;
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 14px;
    cursor: pointer;
    user-select: none;
}
.accent{
  position:absolute;left:0;right:0;top:0;height:8px;
  background:linear-gradient(90deg,var(--ac1),var(--ac2));
  border-top-left-radius:inherit;border-top-right-radius:inherit;
}
.time{font-size:14px;font-weight:400;letter-spacing:.2px}
.title{margin-top:2px;font-weight:600}
.meta{margin-top:4px;color:var(--muted);font-size:12px;display:flex;gap:8px;flex-wrap:wrap}
.tags{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}
.tag{font-size:11px;border:1px solid #e2e8f0;background:#f1f5f9;color:#334155;border-radius:999px;padding:3px 8px}
.right{display:flex;flex-direction:column;align-items:end;gap:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:12px;border:1px solid #0b0b0b;background:#0b0b0b;color:#fff;font-size:14px;text-decoration:none}
.badge{display:inline-flex;align-items:center;font-size:12px;font-weight:600;border-radius:999px;padding:3px 8px;border:1px solid transparent}
.b-canceled{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.b-substitute{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}
.b-full{background:#f8fafc;color:#475569;border-color:#e2e8f0}
.b-few{background:#fffbeb;color:#b45309;border-color:#fde68a}
.dim{opacity:.15;filter:grayscale(20%)}
.sp-section{display:block}
.day-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:6px}
.day-tabs::-webkit-scrollbar{display:none}
.day-list{display:flex;flex-direction:column;gap:12px;margin-top:10px}
.tab{white-space:nowrap}
.tab.active{background:var(--chip);border-color:var(--chip);color:#fff}
@media (min-width: 900px){.sp-section{display:none}.pc-grid{display:grid}}
.class_notice {margin-top:20px;color:#475569;font-size:12px;line-height:1.6;text-align: left;}
.class_notice p{margin:6px 0}
.title {
  white-space: pre-line;
}

