/* Doctor / Polyclinic schedule site — shared styles
   Theme device: the "prescription pad" — ruled lines, Rx mark, registration
   number line — instead of a generic medical-blue template. */

:root{
  --mint:#EAF4F0;
  --teal:#1F6F63;
  --teal-deep:#14453D;
  --coral:#E2624F;
  --ink:#223330;
  --ink-soft:#4E6259;
  --paper:#FFFFFF;
  --line: rgba(31,111,99,0.18);
  --radius:6px;
  --font-display:'Sora', sans-serif;
  --font-body:'Work Sans', sans-serif;
  --font-mono:'JetBrains Mono', monospace;
  --maxw:1080px;
}
*{box-sizing:border-box;}
body{margin:0; background:var(--mint); color:var(--ink); font-family:var(--font-body); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;}
a{color:inherit;}
h1,h2,h3{font-family:var(--font-display); font-weight:700; margin:0; color:var(--teal-deep);}
p{margin:0;}
.container{max-width:var(--maxw); margin:0 auto; padding:0 22px;}
.muted{color:var(--ink-soft); font-size:14px;}
.muted.small{font-size:12.5px;}
.eyebrow{font-family:var(--font-mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--coral);}

.rx-mark{
  font-family:var(--font-display); font-size:30px; color:var(--teal); font-weight:700; line-height:1;
}
.rx-mark.small{font-size:22px;}

/* header */
.site-header{background:var(--paper); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20;}
.nav-row{display:flex; align-items:center; justify-content:space-between; padding:16px 22px;}
.brand{display:flex; align-items:center; gap:12px;}
.brand-name{font-family:var(--font-display); font-size:19px; font-weight:700; color:var(--teal-deep); line-height:1.15;}
.brand-sub{font-size:12px; color:var(--ink-soft);}

