:root{--ink:#17243d;--muted:#718096;--line:#dfe5ec;--blue:#1668e8;--pale:#f3f7fb;--orange:#ef6d3f;--green:#28a66a}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#fff;font-family:"Yu Gothic UI","Noto Sans JP",system-ui,sans-serif}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);position:sticky;top:0;z-index:5}.brand{color:var(--ink);text-decoration:none;font-weight:800;letter-spacing:.12em;display:flex;align-items:center;gap:11px}.brand-mark{width:34px;height:34px;background:var(--blue);color:#fff;display:grid;place-items:center;border-radius:9px;font:900 19px Georgia}.status{font-size:12px;color:var(--muted)}.status i{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin-right:6px;box-shadow:0 0 0 4px #dff5e9}main{max-width:1000px;margin:auto;padding:0 32px 70px}.hero{padding:28px 0 22px}.eyebrow{color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.2em;margin:0 0 14px}.hero h1{font-size:23px;line-height:1.3;letter-spacing:-.02em;margin:0}.hero h1 em{color:var(--blue);font-style:normal}.lead{color:var(--muted);line-height:1.8;margin:8px 0 22px;font-size:14px}.rules{display:flex;border:1px solid var(--line);border-radius:14px;width:max-content;max-width:100%;overflow:hidden;box-shadow:0 10px 30px rgba(23,36,61,.05)}.rules div{padding:15px 22px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:5px}.rules div:last-child{border:0}.rules span{font-size:10px;color:var(--muted);font-weight:700}.rules b{font-size:13px;white-space:nowrap}.rules .free{color:var(--green)}.booking{border-top:1px solid var(--line);padding-top:42px}.section-head{display:flex;justify-content:space-between;align-items:flex-end}.section-head h2,dialog h2{font-size:27px;margin:0;letter-spacing:-.03em}.legend{display:flex;gap:18px;color:var(--muted);font-size:11px}.legend i{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:6px}.legend .open{background:#fff;border:1px solid var(--blue)}.legend .taken{background:var(--blue)}.date-nav{display:flex;justify-content:center;align-items:center;gap:18px;margin:28px 0 16px}.date-nav button{border:1px solid var(--line);background:#fff;border-radius:8px;width:38px;height:38px;color:var(--ink);cursor:pointer}.date-nav strong{min-width:160px;text-align:center;font-size:18px}.weekdays,.month-calendar{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays{border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;background:#f7f9fc}.weekdays span{text-align:center;padding:10px 2px;color:var(--muted);font-size:11px;font-weight:700}.weekdays span:first-child,.weekdays span:last-child{color:var(--orange)}.month-calendar{border-left:1px solid var(--line);border-top:1px solid var(--line)}.calendar-blank,.calendar-day{min-height:105px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:10px;text-align:left}.calendar-day{cursor:pointer;position:relative;transition:.15s;color:var(--ink)}.calendar-day:hover{z-index:1;box-shadow:inset 0 0 0 2px var(--blue)}.calendar-day.selected{box-shadow:inset 0 0 0 3px var(--blue);z-index:1}.calendar-day .date-number{font:700 19px Georgia}.calendar-day .holiday{display:block;color:var(--orange);font-size:8px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-day.weekend .date-number{color:var(--orange)}.calendar-day .availability{display:block;position:absolute;left:9px;right:9px;bottom:9px;font-size:9px;color:var(--green);font-weight:800}.calendar-day.booked{background:linear-gradient(145deg,#176ce8,#1056c8);color:#fff}.calendar-day.booked .date-number,.calendar-day.booked .holiday,.calendar-day.booked .availability{color:#fff}.calendar-day.booked .availability{background:rgba(255,255,255,.18);border-radius:4px;padding:4px 6px}.calendar-day.past{background:#f6f7f9;color:#a8b0bb}.calendar-day.past:not(.booked){cursor:default}.calendar-day.past:not(.booked):hover{box-shadow:none}.day-panel{margin-top:18px;border:1px solid var(--line);border-radius:12px;padding:24px;background:#fafcff}.day-panel-head{display:flex;justify-content:space-between;align-items:center}.day-panel h3{font-size:20px;margin:0}.day-panel-head>span{font-size:11px;color:var(--muted)}.day-slots{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:20px}.slot{min-height:46px;border:1px solid #cbd7e7;border-radius:7px;background:#fff;color:var(--blue);font-weight:700;font-size:12px;cursor:pointer;transition:.15s}.slot:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.slot.taken{background:#dbe3ed;border-color:#dbe3ed;color:#76869a;cursor:not-allowed;text-decoration:line-through}.slot.taken:hover{background:#dbe3ed;color:#76869a}.loading{grid-column:1/-1;padding:50px;color:var(--muted)}dialog{border:0;border-radius:18px;padding:0;width:min(500px,calc(100% - 32px));box-shadow:0 30px 80px rgba(20,35,60,.25)}dialog::backdrop{background:rgba(13,25,45,.65);backdrop-filter:blur(3px)}dialog form{padding:38px;position:relative}.close{position:absolute;right:20px;top:18px;border:0;background:#f1f4f7;border-radius:50%;width:32px;height:32px;font-size:20px;cursor:pointer}.selection{display:flex;justify-content:space-between;align-items:center;background:var(--pale);padding:16px 18px;margin:22px 0;border-radius:9px;font-size:13px}.selection b{font-size:20px;color:var(--blue)}label{font-size:12px;font-weight:700;display:block;margin:16px 0 5px}label small{color:var(--blue);margin-left:7px}input,textarea,select{display:block;width:100%;margin-top:7px;border:1px solid #ccd5e0;border-radius:8px;padding:12px;font:inherit;font-size:14px;outline:0;background:#fff}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #e1edff}textarea{height:76px;resize:vertical}.submit{border:0;border-radius:8px;background:var(--blue);color:#fff;width:100%;padding:15px 18px;font-weight:800;display:flex;justify-content:space-between;cursor:pointer}.submit:disabled{opacity:.55}.fine{text-align:center;font-size:10px;color:var(--muted)}.error{color:#d23f31;font-size:12px;min-height:18px}.toast{position:fixed;right:24px;bottom:24px;background:var(--ink);color:#fff;border-radius:10px;padding:14px 20px;transform:translateY(100px);opacity:0;transition:.25s;z-index:10;font-size:13px}.toast.show{transform:none;opacity:1}@media(max-width:680px){.status{display:none}main{padding:0 12px 50px}.hero{padding:22px 4px 18px}.hero h1{font-size:21px}.lead br{display:none}.rules{width:100%;display:grid}.rules div{border-right:0;border-bottom:1px solid var(--line);padding:12px 16px}.section-head{display:block}.legend{margin-top:14px}.date-nav{margin:22px 0 12px}.calendar-blank,.calendar-day{min-height:72px;padding:7px}.calendar-day .date-number{font-size:16px}.calendar-day .holiday{display:none}.calendar-day .availability{font-size:7px;left:5px;right:5px;bottom:6px}.calendar-day.booked .availability{padding:3px}.day-panel{padding:18px 12px}.day-slots{grid-template-columns:repeat(2,1fr)}dialog form{padding:30px 22px}}

/* 予約完了ダイアログ / 共通mini-btn */
.mini-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 14px;font:inherit;font-size:12px;font-weight:700;color:var(--ink);cursor:pointer}.mini-btn:hover{border-color:var(--blue);color:var(--blue)}
.confirm-body{padding:38px}.confirm-body h2{font-size:24px;margin:0 0 4px}.meeting-url{display:block;word-break:break-all;background:var(--pale);border:1px solid var(--line);border-radius:9px;padding:14px;margin:18px 0;color:var(--blue);font-weight:700;font-size:14px;text-decoration:none}.meeting-url:hover{text-decoration:underline}.confirm-actions{display:flex;gap:10px;align-items:center}.confirm-actions .submit{width:auto;flex:1;justify-content:center}
.mini-btn.danger{border-color:#e7b7b0;color:#d23f31}.mini-btn.danger:hover{background:#fdeceA;border-color:#d23f31;color:#d23f31}
