*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue:#1974CE;--blue-light:#e8f1fb;--blue-dark:#0d4f8a;--blue-pale:#f0f7ff;
  --green:#22c55e;--green-light:#dcfce7;
  --amber:#f59e0b;--amber-light:#fef3c7;
  --red:#ef4444;--red-light:#fee2e2;
  --purple:#8b5cf6;--purple-light:#ede9fe;
  --pink:#F59DAF;--deep-blue:#2C5477;
  --ink:#1a1a2e;--ink-soft:#444;--ink-pale:#717171;
  --border:#e5e5e5;--bg:#fafafa;--white:#fff;
  --shadow-sm:0 1px 2px rgba(0,0,0,0.05);
  --shadow-md:0 4px 6px rgba(0,0,0,0.07);
  --shadow-lg:0 10px 15px rgba(0,0,0,0.1);
  --r-sm:4px;--r-md:8px;--r-lg:16px;--r-xl:20px;--r-full:9999px;
}
html,body{height:100%;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5;font-size:15px;-webkit-font-smoothing:antialiased}

/* TOP BAR — compact single-row sticky ~56px */
.topbar{position:sticky;top:0;z-index:300;background:var(--white);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:0 20px;height:56px;box-shadow:var(--shadow-sm)}
.topbar-brand{display:flex;align-items:center;gap:9px;flex-shrink:0}
.topbar-logo{height:36px;width:auto;flex-shrink:0}
.topbar-title{font-family:'Outfit',sans-serif;font-size:1rem;font-weight:700;color:var(--blue);white-space:nowrap}
.daily-pun-bar{background:var(--blue-pale);border-bottom:1px solid var(--border);padding:6px 20px;text-align:center;font-size:.8rem;color:var(--ink-soft);font-style:italic;font-weight:500}
.topbar-divider{width:1px;height:24px;background:var(--border);flex-shrink:0}
.loc-toggle{display:flex;align-items:center;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--r-full);padding:3px;gap:2px;flex-shrink:0}
.loc-btn{padding:5px 14px;border-radius:var(--r-full);border:none;background:none;font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:all .15s;white-space:nowrap;min-height:28px}
.loc-btn:hover{color:var(--blue)}
.loc-btn.active{background:var(--blue);color:var(--white);box-shadow:var(--shadow-sm)}
.topbar-spacer{flex:1}
.topbar-stats{font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:600;color:var(--ink-soft);white-space:nowrap;flex-shrink:0}
.topbar-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.topbar-clock{font-family:'Outfit',sans-serif;font-size:1.05rem;font-weight:700;color:var(--ink);letter-spacing:.02em;white-space:nowrap}
.status-dot{width:8px;height:8px;border-radius:50%;background:var(--green);transition:background .3s;flex-shrink:0}
.status-dot.error{background:var(--red)}
.status-dot.loading{background:var(--amber);animation:pulse 1s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes toastIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.refresh-btn{background:none;border:1.5px solid var(--border);border-radius:var(--r-md);padding:6px 8px;font-family:'DM Sans',sans-serif;font-size:.75rem;font-weight:600;color:var(--ink-soft);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;min-height:32px;min-width:32px}
.refresh-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-pale)}
.refresh-btn.spinning .r-icon{display:inline-block;animation:spin .7s linear infinite}

/* QUICK LINKS — compact icon+label pills */
.quick-links-row{background:var(--white);border-bottom:1px solid var(--border);padding:6px 20px;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;justify-content:center}
.quick-links-row::-webkit-scrollbar{display:none}
.ql-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--white);border:1.5px solid var(--border);border-radius:var(--r-full);font-family:'DM Sans',sans-serif;font-size:.75rem;font-weight:600;color:var(--ink-soft);cursor:pointer;text-decoration:none;transition:all .15s;flex-shrink:0;min-height:36px;white-space:nowrap}
.ql-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-pale)}
.ql-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ql-btn-icon{font-size:14px;flex-shrink:0}

/* LOCATION DASHBOARD */
.loc-dashboard{background:var(--white);border-bottom:2px solid var(--border);padding:16px 20px 14px}
.loc-dashboard-inner{max-width:1280px;margin:0 auto}
.loc-dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.loc-dashboard-title{font-family:'Outfit',sans-serif;font-size:1.1rem;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:8px}
.loc-dashboard-title .loc-pin{color:var(--blue)}
.loc-dashboard-date{font-size:.82rem;font-weight:600;color:var(--ink-soft)}
.dash-rollup{display:flex;gap:12px;margin-bottom:14px}
.dash-rollup-card{flex:1;padding:16px 20px;border-radius:var(--r-lg);text-align:center;border:2px solid var(--border)}
.dash-rollup-card.here-now{background:var(--blue-pale);border-color:var(--blue);border-left:5px solid var(--blue)}
.dash-rollup-card.checked-out{background:var(--bg);border-left:5px solid var(--green)}
.dash-rollup-num{font-family:'Outfit',sans-serif;font-size:2.4rem;font-weight:800;line-height:1;color:var(--ink)}
.dash-rollup-card.here-now .dash-rollup-num{color:var(--blue-dark)}
.dash-rollup-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-top:4px}
.dash-services{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.dash-svc-card{padding:12px 14px;border-radius:var(--r-lg);border:2px solid var(--border);border-left:4px solid transparent}
.dash-svc-card.svc-daycare{border-left-color:var(--blue);background:var(--blue-pale)}
.dash-svc-card.svc-grooming{border-left-color:var(--purple);background:var(--purple-light)}
.dash-svc-card.svc-training{border-left-color:var(--green);background:var(--green-light)}
.dash-svc-card.svc-boarding{border-left-color:var(--amber);background:var(--amber-light)}
.dash-svc-name{font-family:'Outfit',sans-serif;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink);margin-bottom:6px}
.dash-svc-stats{display:flex;flex-direction:column;gap:2px}
.dash-svc-row{font-size:.78rem;font-weight:600;color:var(--ink-soft);display:flex;justify-content:space-between}
.dash-svc-row .val{font-weight:800;color:var(--ink)}
@media(max-width:768px){
  .dash-services{grid-template-columns:repeat(2,1fr)}
  .dash-rollup{gap:8px}
  .dash-rollup-num{font-size:1.8rem}
}
@media(max-width:480px){
  .dash-services{grid-template-columns:1fr 1fr}
}

/* MAIN */
.main-content{max-width:1280px;margin:0 auto;padding:20px 20px 80px;display:flex;flex-direction:column;gap:24px}

/* SECTION */
.section-block{background:var(--white);border:2px solid var(--border);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-sm);animation:fadeIn .3s ease}
.section-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:2px solid var(--border);border-left:5px solid transparent}
.section-block.daycare .section-header{border-left-color:var(--blue);background:var(--blue-pale)}
.section-block.grooming .section-header{border-left-color:var(--purple);background:var(--purple-light)}
.section-block.training .section-header{border-left-color:var(--green);background:var(--green-light)}
.section-block.boarding .section-header{border-left-color:var(--amber);background:var(--amber-light)}
.section-block.resources .section-header{border-left-color:var(--deep-blue);background:#f0f4f8}
.section-title{font-family:'Outfit',sans-serif;font-size:1.05rem;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px}
.section-icon{font-size:18px}
.section-count{font-family:'Outfit',sans-serif;font-size:.72rem;font-weight:800;padding:3px 10px;border-radius:var(--r-full);background:var(--blue);color:var(--white)}
.grooming .section-count{background:var(--purple)}
.training .section-count{background:var(--green)}
.boarding .section-count{background:var(--amber);color:var(--ink)}
.section-body{padding:20px}
.section-loading{display:flex;align-items:center;gap:10px;padding:20px;color:var(--ink-pale);font-size:.85rem}
.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
.section-error{padding:16px 20px;background:var(--red-light);border-radius:var(--r-md);font-size:.83rem;color:var(--red);font-weight:500;display:none}
.section-empty{padding:32px 20px;text-align:center;color:var(--ink-pale);font-size:.88rem}

/* SERVICES ROW — grooming + training side by side */
.services-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media(max-width:700px){.services-row{grid-template-columns:1fr}}

/* LOC COLUMNS */
.loc-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.loc-col-header{font-family:'Outfit',sans-serif;font-size:1.15rem;font-weight:800;color:var(--blue-dark);text-transform:uppercase;letter-spacing:.04em;margin-bottom:14px;padding:10px 14px;border-bottom:3px solid var(--blue);background:var(--blue-pale);border-radius:var(--r-md) var(--r-md) 0 0;display:flex;align-items:center;gap:10px}
.loc-col-addr{font-size:.78rem;font-weight:600;color:var(--ink-soft);text-transform:none;letter-spacing:0}

/* SUB GROUPS */
.sub-group{margin-bottom:18px}
.sub-group:last-child{margin-bottom:0}
.sub-group-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);margin-bottom:8px;padding-left:2px}

/* DOG CARD GRID — 2-column on desktop, 1 on mobile */
.dog-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(max-width:768px){.dog-card-grid{grid-template-columns:1fr}}