.btn{font-family:var(--font-body); font-weight:600; font-size:14px; padding:10px 20px; border-radius:20px; text-decoration:none; display:inline-block; cursor:pointer; border:1.5px solid transparent;}
.btn-primary{background:var(--teal); color:#fff;}
.btn-primary:hover{background:var(--teal-deep);}
.btn-outline{border-color:var(--teal); color:var(--teal); background:none;}
.btn-outline:hover{background:var(--teal); color:#fff;}
.btn-danger{border-color:var(--coral); color:var(--coral); background:none;}
.btn-danger:hover{background:var(--coral); color:#fff;}
.btn-sm{padding:6px 12px; font-size:12.5px; border-radius:14px;}

/* today band */
.today-band{background:var(--teal); color:#fff; padding:34px 0;}
.today-band .eyebrow{color:#CFE8DD;}
.today-band h2{color:#fff; margin-top:6px; margin-bottom:18px;}
.today-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
@media (max-width:800px){.today-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.today-grid{grid-template-columns:1fr;}}
.today-card{background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.25); border-radius:var(--radius); padding:14px 16px;}
.today-card__slot{border-top:1px dashed rgba(255,255,255,0.25); margin-top:10px; padding-top:10px;}
.today-card__slot:first-of-type{border-top:none; margin-top:0; padding-top:0;}
.today-card__doc{font-family:var(--font-display); font-weight:700; font-size:15.5px;}
.today-card__spec{font-size:12px; color:#CFE8DD; margin-bottom:8px;}
.today-card__loc{font-size:13px; margin-bottom:4px;}
.today-card__time{font-family:var(--font-mono); font-size:13.5px;}
.today-card__note{font-size:11.5px; color:#CFE8DD; margin-top:6px; font-style:italic;}

section{padding:44px 0;}
.section-head{margin-bottom:28px;}
.section-head h2{font-size:26px; margin-top:6px;}
.band{background:var(--paper); border-top:1px solid var(--line);}

/* doctor "prescription pad" cards */
.doctor-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
@media (max-width:800px){.doctor-grid{grid-template-columns:1fr;}}
.doctor-pad{
  background:
    repeating-linear-gradient(to bottom, transparent 0, transparent 27px, var(--line) 27px, var(--line) 28px),
    var(--paper);
  border:1px solid var(--line); border-left:4px solid var(--teal); border-radius:var(--radius);
  padding:22px 24px;
}
.doctor-pad__header{display:flex; gap:14px; align-items:flex-start;}
.doctor-photo{width:56px; height:56px; border-radius:50%; object-fit:cover; border:2px solid var(--mint); flex-shrink:0;}
.doctor-qr{margin-left:auto; text-align:center; flex-shrink:0;}
.doctor-qr img{width:56px; height:56px; border:1px solid var(--line); border-radius:4px; display:block;}
.doctor-qr__label{font-size:10.5px; color:var(--teal); text-decoration:none; display:block; margin-top:4px; white-space:nowrap;}
.directions-link{
  display:inline-block; margin-top:8px; font-size:12px; font-weight:600; text-decoration:none;
  color:var(--teal); border:1px solid var(--teal); border-radius:12px; padding:5px 12px;
}
.directions-link:hover{background:var(--teal); color:#fff;}

/* facility gallery */
.facility-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
@media (max-width:800px){.facility-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.facility-grid{grid-template-columns:1fr;}}
.facility-item{position:relative; display:block; border-radius:var(--radius); overflow:hidden; aspect-ratio:4/3; text-decoration:none;}
.facility-item img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.3s ease;}
.facility-item:hover img{transform:scale(1.04);}
.facility-caption{
  position:absolute; left:0; right:0; bottom:0; padding:8px 10px;
  background:linear-gradient(to top, rgba(20,69,61,0.85), transparent);
  color:#fff; font-size:12px;
}
.doctor-pad__header h3{font-size:19px;}
.doctor-qual{font-size:13px; color:var(--ink-soft); margin-top:2px;}
.doctor-spec-badge{
  display:inline-block; margin-top:6px; font-family:var(--font-mono); font-size:11px; letter-spacing:0.03em;
  background:var(--mint); color:var(--teal-deep); padding:3px 10px; border-radius:10px;
}
.doctor-bio{font-size:13.5px; color:var(--ink-soft); margin-top:12px;}
.reg-line{font-family:var(--font-mono); font-size:11.5px; color:var(--ink-soft); margin-top:10px; border-top:1px dashed var(--line); padding-top:10px;}
.doctor-schedule{margin-top:14px;}
.loc-block{margin-bottom:12px;}
.loc-name{font-size:13.5px; font-weight:600; color:var(--teal-deep); margin-bottom:6px;}
.slot-list{list-style:none; margin:0; padding:0;}
.slot-list li{display:flex; gap:10px; align-items:baseline; font-size:13.5px; padding:4px 0; flex-wrap:wrap;}
.slot-day{font-family:var(--font-mono); font-weight:600; color:var(--teal); min-width:34px;}
.slot-time{font-family:var(--font-mono); color:var(--ink);}
.slot-note{font-size:11.5px; color:var(--coral); font-style:italic;}

.contact-grid{display:grid; grid-template-columns:1fr; gap:20px;}

.wa-float{position:fixed; bottom:20px; right:20px; width:54px; height:54px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; color:#fff; box-shadow:0 4px 14px rgba(0,0,0,0.25); text-decoration:none;}
.wa-float svg{width:26px; height:26px;}

footer{background:var(--teal-deep); color:var(--mint); padding:20px 0;}
.footer-grid{display:flex; justify-content:space-between; align-items:center; font-size:13px;}

/* auth */
.auth-body{display:flex; align-items:center; justify-content:center; min-height:100vh;}
.auth-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:32px 30px; width:100%; max-width:340px; text-align:center; display:flex; flex-direction:column; gap:12px;}
.auth-card h2{font-size:20px; margin-bottom:6px;}
.auth-card input{font-family:var(--font-body); font-size:14.5px; border:1px solid var(--line); border-radius:var(--radius); padding:11px 13px;}
.auth-error{color:var(--coral); font-size:13px;}

/* admin */
.admin-header{background:var(--teal-deep); color:#fff; padding:16px 0;}
.admin-header .container{display:flex; justify-content:space-between; align-items:center;}
.tab-nav{display:flex; gap:6px; margin-bottom:24px; flex-wrap:wrap;}
.tab-nav a{
  font-family:var(--font-mono); font-size:13px; padding:9px 16px; border-radius:16px; text-decoration:none;
  color:var(--teal-deep); border:1px solid var(--line); background:var(--paper);
}
.tab-nav a.active{background:var(--teal); color:#fff; border-color:var(--teal);}
.admin-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:22px 24px; margin-bottom:22px;}
.admin-card h3{font-size:17px; margin-bottom:16px;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.form-grid.cols-3{grid-template-columns:1fr 1fr 1fr;}
@media (max-width:700px){.form-grid, .form-grid.cols-3{grid-template-columns:1fr;}}
.form-grid input, .form-grid select, .form-grid textarea, form.inline input, form.inline select{
  font-family:var(--font-body); font-size:14px; border:1px solid var(--line); border-radius:var(--radius); padding:10px 12px; width:100%;
}
.form-grid label, .field-label{font-size:11.5px; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-soft); display:block; margin-bottom:4px;}
.admin-table{width:100%; border-collapse:collapse; font-size:13.5px;}
.admin-table th{text-align:left; font-family:var(--font-mono); font-size:11px; text-transform:uppercase; color:var(--ink-soft); border-bottom:1px solid var(--line); padding:8px 10px;}
.admin-table td{padding:10px; border-bottom:1px solid var(--line); vertical-align:top;}
.admin-table tr:hover td{background:var(--mint);}
.row-actions{display:flex; gap:8px;}
.radio-row{display:flex; gap:16px; align-items:center; font-size:13.5px;}
.schedule-type-fields{display:none;}
.schedule-type-fields.active{display:block;}
