:root{
  --bg:#f5f6f8;
  --card:#ffffff;
  --text:#111;
  --muted:#666;
  --border:#e6e6e9;
  --primary:#2563eb;
  --danger:#dc2626;
  --success:#16a34a;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu; background:var(--bg); color:var(--text)}
a{color:inherit}
.container{max-width:1280px;margin:0 auto;padding:18px}
.container.narrow{max-width:860px}
.page{min-height:100vh;background-size:cover;background-position:center}

.card{background:var(--card); border:1px solid var(--border); border-radius:18px; padding:16px}
.row{display:flex; align-items:center}
.row.space-between{justify-content:space-between}
.row.gap{gap:10px}
.row.wrap{flex-wrap:wrap}
.inline{display:inline}
.mt{margin-top:12px}
.muted{color:var(--muted)}
hr{border:0;border-top:1px solid var(--border); margin:14px 0}

.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.65);backdrop-filter:blur(8px)}
body.dark .topbar{background:rgba(15,23,42,.75)}
.topbar .left{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.topbar .right{display:flex; align-items:center; gap:10px}
.topbar.simple{border:none;background:transparent;padding:0 0 14px 0}
.brand{font-weight:800}

.btn{border:1px solid var(--border); background:transparent; color:var(--text); padding:8px 12px; border-radius:12px; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:8px}
.btn.primary{background:var(--primary); color:white; border-color:transparent}
.btn.danger{background:var(--danger); color:white; border-color:transparent}
.btn.ghost{background:transparent}
.alert{padding:10px 12px;border-radius:14px;border:1px solid var(--border);background:rgba(0,0,0,.03)}
.alert.danger{border-color:rgba(220,38,38,.35);background:rgba(220,38,38,.08)}
.alert.success{border-color:rgba(22,163,74,.35);background:rgba(22,163,74,.08)}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
@media(max-width:900px){.grid2{grid-template-columns:1fr}}

label{display:block;margin-top:10px;font-weight:600}
input,select{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text)}

/* Form controls that should not be full width */
input[type=checkbox], input[type=radio]{width:auto}

/* Privacy consent row (guest booking form) */
.privacy-row{display:flex;align-items:center;gap:10px;margin-top:10px}
.privacy-row input[type=checkbox]{width:16px;height:16px;margin:0;flex:0 0 auto}
.privacy-row span{font-weight:600}
.chip{display:inline-flex; gap:8px; align-items:center; padding:8px 10px; border:1px solid var(--border); border-radius:999px; margin-top:10px}

.hero{position:relative;background-size:cover;background-position:center}
.hero::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,var(--hero-fade,.45));border-radius:inherit}
.hero-content{position:relative;z-index:1}
.hero h1{margin:0;font-size:26px}
.hero p{margin:8px 0 0 0}

.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:12px}
.cal-head{font-weight:700;color:var(--muted);text-align:center}
.cal-cell{border:1px solid var(--border);border-radius:14px;min-height:64px;background:rgba(22,163,74,.08);cursor:pointer;display:flex;align-items:flex-start;justify-content:flex-end;padding:8px}
.cal-cell .d{font-weight:700}
.cal-cell.empty{background:transparent;border:none}
.cal-cell.past{opacity:.45;cursor:not-allowed}
.cal-cell.partial{background:linear-gradient(135deg, rgba(22,163,74,.08) 0%, rgba(22,163,74,.08) 60%, rgba(22,163,74,.22) 60%, rgba(22,163,74,.22) 75%, rgba(22,163,74,.08) 75%)}
.cal-cell.vacation{background:rgba(220,38,38,.12); border-color:rgba(220,38,38,.35)}

#timeList{margin-top:12px; display:flex; flex-wrap:wrap; gap:10px}
.time-btn{padding:10px 12px;border-radius:12px;border:1px solid var(--border);cursor:pointer;background:transparent}
.time-btn.free{background:rgba(22,163,74,.08)}
.time-btn.busy{background:rgba(220,38,38,.08)}

.today-list{display:flex;flex-direction:column;gap:10px}
.today-item{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--border);border-radius:14px;padding:10px 12px}
.today-item.past{background:rgba(22,163,74,.08)}
.today-item.future{background:rgba(234,179,8,.10)}

.pending-list{display:flex;flex-direction:column;gap:10px}
.pending-item{border:1px solid var(--border);border-radius:14px;padding:10px 12px}
.pending-item .meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pending-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}

.table .tr{display:grid;grid-template-columns:1fr 1fr 1fr 2fr;gap:10px;padding:10px 0;border-top:1px solid var(--border)}
.table .tr.head{border-top:none;color:var(--muted);font-weight:700}

.bang{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:6px;border-radius:999px;background:var(--danger);color:#fff;font-weight:800;font-size:12px;animation:blink 1s infinite}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:.15}}

/* Compact checkboxes */
.chip.compact{padding:6px 10px;font-size:13px}
.chip.compact input[type=checkbox]{width:16px;height:16px;transform:translateY(1px)}

.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.35);padding:18px;z-index:999}
.modal-card{width:min(520px,100%);background:var(--card);border:1px solid var(--border);border-radius:18px;padding:16px}

/* Keep procedure rows on one line */
.proc-row{flex-wrap:nowrap}
.proc-row input{max-width:100%}

.proc-row > div{display:block}


/* Guest: no free times -> grey */
.calendar[data-moderator="0"] .cal-cell.full{background:rgba(0,0,0,.06);}

