body {
    background-color: skyblue;
}
 :root { --ink:#24312b; --green:#395f4b; --cream:#f7f4ed; --line:#d8ddd9; --white:#fff; }
 * { box-sizing:border-box; }
 body { margin:0; background:var(--cream); color:var(--ink); font-family:Inter,system-ui,sans-serif; }
 .calendar-shell { max-width:1500px; margin:auto; padding:32px; }
 .page-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; }
 .page-heading h1 { margin:4px 0 0; font-size:clamp(1.8rem,3vw,3rem); }
 .eyebrow { color:var(--accent); font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.78rem; }
 .hint { color:#617068; }
 .calendar-card { background:var(--white); border:1px solid var(--line); border-radius:18px; padding:20px; box-shadow:0 12px 35px #24312b12; }
 .primary-button,.secondary-button,.icon-button { border:0; border-radius:9px; padding:11px 16px; font:inherit; cursor:pointer; }
 .primary-button { background:var(--green); color:white; font-weight:700; }
 .secondary-button { background:#e9ece9; color:var(--ink); }
 .icon-button { background:transparent; font-size:1.8rem; padding:0 5px; }
 dialog { width:min(620px,calc(100% - 24px)); border:0; border-radius:18px; padding:0; box-shadow:0 24px 80px #15231d55; }
 dialog::backdrop { background:#15231d99; }
 dialog form { padding:24px; }
 dialog header,dialog footer { display:flex; align-items:center; justify-content:space-between; gap:12px; }
 dialog label { display:grid; gap:6px; margin:16px 0; font-weight:650; }
 dialog input,dialog select,dialog textarea { width:100%; border:1px solid var(--line); border-radius:8px; padding:10px; font:inherit; }
 .form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
 #contact-summary { background:#edf3ef; border-radius:10px; padding:12px; }
 #contact-summary span { display:block; margin-top:4px; color:#526159; }
 .form-error { min-height:1.2em; color:#a12626; }
 .fc .fc-button-primary { background:var(--green); border-color:var(--green); }
 .fc-event { cursor:pointer; }
 .calendar-help { display:flex; flex-wrap:wrap; align-items:center; gap:10px 20px; margin:18px 0 10px; padding:13px 16px; border-radius:11px; background:#edf4f0; color:#40534a; }
 .calendar-help strong { color:var(--green); }
 .calendar-help span::before { content:"✓"; margin-right:7px; color:var(--green); font-weight:900; }
 .calendar-key { display:flex; flex-wrap:wrap; gap:16px; margin:0 0 14px; color:#617068; font-size:.86rem; }
 .calendar-key span { display:flex; align-items:center; gap:6px; }
 .calendar-key i { width:12px; height:12px; border-radius:50%; }
 .key-grey { background:#6a7680; }.key-amber { background:#af7a32; }.key-green { background:#367a64; }
 .signup-shell { min-height:100vh; display:grid; place-items:center; padding:32px; background:linear-gradient(135deg,#e3eee8,var(--cream)); }
 .signup-card { width:min(980px,100%); display:grid; grid-template-columns:.9fr 1.1fr; overflow:hidden; border-radius:24px; background:white; box-shadow:0 24px 70px #24312b24; }
 .signup-intro { padding:48px; background:var(--green); color:white; }
 .signup-intro .eyebrow { color:#f0c77e; }.signup-intro h1 { font-size:2.5rem; line-height:1.08; margin:12px 0 18px; }.signup-intro p { line-height:1.6; opacity:.9; }
 .signup-intro .price { display:flex; align-items:baseline; gap:9px; margin:30px 0 18px; }.signup-intro .price strong { font-size:3rem; }.signup-intro ul { padding-left:20px; line-height:1.9; }
 .signup-form { padding:44px; }.signup-form h2 { margin-top:0; font-size:1.8rem; }.signup-form label { display:grid; gap:6px; margin:15px 0; font-weight:700; }
 .signup-form input:not([type=checkbox]) { width:100%; border:1px solid var(--line); border-radius:9px; padding:12px; font:inherit; }.signup-form button { width:100%; margin-top:8px; }
 .signin-link { margin-top:22px; text-align:center; color:#68756f; }
 .subscription-card { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:28px; padding:20px; border:1px solid var(--line); border-radius:14px; background:white; }
 .subscription-card p { margin:5px 0 0; color:#68756f; }
 .portal-security-card { display:flex; justify-content:space-between; align-items:center; gap:24px; max-width:850px; margin-top:26px; padding:22px; border:1px solid var(--line); border-radius:15px; background:white; }.portal-security-card h2 { margin:5px 0; }.portal-security-card p { margin:6px 0 0; color:#65736e; }
 .manual-password-panel { max-width:850px; margin-top:12px; border:1px solid var(--line); border-radius:13px; background:white; }.manual-password-panel summary { padding:15px 18px; color:var(--green); font-weight:800; cursor:pointer; }.manual-password-panel[open] summary { border-bottom:1px solid var(--line); }.manual-password-panel>div { padding:18px; }.manual-password-panel p { margin-top:0; color:#65736e; }.manual-password-panel label { display:grid; gap:6px; font-weight:700; }.manual-password-panel input { width:100%; border:1px solid var(--line); border-radius:8px; padding:11px; font:inherit; }.manual-password-panel button { margin-top:16px; }
 .portal-record-page { max-width:1050px; }.portal-dog-form { max-width:none; }.form-help { margin:0 0 12px; color:#65736e; }.consent-grid { display:grid; grid-template-columns:1fr 1fr; gap:4px 18px; }.legacy-document-note { padding:10px; border-radius:8px; background:#fff4d9; color:#70551d; }.portal-documents { margin-top:30px; }.portal-documents article { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:white; margin-bottom:8px; }.portal-documents article span { display:block; margin-top:4px; color:#68756f; font-size:.84rem; }
 .staff-colour { display:inline-block; width:34px; height:20px; border-radius:6px; border:1px solid #0002; }
 .repeat-toggle { display:flex!important; grid-template-columns:none!important; align-items:center; gap:9px!important; padding:12px; border-radius:9px; background:#edf4f0; cursor:pointer; }.repeat-toggle input { width:18px!important; }
 .repeat-options { padding:14px; border:1px solid var(--line); border-radius:10px; }.weekday-options { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }.weekday-options label { margin:0!important; display:block!important; }.weekday-options input { position:absolute; opacity:0; pointer-events:none; }.weekday-options span { display:block; padding:8px 11px; border:1px solid var(--line); border-radius:8px; background:white; cursor:pointer; }.weekday-options input:checked+span { background:var(--green); color:white; border-color:var(--green); }
 .shop-product-form { max-width:none; padding:0 18px 18px; margin:0; }
 .product-admin-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
 .admin-product-card { display:grid; grid-template-columns:70px 1fr auto; align-items:center; gap:14px; padding:14px; border:1px solid var(--line); border-radius:12px; background:white; }
 .admin-product-card img { width:70px; height:70px; border-radius:9px; object-fit:cover; }.admin-product-card h3,.admin-product-card p { margin:0 0 5px; }
 .product-thumb-placeholder { width:70px; height:70px; display:grid; place-items:center; border-radius:9px; background:#e8f0eb; font-size:1.7rem; }.product-inline-form { display:grid; gap:7px; }.product-inline-form>input { width:100%; border:1px solid var(--line); border-radius:7px; padding:7px; font:inherit; font-weight:750; }.product-inline-form>div { display:flex; gap:7px; }.product-inline-form label { font-size:.78rem; }.product-inline-form label input { width:75px; border:1px solid var(--line); border-radius:6px; padding:5px; }
 .store-shell { min-height:100vh; padding:32px max(20px,calc((100vw - 1200px)/2)); background:var(--cream); }
 .store-header { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:30px; }.store-header>div { display:flex; align-items:center; gap:16px; }.store-header img { width:80px; height:70px; object-fit:contain; }.store-header h1 { margin:4px 0 0; }
 .basket-button { padding:11px 15px; border-radius:9px; background:var(--green); color:white; text-decoration:none; font-weight:800; }.basket-button strong { display:inline-grid; place-items:center; min-width:24px; height:24px; margin-left:7px; border-radius:50%; background:white; color:var(--green); }
 .store-products { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:22px; }.store-product { overflow:hidden; border:1px solid var(--line); border-radius:17px; background:white; box-shadow:0 10px 28px #24312b10; }.store-product>img,.product-placeholder { width:100%; height:220px; object-fit:cover; }.product-placeholder { display:grid; place-items:center; background:#e8f0eb; font-size:4rem; }.store-product>div:last-child { padding:20px; }.store-product h2 { margin:0 0 8px; }.store-product p { min-height:2.8em; color:#65736e; }.product-price { display:block; margin:14px 0; font-size:1.5rem; color:var(--green); }.store-product form { display:flex; gap:8px; }.store-product form input { width:64px; border:1px solid var(--line); border-radius:8px; padding:9px; }
 .checkout-layout { display:grid; grid-template-columns:1fr 420px; gap:28px; margin-top:28px; }.basket-lines,.checkout-form { border:1px solid var(--line); border-radius:16px; padding:22px; background:white; }.basket-lines article,.basket-lines footer { display:grid; grid-template-columns:1fr auto auto; gap:18px; padding:15px 0; border-bottom:1px solid var(--line); }.basket-lines footer { border:0; font-size:1.3rem; }.checkout-form label { display:grid; gap:6px; margin:13px 0; font-weight:700; }.checkout-form input,.checkout-form textarea { width:100%; border:1px solid var(--line); border-radius:8px; padding:11px; font:inherit; }.checkout-form button { width:100%; }
 @media (max-width:700px) { .calendar-shell{padding:16px}.page-heading{align-items:start;flex-direction:column}.form-row{grid-template-columns:1fr}.calendar-card{padding:8px} }
 .login-shell { min-height:100vh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at top left,#dfeadf,transparent 42%),var(--cream); }
 .login-card { width:min(440px,100%); background:white; border:1px solid var(--line); border-radius:22px; padding:36px; box-shadow:0 22px 60px #24312b1c; }
 .login-card img { display:block; margin-bottom:18px; object-fit:contain; }
 .login-card h1 { margin:8px 0; font-size:2.25rem; }
 .login-card p { color:#617068; margin-bottom:24px; }
 .login-card form label { display:grid; gap:7px; margin:16px 0; font-weight:650; }
 .login-card input { border:1px solid var(--line); border-radius:9px; padding:12px; font:inherit; }
 .login-card .primary-button { width:100%; margin-top:10px; }
 .login-error { background:#fff0f0; color:#8c2020; border-radius:9px; padding:12px; }
 .admin-nav { min-height:68px; padding:0 max(20px,calc((100vw - 1500px)/2)); background:#24312b; color:white; display:flex; align-items:center; gap:28px; position:sticky; top:0; z-index:20; box-shadow:0 4px 18px #101b1660; }
 .admin-nav a { color:#dce5df; text-decoration:none; }
 .admin-nav .brand { display:flex; align-items:center; gap:10px; color:white; font-weight:800; font-size:1.05rem; }
 .admin-nav .brand img { object-fit:contain; filter:brightness(0) invert(1); }
 .nav-links { display:flex; align-self:stretch; }
 .nav-links a { display:grid; place-items:center; padding:0 18px; border-bottom:3px solid transparent; font-weight:650; }
 .nav-links a:hover,.nav-links a.active { color:white; background:#ffffff0c; border-bottom-color:#9fc5ad; }
 .nav-menu { position:relative; display:flex; align-self:stretch; color:#dce5df; }
 .nav-menu summary { display:flex; align-items:center; gap:.4rem; padding:0 18px; border-bottom:3px solid transparent; font-weight:650; cursor:pointer; list-style:none; white-space:nowrap; }
 .nav-menu summary::-webkit-details-marker { display:none; }
 .nav-menu summary span { font-size:.7rem; transition:transform .18s ease; }
 .nav-menu[open] summary span { transform:rotate(180deg); }
 .nav-menu:hover summary,.nav-menu:focus-within summary,.nav-menu[open] summary,.nav-menu.active summary { color:#fff; background:#ffffff0c; border-bottom-color:#9fc5ad; }
 .nav-dropdown { position:absolute; z-index:40; top:calc(100% - 1px); left:0; display:none; min-width:190px; padding:.45rem; border:1px solid #40564b; border-radius:0 0 12px 12px; background:#24312b; box-shadow:0 14px 28px #101b1645; }
 .nav-menu[open] .nav-dropdown,.nav-menu:hover .nav-dropdown,.nav-menu:focus-within .nav-dropdown { display:grid; }
 .nav-dropdown a { display:block; padding:.75rem .85rem; border:0; border-radius:8px; color:#e8eee9; white-space:nowrap; }
 .nav-dropdown a:hover,.nav-dropdown a:focus-visible { background:#ffffff12; color:#fff; }
 .sign-out { margin-left:auto; font-size:.92rem; }
 .admin-page { max-width:1500px; margin:auto; padding:32px; }
 .record-count,.section-heading span { color:#617068; font-weight:650; }
 .search-bar { display:flex; align-items:center; gap:10px; margin:22px 0; }
 .search-bar input { width:min(560px,100%); border:1px solid var(--line); border-radius:9px; padding:11px 13px; font:inherit; }
 .search-bar select { border:1px solid var(--line); border-radius:9px; padding:11px 13px; background:white; font:inherit; }
 .search-bar a { color:var(--green); }
 .table-card { overflow:auto; background:white; border:1px solid var(--line); border-radius:16px; box-shadow:0 8px 28px #24312b0c; }
 table { width:100%; border-collapse:collapse; }
 th { background:#f0f4f1; color:#526159; text-align:left; font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; }
 th,td { padding:14px 16px; border-bottom:1px solid #e7ebe8; vertical-align:top; }
 tbody tr:last-child td { border-bottom:0; }
 td a { color:var(--green); display:block; margin-bottom:4px; }
 td small { display:block; color:#6a776f; margin-top:4px; }
 .dog-pill,.channel,.status { display:inline-block; border-radius:999px; padding:5px 9px; margin:0 5px 5px 0; font-size:.8rem; font-weight:700; }
 .dog-pill { background:#edf3ef; color:#31543f; }
 .channel.email { background:#e8effa; color:#31558b; }
 .channel.sms { background:#eee9f8; color:#5c4389; }
 .status.scheduled { background:#edf3ef; color:#31543f; }
 .status.due { background:#fff2d5; color:#7a5511; }
 .status.sent { background:#e3f4e8; color:#28613a; }
 .status.failed { background:#ffe6e6; color:#8c2020; }
 .muted,.empty-state { color:#718078; }
 .empty-state { text-align:center; padding:36px; }
 .section-block { margin-top:28px; }
 .section-heading { display:flex; align-items:center; justify-content:space-between; }
 .section-heading h2 { margin-bottom:12px; }
 .empty-card { min-height:360px; display:grid; place-items:center; align-content:center; text-align:center; background:white; border:1px solid var(--line); border-radius:18px; padding:36px; }
 .empty-card h2 { margin:12px 0 4px; }
 .empty-card p { max-width:560px; color:#617068; }
 .empty-icon { width:64px; height:64px; display:grid; place-items:center; border-radius:50%; background:#edf3ef; color:var(--green); font-size:2rem; font-weight:800; }
 .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
 .heading-actions { display:flex; align-items:center; gap:16px; }
 a.primary-button { text-decoration:none; display:inline-block; }
 .success-message { margin:18px 0; padding:12px 15px; border-radius:10px; background:#e3f4e8; color:#28613a; }
 .text-button { border:0; background:transparent; color:var(--green); padding:0; font:inherit; font-weight:750; cursor:pointer; }
 .customer-form { max-width:850px; margin-top:24px; }
 .customer-form fieldset { border:1px solid var(--line); background:white; border-radius:16px; padding:20px; margin:0 0 18px; }
 .customer-form legend { padding:0 8px; font-size:1.08rem; font-weight:800; }
 .customer-form label { display:grid; gap:6px; margin:12px 0; font-weight:650; }
 .customer-form input,.customer-form select { width:100%; border:1px solid var(--line); border-radius:8px; padding:11px; font:inherit; }
 .customer-form textarea { width:100%; border:1px solid var(--line); border-radius:8px; padding:11px; font:inherit; resize:vertical; }
 .customer-form footer { display:flex; justify-content:flex-end; align-items:center; gap:12px; }
 .customer-form footer a.secondary-button { text-decoration:none; }
 .popup-page { max-width:760px; margin:auto; padding:26px; }
 .popup-page .empty-card { min-height:440px; }
 .success-mark { width:64px; height:64px; display:grid; place-items:center; border-radius:50%; background:#e3f4e8; color:#28613a; font-size:2rem; font-weight:900; }
 .template-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
 .template-card { background:white; border:1px solid var(--line); border-radius:15px; padding:18px; }
 .template-card h3 { margin:12px 0 6px; }
 .template-card p { min-height:3.5em; color:#617068; line-height:1.5; }
 .template-card a { color:var(--green); font-weight:750; }
 .narrow-page { max-width:900px; }
 .message-template-form textarea { width:100%; border:1px solid var(--line); border-radius:9px; padding:12px; font:inherit; line-height:1.5; resize:vertical; }
 .checkbox-label { display:flex!important; grid-template-columns:none!important; flex-direction:row; align-items:center; }
 .checkbox-label input { width:auto; }
 .character-count { margin-top:-6px; color:#617068; font-size:.9rem; }
 .placeholder-help { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:20px 0; padding:14px; border-radius:10px; background:#edf3ef; }
 .placeholder-help strong { width:100%; }
 .placeholder-help code { background:white; border-radius:5px; padding:5px 7px; color:#31543f; }
 .history-search .archive-toggle { margin-left:auto; font-weight:750; }
 .pagination { display:flex; align-items:center; justify-content:center; gap:18px; padding:20px; }
 .pagination a { color:var(--green); font-weight:750; }
 .row-link { white-space:nowrap; font-weight:750; }
 .record-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:26px; }
 .record-card { background:white; border:1px solid var(--line); border-radius:16px; padding:20px; }
 .record-card.wide { grid-column:1/-1; }
 .record-card h2 { margin:0 0 16px; font-size:1.15rem; }
 .record-card dl { display:grid; grid-template-columns:minmax(120px,.45fr) 1fr; gap:9px 16px; margin:0; }
 .record-card dt { color:#67756d; font-weight:650; }
 .record-card dd { margin:0; white-space:pre-line; }
 .consent-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; }
 .consent-grid>div { display:flex; align-items:center; justify-content:space-between; gap:8px; background:#f6f8f6; border-radius:9px; padding:10px; }
 .consent { font-size:.78rem; border-radius:999px; padding:4px 7px; }
 .consent.yes { background:#e3f4e8; color:#28613a; }
 .consent.no { background:#edf0ee; color:#67756d; }
 .portal-page .page-heading p { color:#617068; }
 .portal-dog-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,440px)); justify-content:start; gap:18px; margin-top:26px; }
 .portal-dog-card { display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:center; background:white; border:1px solid var(--line); border-radius:18px; padding:20px; }
 .portal-dog-card .primary-button { grid-column:1/-1; text-align:center; }
 .portal-dog-card h2 { margin:3px 0; }
 .portal-dog-card p { margin:0; color:#617068; }
 .dog-avatar { width:58px; height:58px; display:grid; place-items:center; border-radius:50%; background:#dfeadf; color:var(--green); font-size:1.6rem; font-weight:900; }
 .dog-size { color:var(--green); text-transform:uppercase; letter-spacing:.06em; font-size:.73rem; font-weight:800; }
 .activation-link { width:100%; display:grid; gap:7px; margin:18px 0; text-align:left; font-weight:700; }
 .activation-link input { width:100%; border:1px solid var(--line); border-radius:8px; padding:11px; font:inherit; }
 .row-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
 .row-actions a,.row-actions button { font-weight:750; }
 .danger-link { color:#a12626!important; }
 .danger-card { background:white; border:1px solid #e3c6c6; border-radius:18px; padding:32px; margin-top:30px; }
 .danger-card h1 { font-size:2.2rem; margin:8px 0; }
 .danger-card>p { color:#617068; line-height:1.6; }
 .danger-card form { margin:24px 0; }
 .confirm-delete { display:flex; align-items:flex-start; gap:10px; margin:18px 0; }
 .danger-button { border:0; border-radius:9px; padding:12px 16px; background:#a12626; color:white; font:inherit; font-weight:800; cursor:pointer; }
 .customer-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
 .business-tag { display:inline-block; border-radius:999px; padding:4px 8px; font-size:.72rem; font-weight:800; }
 .business-tag.grooming { background:#eee9f8; color:#5c4389; }
 .business-tag.daycare { background:#e3f4e8; color:#28613a; }
 .business-tag.walking { background:#e4eef8; color:#285a7b; }
 .sync-notice { margin:0 0 1.25rem; padding:.8rem 1rem; border-left:4px solid #6b9188; background:#eef6f4; color:#30564f; }
 .payment-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-bottom:30px; }
 .payment-layout.single-panel { grid-template-columns:minmax(0,760px); }
 .compact-form { margin-top:16px; }
 .branding-logo { display:block; max-width:220px; max-height:100px; object-fit:contain; margin-bottom:16px; }
 .branding-preview { display:flex; align-items:center; gap:16px; padding:18px; border-radius:12px; background:var(--preview-bg); margin-bottom:18px; }
 .branding-preview img { width:auto; max-width:180px; height:70px; object-fit:contain; }
 .colour-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
 .colour-grid input[type=color] { width:100%; min-height:58px; padding:4px; cursor:pointer; }
.payment-shortcuts { display:flex; flex-wrap:wrap; gap:14px; margin-top:-6px; font-size:.9rem; }
.provider-statuses { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.35rem; }
.payment-provider-settings { margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.payment-provider-settings > p { color:#617068; }
.payment-provider-settings .customer-form { margin-top:1rem; }
.danger-option { color:#8c2020; }
 .bulk-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:14px 16px; margin:20px 0 12px; border:1px solid var(--line); border-radius:12px; background:white; }
 .bulk-actions select { min-width:240px; border:1px solid var(--line); border-radius:8px; padding:10px; font:inherit; }
 .bulk-actions small { color:#617068; }
 .select-column { width:44px; text-align:center; }
 .select-column input { width:18px; height:18px; }
 .bulk-panel { margin:20px 0 12px; border:1px solid var(--line); border-radius:12px; background:white; }
 .bulk-panel summary { padding:15px 18px; color:var(--green); font-weight:800; cursor:pointer; }
 .bulk-panel[open] summary { border-bottom:1px solid var(--line); }
 .bulk-panel .bulk-actions { margin:0; border:0; }
 .bulk-panel .bulk-actions>div { display:grid; gap:3px; }
 .bulk-panel .bulk-actions label { display:flex; align-items:center; gap:10px; }
 .bulk-panel small { display:block; color:#69766f; font-weight:400; }
 .dog-list { display:grid; gap:8px; min-width:220px; }
 .dog-record { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 12px; border:1px solid #dce6e0; border-radius:10px; background:#f6faf7; }
 .dog-record strong,.dog-record span { display:block; }
 .dog-record span { margin-top:2px; color:#68756f; font-size:.82rem; }
 .dog-actions { display:flex; flex-direction:column; align-items:flex-end; gap:3px; white-space:nowrap; font-size:.82rem; }
 .contact-stack { display:grid; gap:9px; min-width:190px; }
 .contact-stack span,.contact-stack small { display:block; }
 .contact-stack small { margin-bottom:2px; color:#7a8580; font-size:.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
 .portal-actions,.record-actions { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
 .mini-action { display:inline-block; border:1px solid #cfd9d3; border-radius:7px; padding:7px 9px; background:white; color:var(--green); font:inherit; font-size:.83rem; font-weight:750; text-decoration:none; cursor:pointer; white-space:nowrap; }
 .mini-action:hover { border-color:var(--green); background:#f2f7f4; }
 td { vertical-align:top; }
 @media (max-width:760px) {
   .signup-shell { padding:14px; }.signup-card { grid-template-columns:1fr; }.signup-intro,.signup-form { padding:28px; }.signup-intro h1 { font-size:2rem; }
   .checkout-layout { grid-template-columns:1fr; }.store-shell { padding:20px 14px; }.store-header { align-items:flex-start; }
   .portal-security-card { align-items:flex-start; flex-direction:column; }
   .consent-grid { grid-template-columns:1fr; }.portal-documents article { align-items:flex-start; flex-direction:column; }
   .payment-layout { grid-template-columns:1fr; }
   .colour-grid { grid-template-columns:1fr; }
   .admin-nav { padding:0 14px; gap:10px; overflow-x:auto; }
   .admin-nav .brand span,.sign-out { display:none; }
   .nav-links a { padding:0 11px; font-size:.88rem; }
   .nav-menu summary { padding:0 11px; font-size:.88rem; }
   .admin-page { padding:20px 14px; }
   .search-bar { align-items:stretch; flex-wrap:wrap; }
   th,td { padding:11px; }
   .record-grid { grid-template-columns:1fr; }
   .record-card.wide { grid-column:auto; }
   .record-card dl { grid-template-columns:1fr; gap:4px; }
   .record-card dd { margin-bottom:10px; }
 }

/* Daycare daily welfare records */
.daycare-record-page { max-width:1400px; }
.daily-date-picker { display:flex; align-items:end; gap:.7rem; margin:1.25rem 0 1.75rem; }
.daily-date-picker label { display:grid; gap:.3rem; font-weight:700; }
.daily-date-picker label span { color:#68756f; font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; }
.daily-date-picker input { min-width:190px; border:1px solid var(--line); border-radius:10px; padding:.72rem .8rem; background:#fff; color:var(--ink); font:inherit; }
.date-step { width:48px; height:48px; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--green); font-size:1.4rem; cursor:pointer; }
.daily-record-section { margin-top:1.5rem; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.section-heading h2 { margin:.15rem 0 0; }
.daily-visit-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(225px,1fr)); gap:1rem; }
.daily-visit-card { display:flex; flex-direction:column; align-items:flex-start; gap:.35rem; padding:1.15rem; border:2px solid #eadfcd; border-radius:16px; background:#fff; box-shadow:0 8px 24px rgba(32,52,44,.06); }
.daily-visit-card.is-complete { border-color:#b9d8c5; background:#f6fbf8; }
.daily-visit-card h3 { font-size:1.35rem; margin:.25rem 0 0; }
.daily-visit-card p { margin:0; font-weight:600; }
.daily-visit-card > span { color:#68756f; }
.daily-visit-card .primary-button,.daily-visit-card .secondary-button { width:100%; margin-top:.75rem; text-align:center; }
.visit-status { color:#a46025; font-size:.76rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.is-complete .visit-status { color:#28704f; }
.daily-record-list { display:grid; gap:.65rem; }
.daily-record-list article { display:grid; grid-template-columns:minmax(170px,.8fr) minmax(380px,2fr) minmax(140px,.6fr); gap:1rem; align-items:center; padding:1rem; border:1px solid var(--line); border-radius:14px; background:#fff; }
.daily-record-list article > div { display:flex; flex-direction:column; gap:.2rem; }
.daily-record-list article > div:last-child { align-items:flex-end; }
.welfare-summary { flex-direction:row !important; flex-wrap:wrap; }
.welfare-summary span { padding:.32rem .55rem; border-radius:999px; background:#f1f1ee; font-size:.78rem; font-weight:700; }
.welfare-summary .normal { background:#e0f2e6; color:#216343; }
.welfare-summary .concern { background:#fde5df; color:#9a3727; }
.daily-record-form { display:grid; gap:1rem; padding-bottom:5rem; }
.daily-form-card { padding:1.35rem; border:1px solid var(--line); border-radius:17px; background:#fff; box-shadow:0 8px 24px rgba(32,52,44,.05); }
.daily-form-card > label,.daily-form-card .form-row > label { display:grid; gap:.42rem; font-weight:750; }
.daily-form-card > label { margin-top:1rem; }
.daily-form-card input:not([type=radio]),.daily-form-card select,.daily-form-card textarea { width:100%; border:1px solid var(--line); border-radius:10px; padding:.75rem .85rem; background:#fff; color:var(--ink); font:inherit; }
.daily-form-card input:focus,.daily-form-card select:focus,.daily-form-card textarea:focus,.daily-date-picker input:focus { border-color:var(--green); outline:3px solid color-mix(in srgb,var(--green) 18%,transparent); }
.daily-form-card textarea { resize:vertical; line-height:1.5; }
.daily-form-card .form-row { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:end; }
.form-card-heading { display:flex; align-items:flex-start; gap:.8rem; margin-bottom:1.25rem; }
.form-card-heading > span { display:grid; place-items:center; flex:0 0 34px; height:34px; border-radius:50%; background:var(--green); color:white; font-weight:800; }
.form-card-heading h2 { margin:0; font-size:1.22rem; }
.form-card-heading p { margin:.25rem 0 0; color:#68756f; }
.selected-dog { display:flex; flex-direction:column; padding:1rem; margin-bottom:1rem; border-radius:12px; background:#eef5f1; }
.selected-dog strong { font-size:1.2rem; }
.welfare-checks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.welfare-checks fieldset { display:grid; grid-template-columns:1fr 1fr; gap:.55rem; margin:0; padding:.8rem; border:1px solid var(--line); border-radius:14px; }
.welfare-checks legend { padding:0 .3rem; font-size:1rem; font-weight:800; }
.welfare-choice { position:relative; cursor:pointer; }
.welfare-choice input { position:absolute; opacity:0; pointer-events:none; }
.welfare-choice span { display:flex; flex-direction:column; justify-content:center; min-height:62px; padding:.65rem .8rem; border:2px solid #e1e4e1; border-radius:11px; background:#fafafa; }
.welfare-choice small { margin-top:.1rem; color:#68756f; }
.welfare-choice.normal input:checked + span { border-color:#3d8a65; background:#e5f4ea; color:#1f6544; }
.welfare-choice.concern input:checked + span { border-color:#c9513d; background:#fde8e3; color:#963423; }
.welfare-choice.pending { grid-column:1 / -1; }
.welfare-choice.pending span { min-height:auto; padding:.45rem .7rem; text-align:center; color:#68756f; }
.welfare-choice.pending input:checked + span { border-color:#9aa39e; background:#f0f1ef; }
.sticky-form-actions { position:sticky; bottom:0; display:flex; justify-content:flex-end; gap:.75rem; padding:1rem; border:1px solid var(--line); border-radius:14px; background:rgba(250,247,241,.96); box-shadow:0 -8px 24px rgba(32,52,44,.08); backdrop-filter:blur(8px); }

@media (max-width:850px) {
  .daily-record-list article { grid-template-columns:1fr; }
  .daily-record-list article > div:last-child { align-items:flex-start; }
  .welfare-checks { grid-template-columns:1fr; }
  .daily-form-card .form-row { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .daily-date-picker { align-items:center; flex-wrap:wrap; }
  .daily-date-picker label { flex:1; }
  .daily-date-picker input { min-width:0; width:100%; }
  .daily-form-card { padding:1rem; }
  .welfare-checks fieldset { grid-template-columns:1fr; }
  .welfare-choice.pending { grid-column:auto; }
  .sticky-form-actions { flex-direction:column-reverse; }
  .sticky-form-actions a,.sticky-form-actions button { width:100%; text-align:center; }
}

.password-field { position:relative; display:block; }
.password-field input { width:100%; padding-right:3rem !important; }
.password-toggle { position:absolute; top:50%; right:.45rem; transform:translateY(-50%); display:grid; place-items:center; width:2.35rem; height:2.35rem; border:0; border-radius:8px; background:transparent; color:var(--green); font-size:1.15rem; cursor:pointer; }
.password-toggle:hover,.password-toggle:focus-visible { background:#e8f0eb; outline:2px solid transparent; }
.password-toggle.is-showing { background:#e1ece5; }

.portal-card-actions { grid-column:1 / -1; display:flex; flex-direction:column; align-items:stretch; gap:.55rem; text-align:center; }
.portal-record-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.portal-dog-view .page-heading { margin-bottom:1.5rem; }
.portal-view-card { padding:1.35rem; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 8px 24px rgba(32,52,44,.05); }
.portal-view-card.wide { grid-column:1 / -1; }
.portal-view-card h2 { margin:0 0 1rem; font-size:1.2rem; }
.portal-view-card dl { display:grid; grid-template-columns:minmax(120px,.65fr) minmax(0,1.35fr); gap:.65rem 1rem; margin:0; }
.portal-view-card dt { color:#69766f; font-weight:700; }
.portal-view-card dd { margin:0; overflow-wrap:anywhere; }
.record-note { margin-top:1rem; padding:1rem; border-radius:11px; background:#f3f7f4; }
.record-note p { margin:.35rem 0 0; }
.view-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.view-detail-grid > div { padding:1rem; border-radius:11px; background:#f7f8f6; }
.view-detail-grid p { margin:.35rem 0 0; white-space:pre-line; }
.permission-view { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
.permission-view div { display:flex; gap:.65rem; align-items:flex-start; padding:.75rem; border-radius:10px; background:#f2f3f1; color:#66716c; }
.permission-view div span { font-weight:900; }
.permission-view .allowed { background:#e4f2e9; color:#236447; }
.portal-documents.embedded { margin:0 0 1rem; }
.legacy-field-note { display:block; margin-top:.45rem; padding:.55rem .65rem; border-radius:8px; background:#fff6df; color:#73571f; line-height:1.4; }
.document-upload-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.document-upload-field { display:grid; gap:.75rem; padding:1rem; border:1px solid var(--line); border-radius:12px; background:#f8faf8; }
.document-upload-field label span { color:#748079; font-weight:400; }
.document-expiry-edit { display:flex !important; flex-direction:row !important; align-items:center; gap:.65rem; margin-top:.55rem; color:#53615a; font-size:.82rem; }
.document-expiry-edit input { width:auto; padding:.4rem .55rem; }
.document-expiry-status { display:inline-block !important; width:max-content; margin-top:.45rem; padding:.25rem .5rem; border-radius:999px; font-size:.76rem; font-weight:800; }
.document-expiry-status.current { background:#e1f1e7; color:#236447; }
.document-expiry-status.expiring { background:#fff0cb; color:#875e0d; }
.document-expiry-status.expired { background:#fde3dd; color:#9a3425; }
.document-expiry-status.no-expiry { background:#eef0ee; color:#66716c; }

@media (max-width:720px) {
  .portal-record-summary,.view-detail-grid,.permission-view { grid-template-columns:1fr; }
  .document-upload-grid { grid-template-columns:1fr; }
  .portal-view-card.wide { grid-column:auto; }
  .portal-view-card dl { grid-template-columns:1fr; gap:.2rem; }
  .portal-view-card dd { margin-bottom:.55rem; }
}