/* DOG CARD — stacked layout v5 */
.dog-card{background:var(--white);border:2px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:all .18s;position:relative}
.dog-card:hover{border-color:var(--blue);background:#f8fbff;box-shadow:0 4px 12px rgba(25,116,206,.1)}
.dog-card.checked-in{border-left:4px solid var(--green)}
.dog-card.arriving{border-left:4px solid var(--blue)}
.dog-card.no-show{background:#FEF2F2;border-color:var(--red);border-left:4px solid var(--red)}
.grooming-row.no-show{background:#FEF2F2;border-color:var(--red)}
.boarding-card.no-show{background:#FEF2F2;border-color:var(--red);border-left:4px solid var(--red)}
.dog-card.safety-hold{background:var(--red-light);border-color:var(--red)}
.dog-card.safety-review{background:var(--amber-light);border-color:var(--amber)}
.dog-card.birthday-today{border-top:3px solid #e879a8}
.birthday-badge{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#fce4ec,#f8bbd0);color:#ad1457;font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:20px;letter-spacing:.02em;white-space:nowrap}

/* Card top row: safety badge left, action button right */
.dog-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dog-card-top-left{display:flex;align-items:center;gap:6px}

/* Card body row: photo + info */
.dog-card-body{display:flex;align-items:center;gap:12px}
.dog-photo{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--border);background:var(--blue-pale);flex-shrink:0}
.dog-info{flex:1;min-width:0}
.dog-name{font-family:'Outfit',sans-serif;font-size:.98rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dog-owner-row{display:flex;align-items:center;gap:4px;font-size:.82rem;color:var(--ink-soft);margin-top:1px;flex-wrap:wrap}
.owner-phone-link{color:var(--blue);text-decoration:none;font-weight:600;white-space:nowrap}
.owner-phone-link:hover{text-decoration:underline}
.dog-meta{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}

/* Service pills */
.svc-pill{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 10px;border-radius:var(--r-full);white-space:nowrap}
.svc-pill.daycare-full{background:var(--blue-light);color:var(--blue-dark)}
.svc-pill.daycare-half{background:#dbeafe;color:#1d4ed8}
.svc-pill.daycare-power{background:#e0e7ff;color:#4338ca}
.svc-pill.grooming{background:var(--purple-light);color:#5b21b6}
.svc-pill.training{background:var(--green-light);color:#15803d}
.svc-pill.boarding{background:var(--amber-light);color:#92400e}
.svc-pill.default{background:var(--bg);color:var(--ink-soft);border:1px solid var(--border)}

/* Safety badge */
.safety-badge{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:9999px;white-space:nowrap;flex-shrink:0}
.safety-badge.pass{background:var(--green-light);color:#15803d}
.safety-badge.review{background:var(--amber-light);color:#92400e}
.safety-badge.hold{background:var(--red-light);color:#b91c1c}
.safety-badge.unknown{background:var(--bg);color:var(--ink-pale);border:1px solid var(--border)}
.docs-badge{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:9999px;white-space:nowrap;background:#fef3c7;color:#92400e;border:1px solid #fbbf24}
.weight-pill{font-size:.62rem;font-weight:700;padding:2px 7px;border-radius:9999px;white-space:nowrap;background:#f3f4f6;color:#374151}
.dog-special-note{font-size:.72rem;color:var(--ink-pale);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-top:2px}
.care-flags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.care-flag{font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:4px;white-space:nowrap}
.care-flag.meds{background:#fee2e2;color:#b91c1c}
.care-flag.feed{background:#dbeafe;color:#1d4ed8}
.care-flag.notreats{background:#fef9c3;color:#854d0e}
.care-flag.nap{background:#ede9fe;color:#6d28d9}

/* Package badge */
.pkg-pill{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:9999px;white-space:nowrap}
.pkg-pill.passes{background:#dbeafe;color:#1d4ed8}
.pkg-pill.unlimited{background:var(--green-light);color:#15803d}
.pkg-pill.payg{background:var(--bg);color:var(--ink-pale);border:1px solid var(--border)}

.dog-time{font-size:.8rem;color:var(--ink-soft);font-weight:600}
.dog-actions{display:flex;gap:6px;flex-shrink:0}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:8px 14px;border-radius:var(--r-md);border:1.5px solid var(--border);font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap;min-height:36px;background:var(--white);color:var(--ink-soft)}
.btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-pale)}
.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-checkin{background:var(--blue-pale);border-color:var(--blue);color:var(--blue)}
.btn-checkin:hover{background:var(--blue);color:var(--white)}
.btn-confirm{background:var(--amber-light);border-color:var(--amber);color:#92400e}
.btn-confirm:hover{background:var(--amber);color:var(--white);border-color:var(--amber)}
.btn-checkout{background:var(--green-light);border-color:var(--green);color:#15803d}
.btn-checkout:hover{background:var(--green);color:var(--white)}
.btn-noshow{background:var(--bg);border-color:var(--border);color:var(--ink-pale);font-size:.72rem}
.btn-noshow:hover{background:var(--amber-light);border-color:var(--amber);color:#92400e}
.btn-overdue{background:var(--bg);border-color:var(--border);color:var(--ink-pale);font-size:.72rem}
.btn-overdue:hover{background:var(--red-light);border-color:var(--red);color:var(--red)}
.btn-primary{background:var(--blue);border-color:var(--blue);color:var(--white)}
.btn-primary:hover{background:var(--blue-dark);border-color:var(--blue-dark)}

/* GROOMING TIMELINE */
.grooming-timeline{display:flex;flex-direction:column;gap:8px}
.grooming-row{display:flex;align-items:center;gap:14px;background:var(--white);border:2px solid var(--border);border-radius:var(--r-lg);padding:12px 16px;transition:all .18s;border-left:4px solid var(--purple-light)}
.grooming-row:hover{border-color:var(--purple);background:#faf5ff;box-shadow:0 4px 12px rgba(139,92,246,.08)}
.grooming-row.checked-in{border-left-color:var(--purple)}
.grooming-time{font-family:'Outfit',sans-serif;font-size:.95rem;font-weight:700;color:var(--purple);width:54px;flex-shrink:0;text-align:center;line-height:1.1}
.grooming-time-ampm{display:block;font-family:'DM Sans',sans-serif;font-size:.68rem;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}
.grooming-divider{width:1px;height:36px;background:var(--border);flex-shrink:0}
.grooming-info{flex:1;min-width:0}
.grooming-dog{font-family:'Outfit',sans-serif;font-size:.95rem;font-weight:700;color:var(--ink)}
.grooming-detail{font-size:.82rem;color:var(--ink-soft);margin-top:2px}
.dog-name-row{display:flex;align-items:center;gap:8px}

/* TRAINING */
.training-grid{display:flex;flex-direction:column;gap:10px}
.training-class-card{display:flex;align-items:center;gap:14px;background:var(--white);border:2px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;transition:all .18s;border-left:4px solid var(--green-light)}
.training-class-card:hover{border-color:var(--green);background:#f0fdf4}
.training-class-time{font-family:'Outfit',sans-serif;font-size:.95rem;font-weight:700;color:var(--green);width:70px;flex-shrink:0;text-align:center}
.training-class-info{flex:1;min-width:0}
.training-class-name{font-family:'Outfit',sans-serif;font-size:.95rem;font-weight:700;color:var(--ink)}
.training-class-detail{font-size:.76rem;color:var(--ink-soft);margin-top:2px}
.training-class-enroll{font-size:.72rem;font-weight:600;color:var(--green);background:var(--green-light);padding:3px 8px;border-radius:var(--r-full);flex-shrink:0}

/* BOARDING — Kanban layout */
.boarding-kanban{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
@media(max-width:900px){.boarding-kanban{grid-template-columns:1fr}}
.boarding-kanban-col{background:var(--bg);border-radius:var(--r-lg);padding:12px;min-height:120px}
.boarding-kanban-col.col-arriving{background:#FFF8E1}
.boarding-kanban-col.col-staying{background:#E8F5E9}
.boarding-kanban-col.col-departing{background:#E3F2FD}
.boarding-kanban-header{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:10px;padding-bottom:6px;border-bottom:2px solid var(--border)}
.boarding-kanban-cards{display:flex;flex-direction:column;gap:10px}
.boarding-kanban-empty{text-align:center;padding:24px 12px;color:var(--ink-pale);font-size:.85rem;font-style:italic}
.boarding-grid{display:flex;flex-direction:column;gap:12px}
.boarding-card{background:var(--white);border:2px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:all .18s;border-left:4px solid var(--amber)}
.boarding-card:hover{box-shadow:var(--shadow-md);border-color:var(--amber)}
.boarding-card-top{display:flex;align-items:flex-start;gap:14px;padding:14px 16px}
.boarding-info{flex:1;min-width:0}
.boarding-dog-name{font-family:'Outfit',sans-serif;font-size:1.02rem;font-weight:700;color:var(--ink)}
.boarding-owner{font-size:.82rem;color:var(--ink-soft);margin-top:1px}
.boarding-stay{font-size:.78rem;font-weight:600;color:var(--amber);background:var(--amber-light);padding:4px 10px;border-radius:var(--r-full);display:inline-flex;margin-top:6px}
.boarding-pickup{font-size:.82rem;color:var(--ink-soft);margin-top:4px}
.boarding-card-details{padding:0 16px 14px;border-top:1px solid var(--border)}
.boarding-notes-section{padding-top:12px}
.boarding-note-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:5px}
.boarding-note-text{font-size:.8rem;color:var(--ink-soft);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 10px;min-height:36px}
.boarding-spec-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.spec-tag{font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:var(--r-full);background:var(--amber-light);color:#92400e}
.spec-tag.med{background:var(--red-light);color:var(--red)}
.boarding-card-footer{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--border);background:var(--bg)}
.add-note-inline{display:none;margin-top:10px}
.add-note-inline textarea{width:100%;padding:8px 10px;border:1.5px solid var(--border);border-radius:var(--r-md);font-family:'DM Sans',sans-serif;font-size:.82rem;resize:vertical;min-height:64px;outline:none}
.add-note-inline textarea:focus{border-color:var(--amber)}
.footer-spacer{flex:1}

/* RESOURCES */
.resources-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.resource-card{display:flex;align-items:flex-start;gap:12px;padding:16px;background:var(--white);border:2px solid var(--border);border-radius:var(--r-lg);cursor:pointer;text-decoration:none;transition:all .18s;min-height:80px}
.resource-card:hover{border-color:var(--blue);background:var(--blue-pale);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.resource-icon{font-size:22px;flex-shrink:0;margin-top:1px}
.resource-info{flex:1;min-width:0}
.resource-title{font-family:'Outfit',sans-serif;font-size:.88rem;font-weight:700;color:var(--ink)}
.resource-desc{font-size:.8rem;color:var(--ink-soft);margin-top:3px;line-height:1.4}

/* CHECKOUT PANEL */
.checkout-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:400;backdrop-filter:blur(2px)}
.checkout-overlay.open{display:block}
.checkout-panel{position:fixed;top:0;right:0;bottom:0;width:480px;background:var(--white);z-index:401;display:flex;flex-direction:column;box-shadow:-4px 0 24px rgba(0,0,0,.15);transform:translateX(100%);transition:transform .3s cubic-bezier(.32,0,.67,0)}
.checkout-panel.open{transform:translateX(0);transition:transform .3s cubic-bezier(.33,1,.68,1)}
.checkout-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:2px solid var(--border);flex-shrink:0}
.checkout-panel-title{font-family:'Outfit',sans-serif;font-size:1.05rem;font-weight:700;color:var(--ink)}
.panel-close{width:36px;height:36px;border-radius:var(--r-md);border:1.5px solid var(--border);background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--ink-soft);transition:all .15s}
.panel-close:hover{background:var(--red-light);border-color:var(--red);color:var(--red)}
.checkout-panel-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:20px}

/* PANEL INTERNALS */
.co-dog-summary{display:flex;align-items:center;gap:14px;padding:14px;background:var(--blue-pale);border:2px solid var(--blue-light);border-radius:var(--r-lg)}
.co-dog-photo{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--blue-light);flex-shrink:0}
.co-dog-name{font-family:'Outfit',sans-serif;font-size:1.1rem;font-weight:700;color:var(--ink)}
.co-dog-detail{font-size:.78rem;color:var(--ink-soft);margin-top:2px}
.co-duration{font-size:.75rem;font-weight:600;color:var(--blue);background:var(--white);padding:3px 9px;border-radius:var(--r-full);border:1px solid var(--blue-light);margin-top:5px;display:inline-block}
.panel-section-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:10px}
.line-items-table{width:100%;border:1.5px solid var(--border);border-radius:var(--r-md);overflow:hidden}
.line-item-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);font-size:.82rem}
.line-item-row:last-child{border-bottom:none}
.line-item-row.header{background:var(--bg);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);padding:8px 12px}
.li-name{flex:1;font-weight:500}
.li-price{width:70px;text-align:right;font-weight:600;color:var(--ink)}
.li-remove{width:24px;height:24px;border:none;background:none;cursor:pointer;color:var(--ink-pale);display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);font-size:14px;transition:all .15s}
.li-remove:hover{background:var(--red-light);color:var(--red)}
.add-item-row{display:flex;gap:8px;margin-top:8px}
.add-item-select{flex:1;padding:8px 10px;border:1.5px solid var(--border);border-radius:var(--r-md);font-family:'DM Sans',sans-serif;font-size:.82rem;background:var(--white);outline:none;cursor:pointer}
.add-item-select:focus{border-color:var(--blue)}
.co-total-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--r-md);margin-top:4px}
.co-total-label{font-size:.78rem;font-weight:600;color:var(--ink-soft)}
.co-total-amount{font-family:'Outfit',sans-serif;font-size:1.2rem;font-weight:800;color:var(--ink)}
/* Package checkout banner */
.co-package-banner{padding:14px 16px;background:var(--green-light);border:2px solid #86efac;border-radius:var(--r-lg);margin-bottom:16px}
.co-package-banner-title{font-family:'Outfit',sans-serif;font-size:.92rem;font-weight:700;color:#15803d;margin-bottom:2px}
.co-package-banner-detail{font-size:.82rem;color:#166534}
.co-package-banner-price{font-family:'Outfit',sans-serif;font-size:1.1rem;font-weight:800;color:#15803d;margin-top:4px}
.co-pocket-link{display:inline-block;margin-top:8px;font-size:.78rem;font-weight:600;color:var(--blue);cursor:pointer;border:none;background:none;padding:0;text-decoration:underline;font-family:'DM Sans',sans-serif}
.co-pocket-link:hover{color:var(--blue-dark)}
.co-notes-area{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--r-md);font-family:'DM Sans',sans-serif;font-size:.83rem;min-height:72px;resize:vertical;outline:none}
.co-notes-area:focus{border-color:var(--blue)}

/* INCIDENT */
.incident-toggle-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:all .15s}
.incident-toggle-bar:hover{border-color:var(--red);background:var(--red-light)}
.incident-toggle-label{font-size:.82rem;font-weight:600;color:var(--ink-soft);display:flex;align-items:center;gap:7px}
.toggle-switch{width:38px;height:22px;background:var(--border);border-radius:var(--r-full);position:relative;transition:background .2s;flex-shrink:0}
.toggle-switch::after{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:var(--white);top:3px;left:3px;transition:transform .2s;box-shadow:var(--shadow-sm)}
.toggle-switch.on{background:var(--red)}
.toggle-switch.on::after{transform:translateX(16px)}
.incident-fields{display:none;margin-top:10px;padding:14px;background:var(--red-light);border:1.5px solid #fca5a5;border-radius:var(--r-md)}
.incident-fields.visible{display:block}
.incident-row{display:flex;gap:8px;margin-bottom:8px}
.incident-select,.incident-textarea{width:100%;padding:8px 10px;border:1.5px solid #fca5a5;border-radius:var(--r-md);font-family:'DM Sans',sans-serif;font-size:.82rem;background:var(--white);outline:none}
.incident-select:focus,.incident-textarea:focus{border-color:var(--red)}
.incident-textarea{min-height:64px;resize:vertical}

/* PAYMENT */
.payment-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.payment-option{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border:2px solid var(--border);border-radius:var(--r-lg);background:var(--white);cursor:pointer;transition:all .15s;font-size:.8rem;font-weight:600;color:var(--ink-soft)}
.payment-option:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-pale)}
.payment-option.selected{border-color:var(--blue);background:var(--blue);color:var(--white)}
.pay-icon{font-size:22px}

/* RECEIPT */
.receipt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.receipt-toggle{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:all .15s;font-size:.8rem;font-weight:600;color:var(--ink-soft)}
.receipt-toggle.on{border-color:var(--green);background:var(--green-light);color:#15803d}
.receipt-icon{font-size:16px}

/* PANEL FOOTER */
.checkout-panel-footer{padding:16px 20px;border-top:2px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;gap:8px;background:var(--white)}
.btn-complete-checkout{width:100%;padding:15px;background:var(--green);color:var(--white);border:none;border-radius:var(--r-lg);font-family:'Outfit',sans-serif;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}
.btn-complete-checkout:hover{background:#16a34a;box-shadow:0 4px 16px rgba(34,197,94,.3)}
.btn-complete-checkout:disabled{opacity:.5;cursor:not-allowed}
.btn-cancel-checkout{width:100%;padding:11px;background:none;color:var(--ink-pale);border:1.5px solid var(--border);border-radius:var(--r-lg);font-family:'DM Sans',sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}
.btn-cancel-checkout:hover{color:var(--red);border-color:var(--red);background:var(--red-light)}

/* TOASTS */
.toast-container{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:var(--r-lg);font-family:'DM Sans',sans-serif;font-size:.85rem;font-weight:600;box-shadow:var(--shadow-lg);animation:toastIn .25s ease;pointer-events:auto;white-space:nowrap}
.toast.success{background:var(--green);color:var(--white)}
.toast.error{background:var(--red);color:var(--white)}
.toast.info{background:var(--blue);color:var(--white)}
.toast.warning{background:var(--amber);color:var(--ink)}

/* BOOK A DOG PANEL */
.ql-btn.ql-book{border-color:var(--blue);color:var(--blue);background:var(--blue-pale);border-width:2px;font-weight:700}
.ql-btn.ql-book:hover{background:var(--blue);color:var(--white)}
.ql-divider{width:1px;height:24px;background:var(--border);flex-shrink:0;margin:0 4px}
.book-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:400;backdrop-filter:blur(2px)}
.book-overlay.open{display:block}
.book-panel{position:fixed;top:0;right:0;bottom:0;width:480px;background:var(--white);z-index:401;display:flex;flex-direction:column;box-shadow:-4px 0 24px rgba(0,0,0,.15);transform:translateX(100%);transition:transform .3s cubic-bezier(.32,0,.67,0)}
.book-panel.open{transform:translateX(0);transition:transform .3s cubic-bezier(.33,1,.68,1)}
.book-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:2px solid var(--border);flex-shrink:0}
.book-panel-title{font-family:'Outfit',sans-serif;font-size:1.05rem;font-weight:700;color:var(--ink)}
.book-search-wrap{padding:16px 20px 0;flex-shrink:0}
.book-search-box{position:relative}
.book-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:16px;color:var(--ink-pale);pointer-events:none}
.book-search-input{width:100%;padding:12px 42px 12px 40px;border:2px solid var(--border);border-radius:var(--r-lg);font-family:'DM Sans',sans-serif;font-size:.92rem;outline:none;transition:border-color .15s}
.book-search-input:focus{border-color:var(--blue)}
.book-search-input::placeholder{color:var(--ink-pale)}
.book-search-clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:none;background:none;cursor:pointer;font-size:16px;color:var(--ink-pale);border-radius:50%;display:none;align-items:center;justify-content:center;transition:all .15s}
.book-search-clear:hover{background:var(--bg);color:var(--ink)}
.book-search-clear.visible{display:flex}
.book-results{flex:1;overflow-y:auto;padding:16px 20px}
.book-result-card{border:2px solid var(--border);border-radius:var(--r-lg);margin-bottom:12px;overflow:hidden;transition:all .18s}
.book-result-card:hover{border-color:var(--blue-light);box-shadow:var(--shadow-sm)}
.book-owner-row{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg);border-bottom:1px solid var(--border)}
.book-owner-name{font-family:'Outfit',sans-serif;font-size:.92rem;font-weight:700;color:var(--ink);flex:1}
.book-owner-phone{font-size:.82rem;font-weight:600;color:var(--blue);text-decoration:none;white-space:nowrap}
.book-owner-phone:hover{text-decoration:underline}
.book-owner-email{font-size:.75rem;color:var(--ink-pale);margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.book-pet-row{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.book-pet-row:last-child{border-bottom:none}
.book-pet-photo{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--border);background:var(--blue-pale);flex-shrink:0}
.book-pet-breed{font-size:.78rem;color:var(--ink-soft);margin-top:1px}
.book-vax-badge{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:9999px;white-space:nowrap}
.book-vax-badge.current{background:var(--green-light);color:#15803d}
.book-vax-badge.expiring{background:var(--amber-light);color:#92400e}
.book-vax-badge.expired{background:var(--red-light);color:#b91c1c}
.book-vax-badge.unknown{background:var(--bg);color:var(--ink-pale);border:1px solid var(--border)}
.book-pet-info{flex:1;min-width:140px}
.book-pet-name{font-weight:700;font-size:.88rem;color:var(--ink)}
.book-pet-meta{display:flex;align-items:center;gap:6px;margin-top:2px;flex-wrap:wrap}
.book-pet-loc{font-size:.68rem;font-weight:600;color:var(--ink-pale);text-transform:uppercase;letter-spacing:.04em}
.book-svc-btns{display:flex;gap:5px;flex-shrink:0;flex-wrap:wrap}
.book-svc-btn{padding:6px 11px;border-radius:var(--r-full);border:1.5px solid transparent;font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap;min-height:32px;text-decoration:none;display:inline-flex;align-items:center}
.book-svc-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.book-svc-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.book-svc-btn.svc-daycamp{background:#E3F2FD;color:#1976D2;border-color:#BBDEFB}
.book-svc-btn.svc-daycamp:hover{background:#1976D2;color:var(--white)}
.book-svc-btn.svc-grooming{background:#F3E5F5;color:#7B1FA2;border-color:#E1BEE7}
.book-svc-btn.svc-grooming:hover{background:#7B1FA2;color:var(--white)}
.book-svc-btn.svc-boarding{background:#FFE0B2;color:#F57C00;border-color:#FFCC80}
.book-svc-btn.svc-boarding:hover{background:#F57C00;color:var(--white)}
.book-svc-btn.svc-training{background:#E8F5E9;color:#388E3C;border-color:#C8E6C9}
.book-svc-btn.svc-training:hover{background:#388E3C;color:var(--white)}
.book-svc-btn.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
.book-svc-btn.needs-contract{opacity:.35;cursor:not-allowed;pointer-events:auto}
.book-svc-btn.needs-contract:hover{transform:none;box-shadow:none}
.book-contract-tip{font-size:.72rem;color:var(--red);font-weight:600;line-height:1.4;flex-basis:100%;padding:4px 14px 6px;word-break:break-word}
.book-empty{text-align:center;padding:40px 20px;color:var(--ink-soft)}
.book-empty-icon{font-size:36px;margin-bottom:8px}
.book-empty-text{font-size:.88rem;line-height:1.5}
.book-empty-link{color:var(--blue);font-weight:600;text-decoration:none}
.book-empty-link:hover{text-decoration:underline}
.book-loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--ink-soft)}
.book-loading .spinner{margin-right:10px}
.book-add-dog{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:600;color:var(--blue);text-decoration:none;margin-top:4px}
.book-add-dog:hover{text-decoration:underline}
.book-hold-msg{font-size:.75rem;color:var(--red);font-weight:600;padding:4px 0 2px}
.book-pet-check{width:20px;height:20px;accent-color:var(--blue);cursor:pointer;flex-shrink:0}
.book-pet-row.selected{background:var(--blue-pale);border-color:var(--blue-light)}
.book-action-bar{display:none;padding:14px 20px;border-top:2px solid var(--blue);flex-shrink:0;background:var(--blue-pale);gap:8px;align-items:center}
.book-action-bar.visible{display:flex}
.book-action-bar-count{font-family:'Outfit',sans-serif;font-size:.88rem;font-weight:700;color:var(--blue-dark);flex:1}
.book-action-svc{padding:8px 14px;border-radius:var(--r-full);border:1.5px solid transparent;font-family:'DM Sans',sans-serif;font-size:.75rem;font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap;min-height:36px;display:inline-flex;align-items:center}
.book-action-svc:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.book-action-svc.svc-daycamp{background:#E3F2FD;color:#1976D2;border-color:#BBDEFB}
.book-action-svc.svc-daycamp:hover{background:#1976D2;color:var(--white)}
.book-action-svc.svc-grooming{background:#F3E5F5;color:#7B1FA2;border-color:#E1BEE7}
.book-action-svc.svc-grooming:hover{background:#7B1FA2;color:var(--white)}
.book-action-svc.svc-boarding{background:#FFE0B2;color:#F57C00;border-color:#FFCC80}
.book-action-svc.svc-boarding:hover{background:#F57C00;color:var(--white)}
.book-action-svc.svc-training{background:#E8F5E9;color:#388E3C;border-color:#C8E6C9}
.book-action-svc.svc-training:hover{background:#388E3C;color:var(--white)}
.book-action-svc.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
.book-footer{padding:14px 20px;border-top:2px solid var(--border);flex-shrink:0;background:var(--bg);text-align:center}
.book-footer-text{font-size:.82rem;color:var(--ink-soft)}

@media(max-width:768px){
  .topbar{padding:0 12px;gap:8px}
  .topbar-title{font-size:.88rem}
  .topbar-stats{display:none}
  .main-content{padding:14px 12px 80px;gap:16px}
  .loc-columns{grid-template-columns:1fr}
  .resources-grid{grid-template-columns:repeat(2,1fr)}
  .checkout-panel{width:100%}
  .book-panel{width:100%}
  .client-panel{width:100%}
  .quick-links-row{padding:4px 12px}
  .book-svc-btns{gap:4px}
}
@media(max-width:480px){
  .resources-grid{grid-template-columns:1fr}
}

/* PLAY AREA PILLS (on card front) */
.play-area-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:4px}
.play-pill{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:var(--r-full);white-space:nowrap;letter-spacing:.02em}
.play-pill.east{background:#dbeafe;color:#1d4ed8}
.play-pill.west{background:var(--green-light);color:#15803d}
.play-pill.more{background:var(--bg);color:var(--ink-pale);border:1px solid var(--border)}

/* CLIENT LOOKUP PANEL — reuses book-panel layout */
.client-panel{position:fixed;top:0;right:0;bottom:0;width:520px;background:var(--white);z-index:401;display:flex;flex-direction:column;box-shadow:-4px 0 24px rgba(0,0,0,.15);transform:translateX(100%);transition:transform .3s cubic-bezier(.32,0,.67,0)}
.client-panel.open{transform:translateX(0);transition:transform .3s cubic-bezier(.33,1,.68,1)}
.cl-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:2px solid var(--border);flex-shrink:0}
.cl-title{font-family:'Outfit',sans-serif;font-size:1.05rem;font-weight:700;color:var(--ink)}
.cl-back{background:none;border:none;font-size:.85rem;font-weight:600;color:var(--blue);cursor:pointer;padding:6px 10px;border-radius:var(--r-md);display:none}
.cl-back:hover{background:var(--blue-pale)}
.cl-back.visible{display:inline-flex}
.cl-results{flex:1;overflow-y:auto;padding:12px 20px}
.cl-owner-card{border:2px solid var(--border);border-radius:var(--r-lg);padding:14px;margin-bottom:10px;cursor:pointer;transition:all .15s}
.cl-owner-card:hover{border-color:var(--blue);background:var(--blue-pale)}
.cl-owner-name{font-family:'Outfit',sans-serif;font-size:1rem;font-weight:700;color:var(--ink)}
.cl-owner-meta{font-size:.82rem;color:var(--ink-soft);margin-top:2px;display:flex;flex-wrap:wrap;gap:8px}
.cl-owner-meta a{color:var(--blue);font-weight:600;text-decoration:none}
.cl-owner-meta a:hover{text-decoration:underline}
.cl-owner-pets{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.cl-owner-pet-chip{display:flex;align-items:center;gap:5px;padding:4px 10px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--r-full);font-size:.78rem;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:all .15s}
.cl-owner-pet-chip:hover{border-color:var(--blue);background:var(--blue-pale);color:var(--blue)}
.cl-owner-pet-chip img{width:22px;height:22px;border-radius:50%;object-fit:cover;border:1.5px solid var(--border)}
/* Profile view */
.cl-profile-header{display:flex;align-items:center;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:14px}
.cl-profile-avatar{width:64px;height:64px;border-radius:50%;background:var(--blue-pale);border:3px solid #d4e8ff;display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:var(--blue);flex-shrink:0}
.cl-profile-name{font-family:'Outfit',sans-serif;font-size:1.2rem;font-weight:800;color:var(--ink)}
.cl-profile-sub{font-size:.82rem;color:var(--ink-soft)}
.cl-section{margin-bottom:16px}
.cl-section-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#999;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}
.cl-section-edit{font-size:.78rem;font-weight:600;color:var(--blue);cursor:pointer;text-transform:none;letter-spacing:0}
.cl-section-edit:hover{text-decoration:underline}
.cl-field{font-size:.88rem;color:var(--ink);margin-bottom:6px}
.cl-field-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#999;display:block;margin-bottom:2px}
.cl-field a{color:var(--blue);font-weight:600;text-decoration:none}
.cl-field a:hover{text-decoration:underline}
.cl-contract-row{display:flex;align-items:center;gap:6px;font-size:.85rem;padding:3px 0}
.cl-contract-signed{color:var(--green);font-weight:600}
.cl-contract-unsigned a{color:var(--blue);font-weight:600;text-decoration:none}
.cl-contract-unsigned a:hover{text-decoration:underline}
.cl-dog-card{display:flex;align-items:flex-start;gap:12px;padding:12px;border:1.5px solid var(--border);border-radius:var(--r-lg);margin-bottom:8px;cursor:pointer;transition:all .15s}
.cl-dog-card:hover{border-color:var(--blue);background:var(--blue-pale)}
.cl-dog-photo{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--border);flex-shrink:0;background:var(--bg)}
.cl-dog-info{flex:1;min-width:0}
.cl-dog-name{font-family:'Outfit',sans-serif;font-size:.92rem;font-weight:700;color:var(--ink)}
.cl-dog-meta{font-size:.78rem;color:var(--ink-soft)}
.cl-package-card{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(135deg,var(--blue-pale),#e8f4fd);border:1.5px solid #d4e8ff;border-radius:var(--r-md)}
.cl-package-balance{font-family:'Outfit',sans-serif;font-size:1.4rem;font-weight:800;color:var(--blue)}
.cl-package-label{font-size:.78rem;font-weight:600;color:var(--ink-soft)}

/* Package Purchase Modal */
.pp-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:600;backdrop-filter:blur(2px);justify-content:center;align-items:center}
.pp-overlay.open{display:flex}
.pp-modal{background:var(--white);border-radius:var(--r-xl);width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.25);transform:translateY(40px);opacity:0;transition:transform .3s cubic-bezier(.33,1,.68,1),opacity .3s ease}
.pp-overlay.open .pp-modal{transform:translateY(0);opacity:1}
.pp-header{padding:20px 24px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.pp-header h3{font-family:'Outfit',sans-serif;font-size:1.1rem;font-weight:700;margin:0;color:var(--ink)}
.pp-close{width:36px;height:36px;border:none;background:var(--bg);border-radius:8px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;color:var(--ink-soft)}
.pp-close:hover{background:#eee}
.pp-body{padding:20px 24px;overflow-y:auto;flex:1}
.pp-field{margin-bottom:16px}
.pp-field label{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-pale);margin-bottom:6px}
.pp-field .pp-readonly{font-size:.95rem;font-weight:600;color:var(--ink)}
.pp-field select,.pp-field input[type="text"]{width:100%;padding:10px 12px;border:2px solid var(--border);border-radius:var(--r-md);font-size:.9rem;font-family:'DM Sans',sans-serif;background:var(--white);color:var(--ink);appearance:none;-webkit-appearance:none}
.pp-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' fill='none' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}
.pp-field select:focus,.pp-field input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(25,116,206,.12)}
.pp-price-tag{display:inline-block;margin-top:4px;font-size:.82rem;font-weight:600;color:var(--blue)}
.pp-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end}
.pp-cancel-btn{padding:10px 20px;border:2px solid var(--border);border-radius:var(--r-md);background:var(--white);font-weight:600;cursor:pointer;font-size:.88rem;color:var(--ink-soft)}
.pp-cancel-btn:hover{border-color:#ccc}
.pp-submit-btn{padding:10px 24px;border:2px solid var(--blue);border-radius:var(--r-md);background:var(--blue);color:var(--white);font-weight:700;cursor:pointer;font-size:.88rem}
.pp-submit-btn:hover:not(:disabled){background:var(--blue-dark);border-color:var(--blue-dark)}
.pp-submit-btn:disabled{opacity:.5;cursor:not-allowed}
.pp-add-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border:2px solid var(--blue);border-radius:var(--r-md);background:var(--white);color:var(--blue);font-weight:700;font-size:.78rem;cursor:pointer;margin-top:8px}
.pp-add-btn:hover{background:var(--blue-pale)}

.cl-edit-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.cl-edit-input{width:100%;padding:8px 12px;border:2px solid var(--border);border-radius:var(--r-md);font-family:'DM Sans',sans-serif;font-size:.88rem;color:var(--ink)}
.cl-edit-input:focus{outline:none;border-color:var(--blue)}
.cl-edit-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#999;margin-bottom:3px;display:block}
.cl-edit-actions{display:flex;gap:8px;margin-top:10px}
.cl-save-btn{flex:1;padding:10px;background:var(--blue);color:var(--white);border:none;border-radius:var(--r-md);font-family:'DM Sans',sans-serif;font-size:.88rem;font-weight:700;cursor:pointer}
.cl-save-btn:hover{background:var(--blue-dark)}
.cl-save-btn:disabled{background:#aaa;cursor:wait}
.cl-cancel-btn{padding:10px 16px;background:var(--bg);color:var(--ink-soft);border:1.5px solid var(--border);border-radius:var(--r-md);font-family:'DM Sans',sans-serif;font-size:.88rem;font-weight:600;cursor:pointer}
.cl-cancel-btn:hover{background:#e5e5e5}

/* PET DETAIL MODAL */
.pet-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:500;backdrop-filter:blur(2px);justify-content:center;align-items:flex-end}
.pet-modal-overlay.open{display:flex;align-items:center;justify-content:center}
.pet-modal{background:var(--white);border-radius:var(--r-xl);width:100%;max-width:520px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.25);transform:translateY(40px);opacity:0;transition:transform .3s cubic-bezier(.33,1,.68,1),opacity .3s ease}
.pet-modal-overlay.open .pet-modal{transform:translateY(0);opacity:1}

/* Modal header */
.pm-header{display:flex;align-items:center;gap:14px;padding:20px;border-bottom:2px solid var(--border);flex-shrink:0;position:relative}
.pm-photo{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid var(--border);background:var(--blue-pale);flex-shrink:0}
.pm-header-info{flex:1;min-width:0}
.pm-name{font-family:'Outfit',sans-serif;font-size:1.3rem;font-weight:800;color:var(--ink)}
.pm-breed-age{font-size:.85rem;color:var(--ink-soft);margin-top:2px}
.pm-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:var(--r-md);border:1.5px solid var(--border);background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--ink-soft);transition:all .15s;z-index:1}
.pm-close:hover{background:var(--red-light);border-color:var(--red);color:var(--red)}
.pm-close:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* Edit button */
.pm-edit-btn{position:absolute;top:16px;right:64px;width:40px;height:40px;border-radius:var(--r-md);border:1.5px solid var(--border);background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--ink-soft);transition:all .15s;z-index:1}
.pm-edit-btn:hover{background:var(--blue-light);border-color:var(--blue);color:var(--blue)}
.pm-edit-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.pm-edit-btn.active{background:var(--blue);border-color:var(--blue);color:#fff}

/* Edit footer */
.pm-edit-footer{padding:16px 20px;border-top:1.5px solid var(--border);display:flex;gap:10px;justify-content:flex-end;background:#fff;border-radius:0 0 var(--r-lg) var(--r-lg)}
.pm-save-btn{padding:10px 24px;border-radius:var(--r-md);border:none;background:var(--blue);color:#fff;font-weight:600;font-size:0.9rem;cursor:pointer;transition:all .15s}
.pm-save-btn:hover{background:var(--blue-dark);box-shadow:0 4px 12px rgba(25,116,206,0.25)}
.pm-save-btn:disabled{opacity:0.5;cursor:not-allowed}
.pm-cancel-btn{padding:10px 20px;border-radius:var(--r-md);border:1.5px solid var(--border);background:none;color:var(--ink-soft);font-weight:600;font-size:0.9rem;cursor:pointer;transition:all .15s}
.pm-cancel-btn:hover{border-color:var(--ink-soft);color:var(--ink)}

/* Edit mode field styles */
.pm-edit-input{width:100%;padding:8px 10px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-family:'DM Sans',sans-serif;font-size:0.88rem;color:var(--ink);transition:border-color .15s;box-sizing:border-box}
.pm-edit-input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px rgba(25,116,206,0.12)}
textarea.pm-edit-input{min-height:60px;resize:vertical}
select.pm-edit-input{appearance:auto}
.pm-edit-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 0}
.pm-edit-toggle input[type="checkbox"]{width:18px;height:18px;accent-color:var(--blue)}
.pm-edit-toggle label{font-size:0.88rem;color:var(--ink);cursor:pointer}
.pm-edit-field{margin-bottom:10px}
.pm-edit-field-label{font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--ink-pale);margin-bottom:4px}
.pm-play-checkbox-grid{display:flex;flex-wrap:wrap;gap:6px}
.pm-play-checkbox{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:16px;border:1.5px solid var(--border);font-size:0.78rem;font-weight:600;cursor:pointer;transition:all .15s;user-select:none}
.pm-play-checkbox.east{border-color:#93c5fd;background:#f0f7ff}
.pm-play-checkbox.west{border-color:#86efac;background:#f0fdf4}
.pm-play-checkbox.selected{border-color:var(--blue);background:var(--blue);color:#fff}
.pm-play-checkbox.selected.west{border-color:var(--green);background:var(--green);color:#fff}
.pm-play-checkbox input{display:none}
.pm-save-msg{padding:8px 12px;border-radius:var(--r-sm);font-size:0.85rem;font-weight:600;text-align:center;margin:0 20px 12px}
.pm-save-msg.success{background:var(--green-light);color:#166534}
.pm-save-msg.error{background:var(--red-light);color:#991b1b}

/* Modal body */
.pm-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:18px;-webkit-overflow-scrolling:touch}

/* Modal sections */
.pm-section{display:flex;flex-direction:column;gap:8px}
.pm-section-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#999}
.pm-section-content{display:flex;flex-direction:column;gap:6px}

/* Play area pills in modal */
.pm-play-pills{display:flex;flex-wrap:wrap;gap:6px}
.pm-play-pill{font-size:.78rem;font-weight:700;padding:5px 12px;border-radius:var(--r-full);text-transform:uppercase;letter-spacing:.04em}
.pm-play-pill.east{background:#dbeafe;color:#1d4ed8}
.pm-play-pill.west{background:var(--green-light);color:#15803d}

/* Detail rows */
.pm-row{display:flex;align-items:flex-start;gap:10px;font-size:.88rem;line-height:1.5}
.pm-row-icon{width:20px;text-align:center;flex-shrink:0;font-size:16px}
.pm-row-label{font-weight:600;color:var(--ink-soft);min-width:100px;flex-shrink:0}
.pm-row-value{color:var(--ink);flex:1;word-break:break-word}
.pm-row-value.alert{color:var(--red);font-weight:600}
.pm-row-value.warning{color:var(--amber);font-weight:600}

/* Vax badges */
.pm-vax-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pm-vax-item{display:flex;align-items:center;gap:6px;font-size:.82rem;padding:6px 10px;border-radius:var(--r-md);background:var(--bg);border:1px solid var(--border)}
.pm-vax-item .vax-name{font-weight:600;color:var(--ink)}
.pm-vax-item .vax-date{color:var(--ink-soft);margin-left:auto;white-space:nowrap}
.pm-vax-item.expired{background:var(--red-light);border-color:#fca5a5}
.pm-vax-item.expired .vax-name,.pm-vax-item.expired .vax-date{color:var(--red)}
.pm-vax-item.expiring{background:var(--amber-light);border-color:#fde68a}
.pm-vax-item.expiring .vax-name,.pm-vax-item.expiring .vax-date{color:#92400e}

/* Feeding grid */
.pm-feed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.pm-feed-slot{text-align:center;padding:8px;border-radius:var(--r-md);background:var(--bg);border:1px solid var(--border)}
.pm-feed-slot-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-pale)}
.pm-feed-slot-value{font-size:.82rem;font-weight:600;color:var(--ink);margin-top:2px}
.pm-feed-slot.active{background:var(--blue-pale);border-color:var(--blue-light)}

/* Flag pills */
.pm-flag{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:700;padding:4px 10px;border-radius:var(--r-full)}
.pm-flag.yes{background:var(--green-light);color:#15803d}
.pm-flag.no{background:var(--bg);color:var(--ink-pale);border:1px solid var(--border)}
.pm-flag.required{background:var(--red-light);color:var(--red)}
.pm-flags{display:flex;flex-wrap:wrap;gap:6px}

/* Owner contact row */
.pm-owner-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--r-md)}
.pm-owner-name{font-family:'Outfit',sans-serif;font-size:.95rem;font-weight:700;color:var(--ink)}
.pm-owner-contact{display:flex;flex-direction:column;gap:2px;flex:1}
.pm-owner-link{font-size:.85rem;font-weight:600;color:var(--blue);text-decoration:none}
.pm-owner-link:hover{text-decoration:underline}

/* Notes box */
.pm-notes-box{font-size:.85rem;color:var(--ink-soft);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;line-height:1.5;white-space:pre-wrap}

/* Boarding section */
.pm-boarding-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pm-boarding-item{font-size:.85rem;padding:8px 10px;background:var(--amber-light);border:1px solid #fde68a;border-radius:var(--r-md)}
.pm-boarding-item-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#92400e}
.pm-boarding-item-value{font-weight:600;color:var(--ink);margin-top:2px}

/* Temperament status */
.pm-temp-badge{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;font-weight:700;padding:5px 12px;border-radius:var(--r-full)}
.pm-temp-badge.passed{background:var(--green-light);color:#15803d}
.pm-temp-badge.conditional{background:var(--amber-light);color:#92400e}
.pm-temp-badge.not-suitable{background:var(--red-light);color:var(--red)}

/* Clickable card body */
.dog-card-body.clickable{cursor:pointer}
.dog-card-body.clickable:hover .dog-name{color:var(--blue)}

@media(max-width:600px){
  .pet-modal{max-width:100%;max-height:90vh;border-radius:var(--r-xl) var(--r-xl) 0 0;margin:0;align-self:flex-end}
  .pm-vax-grid{grid-template-columns:1fr}
  .pm-feed-grid{grid-template-columns:repeat(3,1fr)}
  .pm-boarding-grid{grid-template-columns:1fr}
}

/* INCIDENT REPORT — FAB */
.incident-fab{position:fixed;bottom:24px;right:24px;z-index:400;width:56px;height:56px;border-radius:50%;background:var(--red);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 16px rgba(239,68,68,.4);display:flex;align-items:center;justify-content:center;font-size:24px;transition:all .2s}
.incident-fab:hover{background:#dc2626;transform:scale(1.08);box-shadow:0 6px 20px rgba(239,68,68,.5)}
.incident-fab:focus-visible{outline:3px solid var(--red);outline-offset:3px}

/* INCIDENT REPORT — Modal Overlay */
.ir-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:600;backdrop-filter:blur(2px);justify-content:center;align-items:center}
.ir-overlay.open{display:flex}
.ir-modal{background:var(--white);border-radius:var(--r-xl);width:100%;max-width:580px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.25);transform:translateY(40px);opacity:0;transition:transform .3s cubic-bezier(.33,1,.68,1),opacity .3s ease}
.ir-overlay.open .ir-modal{transform:translateY(0);opacity:1}

/* IR Header */
.ir-header{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:2px solid var(--border);flex-shrink:0;background:var(--red-light);border-radius:var(--r-xl) var(--r-xl) 0 0}
.ir-header-icon{width:40px;height:40px;border-radius:var(--r-md);background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.ir-header-title{font-family:'Outfit',sans-serif;font-size:1.15rem;font-weight:800;color:var(--ink)}
.ir-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:var(--r-md);border:1.5px solid var(--border);background:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--ink-soft);transition:all .15s}
.ir-close:hover{background:var(--red-light);border-color:var(--red);color:var(--red)}

/* IR Body */
.ir-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;-webkit-overflow-scrolling:touch}

/* IR Form fields */
.ir-field{display:flex;flex-direction:column;gap:5px}
.ir-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-pale)}
.ir-label .req{color:var(--red)}
.ir-input{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--r-md);font-family:'DM Sans',sans-serif;font-size:.88rem;color:var(--ink);transition:border-color .15s;box-sizing:border-box;min-height:44px}
.ir-input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px rgba(25,116,206,.12)}
textarea.ir-input{min-height:80px;resize:vertical}
select.ir-input{appearance:auto}

/* Radio groups */
.ir-radio-group{display:flex;gap:8px;flex-wrap:wrap}
.ir-radio{display:flex;align-items:center;gap:6px;padding:8px 14px;border:1.5px solid var(--border);border-radius:var(--r-full);cursor:pointer;transition:all .15s;font-size:.82rem;font-weight:600;min-height:44px}
.ir-radio:hover{border-color:var(--blue);background:var(--blue-pale)}
.ir-radio input{display:none}
.ir-radio.selected{border-color:var(--blue);background:var(--blue);color:#fff}

/* Severity radios — color coded */
.ir-radio.sev-low.selected{border-color:var(--green);background:var(--green);color:#fff}
.ir-radio.sev-medium.selected{border-color:var(--amber);background:var(--amber);color:#fff}
.ir-radio.sev-high.selected{border-color:var(--red);background:var(--red);color:#fff}

/* Dog checkboxes for multi-select */
.ir-dog-grid{display:flex;flex-wrap:wrap;gap:6px;max-height:200px;overflow-y:auto}
.ir-dog-chip{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1.5px solid var(--border);border-radius:var(--r-full);cursor:pointer;transition:all .15s;font-size:.82rem;font-weight:600}
.ir-dog-chip:hover{border-color:var(--blue);background:var(--blue-pale)}
.ir-dog-chip input{display:none}
.ir-dog-chip.selected{border-color:var(--blue);background:var(--blue);color:#fff}
.ir-dog-chip img{width:24px;height:24px;border-radius:50%;object-fit:cover;border:1.5px solid var(--border)}
.ir-dog-chip.selected img{border-color:rgba(255,255,255,.5)}

/* IR Footer */
.ir-footer{padding:16px 20px;border-top:2px solid var(--border);display:flex;gap:10px;justify-content:flex-end;flex-shrink:0}
.ir-submit-btn{padding:12px 28px;border-radius:var(--r-md);border:none;background:var(--red);color:#fff;font-family:'DM Sans',sans-serif;font-weight:700;font-size:.9rem;cursor:pointer;transition:all .15s;min-height:44px}
.ir-submit-btn:hover{background:#dc2626;box-shadow:0 4px 12px rgba(239,68,68,.3)}
.ir-submit-btn:disabled{opacity:.5;cursor:not-allowed}
.ir-cancel-btn{padding:12px 20px;border-radius:var(--r-md);border:1.5px solid var(--border);background:none;color:var(--ink-soft);font-family:'DM Sans',sans-serif;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .15s;min-height:44px}
.ir-cancel-btn:hover{border-color:var(--ink-soft);color:var(--ink)}

@media(max-width:600px){
  .ir-modal{max-width:100%;max-height:95vh;border-radius:var(--r-xl) var(--r-xl) 0 0;margin:0;align-self:flex-end}
  .pp-modal{max-width:100%;max-height:95vh;border-radius:var(--r-xl) var(--r-xl) 0 0;margin:0;align-self:flex-end}
  .incident-fab{bottom:16px;right:16px}
}

/* VIEW TOGGLE NAV (Board / Incidents) */
.view-nav{display:flex;align-items:center;gap:6px}
.view-nav-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--white);border:1.5px solid var(--border);border-radius:var(--r-full);font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:all .15s;min-height:36px;white-space:nowrap;position:relative}
.view-nav-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-pale)}
.view-nav-btn.active{background:var(--blue);border-color:var(--blue);color:var(--white)}
.view-nav-btn.incidents-btn{border-color:var(--border)}
.view-nav-btn.incidents-btn:hover{border-color:var(--red);color:var(--red);background:var(--red-light)}
.view-nav-btn.incidents-btn.active{background:var(--red);border-color:var(--red);color:var(--white)}
.incident-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-full);font-size:.68rem;font-weight:800;background:var(--red);color:var(--white);line-height:1}
.view-nav-btn.incidents-btn.active .incident-count-badge{background:var(--white);color:var(--red)}
.incident-count-badge.hidden{display:none}

/* INCIDENT LOG VIEW */
.incident-log-view{display:none;max-width:1280px;margin:0 auto;padding:20px 20px 80px}
.incident-log-view.visible{display:block}
.incident-log-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.incident-log-title{font-family:'Outfit',sans-serif;font-size:1.15rem;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:10px}
.incident-log-title-count{font-size:.82rem;font-weight:700;padding:3px 10px;border-radius:var(--r-full);background:var(--red);color:var(--white)}
.incident-log-sort{font-size:.78rem;font-weight:600;color:var(--ink-soft)}
.incident-log-empty{text-align:center;padding:60px 20px;color:var(--ink-soft)}
.incident-log-empty-icon{font-size:48px;margin-bottom:10px}
.incident-log-empty-text{font-size:.95rem;font-weight:500}
.incident-log-grid{display:flex;flex-direction:column;gap:12px}

/* INCIDENT CARD */
.incident-card{background:var(--white);border:2px solid var(--border);border-radius:var(--r-lg);padding:16px 18px;display:flex;align-items:flex-start;gap:14px;transition:all .18s;border-left:5px solid var(--border)}
.incident-card:hover{box-shadow:var(--shadow-md)}
.incident-card.severity-low{border-left-color:var(--ink-pale)}
.incident-card.severity-medium{border-left-color:var(--amber)}
.incident-card.severity-high{border-left-color:var(--red)}
.incident-card-photo{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--border);background:var(--blue-pale);flex-shrink:0}
.incident-card-body{flex:1;min-width:0}
.incident-card-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.incident-card-name{font-family:'Outfit',sans-serif;font-size:1rem;font-weight:700;color:var(--ink)}
.incident-card-breed{font-size:.82rem;color:var(--ink-soft)}
.incident-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}
.incident-severity-badge{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border-radius:var(--r-full);white-space:nowrap}
.incident-severity-badge.low{background:var(--bg);color:var(--ink-pale);border:1px solid var(--border)}
.incident-severity-badge.medium{background:var(--amber-light);color:#92400e}
.incident-severity-badge.high{background:var(--red-light);color:#b91c1c}
.incident-type-badge{font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:var(--r-full);background:var(--bg);color:var(--ink-soft);border:1px solid var(--border);white-space:nowrap}
.incident-days-badge{font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:var(--r-full);background:var(--bg);color:var(--ink-soft);white-space:nowrap}
.incident-followup-badge{font-size:.72rem;font-weight:800;padding:3px 10px;border-radius:var(--r-full);white-space:nowrap}
.incident-followup-badge.due{background:var(--amber-light);color:#92400e}
.incident-followup-badge.overdue{background:var(--red-light);color:#b91c1c}
.incident-status-badge{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border-radius:var(--r-full);white-space:nowrap}
.incident-status-badge.open{background:var(--red-light);color:#b91c1c}
.incident-status-badge.following_up{background:var(--amber-light);color:#92400e}
.incident-card-owner{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:.82rem;color:var(--ink-soft)}
.incident-card-owner a{color:var(--blue);text-decoration:none;font-weight:600}
.incident-card-owner a:hover{text-decoration:underline}
.incident-card-actions{display:flex;gap:6px;flex-shrink:0;align-self:center}
.btn-followup{background:var(--amber-light);border-color:var(--amber);color:#92400e}
.btn-followup:hover{background:var(--amber);color:var(--white);border-color:var(--amber)}
.btn-history{background:var(--bg);border-color:var(--border);color:var(--ink-soft)}
.btn-history:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-pale)}

/* FOLLOW-UP MODAL */
.fu-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:600;backdrop-filter:blur(2px);justify-content:center;align-items:center}
.fu-overlay.open{display:flex}
.fu-modal{background:var(--white);border-radius:var(--r-xl);width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.25);transform:translateY(40px);opacity:0;transition:transform .3s cubic-bezier(.33,1,.68,1),opacity .3s ease}
.fu-overlay.open .fu-modal{transform:translateY(0);opacity:1}
.fu-header{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:2px solid var(--border);flex-shrink:0;background:var(--amber-light);border-radius:var(--r-xl) var(--r-xl) 0 0;position:relative}
.fu-header-icon{width:40px;height:40px;border-radius:var(--r-md);background:var(--amber);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.fu-header-title{font-family:'Outfit',sans-serif;font-size:1.1rem;font-weight:800;color:var(--ink)}
.fu-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:var(--r-md);border:1.5px solid var(--border);background:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--ink-soft);transition:all .15s}
.fu-close:hover{background:var(--red-light);border-color:var(--red);color:var(--red)}
.fu-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;-webkit-overflow-scrolling:touch}
.fu-dog-summary{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--r-md)}
.fu-dog-photo{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--border);flex-shrink:0}
.fu-dog-name{font-family:'Outfit',sans-serif;font-size:.95rem;font-weight:700;color:var(--ink)}
.fu-dog-detail{font-size:.78rem;color:var(--ink-soft);margin-top:1px}
.fu-field{display:flex;flex-direction:column;gap:5px}
.fu-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-pale)}
.fu-textarea{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--r-md);font-family:'DM Sans',sans-serif;font-size:.88rem;color:var(--ink);min-height:80px;resize:vertical;box-sizing:border-box}
.fu-textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px rgba(25,116,206,.12)}
.fu-resolution-section{display:none;padding:14px;background:var(--green-light);border:1.5px solid #86efac;border-radius:var(--r-md)}
.fu-resolution-section.visible{display:block}
.fu-footer{padding:16px 20px;border-top:2px solid var(--border);display:flex;gap:10px;justify-content:flex-end;flex-shrink:0}
.fu-submit-btn{padding:12px 28px;border-radius:var(--r-md);border:none;background:var(--amber);color:#fff;font-family:'DM Sans',sans-serif;font-weight:700;font-size:.9rem;cursor:pointer;transition:all .15s;min-height:44px}
.fu-submit-btn:hover{background:#d97706;box-shadow:0 4px 12px rgba(245,158,11,.3)}
.fu-submit-btn:disabled{opacity:.5;cursor:not-allowed}
.fu-submit-btn.resolve{background:var(--green);color:#fff}
.fu-submit-btn.resolve:hover{background:#16a34a;box-shadow:0 4px 12px rgba(34,197,94,.3)}
.fu-cancel-btn{padding:12px 20px;border-radius:var(--r-md);border:1.5px solid var(--border);background:none;color:var(--ink-soft);font-family:'DM Sans',sans-serif;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .15s;min-height:44px}
.fu-cancel-btn:hover{border-color:var(--ink-soft);color:var(--ink)}

@media(max-width:768px){
  .incident-card{flex-direction:column;gap:10px}
  .incident-card-actions{align-self:stretch}
  .incident-card-actions .btn{flex:1}
  .view-nav{gap:4px}
}
@media(max-width:600px){
  .fu-modal{max-width:100%;max-height:95vh;border-radius:var(--r-xl) var(--r-xl) 0 0;margin:0;align-self:flex-end}
}

/* ===================== MEET & GREETS VIEW ===================== */
.view-nav-btn.meetgreets-btn{border-color:var(--border)}
.view-nav-btn.meetgreets-btn:hover{border-color:#7B1FA2;color:#7B1FA2;background:#F3E5F5}
.view-nav-btn.meetgreets-btn.active{background:#7B1FA2;border-color:#7B1FA2;color:var(--white)}
.meetgreet-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-full);font-size:.68rem;font-weight:800;background:#7B1FA2;color:var(--white);line-height:1;margin-left:4px}
.view-nav-btn.meetgreets-btn.active .meetgreet-count-badge{background:var(--white);color:#7B1FA2}
.meetgreet-count-badge.hidden{display:none}

.meetgreet-view{display:none;max-width:1280px;margin:0 auto;padding:20px 20px 80px}
.meetgreet-view.visible{display:block}
.meetgreet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px}
.meetgreet-title{font-family:'Outfit',sans-serif;font-size:1.15rem;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:10px}
.meetgreet-title-count{font-size:.82rem;font-weight:700;padding:3px 10px;border-radius:var(--r-full);background:#7B1FA2;color:var(--white)}
.meetgreet-sort{font-size:.78rem;font-weight:600;color:var(--ink-soft)}
.meetgreet-loading{display:none;align-items:center;gap:10px;padding:30px;color:var(--ink-soft);font-size:.9rem}
.meetgreet-error{display:none;padding:14px 18px;background:var(--red-light);border:1.5px solid var(--red);border-radius:var(--r-md);color:#b91c1c;font-size:.88rem;font-weight:600;margin-bottom:16px}
.meetgreet-empty{display:none;flex-direction:column;align-items:center;padding:60px 20px;color:var(--ink-soft);text-align:center}
.meetgreet-empty-icon{font-size:48px;margin-bottom:10px}
.meetgreet-empty-text{font-size:.95rem;font-weight:500}

.meetgreet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}

.meetgreet-card{background:var(--white);border:2px solid var(--border);border-radius:var(--r-lg);padding:18px;display:flex;flex-direction:column;gap:14px;transition:all .18s;border-left:5px solid #7B1FA2}
.meetgreet-card:hover{box-shadow:var(--shadow-md)}
.meetgreet-card[data-selected-status="pass"]{border-left-color:var(--green);background:#f7fef9}
.meetgreet-card[data-selected-status="conditional"]{border-left-color:var(--amber);background:#fffbeb}
.meetgreet-card[data-selected-status="not_suitable"]{border-left-color:var(--red);background:#fef7f7}

.meetgreet-card-header{display:flex;align-items:flex-start;gap:12px}
.meetgreet-card-photo{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--border);background:var(--blue-pale);flex-shrink:0}
.meetgreet-card-info{flex:1;min-width:0}
.meetgreet-card-name{font-family:'Outfit',sans-serif;font-size:1.05rem;font-weight:800;color:var(--ink)}
.meetgreet-card-breed{font-size:.82rem;color:var(--ink-soft);margin-top:1px}
.meetgreet-card-status{display:inline-block;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border-radius:var(--r-full);background:var(--bg);color:var(--ink-pale);border:1px solid var(--border);margin-top:6px}
.meetgreet-card-status.status-not_evaluated{background:var(--bg);color:var(--ink-soft);border-color:var(--border)}

.meetgreet-card-owner{background:var(--bg);border:1.5px solid var(--border);border-radius:var(--r-md);padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.meetgreet-card-owner-name{font-size:.88rem;font-weight:700;color:var(--ink)}
.meetgreet-card-contact{font-size:.78rem;color:var(--blue);text-decoration:none;font-weight:600}
.meetgreet-card-contact:hover{text-decoration:underline}

.meetgreet-card-meta{display:flex;flex-wrap:wrap;gap:6px}
.meetgreet-meta-chip{font-size:.72rem;padding:3px 10px;border-radius:var(--r-full);background:var(--blue-pale);color:var(--blue-dark);border:1px solid var(--blue-light)}
.meetgreet-meta-label{font-weight:700}
.meetgreet-meta-value{font-weight:500}

.meetgreet-card-form{display:flex;flex-direction:column;gap:10px;padding-top:10px;border-top:1.5px dashed var(--border)}
.meetgreet-card-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-pale)}
.meetgreet-card-label .req{color:var(--red);margin-left:2px}
.meetgreet-notes-req{color:var(--red);margin-left:2px;font-weight:700}

.meetgreet-radio-group{display:flex;gap:6px;flex-wrap:wrap}
.meetgreet-radio{display:flex;align-items:center;gap:6px;padding:8px 14px;border:1.5px solid var(--border);border-radius:var(--r-full);cursor:pointer;transition:all .15s;font-size:.82rem;font-weight:600;min-height:40px;flex:1;justify-content:center;min-width:100px}
.meetgreet-radio:hover{border-color:#7B1FA2;background:#F3E5F5}
.meetgreet-radio input{display:none}
.meetgreet-radio:has(input:checked){color:var(--white)}
.meetgreet-radio-pass:has(input:checked){background:var(--green);border-color:var(--green)}
.meetgreet-radio-conditional:has(input:checked){background:var(--amber);border-color:var(--amber)}
.meetgreet-radio-not_suitable:has(input:checked){background:var(--red);border-color:var(--red)}

.meetgreet-select,.meetgreet-input,.meetgreet-textarea{width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--r-md);font-family:'DM Sans',sans-serif;font-size:.85rem;color:var(--ink);box-sizing:border-box;min-height:40px}
.meetgreet-select:focus,.meetgreet-input:focus,.meetgreet-textarea:focus{border-color:#7B1FA2;outline:none;box-shadow:0 0 0 3px rgba(123,31,162,.1)}
.meetgreet-textarea{min-height:60px;resize:vertical}

.meetgreet-card-actions{display:flex;gap:8px;margin-top:4px}
.meetgreet-submit-btn{flex:1;padding:12px 18px;border-radius:var(--r-md);border:none;background:#7B1FA2;color:var(--white);font-family:'DM Sans',sans-serif;font-weight:700;font-size:.88rem;cursor:pointer;transition:all .15s;min-height:44px}
.meetgreet-submit-btn:hover{background:#6A1B9A;box-shadow:0 4px 12px rgba(123,31,162,.3)}
.meetgreet-submit-btn:disabled{opacity:.5;cursor:not-allowed}

@media(max-width:600px){
  .meetgreet-grid{grid-template-columns:1fr}
  .meetgreet-radio{min-width:unset}
}
