  :root{
    --brand: #e35b64;
    --text: #111827;
    --muted: #6b7280;
    --border: #e6e6e6;
    --shadow: 0 6px 18px rgba(0,0,0,.06);
    --page-max: 1120px;
    --radius: 6px;
  }

  body{
    background:#f8fafc;
    overflow-x:hidden;
    font-family:"Inter","Noto Sans JP",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
    color: var(--text);
    font-size:16px;
  }

  html, body,
  h1, h2, h3, h4, h5, h6,
  button, input, select, textarea{
    font-family:"Inter","Noto Sans JP",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
  }

    .day-section{ margin-top: 18px; }
    .day-h{
      font-size: 18px;
      font-weight: 900;
      margin: 0 0 10px 0;
    }
    .list-wrap{
      background:#fff;
      border:1px solid var(--border);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow:hidden;
    }

  .book{
    background: var(--brand);
    color:#fff;
    border:none;
    border-radius:10px;
    padding:.5rem 1.25rem;
    font-weight:600;
  }

  .book:hover{
    background:#cf515b;
    color:#fff;
  }

  #language-select{
    border:1px solid #ccc;
    border-radius:6px;
    padding:0.25rem 0.5rem;
  }

  .btn-outline-primary{
    border-color:#198754;
    color:#198754;
  }

  .btn-outline-primary:hover{
    background-color:#198754;
    color:white;
  }

  .btn-outline-danger{
    border-color:#dc3545;
    color:#dc3545;
  }

  .btn-outline-danger:hover{
    background-color:#dc3545;
    color:white;
  }

  .alert{
    border-radius:0.75rem;
    box-shadow:0 2px 6px rgba(0,0,0,0.05);
  }

  .content-wrapper{
    max-width:1120px;
    width:100%;
    margin:3rem auto 40px;
    padding:1.5rem 4rem 2.5rem;
    position:relative;
    z-index:0;
    background:transparent;
    border-radius:6px;
  }

  .content-wrapper::before{
    content:"";
    position:absolute;
    inset:0;
    left:50%;
    transform:translateX(-50%);
    width:100vw;
    background:#fff;
    z-index:-1;
  }

  .user-name{
    font-weight:400;
    color:#111827;
  }

  .site-footer{
    margin-top:3rem;
    background:#f2f3f5;
    border-top:1px solid #e3e6ea;
    width:100% !important;
    max-width:none !important;
  }

  .site-footer .footer-inner{
    padding:2.25rem 1.5rem 1.25rem;
  }

  .site-footer .footer-title{
    font-size:.85rem;
    letter-spacing:.12em;
    font-weight:700;
    color:#666;
    margin-bottom:.9rem;
  }

  .site-footer a{
    color:#333;
    text-decoration:none;
    font-size:.95rem;
  }

  .site-footer a:hover{
    color:#e35b64;
    text-decoration:underline;
    text-underline-offset:3px;
  }

  .site-footer .footer-list{
    list-style:none;
    padding-left:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:.55rem;
  }

  .site-footer .footer-social{
    display:flex;
    gap:.75rem;
    align-items:center;
  }

  .site-footer .social-btn{
    width:46px;
    height:46px;
    border-radius:999px;
    display:grid;
    place-items:center;
    background:rgba(227, 91, 100, .12);
    border:1px solid rgba(227, 91, 100, .18);
    transition:transform .15s ease, background .15s ease;
  }

  .site-footer .social-btn:hover{
    background:rgba(227, 91, 100, .18);
    transform:translateY(-1px);
  }

  .site-footer .social-btn i{
    font-size:1.25rem;
    color:#e35b64;
  }

  .site-footer .social-btn svg{
    width:22px;
    height:22px;
    display:block;
  }

  .site-footer .line-btn{
    width:46px;
    height:46px;
    border-radius:999px;
    display:grid;
    place-items:center;
    background:rgba(6, 199, 85, 0.12);
    border:1px solid rgba(6, 199, 85, 0.18);
    transition:transform .15s ease, background .15s ease;
  }

  .site-footer .line-btn:hover{
    background:rgba(6,199,85,0.18);
    transform:translateY(-1px);
  }

  .site-footer .line-btn i{
    font-size:1.25rem;
    color:#06C755;
  }

  .site-footer .line-btn svg{
    width:22px;
    height:22px;
    display:block;
  }

  .site-footer .footer-divider{
    margin-top:1.75rem;
    border-top:1px solid #e3e6ea;
  }

  .site-footer .footer-bottom{
    padding:1rem 1.5rem;
    text-align:center;
    color:#666;
    font-size:.9rem;
  }

  .footer-list.two-col{
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:2rem;
    row-gap:.6rem;
  }

  .footer-brand{
    display:flex;
    flex-direction:column;
    gap:.75rem;
  }

  .footer-brand .brand-sub{
    color:#777;
    font-size:.9rem;
    line-height:1.4;
  }

  .alert-error{
    background-color:#fdecea;
    border:1px solid #f5c2c0;
    border-left:6px solid #d93025;
    color:#842029;
    padding:16px 20px;
    border-radius:8px;
    margin-bottom:20px;
    font-family:Arial, sans-serif;
  }

  .alert-header{
    display:flex;
    align-items:center;
    margin-bottom:10px;
    font-size:15px;
  }

  .alert-icon{
    font-size:18px;
    margin-right:8px;
  }

  .alert-list{
    margin:0;
    padding-left:20px;
    font-size:14px;
  }

  .alert-list li{
    margin-bottom:5px;
  }

  .form-wrapper{
    max-width:480px;
    margin:20px auto;
    padding:0 5px;
  }

  .schedule-title{
    font-size:26px !important;
    line-height:1.2 !important;
    font-weight:700 !important;
    letter-spacing:0 !important;
    margin:0 !important;
  }

  .schedule-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
  }

  .schedule-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    flex:0 0 auto;
    flex-wrap:nowrap;
  }

  .schedule-heading{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
  }

  .view-chip{
    display:inline-flex;
    align-items:center;
    padding:6px 10px;
    border-radius:999px;
    background:#f3f4f6;
    color:var(--muted);
    font-size:13px;
    font-weight:700;
    line-height:1;
  }

  .filter-select{
    border:1px solid var(--border);
    background:#fff;
    border-radius:10px;
    padding:10px 12px;
    min-width:170px;
    font-size:16px !important;
    font-weight:600 !important;
  }

  .btn-calendar{
    border:1px solid var(--border);
    background:#fff;
    border-radius:10px;
    padding:10px 12px;
    font-size:16px !important;
    font-weight:600 !important;
    display:flex;
    gap:8px;
    align-items:center;
    white-space:nowrap;
  }

  .btn-calendar:hover{
    background:#f3f4f6;
  }

  .btn-filter{
    border:1px solid var(--brand);
    background:var(--brand);
    color:#fff;
    border-radius:10px;
    padding:10px 14px;
    font-size:16px;
    font-weight:600;
    display:flex;
    align-items:center;
    gap:8px;
    white-space:nowrap;
  }

  .btn-filter:hover{
    background:#cf515b;
    border-color:#cf515b;
    color:#fff;
  }

  .header-block{
    background:#fff;
    border:1px solid var(--border);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    padding:12px 14px 10px !important;
  }

  .header-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
  }

  .month-label{
    font-size:20px !important;
    line-height:1.2 !important;
    font-weight:700 !important;
    letter-spacing:0 !important;
    margin:0 !important;
  }

  .date-strip-wrap{
    display:flex;
    align-items:center;
    gap:8px !important;
    margin:8px 0 10px !important;
  }

  .nav-arrow{
    width:32px !important;
    height:32px !important;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:8px;
    color:var(--muted);
    border:1px solid transparent;
    background:transparent;
    font-size:20px !important;
    line-height:1;
    user-select:none;
  }

  .nav-arrow:hover{
    background:#f3f4f6;
    border-color:#eef0f3;
  }

  .date-strip{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:26px;
    width:100%;
    overflow:auto;
    padding-bottom:6px;
  }

  .date-col{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px !important;
    flex:0 0 auto;
    min-width:58px !important;
  }

  .dow{
    font-size:14px !important;
    font-weight:600 !important;
    color:#111;
    opacity:.85;
  }

  .date-dot{
    width:40px !important;
    height:40px !important;
    border-radius:999px;
    border:2px solid rgba(17,24,39,.12);
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:700 !important;
    font-size:15px !important;
    background:#fff;
    cursor:pointer;
    user-select:none;
  }

  .date-col.today .date-dot{
    background:#ededed;
    border-color:transparent;
    color:#6b7280;
  }

  .date-col.active .date-dot{
    background:var(--brand);
    border-color:var(--brand);
    color:#fff;
    box-shadow:inset 0 -2px 0 rgba(0,0,0,.12);
  }

  .day-row{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:12px !important;
    padding-top:12px !important;
    border-top:1px solid #eef0f3;
  }

  .pill-today{
    background:var(--brand);
    color:#fff;
    border:none;
    border-radius:999px;
    padding:8px 12px !important;
    font-size:14px !important;
    font-weight:700 !important;
  }

  .pill-today:hover{
    background:#cf515b;
  }

  .day-title{
    font-size:20px !important;
    line-height:1.2 !important;
    font-weight:700 !important;
    letter-spacing:0 !important;
    margin:0 !important;
  }

  .meta-note{
    font-size:14px !important;
    color:var(--muted);
    margin-top:8px !important;
  }

  .list-wrap{
    margin-top:14px;
    background:#fff;
    border:1px solid var(--border);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    overflow:hidden;
  }

  .list-row{
    display:grid;
    grid-template-columns:140px 64px 1fr 150px 150px;
    gap:14px;
    padding:16px 18px;
    border-top:1px solid #eef0f3;
    align-items:center;
  }

  .list-row:first-child{
    border-top:none;
  }

  .time{
    font-weight:600;
    line-height:1.05;
    font-size:14px;
  }

  .time span{
    display:block;
    font-weight:800;
    font-size:16px;
    margin-top:6px;
  }
  .time small{
    display:block;
    font-weight:600;
    color:var(--muted);
    margin-top:6px;
    font-size:14px;
  }

  .avatar{
    width:56px;
    height:56px;
    border-radius:999px;
    object-fit:cover;
    border:1px solid rgba(0,0,0,.06);
    box-shadow:0 1px 3px rgba(0,0,0,.06);
    background:#fff;
  }

  .main{
    min-width:0;
    max-width:100%;
  }

  .tag{
  display:inline-block;
  max-width:100%;
  width:fit-content;
  padding:8px 14px;
  border-radius:18px;
  font-size:15px;
  font-weight:700;
  line-height:1.35;
  background-color:#fff;
  color:#000;
  white-space:normal;
  word-break:break-word;
  overflow-wrap:anywhere;
}

  .desc{
    margin-top:4px;
    color:var(--muted);
    font-size:15px;
    line-height:1.35;
    font-weight:600;
  }

  .spots{
    margin-top:6px;
    font-size:13px;
    font-weight:800;
    color:var(--brand);
    line-height:1.3;
  }

  .loc{
    justify-self:start;
    font-weight:600;
    color:var(--muted);
    font-size:14px;
    display:flex;
    align-items:center;
    gap:6px;
  }

  .btn-action{
    justify-self:end;
    border-radius:10px;
    padding:7px 14px;
    font-weight:600;
    min-width:90px;
    font-size:14px;
    border:1px solid transparent;
  }

  .action-wrap{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:6px;
  }

  .btn-book{
    background:var(--brand);
    color:#fff;
    border-color:var(--brand);
  }

  .btn-book-disabled{
    background:#494242;
    color:#fff;
    border-color:#494242;
    pointer-events:none;
    opacity:0.5;
    cursor:not-allowed;
  }

  .btn-book:hover{
    background:#cf515b;
    border-color:#cf515b;
    color:#fff;
  }

  .btn-wait{
    background:#fff;
    color:var(--text);
    border-color:rgba(227,91,100,.55);
  }

  .btn-wait-disabled{
    background:#fff;
    color:var(--text);
    border-color:#494242;
    pointer-events:none;
    opacity:0.5;
    cursor:not-allowed;
  }

  .btn-wait:hover{
    background:rgba(227,91,100,.08);
    border-color:rgba(227,91,100,.75);
  }

  .status-full{
    font-weight:800;
    color:#9ca3af;
    white-space:nowrap;
    font-size:14px;
  }

  .filter-modal{
    border:0;
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 18px 60px rgba(0,0,0,.18);
  }

  .filter-grid{
    display:flex;
    flex-direction:column;
    gap:14px;
  }

  .filter-label{
    display:block;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    color:var(--muted);
    margin-bottom:6px;
    text-transform:uppercase;
  }

  .filter-footer{
    display:flex;
    justify-content:space-between;
    gap:12px;
    border-top:1px solid #eef0f3;
  }

  .btn-filter-ghost{
    background:#fff;
    color:var(--text);
    border:1px solid #e5e7eb;
    border-radius:10px;
    padding:10px 14px;
    font-weight:600;
  }

  .btn-filter-ghost:hover{
    background:#f3f4f6;
  }

  .btn-filter-apply{
    background:var(--brand);
    color:#fff;
    border:1px solid var(--brand);
    border-radius:10px;
    padding:10px 16px;
    font-weight:700;
  }

  .btn-filter-apply:hover{
    background:#cf515b;
    border-color:#cf515b;
  }

  .calendar-modal{
    border:0;
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 18px 60px rgba(0,0,0,.18);
  }

  .cal-input{
    width:100%;
    border:1px solid var(--border);
    background:#fff;
    border-radius:10px;
    padding:10px 12px;
    font-size:16px;
    font-weight:600;
    color:var(--text);
  }

  .cal-input::placeholder{
    color:var(--muted);
    font-weight:600;
  }

  .cal-box{
    margin-top:12px;
    border:1px solid #eef0f3;
    border-radius:12px;
    overflow:hidden;
    background:#fff;
  }

  .cal-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:10px 12px;
    background:#f9fafb;
    border-bottom:1px solid #eef0f3;
  }

  .cal-month{
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:800;
    color:var(--text);
  }

  .cal-nav{
    display:flex;
    gap:8px;
  }

  .cal-nav button{
    width:34px;
    height:34px;
    border-radius:10px;
    border:1px solid #e5e7eb;
    background:#fff;
    color:var(--text);
    display:grid;
    place-items:center;
    font-size:18px;
    line-height:1;
  }

  .cal-nav button:hover{
    background:#f3f4f6;
  }

  .cal-dow{
    display:grid;
    grid-template-columns:repeat(7, 1fr);
    gap:0;
    padding:10px 12px 6px;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    color:var(--muted);
    text-transform:uppercase;
  }

  .cal-grid{
    display:grid;
    grid-template-columns:repeat(7, 1fr);
    gap:6px;
    padding:8px 12px 12px;
  }

  .cal-day{
    height:38px;
    border-radius:999px;
    border:1px solid transparent;
    background:transparent;
    color:var(--text);
    font-weight:700;
    font-size:14px;
    display:grid;
    place-items:center;
    cursor:pointer;
    user-select:none;
  }

  .cal-day:hover{
    background:#f3f4f6;
  }

  .cal-day.muted{
    color:#c7cbd3;
    cursor:default;
  }

  .cal-day.muted:hover{
    background:transparent;
  }

  .cal-day.disabled{
    opacity:.45;
    cursor:not-allowed;
  }

  .cal-day.disabled:hover{
    background:transparent;
  }

  .cal-day.selected{
    background:var(--brand);
    border-color:var(--brand);
    color:#fff;
    box-shadow:inset 0 -2px 0 rgba(0,0,0,.12);
  }

  .calendar-footer{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    border-top:1px solid #eef0f3;
  }

  .btn-cal-ghost{
    background:#fff;
    color:var(--text);
    border:1px solid #e5e7eb;
    border-radius:10px;
    padding:10px 14px;
    font-weight:600;
  }

  .btn-cal-ghost:hover{
    background:#f3f4f6;
  }

  .btn-cal-cancel{
    background:#6b7280;
    color:#fff;
    border:1px solid #6b7280;
    border-radius:10px;
    padding:10px 14px;
    font-weight:700;
  }

  .btn-cal-cancel:hover{
    background:#596170;
    border-color:#596170;
  }

  .btn-cal-submit{
    background:var(--brand);
    color:#fff;
    border:1px solid var(--brand);
    border-radius:10px;
    padding:10px 16px;
    font-weight:800;
  }

  .btn-cal-submit:hover{
    background:#cf515b;
    border-color:#cf515b;
  }

  .cal-hint{
    margin-top:10px;
    color:var(--muted);
    font-size:13px;
    font-weight:600;
  }

  .time-range{
    border:1px solid #eef0f3;
    border-radius:12px;
    padding:12px;
    background:#fff;
  }

  .time-range-values{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:10px;
    font-weight:800;
    margin-bottom:10px;
  }

  .time-range-sep{
    color:var(--muted);
    font-weight:700;
  }

  .time-range-sliders{
    position:relative;
    height:44px;
  }

  .time-range-sliders::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:50%;
    transform:translateY(-50%);
    height:6px;
    border-radius:999px;
    background:#e5e7eb;
  }

  .time-range-sliders input[type="range"]{
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:44px;
    margin:0;
    background:transparent;
    -webkit-appearance:none;
    appearance:none;
    pointer-events:none;
  }

  .time-range-sliders input[type="range"]::-webkit-slider-runnable-track{
    height:6px;
    background:transparent;
    border:none;
  }

  .time-range-sliders input[type="range"]::-moz-range-track{
    height:6px;
    background:transparent;
    border:none;
  }

  .time-range-sliders input[type="range"]::-webkit-slider-thumb{
    -webkit-appearance:none;
    appearance:none;
    width:18px;
    height:18px;
    border-radius:999px;
    background:var(--brand);
    border:2px solid #fff;
    box-shadow:0 4px 12px rgba(0,0,0,.12);
    margin-top:calc((6px - 18px)/2);
    pointer-events:auto;
    cursor:pointer;
  }

  .time-range-sliders input[type="range"]::-moz-range-thumb{
    width:18px;
    height:18px;
    border-radius:999px;
    background:var(--brand);
    border:2px solid #fff;
    box-shadow:0 4px 12px rgba(0,0,0,.12);
    pointer-events:auto;
    cursor:pointer;
  }

  .time-range-scale{
    width:100%;
    display:flex;
    justify-content:space-between;
  }

  .notice-block{
    margin-top:18px;
    background:#fff;
    border:1px solid var(--border);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    overflow:hidden;
  }

  .notice-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:14px 16px;
    border-bottom:1px solid #eef0f3;
  }

  .notice-title{
    display:flex;
    align-items:center;
    gap:10px;
    font-weight:900;
    font-size:15px;
    letter-spacing:.02em;
    margin:0;
  }

  .notice-badge{
    width:28px;
    height:28px;
    border-radius:10px;
    display:grid;
    place-items:center;
    background:rgba(227, 91, 100, .12);
    border:1px solid rgba(227, 91, 100, .18);
    color:var(--brand);
    flex:0 0 auto;
  }

  .notice-body{
    padding:10px 16px 14px;
  }

  .notice-list{
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:10px;
  }

  .notice-item{
    padding:12px 12px;
    border:1px solid #eef0f3;
    border-radius:12px;
    background:#fff;
    transition:background .15s ease, border-color .15s ease, transform .15s ease;
  }

  .notice-item:hover{
    background:#fafafa;
    border-color:#e7e9ee;
    transform:translateY(-1px);
  }

  .notice-item a{
    text-decoration:none;
    color:var(--text);
    display:block;
  }

  .notice-item .n-title{
    font-weight:800;
    font-size:14px;
    line-height:1.35;
    margin:0 0 6px 0;
  }

  .notice-item .n-meta{
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--muted);
    font-size:12.5px;
    font-weight:700;
  }

  .notice-item .n-link{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--brand);
    font-weight:800;
    font-size:12.5px;
  }

  .notice-item .n-link i{
    font-size:14px;
  }

  .notice-foot{
    padding:12px 16px;
    border-top:1px solid #eef0f3;
    background:#fafafa;
    color:var(--muted);
    font-size:12.5px;
    font-weight:600;
  }

  .inline-filter-bar{
    margin-top:12px;
    margin-bottom:14px;
    background:#f3f4f6;
    border-radius:10px;
    padding:10px 12px;
  }

  .inline-filter-row{
    display:grid;
    grid-template-columns:90px repeat(4, minmax(140px, 1fr));
    gap:10px;
    align-items:end;
  }

  .inline-filter-row + .inline-filter-row{
    margin-top:10px;
  }

  .inline-filter-title{
    font-weight:500;
    font-size:14px;
    color:#4b5563;
    align-self:center;
    margin:0;
  }

  .inline-filter-field{
    display:flex;
    flex-direction:column;
    gap:4px;
    min-width:0;
  }

  .inline-filter-label{
    display:block;
    font-size:11px;
    font-weight:600;
    color:#9ca3af;
    line-height:1;
    margin:0;
  }

  .inline-filter-bar .filter-select{
    width:100%;
    min-width:0;
    height:42px;
    border:1px solid #d1d5db;
    background:#fff;
    border-radius:8px;
    padding:8px 12px;
    font-size:13px !important;
    font-weight:500 !important;
    color:#111827;
    box-shadow:none;
  }

  .inline-filter-row-bottom{
    display:block;
    margin-top:10px;
  }

  .trial-only-toggle{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:13px;
    font-weight:500;
    color:#374151;
    margin:0;
  }

  .inline-filter-time-trigger{
    position:relative;
  }

  .filter-time-btn{
    width:100%;
    height:42px;
    border:1px solid #d1d5db;
    background:#fff;
    border-radius:8px;
    padding:8px 12px;
    font-size:13px;
    font-weight:500;
    color:#111827;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
  }

  .filter-time-btn:hover{
    background:#f9fafb;
  }

  .time-popover{
    position:absolute;
    top:calc(100% + 8px);
    right:0;
    width:320px;
    background:#fff;
    border:1px solid #d1d5db;
    border-radius:12px;
    box-shadow:0 12px 30px rgba(0,0,0,.12);
    padding:12px;
    z-index:50;
  }

  .time-popover-title{
    font-size:11px;
    font-weight:700;
    letter-spacing:.08em;
    color:#6b7280;
    margin-bottom:8px;
  }

  .time-popover .time-range{
    border:1px solid #eef0f3;
    border-radius:10px;
    padding:10px;
    background:#fff;
  }

  .time-popover-actions{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:10px;
  }

  .custom-toggler{
    border:1px solid #d1d5db;
    border-radius:14px;
    padding:10px 12px;
    background:#fff;
    box-shadow:0 2px 8px rgba(0,0,0,.06);
  }

  .custom-toggler:focus{
    box-shadow:0 0 0 0.2rem rgba(227, 91, 100, 0.15);
    border-color:#e35b64;
  }

  .custom-toggler .navbar-toggler-icon{
    background-size:22px 22px;
  }

  .mobile-filter-wrap{
  display:none;
}

  .mobile-date-strip-wrap{
    display:none;
}

  @media (max-width: 768px){
  .content-wrapper{
    padding:1.5rem 1.25rem 2.5rem;
  }
  .mobile-date-strip-wrap{
    display:flex;
    align-items:center;
    gap:8px !important;
    margin:8px 0 10px !important;
  }

  .date-strip-wrap{
    display:none;
  }


  .footer-list.two-col{
    grid-template-columns:1fr;
  }

  .notice-head{
    padding:12px 14px;
  }

  .notice-body{
    padding:10px 14px 12px;
  }

  .notice-foot{
    padding:10px 14px;
  }

  .list-row{
    display:grid;
    grid-template-columns:88px 52px minmax(0, 1fr);
    grid-template-areas:
      "time avatar main"
      "loc  loc    action";
    gap:10px 12px;
    padding:14px 14px;
    align-items:start;
  }

  .time{
    grid-area:time;
  }

  .avatar{
    grid-area:avatar;
    width:48px;
    height:48px;
  }

  .main{
    grid-area:main;
    min-width:0;
    max-width:100%;
    align-self:start;
  }

  .loc{
    grid-area:loc;
    align-self:center;
  }

  .action{
    grid-area:action;
    justify-self:end;
    align-self:start;
    margin-top:0;
  }

  .desc{
    font-size:14px;
    margin-top:6px;
    margin-bottom:0;
  }

  .btn-action{
    min-width:92px;
    width:auto;
    margin-top:0;
    padding:6px 14px;
    font-size:13px;
  }

  .action-wrap{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:4px;
  }

  .action-wrap .spots{
    margin-top:0;
    font-size:13px;
    line-height:1.2;
    text-align:right;
  }
  
    .schedule-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:nowrap;
  }

  .schedule-heading{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    flex:1 1 auto;
    flex-wrap:nowrap;
  }

  .schedule-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex:0 0 auto;
    width:auto;
    flex-wrap:nowrap;
  }

    .schedule-actions .btn-calendar{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
    padding:10px 12px;
    border-radius:12px;
    font-size:16px !important;
    font-weight:700 !important;
  }

  .btn-filter{
    display:none;
  }

  .btn-calendar{
    display:inline-flex;
  }

  .inline-filter-bar{
    display:none;
  }

  .mobile-filter-wrap{
    display:block;
    margin-top:14px;
    margin-bottom:14px;
  }

  .mobile-filter-toggle{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:16px 18px;
    border:1px solid #d9d9d9;
    border-radius:14px;
    background:#fff;
    font-size:16px;
    font-weight:600;
    color:#111827;
  }

  .mobile-filter-panel{
    margin-top:12px;
  }

  .mobile-filter-card{
    border:1px solid #e5e7eb;
    border-radius:14px;
    background:#f8f8f8;
    padding:14px;
    display:flex;
    flex-direction:column;
    gap:12px;
  }

  .mobile-filter-field{
    display:flex;
    flex-direction:column;
    gap:6px;
  }

  .mobile-filter-field label{
    font-size:12px;
    color:#9ca3af;
    font-weight:600;
  }

  .mobile-filter-field .filter-select{
    width:100%;
    min-width:0;
    height:42px;
    border:1px solid #d1d5db;
    border-radius:8px;
    background:#fff;
    padding:8px 12px;
    font-size:14px !important;
    font-weight:500 !important;
  }
  .date-col {
    display: none;
}
}

.mobile-filter-field .filter-time-btn{
  width:100%;
  height:42px;
  border:1px solid #d1d5db;
  background:#fff;
  border-radius:8px;
  padding:8px 12px;
  font-size:14px;
  font-weight:500;
  color:#111827;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.mobile-filter-field .trial-only-toggle{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:500;
  color:#374151;
  margin:0;
}
      

.nav-arrow.disabled {
  opacity: 0.3;
  pointer-events: none;
}



