:root{--ink:#332c29;--muted:#93867f;--red:#f04e3e;--red-dark:#dc4034;--cream:#fff9f5;--line:#f0e8e3;--surface:#fff;--peach:#fff0e9;--green:#4c9673;--shadow:0 3px 14px #65443310}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"Noto Sans JP","Yu Gothic UI",Meiryo,system-ui,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,summary{cursor:pointer}.top{height:58px;padding:0 max(calc((100vw - 1130px)/2),28px);display:flex;align-items:center;gap:26px;background:#fff;position:sticky;top:0;z-index:3;border-bottom:1px solid #f3eeeb}.brand{display:flex;align-items:center;gap:8px;white-space:nowrap}.brand b{font-size:13px}.brandmark{display:grid;place-items:center;width:23px;height:23px;border-radius:6px;background:var(--red);color:white;font-weight:800;font-size:12px}.top nav{display:flex;gap:19px;color:#776f69;font-size:10px;flex:1}.top-actions{display:flex;align-items:center;gap:9px}.button,.pill-button{border:0;border-radius:30px;padding:9px 15px;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.button.primary{background:var(--red);color:white;box-shadow:0 3px 8px #f04e3e22}.button.primary:hover{background:var(--red-dark)}.pill-button{background:white;border:1px solid var(--line);color:#6d625c}.pill-button span{color:#a49790}.hero{background:radial-gradient(ellipse at 20% 0%,#ffede6 0,transparent 60%),linear-gradient(110deg,#fff0ea,#fff9f4 65%);padding:32px 20px 24px}.hero-inner{max-width:1060px;margin:auto}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.06em;color:#e36f5d}.hero .eyebrow{display:inline-flex;background:#fff;border:1px solid #f6e4de;border-radius:20px;padding:6px 10px}.hero h1{font-size:clamp(29px,4vw,38px);letter-spacing:.02em;line-height:1.42;margin:13px 0 7px;font-weight:800}.hero h1 span{color:var(--red)}.hero p{font-size:11px;color:#8b7b73;margin:0 0 17px}.searchbox{max-width:1000px;background:white;border:1px solid #f2e9e4;border-radius:14px;padding:16px 18px;box-shadow:var(--shadow)}.pick-row{margin-bottom:12px}.pick-label{font-size:10px;font-weight:700;color:#756b65;margin-bottom:6px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid #eee8e3;background:#fff;border-radius:20px;padding:6px 11px;color:#796f69;font-size:9px}.chip.active{background:var(--red);border-color:var(--red);color:#fff}.chip small{display:block;font-size:7px;opacity:.7}.filter-row{display:grid;grid-template-columns:1fr 1fr 1.6fr auto;gap:9px;align-items:end;margin-top:13px}.filter-row label,.extra-filters label{display:grid;gap:5px;font-size:9px;font-weight:700;color:#6b615c;min-width:0}.filter-row input,.filter-row select,.extra-filters input,.extra-filters select{width:100%;min-width:0;height:37px;padding:0 10px;border:1px solid #eae4df;border-radius:8px;background:white;color:#665d57;font-size:10px;outline:none}.filter-row input:focus,.filter-row select:focus,.extra-filters input:focus,.extra-filters select:focus{border-color:#f49b8e}.filter-row .keyword{grid-column:auto}.filter-row .button{height:37px;padding:0 15px}.more-filters{margin-top:11px;border-top:1px solid #f4efeb;padding-top:9px}.more-filters summary{color:#998d86;font-size:9px}.extra-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding-top:12px}.text-button{border:0;background:none;color:#938780;font-size:10px;padding:7px}.section{max-width:1130px;margin:0 auto;padding:26px 22px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:13px}.section-title h2{font-size:18px;margin:4px 0;font-weight:800}.section-title p{font-size:9px;color:#9b9089;margin:3px 0}.switch-label{display:flex;align-items:center;gap:9px;font-size:9px;color:#77706a;white-space:nowrap}.switch-label input{position:absolute;opacity:0}.switch{width:34px;height:19px;background:#ddd;border-radius:12px;position:relative}.switch:after{content:"";position:absolute;left:2px;top:2px;background:white;width:15px;height:15px;border-radius:50%;transition:.18s}.switch-label input:checked+.switch{background:var(--red)}.switch-label input:checked+.switch:after{transform:translateX(15px)}.schedule-panel{background:white;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:13px}.schedule-legend{display:flex;align-items:center;gap:15px;font-size:8px;color:#928780;margin-bottom:8px}.schedule-legend span{display:flex;align-items:center;gap:5px}.schedule-legend i{width:9px;height:9px;border-radius:3px}.legend-free{background:#e3f5eb}.legend-class{background:#f3eeeb}.schedule-legend .text-button{margin-left:auto}.timetable{overflow:auto}.timetable table{border-collapse:separate;border-spacing:3px;width:100%;min-width:560px;text-align:center;font-size:8px}.timetable th{color:#837870;font-size:8px;font-weight:600;padding:5px 2px}.timetable th:first-child{width:52px}.timetable td{height:32px;border-radius:6px;background:#e3f5eb;color:#65a47f;cursor:pointer;font-weight:700;transition:background .12s}.timetable td:hover{filter:brightness(.97)}.timetable td.selected{background:#f2eeeb;color:#bbb0aa}.circles-section{padding-top:19px;padding-bottom:56px}.results-tools{display:flex;align-items:center;gap:8px}.results-tools>span{font-size:9px;color:#92867f}.results-tools select{border:1px solid var(--line);border-radius:20px;background:white;padding:7px 10px;font-size:9px;color:#6f655e}.category-tabs{display:flex;gap:7px;margin:10px 0 13px;overflow:auto}.category-tab{flex:none;border:1px solid #f0e8e3;background:#fff;border-radius:20px;padding:7px 13px;font-size:9px;color:#786d66}.category-tab.active{background:var(--red);border-color:var(--red);color:#fff}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.card{background:white;border:1px solid #f1e9e4;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);transition:transform .16s,box-shadow .16s}.card:hover{transform:translateY(-2px);box-shadow:0 7px 18px #65443317}.card-visual{height:94px;background:linear-gradient(120deg,#fff0f1,#fbf7ff);display:flex;align-items:center;justify-content:center;position:relative}.card-visual.cat-sports{background:linear-gradient(120deg,#e9f8ef,#f4fcf7)}.card-visual.cat-culture{background:linear-gradient(120deg,#fff0f2,#fff8f8)}.card-visual.cat-academic{background:linear-gradient(120deg,#edf2ff,#f8faff)}.card-visual.cat-other{background:linear-gradient(120deg,#fff6e8,#fffaf1)}.card-emoji{font-size:34px;filter:drop-shadow(0 3px 3px #3c2d2415)}.card-tag{position:absolute;top:9px;left:9px;border-radius:14px;background:#fff;padding:4px 8px;color:#d75f52;font-size:8px;font-weight:700}.card-actions-top{position:absolute;right:7px;top:7px;display:flex;gap:4px}.icon-button{width:25px;height:25px;display:grid;place-items:center;border:1px solid #f0e8e3;border-radius:50%;background:#ffffffd9;color:#91847d;font-size:13px}.icon-button.on{color:var(--red)}.card-body{padding:11px 12px 10px}.card h3{font-size:11px;margin:0 0 5px;line-height:1.6}.univ{font-size:8px;color:#91867f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-desc{font-size:8px;color:#746962;line-height:1.75;height:29px;overflow:hidden;margin:8px 0}.meta{display:flex;gap:4px;flex-wrap:wrap}.meta span{font-size:7px;border:1px solid #f1e9e4;border-radius:10px;padding:4px 6px;color:#857971}.card-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #f4efec;margin-top:9px;padding-top:8px;gap:4px}.card-updated{font-size:7px;color:#a49a94}.card-bottom-actions{display:flex;gap:5px}.card-bottom .button{font-size:8px;padding:6px 9px}.button.light{background:white;border:1px solid #eee5df;color:#70665f}.empty{background:#fff;border:1px solid var(--line);border-radius:12px;min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;color:#8e827b}.empty>span{font-size:24px;color:#ef8a79}.empty strong{font-size:12px}.empty small{font-size:9px}.hidden{display:none!important}.how-section{background:#fff7f2;padding:31px 20px 37px}.center-title{text-align:center}.center-title h2{font-size:17px;margin:4px 0 16px}.steps{max-width:1060px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.steps article{background:white;border:1px solid #f2e9e4;border-radius:12px;padding:15px;box-shadow:var(--shadow)}.steps article>span{display:grid;place-items:center;background:#fff0eb;color:#e67561;width:26px;height:26px;border-radius:7px;font-size:14px;margin-bottom:9px}.steps b{font-size:10px}.steps p{font-size:8px;color:#958982;line-height:1.8;margin:6px 0 0}.faq-section{max-width:780px;margin:0 auto;padding:35px 20px 54px}.faq-section .center-title h2{margin-bottom:15px}.faq-section details{background:#fff;border:1px solid #f1e9e4;border-radius:9px;margin:7px 0;padding:11px 14px;box-shadow:var(--shadow)}.faq-section summary{font-size:9px;font-weight:700;list-style:none;display:flex;justify-content:space-between}.faq-section summary:after{content:"＋";color:var(--red)}.faq-section details[open] summary:after{content:"−"}.faq-section details p{font-size:9px;color:#8a7f78;line-height:1.8;margin:9px 0 0}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:10;background:#352e2a;color:white;padding:11px 16px;border-radius:9px;font-size:10px;box-shadow:var(--shadow)}footer{background:#302a27;color:#fff;padding:25px max(calc((100vw - 1100px)/2),26px) 0}.footer-main{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:25px;padding-bottom:23px}.footer-brand b{color:#fff}.footer-main>div{display:flex;flex-direction:column;gap:8px}.footer-main>div:first-child{display:block}.footer-main>div>b{font-size:9px;color:#fff;margin-bottom:4px}.footer-main a:not(.brand){font-size:8px;color:#c5bbb5}.footer-main p{font-size:8px;line-height:1.8;color:#c5bbb5}.copyright{border-top:1px solid #49423e;text-align:center;padding:11px;font-size:7px;color:#a99e98}.compare-bar{position:fixed;z-index:4;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:13px;padding:10px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 18px #382a2210;font-size:10px}.compare-bar .button{padding:9px 14px}.modal-back{position:fixed;inset:0;background:#29211dbb;z-index:8;display:grid;place-items:center;padding:16px}.modal{position:relative;background:white;border-radius:14px;width:min(680px,100%);max-height:90vh;overflow:auto;padding:23px;box-shadow:0 15px 45px #1c130f35}.modal-close{position:absolute;right:12px;top:10px;border:0;background:none;font-size:22px;color:#83766f}.modal h2{font-size:19px;margin:9px 0}.modal dl{display:grid;grid-template-columns:115px 1fr;gap:0;font-size:10px}.modal dt,.modal dd{border-bottom:1px solid var(--line);padding:9px 6px;margin:0}.modal dt{color:#92867f}.modal dd{line-height:1.7}.modal-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.compare-table{width:100%;border-collapse:collapse;font-size:9px;overflow:auto}.compare-table th,.compare-table td{border:1px solid var(--line);padding:9px;text-align:left;vertical-align:top}.compare-table th{background:#fff8f4;min-width:90px}.compare-table td{min-width:120px}
/* Admin */
.admin-page{max-width:1000px;margin:32px auto;padding:0 20px}.admin-page h1{font-size:26px}.admin-panel{padding:19px;background:#fff;border:1px solid var(--line);border-radius:10px;margin:15px 0}.admin-panel h2{font-size:16px}.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stat{background:#fff4ef;border-radius:9px;padding:14px}.stat small{display:block;font-size:9px;color:var(--muted)}.stat b{display:block;font-size:21px;margin-top:6px}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin:11px 0}.admin-form{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.admin-form label{display:grid;gap:5px;color:#746962;font-size:9px}.admin-form input,.admin-form select,.admin-form textarea{height:37px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 9px;color:var(--ink);font-size:10px;min-width:0}.admin-form textarea{height:78px;padding:9px}.admin-form .wide{grid-column:1/-1}.admin-table{width:100%;border-collapse:collapse;font-size:9px}.admin-table th,.admin-table td{padding:9px 7px;border-bottom:1px solid var(--line);text-align:left}.admin-table button{border:0;background:none;color:var(--red-dark);cursor:pointer;font-size:9px}.admin-panel.scroll{overflow:auto}
@media(max-width:760px){.top{height:auto;min-height:55px;padding:8px 13px;gap:12px;flex-wrap:wrap}.top nav{order:3;flex-basis:100%;gap:14px;overflow:auto;font-size:9px}.top-actions{margin-left:auto}.top-actions .button{display:none}.pill-button{font-size:9px;padding:8px 10px}.hero{padding:25px 14px 19px}.hero h1{font-size:31px}.searchbox{padding:13px}.filter-row{grid-template-columns:1fr 1fr}.filter-row .keyword{grid-column:1/-1}.filter-row .button{grid-column:1/-1}.extra-filters{grid-template-columns:repeat(2,1fr)}.section{padding:22px 13px}.section-title{align-items:flex-start}.section-title h2{font-size:16px}.section-title p{max-width:250px;line-height:1.7}.switch-label{font-size:8px}.schedule-panel{padding:8px}.schedule-legend{flex-wrap:wrap;gap:8px}.schedule-legend .text-button{margin-left:0}.timetable table{min-width:520px}.timetable td{height:29px}.results-tools{flex-wrap:wrap;justify-content:flex-end}.results-tools select{max-width:95px}.results-tools .pill-button{font-size:8px;padding:7px 9px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.card-visual{height:74px}.card-emoji{font-size:28px}.card-body{padding:9px}.card h3{font-size:10px}.card-desc{font-size:8px}.card-bottom{align-items:flex-start;flex-direction:column}.card-bottom-actions{align-self:stretch;justify-content:flex-end}.steps{grid-template-columns:1fr}.steps article{padding:12px}.faq-section{padding:29px 13px 39px}.footer-main{grid-template-columns:1.5fr 1fr;gap:18px}.compare-bar{padding:9px;gap:8px}.compare-bar .text-button{padding:4px}.admin-grid{grid-template-columns:repeat(2,1fr)}.admin-table{min-width:570px}.modal{padding:18px}.modal dl{grid-template-columns:90px 1fr}}
@media(max-width:430px){.cards{grid-template-columns:1fr}.card-visual{height:86px}.card-bottom{flex-direction:row;align-items:center}.top nav{font-size:8px}.results-tools>span{display:none}.category-tabs{margin-top:7px}.section-title{gap:5px}}
.account-page{max-width:980px;margin:38px auto 70px;padding:0 20px}.account-page h1{font-size:28px;margin:8px 0}.account-lead{color:var(--muted);line-height:1.8;margin:0 0 18px}.account-columns{display:grid;grid-template-columns:1fr 1.25fr;gap:15px;align-items:start}.account-columns>.admin-panel{margin-top:0}.account-columns h2{margin:0 0 14px;font-size:16px}.role-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.role-fields .wide,.admin-form .wide{grid-column:1/-1}.role-fields label{display:grid;gap:5px;color:#746962;font-size:10px}.role-fields input,.role-fields select,.role-fields textarea,.dashboard-label select,.event-actions select{min-width:0;border:1px solid var(--line);border-radius:7px;background:white;padding:9px;color:var(--ink)}.form-note{font-size:11px;color:var(--muted);line-height:1.8}.dashboard-page{max-width:1050px}.dashboard-label{display:grid;gap:6px;max-width:420px;font-size:11px;color:var(--muted)}.event-form{margin:18px 0}.event-form textarea{min-height:80px}.application-list{display:grid;gap:10px}.application-card{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px;background:#fff;border:1px solid var(--line);border-radius:10px}.application-card h3{margin:5px 0;font-size:14px}.application-card p{margin:4px 0;color:var(--muted);font-size:11px;line-height:1.7}.application-card .eyebrow{font-size:9px}.application-message{color:var(--ink)!important;background:var(--cream);padding:8px 10px;border-radius:7px}.event-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.status-good{color:var(--green)}.status-pending{color:#b76530}.hidden{display:none!important}@media(max-width:760px){.account-columns{grid-template-columns:1fr}.account-page{margin-top:25px;padding:0 13px}.application-card{align-items:flex-start;flex-direction:column}.role-fields{grid-template-columns:1fr}.event-actions{width:100%}}
.event-list{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.event-list h3{font-size:14px}.event-option{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;margin:8px 0;border:1px solid var(--line);border-radius:9px;background:#fff}.event-option b{font-size:12px}.event-option p,.event-option small{display:block;margin:5px 0;color:var(--muted);font-size:10px;line-height:1.6}.event-option button{flex:none}@media(max-width:520px){.event-option{align-items:flex-start;flex-direction:column}.event-option button{align-self:flex-end}}
.event-message{display:grid;gap:4px;flex:1;min-width:150px;color:var(--muted);font-size:9px}.event-message textarea{width:100%;min-height:46px;resize:vertical;border:1px solid var(--line);border-radius:7px;padding:7px;color:var(--ink);font:inherit}

/* Availability-first timetable and event calendar */
.timetable td{background:#f3eeeb;color:#aaa09a}.timetable td.available{background:#e3f5eb;color:#65a47f}
.calendar-view{margin:12px 0 18px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.calendar-toolbar h3{margin:0;font-size:15px}.calendar-nav{display:flex;align-items:center;gap:9px}.calendar-nav strong{min-width:105px;text-align:center;font-size:12px}.calendar-nav .pill-button{min-width:34px;padding:6px 10px;font-size:16px}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{margin-bottom:5px;text-align:center;color:var(--muted);font-size:9px}.calendar-day{min-height:62px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;text-align:left}.calendar-day:hover,.calendar-day.active{border-color:var(--red);background:#fff7f3}.calendar-day.has-events{background:#fff1ec}.calendar-day small{font-size:8px;color:var(--red-dark)}.calendar-blank{min-height:62px}
.calendar-agenda{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.calendar-agenda h4{margin:0 0 9px;font-size:12px}.calendar-event{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.calendar-event>div{display:grid;gap:4px}.calendar-event time{color:var(--red-dark);font-size:10px;font-weight:700}.calendar-event strong{font-size:11px}.calendar-event span{color:var(--muted);font-size:9px}.calendar-agenda .empty{min-height:80px;margin:8px 0}.calendar-agenda #calendar-more{margin-top:10px}
@media(max-width:520px){.calendar-view{padding:11px}.calendar-toolbar h3{font-size:12px}.calendar-day{min-height:48px;padding:5px;font-size:9px}.calendar-blank{min-height:48px}.calendar-day small{font-size:7px}.calendar-event{align-items:flex-start;flex-direction:column}.calendar-event .button{align-self:flex-end}}

/* Search result activity timetable */
.calendar-toolbar>div>p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.7}.activity-result-count{font-size:10px;color:var(--muted);white-space:nowrap}.activity-timetable table{min-width:760px;table-layout:fixed}.activity-timetable th:first-child{width:54px}.activity-timetable td.activity-slot{height:auto;min-height:70px;vertical-align:top;padding:6px 4px;background:#faf7f5;color:var(--ink);cursor:default}.activity-timetable td.activity-slot.has-clubs{background:#eaf6ef}.activity-timetable .activity-clubs{display:grid;gap:4px}.activity-club{width:100%;border:1px solid #d6eadf;border-radius:5px;background:#fff;color:#426e56;padding:4px 5px;text-align:left;font-size:8px;line-height:1.4;overflow-wrap:anywhere;cursor:pointer}.activity-club:hover{border-color:var(--green);background:#f8fffb}.activity-timetable .activity-more{border:0;background:none;color:var(--red-dark);padding:5px 1px 0;font-size:8px;cursor:pointer}.activity-timetable .activity-none{color:#c0b8b2;font-weight:400}.activity-note{margin:9px 2px 0;color:var(--muted);font-size:8px;line-height:1.7}
 .activity-mobile-count{display:none}.activity-details{margin-top:13px;padding:12px;background:#fffaf7;border:1px solid var(--line);border-radius:9px}.activity-details h4{margin:0 0 8px;font-size:11px}#activity-details-list{display:grid;gap:6px}.activity-detail-club{display:grid;gap:3px;width:100%;padding:9px 10px;text-align:left;border:1px solid var(--line);border-radius:7px;background:white;cursor:pointer}.activity-detail-club strong{font-size:10px;color:var(--ink)}.activity-detail-club span{font-size:8px;color:var(--muted)}.activity-details #activity-details-more{margin-top:8px}
@media(max-width:600px){.calendar-view{padding:10px}.calendar-toolbar{align-items:flex-start}.calendar-toolbar>div{min-width:0}.calendar-toolbar h3{font-size:13px}.calendar-toolbar>div>p{font-size:8px}.activity-result-count{font-size:8px}.activity-timetable{overflow:visible}.activity-timetable table{width:100%;min-width:0;table-layout:fixed;border-spacing:2px}.activity-timetable th{padding:4px 0;font-size:8px;white-space:nowrap}.activity-timetable th:first-child{width:31px}.activity-timetable td.activity-slot{height:42px;min-height:42px;padding:2px;vertical-align:middle;text-align:center}.activity-timetable .activity-desktop{display:none}.activity-timetable .activity-mobile-count{display:grid;place-items:center;width:100%;height:35px;border:0;border-radius:5px;background:transparent;color:#3e8060;font-weight:800;font-size:11px;cursor:pointer}.activity-timetable td.activity-slot.active-slot{outline:2px solid var(--red);outline-offset:-2px}.activity-timetable td.activity-slot.active-slot .activity-mobile-count{color:var(--red-dark)}.activity-timetable .activity-none{font-size:9px}.activity-detail-club{padding:11px}.activity-note{font-size:8px}}

