/* 本番サイトで足したスタイル（app.css はデモから引き継いだもの） */
main{min-height:60vh}
main:focus{outline:0}
.page-h{display:grid;gap:6px;margin:14px 0 22px}
.page-h h1{font-size:28px;font-weight:700;line-height:1.35}
.page-h p{font-size:14px;color:var(--muted);max-width:70ch}
.gnav a{color:var(--muted);font-size:14px;padding:7px 12px;border-radius:8px;white-space:nowrap}
.gnav a:hover{background:var(--tint);color:var(--ink)}
.gnav a.on{background:var(--mint);color:var(--accent);font-weight:700}
.empty{padding:28px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:14px;text-align:center}
.thumb.txt{aspect-ratio:920/450;background:linear-gradient(135deg,var(--mint),var(--tint));color:var(--ink);font-weight:700;font-size:15px;padding:18px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.5}
.course-card{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;background:var(--ink);color:#fff;border-radius:14px;padding:22px 26px}
.course-card .k{font-size:12px;font-weight:700;letter-spacing:.08em;color:#9fd8d2}
.course-card b{font-size:19px;display:block;margin:4px 0}
.course-card p{font-size:13.5px;opacity:.85}
.course-card .btn{background:#fff;color:var(--ink)}
@media (max-width:640px){.course-card{grid-template-columns:1fr}}
.ev-detail{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:start}
.ev-detail .main{display:grid;gap:18px}
.ev-detail .side{display:grid;gap:14px;position:sticky;top:90px}
.ev-detail h1{font-size:26px;font-weight:700;line-height:1.45}
.ev-body{font-size:15px;line-height:1.95;white-space:pre-wrap}
.ev-body h3{font-size:16px;font-weight:700;margin:18px 0 4px;white-space:normal}
.applybox{background:var(--surface);border-radius:12px;box-shadow:0 1px 3px rgba(45,45,45,.10),0 6px 16px rgba(45,45,45,.06);padding:20px;display:grid;gap:12px}
.applybox .when{font-size:16px}
.joinbox{background:var(--mint);border-radius:10px;padding:12px 14px;font-size:13px;word-break:break-all;display:grid;gap:6px}
.joinbox a{color:var(--accent);font-weight:700}
@media (max-width:900px){.ev-detail{grid-template-columns:1fr}.ev-detail .side{position:static}}
.player{width:100%;aspect-ratio:16/9;border:0;border-radius:12px;background:#111}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.filters input{max-width:320px}
.pager{display:flex;justify-content:center;margin-top:20px}
.spk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
.spkcard{cursor:pointer;color:var(--ink)}
.spk-hero{display:flex;gap:22px;align-items:flex-start;flex-wrap:wrap}
.spk-hero .avatar{width:112px;height:112px;font-size:34px}
.adm-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 20px}
.adm-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.adm-grid .full{grid-column:1/-1}
@media (max-width:760px){.adm-grid{grid-template-columns:1fr}}
.adm-row{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.adm-row .grow{flex:1;min-width:0}
.adm-row b{font-weight:700;font-size:14px}
.badge.draft{background:var(--tint);color:var(--muted);font-weight:500}
.badge.published{background:var(--ok-soft);color:var(--ok)}
.badge.review{background:var(--warn-soft);color:var(--warn)}
.badge.hidden,.badge.ended{background:var(--tint);color:var(--muted)}
.dialog{position:fixed;inset:0;background:rgba(0,0,0,.35);display:grid;place-items:center;z-index:20;padding:16px}
.dialog .box{background:var(--surface);border-radius:14px;max-width:640px;width:100%;max-height:88vh;overflow:auto;padding:22px;display:grid;gap:12px}
.mini-note{font-size:12px;color:var(--muted)}
input[type=email],input[type=url],input[type=number],input[type=datetime-local],input[type=search]{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 14px;width:100%}
.hsearch input[type=search]{border:0;background:transparent;padding:0;font-size:13px}
.prose-plain{font-size:14.5px;line-height:1.95;max-width:70ch;display:grid;gap:12px}
.hsearch{width:200px}
@media (max-width:1180px){.brand .lsub{display:none}}
