/* iFix Cellfone — Scheduling System v12.3.1 */
/* ifsc-* = customer widget · isa-* = admin page */
/* Tested: iOS Safari 14+, Chrome, Edge, Firefox, iPad */

:root {
  --ifsc-blue:#1860f0; --ifsc-blue-lite:#e8f2ff; --ifsc-blue-glow:rgba(24,96,240,.15);
  --ifsc-green:#059669; --ifsc-green-lite:#d1fae5;
  --ifsc-amber:#d97706; --ifsc-amber-lite:#fef3c7;
  --ifsc-red:#dc2626; --ifsc-red-lite:#fee2e2;
  --ifsc-g50:#f8fafc; --ifsc-g100:#f1f5f9; --ifsc-g200:#e2e8f0;
  --ifsc-g400:#94a3b8; --ifsc-g500:#64748b; --ifsc-g700:#334155; --ifsc-g900:#0f172a;
  --ifsc-r:13px; --ifsc-rs:9px;
  --ifsc-font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --ifsc-shadow:0 4px 24px rgba(15,23,42,.10),0 1px 4px rgba(15,23,42,.06);
}

/* ═══ CUSTOMER WIDGET ═══════════════════════════════════════════ */

.ifix-sched-mount { margin-top:22px; text-align:left; }

.ifsc-wrap {
  background:#fff; border:1.5px solid var(--ifsc-g200);
  border-radius:var(--ifsc-r); box-shadow:var(--ifsc-shadow);
  font-family:var(--ifsc-font); font-size:14px; color:var(--ifsc-g900);
  overflow:hidden; -webkit-font-smoothing:antialiased; text-align:left;
  max-width:100%; box-sizing:border-box;
}
.ifsc-wrap *, .ifsc-wrap *::before, .ifsc-wrap *::after { box-sizing:border-box; }