.day.off{background:#ffb3b3 !important;}
.day.full{background:#fde68a !important;}

.cal-cell.off{background:rgba(220,38,38,.12); border-color:rgba(220,38,38,.25)}
.cal-cell.full{background:rgba(245,158,11,.22); border-color:rgba(245,158,11,.35)}

.time-grid{display:flex;flex-wrap:wrap;gap:8px}

.stats-grid{display:grid;grid-template-columns:1fr 90px 90px 90px;gap:12px;align-items:center}
.stats-head{padding:8px 0;margin-top:6px}
.stats-row{padding:8px 0}
.t-right{text-align:right}


.admin-provider-table-wrap{margin-top:14px}
.admin-provider-table{width:100%;border-collapse:collapse;table-layout:fixed}
.admin-provider-table th,.admin-provider-table td{padding:10px 8px;border-top:1px solid var(--border);text-align:left;vertical-align:middle;font-size:14px;word-break:break-word}
.admin-provider-table thead th{border-top:none;color:var(--muted);font-size:13px;font-weight:800;line-height:1.25}
.admin-provider-table tbody tr:hover{background:rgba(37,99,235,.04)}
.admin-provider-table th:nth-child(1),.admin-provider-table td:nth-child(1){width:22%}
.admin-provider-table th:nth-child(2),.admin-provider-table td:nth-child(2){width:12%}
.admin-provider-table th:nth-child(3),.admin-provider-table td:nth-child(3){width:12%}
.admin-provider-table th:nth-child(4),.admin-provider-table td:nth-child(4){width:20%}
.admin-provider-table th:nth-child(5),.admin-provider-table td:nth-child(5){width:17%}
.admin-provider-table th:nth-child(6),.admin-provider-table td:nth-child(6){width:17%}
.admin-provider-name{font-weight:800;font-size:15px;line-height:1.25}
.admin-provider-meta{font-size:12px;line-height:1.35;margin-top:4px}
.admin-list-head{gap:12px;flex-wrap:wrap}
@media(max-width:980px){
  .container{padding:14px}
  .admin-provider-table{table-layout:auto}
  .admin-provider-table th,.admin-provider-table td{padding:10px 6px;font-size:13px}
}


.admin-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}
.admin-search-wrap{flex:1 1 320px;min-width:220px}
.sort-link{text-decoration:none;color:inherit;display:inline-flex;align-items:center;gap:4px}
.sort-link:hover{text-decoration:underline}
.admin-pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}
.admin-pagination-pages{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn.disabled{pointer-events:none;opacity:.45}

.admin-provider-link{display:block;text-decoration:none;color:inherit}
.admin-provider-link:hover .admin-provider-name{text-decoration:underline}
.admin-detail-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:14px;margin-top:14px}
.admin-provider-detail-page .card{overflow:hidden}
.admin-provider-hero{gap:14px;flex-wrap:wrap}
.admin-provider-hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.admin-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.admin-stat-box{border:1px solid var(--border);border-radius:14px;padding:12px;background:rgba(37,99,235,.04)}
.admin-stat-box span{display:block;color:var(--muted);font-size:13px;margin-bottom:6px}
.admin-stat-box strong{font-size:24px;line-height:1.1}
.admin-provider-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:14px}
.admin-provider-facts > div{border-top:1px solid var(--border);padding-top:10px}
.admin-provider-facts span{display:block;color:var(--muted);font-size:13px;margin-bottom:6px}
.admin-provider-facts strong{display:block;font-size:15px;line-height:1.35;word-break:break-word}
.admin-procedure-list,.admin-recent-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.admin-procedure-item,.admin-recent-item{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--border);border-radius:14px;padding:12px}
.admin-procedure-name,.admin-recent-title{font-weight:700;line-height:1.3}
.admin-recent-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:120px}
@media(max-width:980px){
  .admin-detail-grid{grid-template-columns:1fr}
  .admin-stat-grid{grid-template-columns:1fr 1fr}
  .admin-provider-facts{grid-template-columns:1fr}
}
@media(max-width:640px){
  .admin-stat-grid{grid-template-columns:1fr}
  .admin-procedure-item,.admin-recent-item{flex-direction:column;align-items:flex-start}
  .admin-recent-side{align-items:flex-start;min-width:0}
}


textarea{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text);font:inherit;resize:vertical}
.home-topbar{position:sticky;top:0;z-index:10}
.home-grid{display:grid;grid-template-columns:minmax(0,1.45fr) 360px;gap:18px;align-items:start;padding-top:18px}
.home-main-card{min-height:420px}
.home-auth-card{position:sticky;top:88px;width:100%;max-width:360px;justify-self:end}
.home-auth-card-top{align-self:start}
.home-richtext{line-height:1.65}
.home-richtext iframe{width:100%;max-width:100%;min-height:315px;border:0;border-radius:14px}
.input-prefix-wrap{display:flex;align-items:center;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.input-prefix-wrap span{padding:10px 12px;background:rgba(0,0,0,.03);color:var(--muted);white-space:nowrap}
.input-prefix-wrap input{border:0;border-radius:0}
.register-page-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,460px);gap:18px;align-items:start;padding-top:18px}
.register-form-card{justify-self:end;width:100%}
@media(max-width:980px){.home-grid,.register-page-grid{grid-template-columns:1fr}.home-auth-card{position:static;max-width:none;justify-self:stretch}.home-main-card{min-height:0}.register-form-card{justify-self:stretch}}

.register-page-grid-single{grid-template-columns:minmax(320px,460px);justify-content:end}