/* Header */
.ifsc-header { position:relative; overflow:hidden; background:linear-gradient(130deg,#1860f0 0%,#4f46e5 50%,#7c3aed 100%); }
.ifsc-header-glow { position:absolute; top:-60px; right:-60px; width:200px; height:200px; border-radius:50%; background:rgba(255,255,255,.10); pointer-events:none; }
.ifsc-header-inner { position:relative; display:flex; align-items:center; gap:14px; padding:22px 24px 20px; z-index:1; }
.ifsc-header-icon { font-size:32px; line-height:1; flex-shrink:0; }
.ifsc-header-title { font-size:18px; font-weight:800; color:#fff; letter-spacing:-.25px; line-height:1.2; }
.ifsc-header-sub { font-size:12px; color:rgba(255,255,255,.80); margin-top:3px; line-height:1.4; }

/* Step indicator */
.ifsc-steps { display:flex; align-items:center; padding:16px 24px; background:var(--ifsc-g50); border-bottom:1px solid var(--ifsc-g200); gap:0; }
.ifsc-step { display:flex; align-items:center; gap:7px; flex-shrink:0; }
.ifsc-step-line { flex:1; height:2px; background:var(--ifsc-g200); margin:0 8px; min-width:16px; border-radius:99px; transition:background .3s; }
.ifsc-step-num { width:26px; height:26px; border-radius:50%; background:var(--ifsc-g200); color:var(--ifsc-g500); font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; transition:all .3s; flex-shrink:0; }
.ifsc-step-lbl { font-size:12px; font-weight:600; color:var(--ifsc-g400); white-space:nowrap; transition:color .3s; }
.ifsc-step.is-active .ifsc-step-num { background:var(--ifsc-blue); color:#fff; box-shadow:0 4px 12px var(--ifsc-blue-glow); }
.ifsc-step.is-active .ifsc-step-lbl { color:var(--ifsc-blue); }
.ifsc-step.is-done .ifsc-step-num { background:var(--ifsc-green); color:#fff; }
.ifsc-step.is-done .ifsc-step-lbl { color:var(--ifsc-green); }
@media(max-width:400px){ .ifsc-step-lbl{display:none;} .ifsc-steps{padding:14px 16px;} }

/* Panels */
.ifsc-panel { padding:24px; border-bottom:1px solid var(--ifsc-g100); }
.ifsc-hidden { display:none !important; }

.ifsc-panel-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; flex-wrap:wrap; gap:8px; }
.ifsc-panel-title { display:flex; align-items:center; gap:10px; font-size:16px; font-weight:700; color:var(--ifsc-g900); }
.ifsc-panel-num { width:28px; height:28px; border-radius:50%; background:var(--ifsc-blue); color:#fff; font-size:13px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:0 4px 12px var(--ifsc-blue-glow); }
.ifsc-chosen-badge { display:inline-flex; align-items:center; padding:4px 12px; background:var(--ifsc-blue-lite); color:var(--ifsc-blue); border-radius:99px; font-size:12px; font-weight:700; white-space:nowrap; }

.ifsc-back-btn { display:inline-flex; align-items:center; gap:5px; background:none; border:none; color:var(--ifsc-g500); font-size:13px; font-family:var(--ifsc-font); cursor:pointer; padding:8px 0 0; margin-top:6px; transition:color .15s; -webkit-tap-highlight-color:transparent; }
.ifsc-back-btn:hover { color:var(--ifsc-blue); }

/* Calendar nav */
.ifsc-cal-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.ifsc-cal-month { font-size:15px; font-weight:700; color:var(--ifsc-g900); }
.ifsc-cal-nav-btn { width:36px; height:36px; border-radius:50%; border:1.5px solid var(--ifsc-g200); background:#fff; font-size:20px; line-height:1; color:var(--ifsc-g700); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all .15s; -webkit-tap-highlight-color:transparent; }
.ifsc-cal-nav-btn:hover { background:var(--ifsc-blue-lite); border-color:var(--ifsc-blue); color:var(--ifsc-blue); }

.ifsc-cal-grid-wrap { overflow:hidden; }

/* DOW header row */
.ifsc-cal-row-dow { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; margin-bottom:4px; }
.ifsc-cal-dow { text-align:center; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--ifsc-g400); padding:6px 2px 4px; }

/* Day cells grid */
.ifsc-cal-days { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }

/* Individual day — padding-bottom trick for aspect-ratio (iOS Safari compat) */
.ifsc-day {
  position:relative; width:100%; padding-bottom:100%;
  border-radius:8px; border:1.5px solid transparent;
  cursor:pointer; transition:all .15s;
  -webkit-tap-highlight-color:transparent;
  user-select:none; -webkit-user-select:none;
}
.ifsc-day-num {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  font-size:13px; font-weight:600; gap:2px;
}
.ifsc-day-dot { width:4px; height:4px; border-radius:50%; background:var(--ifsc-green); display:block; }
.ifsc-dot-amber { background:var(--ifsc-amber); }

.ifsc-day-empty { cursor:default; pointer-events:none; background:transparent; border-color:transparent; }
.ifsc-day-past, .ifsc-day-unavailable { background:var(--ifsc-g50); color:var(--ifsc-g400); cursor:not-allowed; pointer-events:none; }
.ifsc-day-full { background:var(--ifsc-red-lite); color:#991b1b; cursor:not-allowed; pointer-events:none; }
.ifsc-day-limited { background:var(--ifsc-amber-lite); color:#78350f; border-color:#fde68a; font-weight:700; }
.ifsc-day-limited:hover,.ifsc-day-limited:focus { background:#fde68a; transform:scale(1.06); outline:none; }
.ifsc-day-available { background:var(--ifsc-green-lite); color:#065f46; border-color:#a7f3d0; font-weight:700; }
.ifsc-day-available:hover,.ifsc-day-available:focus { background:#a7f3d0; transform:scale(1.08); box-shadow:0 4px 14px rgba(5,150,105,.2); outline:none; }
.ifsc-day-today { border-color:var(--ifsc-blue) !important; font-weight:800 !important; }
.ifsc-day-selected { background:var(--ifsc-blue) !important; color:#fff !important; border-color:var(--ifsc-blue) !important; transform:scale(1.10) !important; box-shadow:0 6px 20px rgba(24,96,240,.35) !important; font-weight:800 !important; }
.ifsc-day-selected .ifsc-day-dot { background:rgba(255,255,255,.8); }

/* Legend */
.ifsc-cal-legend { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin-top:14px; font-size:11px; color:var(--ifsc-g500); }
.ifsc-dot { width:9px; height:9px; border-radius:50%; display:inline-block; margin-right:4px; vertical-align:middle; }
.ifsc-dot-avail  { background:var(--ifsc-green); }
.ifsc-dot-limited{ background:var(--ifsc-amber); }
.ifsc-dot-full   { background:var(--ifsc-red); }
.ifsc-dot-closed { background:var(--ifsc-g400); }

/* Loading/error */
.ifsc-cal-loading { display:flex; align-items:center; justify-content:center; gap:10px; padding:36px 20px; color:var(--ifsc-g500); font-size:13px; }
.ifsc-cal-error { text-align:center; padding:24px; color:var(--ifsc-red); font-size:13px; }
@keyframes ifsc-spin { to { transform:rotate(360deg); } }
.ifsc-spinner { width:22px; height:22px; border:3px solid var(--ifsc-blue-lite); border-top-color:var(--ifsc-blue); border-radius:50%; animation:ifsc-spin .7s linear infinite; flex-shrink:0; }

/* Time slots */
.ifsc-slots-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:8px; }
.ifsc-slot { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:14px 10px; border-radius:var(--ifsc-rs); border:1.5px solid var(--ifsc-g200); background:#fff; cursor:pointer; font-family:var(--ifsc-font); transition:all .15s; -webkit-tap-highlight-color:transparent; gap:2px; min-height:64px; }
.ifsc-slot-start { font-size:14px; font-weight:700; color:var(--ifsc-g900); line-height:1.2; }
.ifsc-slot-sep { font-size:10px; color:var(--ifsc-g400); line-height:1; }
.ifsc-slot-end { font-size:11px; font-weight:500; color:var(--ifsc-g500); line-height:1.2; }
.ifsc-slot:not([disabled]):hover { background:var(--ifsc-blue-lite); border-color:var(--ifsc-blue); transform:translateY(-2px); box-shadow:0 6px 18px var(--ifsc-blue-glow); }
.ifsc-slot:not([disabled]):hover .ifsc-slot-start { color:var(--ifsc-blue); }
.ifsc-slot-selected { background:linear-gradient(135deg,#1860f0,#4f46e5) !important; border-color:var(--ifsc-blue) !important; box-shadow:0 8px 24px rgba(24,96,240,.32) !important; transform:translateY(-2px) !important; }
.ifsc-slot-selected .ifsc-slot-start,.ifsc-slot-selected .ifsc-slot-sep,.ifsc-slot-selected .ifsc-slot-end { color:#fff !important; }
.ifsc-slot-taken,.ifsc-slot-past { background:var(--ifsc-g50); color:var(--ifsc-g400); cursor:not-allowed; opacity:.65; }
.ifsc-slot-taken .ifsc-slot-start,.ifsc-slot-past .ifsc-slot-start { text-decoration:line-through; color:var(--ifsc-g400); }
.ifsc-no-slots { text-align:center; padding:28px 20px; font-size:14px; color:var(--ifsc-g500); line-height:1.6; }

/* Address */
.ifsc-zone-banner { display:flex; align-items:flex-start; gap:10px; padding:14px 16px; background:linear-gradient(135deg,#eff6ff,#f0fdf4); border:1px solid #bfdbfe; border-radius:var(--ifsc-rs); margin-bottom:16px; font-size:13px; color:#1e40af; line-height:1.55; }
.ifsc-zone-icon { width:18px; height:18px; flex-shrink:0; margin-top:1px; stroke:#1e40af; }
.ifsc-addr-field { position:relative; }
.ifsc-addr-input-wrap { display:flex; align-items:center; border:1.5px solid var(--ifsc-g200); border-radius:var(--ifsc-rs); background:#fff; overflow:hidden; transition:border-color .15s,box-shadow .15s; }
.ifsc-addr-input-wrap:focus-within { border-color:var(--ifsc-blue); box-shadow:0 0 0 3px var(--ifsc-blue-glow); }
.ifsc-addr-pin { width:18px; height:18px; flex-shrink:0; margin-left:14px; stroke:var(--ifsc-g400); pointer-events:none; }
.ifsc-addr-input { flex:1; padding:14px 10px; border:none; font-size:14px; font-family:var(--ifsc-font); color:var(--ifsc-g900); background:transparent; outline:none; -webkit-appearance:none; min-width:0; }
.ifsc-addr-input::placeholder { color:var(--ifsc-g400); }
.ifsc-addr-clear-wrap { padding-right:8px; }
.ifsc-addr-clear { background:none; border:none; cursor:pointer; color:var(--ifsc-g400); font-size:16px; padding:4px 6px; border-radius:4px; display:flex; align-items:center; transition:color .12s,background .12s; -webkit-tap-highlight-color:transparent; }
.ifsc-addr-clear:hover { color:var(--ifsc-red); background:var(--ifsc-red-lite); }

.ifsc-suggestions { position:absolute; left:0; right:0; top:calc(100% + 4px); background:#fff; border:1.5px solid var(--ifsc-g200); border-radius:var(--ifsc-rs); box-shadow:0 12px 36px rgba(15,23,42,.14); z-index:9999; max-height:280px; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.ifsc-sugg-item { display:flex; align-items:flex-start; gap:10px; padding:12px 14px; cursor:pointer; border-bottom:1px solid var(--ifsc-g100); transition:background .12s; -webkit-tap-highlight-color:transparent; }
.ifsc-sugg-item:last-child { border-bottom:none; }
.ifsc-sugg-item:hover,.ifsc-sugg-item:focus { background:var(--ifsc-g50); outline:none; }
.ifsc-sugg-pin { width:18px; height:18px; stroke:var(--ifsc-blue); flex-shrink:0; margin-top:1px; }
.ifsc-sugg-body { flex:1; min-width:0; }
.ifsc-sugg-name { font-size:13px; font-weight:600; color:var(--ifsc-g900); word-break:break-word; line-height:1.4; }
.ifsc-sugg-badge { display:inline-block; font-size:10px; font-weight:700; padding:2px 8px; border-radius:99px; margin-top:4px; }
.ifsc-badge-in  { background:var(--ifsc-green-lite); color:#065f46; }
.ifsc-badge-out { background:var(--ifsc-amber-lite); color:#78350f; }

.ifsc-addr-confirmed { display:flex; align-items:center; gap:10px; padding:13px 16px; background:var(--ifsc-green-lite); border:1.5px solid #a7f3d0; border-radius:var(--ifsc-rs); margin-top:10px; font-size:13px; font-weight:600; color:#065f46; }
.ifsc-addr-confirmed svg { stroke:#059669; flex-shrink:0; }
.ifsc-addr-change { margin-left:auto; background:none; border:none; color:#059669; font-size:12px; font-weight:700; cursor:pointer; padding:3px 8px; border-radius:4px; font-family:var(--ifsc-font); text-decoration:underline; flex-shrink:0; }
.ifsc-out-zone-warn { margin-top:10px; padding:12px 14px; background:var(--ifsc-amber-lite); border:1.5px solid #fde68a; border-radius:var(--ifsc-rs); font-size:13px; color:#78350f; line-height:1.5; }

/* Confirm */
.ifsc-confirm-card { background:var(--ifsc-g50); border:1.5px solid var(--ifsc-g200); border-radius:var(--ifsc-rs); padding:18px 20px; margin-bottom:18px; display:flex; flex-direction:column; }
.ifsc-confirm-row { display:flex; align-items:baseline; gap:12px; padding:10px 0; border-bottom:1px solid var(--ifsc-g200); font-size:14px; }
.ifsc-confirm-row:last-child { border-bottom:none; }
.ifsc-cr-label { font-size:12px; font-weight:700; color:var(--ifsc-g500); white-space:nowrap; min-width:80px; }
.ifsc-cr-val { font-weight:600; color:var(--ifsc-g900); line-height:1.5; }

.ifsc-confirm-btn { width:100%; display:flex; align-items:center; justify-content:center; gap:8px; padding:16px 20px; background:linear-gradient(135deg,#059669,#047857); color:#fff; border:none; border-radius:var(--ifsc-rs); font-size:15px; font-weight:700; font-family:var(--ifsc-font); cursor:pointer; box-shadow:0 6px 22px rgba(5,150,105,.3); transition:all .18s; -webkit-tap-highlight-color:transparent; letter-spacing:-.1px; }
.ifsc-confirm-btn:hover:not(:disabled) { background:linear-gradient(135deg,#047857,#065f46); transform:translateY(-1px); box-shadow:0 10px 32px rgba(5,150,105,.4); }
.ifsc-confirm-btn:disabled { opacity:.65; cursor:not-allowed; transform:none; box-shadow:none; }
@keyframes ifsc-btn-spin { to { transform:rotate(360deg); } }
.ifsc-btn-spinner { width:16px; height:16px; border:2.5px solid rgba(255,255,255,.35); border-top-color:#fff; border-radius:50%; animation:ifsc-btn-spin .6s linear infinite; flex-shrink:0; }
.ifsc-confirm-err { margin-top:12px; font-size:13px; font-weight:600; color:var(--ifsc-red); text-align:center; min-height:18px; line-height:1.5; }

/* Success */
.ifsc-success { padding:36px 24px 40px; text-align:center; }
@keyframes ifsc-fade-up { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
.ifsc-success:not(.ifsc-hidden) { animation:ifsc-fade-up .35s ease; }
.ifsc-success-icon { width:80px; height:80px; margin:0 auto 20px; }
.ifsc-success-icon svg { width:80px; height:80px; display:block; }
@keyframes ifsc-check-circle { to { stroke-dashoffset:0; } }
@keyframes ifsc-check-tick    { to { stroke-dashoffset:0; } }
.ifsc-success-circle { stroke:#059669; stroke-width:2; fill:none; stroke-dasharray:166; stroke-dashoffset:166; animation:ifsc-check-circle .6s ease .1s forwards; }
.ifsc-success-tick   { stroke:#059669; stroke-width:2.8; fill:none; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:48; stroke-dashoffset:48; animation:ifsc-check-tick .35s ease .8s forwards; }
.ifsc-success-title { font-size:22px; font-weight:800; color:var(--ifsc-g900); letter-spacing:-.3px; margin-bottom:16px; }
.ifsc-success-detail { display:inline-block; background:var(--ifsc-green-lite); border:1.5px solid #a7f3d0; border-radius:var(--ifsc-rs); padding:16px 22px; font-size:14px; font-weight:600; color:#065f46; line-height:1.75; margin-bottom:16px; text-align:left; }
.ifsc-suc-row { display:flex; align-items:flex-start; gap:8px; margin-bottom:4px; }
.ifsc-suc-row:last-child { margin-bottom:0; }
.ifsc-success-sms { font-size:13px; color:var(--ifsc-g500); margin-top:4px; }

.tp-square-note { text-align:center; font-size:12px; color:#94a3b8; margin-top:10px; }

/* Responsive */
@media(max-width:480px){
  .ifsc-header-inner{padding:18px 16px 16px;} .ifsc-header-title{font-size:16px;}
  .ifsc-panel{padding:18px 16px;} .ifsc-steps{padding:12px 16px;}
  .ifsc-slots-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:6px;}
  .ifsc-slot{min-height:56px;padding:11px 8px;} .ifsc-slot-start{font-size:13px;}
  .ifsc-success{padding:28px 16px 32px;}
}
@media(max-width:340px){
  .ifsc-cal-days{gap:2px;} .ifsc-slots-grid{grid-template-columns:repeat(3,1fr);}
}

/* ═══ ADMIN PAGE ════════════════════════════════════════════════ */

.ifix-sched-admin { max-width:1280px; font-family:var(--ifsc-font); }
.isa-head { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:24px; flex-wrap:wrap; gap:12px; }
.isa-page-title { font-size:22px; font-weight:800; color:#0f172a; margin:0 0 3px; letter-spacing:-.4px; }
.isa-page-sub { font-size:13px; color:#64748b; margin:0; }
.isa-mode-pill { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:99px; font-size:12px; font-weight:700; }
.mode-native { background:#d1fae5; color:#065f46; border:1px solid #a7f3d0; }
.mode-square { background:#eff6ff; color:#1d4ed8; border:1px solid #bfdbfe; }
.isa-layout { display:grid; grid-template-columns:430px 1fr; gap:18px; align-items:start; }
@media(max-width:1060px){ .isa-layout{grid-template-columns:1fr;} }
.isa-col-left,.isa-col-right { display:flex; flex-direction:column; gap:14px; }
.isa-card { background:#fff; border:1px solid #e2e8f0; border-radius:14px; box-shadow:0 2px 10px rgba(15,23,42,.07); padding:22px 24px; transition:box-shadow .2s; }
.isa-card:hover { box-shadow:0 4px 20px rgba(15,23,42,.10); }
.isa-card-title { font-size:14px; font-weight:700; color:#0f172a; margin:0 0 16px; padding-bottom:12px; border-bottom:1px solid #f1f5f9; }
.isa-card-head-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; padding-bottom:12px; border-bottom:1px solid #f1f5f9; flex-wrap:wrap; gap:8px; }
.isa-count-pill { display:inline-flex; align-items:center; padding:3px 10px; border-radius:99px; font-size:11px; font-weight:700; background:#e8f2ff; color:#1860f0; }
.isa-mode-group { display:flex; flex-direction:column; gap:10px; }
.isa-mode-opt { display:flex; align-items:flex-start; gap:14px; padding:16px; border:2px solid #e2e8f0; border-radius:9px; cursor:pointer; transition:all .15s; position:relative; }
.isa-mode-opt:hover { border-color:#1860f0; background:#e8f2ff; }
.isa-mode-opt.is-sel { border-color:#1860f0; background:linear-gradient(135deg,#e8f2ff,#f5f3ff); box-shadow:0 0 0 3px rgba(24,96,240,.1); }
.isa-mode-ico { font-size:24px; flex-shrink:0; margin-top:2px; }
.isa-mode-name { font-size:14px; font-weight:700; color:#0f172a; display:block; margin-bottom:3px; }
.isa-mode-desc { font-size:12px; color:#64748b; line-height:1.5; }
.isa-mode-radio { position:absolute; top:16px; right:16px; width:16px; height:16px; accent-color:#1860f0; cursor:pointer; }
.isa-rules-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; margin-bottom:16px; }
@media(max-width:560px){ .isa-rules-grid{grid-template-columns:1fr;} }
.isa-field { display:flex; flex-direction:column; gap:5px; }
.isa-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.7px; color:#64748b; }
.isa-hint { font-size:11px; color:#94a3b8; margin:0; }
.isa-hint-inline { font-size:11px; color:#94a3b8; font-weight:400; text-transform:none; letter-spacing:0; }
.isa-input { border:1.5px solid #e2e8f0; border-radius:9px; padding:8px 11px; font-size:13px; font-family:var(--ifsc-font); color:#0f172a; background:#fff; width:100%; transition:all .15s; }
.isa-input:focus { border-color:#1860f0; outline:none; box-shadow:0 0 0 3px rgba(24,96,240,.1); }
.isa-textarea { resize:vertical; min-height:76px; }
.isa-toggle { display:inline-flex; cursor:pointer; }
.isa-toggle input { position:absolute; opacity:0; width:0; height:0; }
.isa-toggle-knob { position:relative; display:block; width:42px; height:23px; border-radius:12px; background:#cbd5e1; transition:background .2s; }
.isa-toggle-knob::after { content:''; position:absolute; top:3px; left:3px; width:17px; height:17px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.2); transition:transform .2s; }
.isa-toggle input:checked + .isa-toggle-knob { background:linear-gradient(135deg,#10b981,#059669); }
.isa-toggle input:checked + .isa-toggle-knob::after { transform:translateX(19px); }
.isa-form-foot { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.isa-msg { font-size:12px; font-weight:700; min-height:18px; }
.isa-msg.ok{color:#059669;} .isa-msg.err{color:#dc2626;}
.isa-btn { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:9px; font-size:13px; font-weight:700; font-family:var(--ifsc-font); cursor:pointer; border:1.5px solid transparent; transition:all .15s; white-space:nowrap; -webkit-tap-highlight-color:transparent; }
.isa-btn-primary { background:linear-gradient(135deg,#1860f0,#4f46e5); color:#fff; border-color:#1860f0; box-shadow:0 4px 14px rgba(24,96,240,.28); }
.isa-btn-primary:hover { transform:translateY(-1px); box-shadow:0 8px 22px rgba(24,96,240,.38); }
.isa-btn:not(.isa-btn-primary):not(.isa-btn-danger):not(.isa-btn-icon) { background:#fff; color:#334155; border-color:#e2e8f0; box-shadow:0 1px 3px rgba(15,23,42,.06); }
.isa-btn:not(.isa-btn-primary):not(.isa-btn-danger):not(.isa-btn-icon):hover { background:#f8fafc; border-color:#cbd5e1; }
.isa-btn-danger { background:linear-gradient(135deg,#ef4444,#dc2626); color:#fff; border-color:#dc2626; }
.isa-btn-danger:hover { transform:translateY(-1px); box-shadow:0 6px 18px rgba(220,38,38,.32); }
.isa-btn-icon { width:30px; height:30px; border-radius:50%; background:#fff; border:1.5px solid #e2e8f0; display:flex; align-items:center; justify-content:center; font-size:16px; cursor:pointer; transition:all .15s; padding:0; }
.isa-btn-icon:hover { background:#e8f2ff; border-color:#1860f0; color:#1860f0; }
.isa-btn-sm{padding:5px 12px;font-size:12px;} .isa-btn-xs{padding:4px 10px;font-size:11px;border-radius:6px;}
.isa-week-grid { display:flex; flex-direction:column; }
.isa-day-row { display:grid; grid-template-columns:40px 100px 1fr 90px 70px; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid #f1f5f9; transition:background .12s; }
.isa-day-row:last-child{border-bottom:none;} .isa-day-row.is-off{opacity:.55;}
.isa-day-row:hover { background:#f8fafc; margin:0 -8px; padding:10px 8px; border-radius:9px; }
.isa-day-name{font-size:13px;font-weight:600;color:#0f172a;}
.isa-day-times{display:flex;align-items:center;gap:6px;}
.isa-time{border:1.5px solid #e2e8f0;border-radius:7px;padding:6px 8px;font-size:12px;font-family:var(--ifsc-font);color:#0f172a;background:#fff;width:90px;transition:all .15s;}
.isa-time:focus{border-color:#1860f0;outline:none;}
.isa-time-arrow{color:#94a3b8;font-size:11px;}
.isa-slot-sel{border:1.5px solid #e2e8f0;border-radius:7px;padding:6px 8px;font-size:12px;font-family:var(--ifsc-font);color:#334155;background:#fff;cursor:pointer;width:90px;}
.isa-badge-on{background:#d1fae5;color:#065f46;border-radius:99px;padding:2px 8px;font-size:10px;font-weight:700;}
.isa-badge-off{background:#f1f5f9;color:#64748b;border-radius:99px;padding:2px 8px;font-size:10px;font-weight:700;}
@media(max-width:760px){.isa-day-row{grid-template-columns:40px 80px 1fr 70px;}.isa-day-badge{display:none;}}
@media(max-width:540px){.isa-day-row{grid-template-columns:40px 1fr;}.isa-day-times{grid-column:1/-1;}.isa-slot-sel,.isa-day-badge{display:none;}}
.isa-today-list{display:flex;flex-direction:column;gap:10px;}
.isa-apt-card{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:9px;padding:14px 16px;transition:all .15s;}
.isa-apt-card:hover{border-color:#1860f0;background:#e8f2ff;}
.isa-apt-time{font-size:12px;font-weight:700;color:#1860f0;margin-bottom:5px;}
.isa-apt-name{font-size:14px;font-weight:700;color:#0f172a;}
.isa-apt-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px;font-size:12px;color:#64748b;}
.isa-apt-addr{font-size:12px;color:#64748b;margin-top:4px;word-break:break-word;}
.isa-apt-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;}
.isa-cal-wrap{}
.isa-cal-nav{display:flex;align-items:center;gap:8px;}
.isa-cal-month-label{font-size:14px;font-weight:700;color:#0f172a;min-width:140px;text-align:center;}
.isa-cal-grid-inner{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:12px;user-select:none;}
.isa-cal-dh{text-align:center;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#64748b;padding:4px 0;}
.isa-cal-d { position:relative; width:100%; padding-bottom:100%; border-radius:8px; cursor:pointer; transition:all .15s; border:1.5px solid transparent; -webkit-tap-highlight-color:transparent; }
.isa-cal-d-inner { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:12px; font-weight:600; gap:2px; }
.isa-cal-d.ac-empty{cursor:default;pointer-events:none;}
.isa-cal-d.ac-today{border-color:#1860f0 !important;font-weight:800;}
.isa-cal-d.ac-blocked{background:#fee2e2;color:#991b1b;} .isa-cal-d.ac-blocked:hover{background:#fecaca;}
.isa-cal-d.ac-closed{background:#f1f5f9;color:#94a3b8;cursor:not-allowed;pointer-events:none;}
.isa-cal-d.ac-open{background:#d1fae5;color:#065f46;} .isa-cal-d.ac-open:hover{background:#a7f3d0;border-color:#10b981;}
.isa-cal-d.ac-has-apts::after{content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:#1860f0;}
.isa-cal-day-num{font-size:13px;line-height:1;} .isa-cal-day-cnt{font-size:9px;opacity:.75;}
.isa-block-form{margin-top:14px;padding:15px;background:#fef3c7;border:1.5px solid #fde68a;border-radius:9px;}
.isa-block-title{font-size:13px;font-weight:700;color:#92400e;margin-bottom:10px;}
.isa-cal-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:11px;color:#64748b;align-items:center;}
.isa-leg{display:flex;align-items:center;gap:5px;} .isa-dot{width:8px;height:8px;border-radius:50%;display:inline-block;}
.dot-avail{background:#10b981;} .dot-full{background:#dc2626;} .dot-blocked{background:#d97706;} .dot-off{background:#94a3b8;}
#isa-month-apts{max-height:380px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.isa-month-apt{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #f1f5f9;font-size:13px;}
.isa-month-apt:last-child{border-bottom:none;}
.isa-month-time{font-size:12px;font-weight:700;color:#1860f0;} .isa-month-name{font-weight:600;color:#0f172a;} .isa-month-device,.isa-month-addr{font-size:11px;color:#64748b;word-break:break-word;}
.isa-empty{display:flex;flex-direction:column;align-items:center;padding:32px 20px;text-align:center;color:#64748b;font-size:13px;}
.isa-empty-ico{font-size:36px;margin-bottom:10px;}
.isa-loading{display:flex;justify-content:center;align-items:center;gap:8px;padding:24px;color:#64748b;font-size:13px;}
.isa-spinner{width:18px;height:18px;border:3px solid #e2e8f0;border-top-color:#1860f0;border-radius:50%;animation:ifsc-spin .7s linear infinite;}
