:root{--ink:#18332d;--muted:#66766f;--cream:#f5f1e8;--paper:#fffdf9;--line:#dedfd7;--green:#1e5b4c;--mint:#dbece2;--lime:#d6ed8c;--peach:#f0c6a7;--blue:#a9cad6;--shadow:0 12px 35px rgba(31,57,48,.08);--radius:22px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}
.sidebar{position:sticky;top:0;height:100vh;padding:28px 20px 22px;background:#17483d;color:#f9f7ef;display:flex;flex-direction:column;z-index:20}
.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;font-size:18px;letter-spacing:-.3px;margin:0 8px 36px}
.brand strong{font-family:Georgia,serif;font-style:italic;font-weight:400}
.brand-mark{display:grid;place-items:center;width:39px;height:39px;background:var(--lime);color:#173e35;border-radius:13px 13px 18px 13px;font-family:Georgia,serif;font-weight:700}
.brand-mark span{font-style:italic}
.sidebar nav{display:flex;flex-direction:column;gap:5px}
.nav-item{border:0;background:transparent;color:#c8d8d2;padding:12px 14px;border-radius:12px;text-align:left;font:600 14px inherit;cursor:pointer;display:flex;align-items:center;gap:13px;transition:.2s}
.nav-item span{font-size:20px;font-weight:400;width:19px;text-align:center}
.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.11);color:white}
.sidebar-foot{margin-top:auto}
.sidebar-foot>.nav-item{width:100%;margin-bottom:17px}
.user-chip{border-top:1px solid rgba(255,255,255,.15);padding:20px 4px 0;display:flex;gap:10px;align-items:center}
.user-chip small{display:block;color:#a8c0b8;margin-top:2px;font-size:11px}
.avatar{border-radius:50%;display:grid;place-items:center;flex:none}
.avatar.human{width:38px;height:38px;background:var(--peach);color:#58321e;font-size:12px;font-weight:800}
main{min-width:0}
.topbar{height:108px;padding:23px 3.5vw 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(30,70,60,.09)}
h1,h2,h3,p{margin-top:0}
.topbar h1{font:400 29px/1.1 Georgia,serif;margin:3px 0}
.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:800;color:#7a877f;margin:0}
.top-actions{display:flex;align-items:center;gap:12px}
.status-pill{font-size:11px;border:1px solid var(--line);background:rgba(255,255,255,.5);padding:9px 12px;border-radius:99px;color:#596a64}
.status-pill i{display:inline-block;width:7px;height:7px;background:#53a979;border-radius:50%;margin-right:6px}
.icon-button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--paper);position:relative;cursor:pointer}
.icon-button b{position:absolute;right:-2px;top:-4px;background:#df775c;color:white;width:17px;height:17px;border-radius:50%;font-size:9px;display:grid;place-items:center}
.content{padding:30px 3.5vw 56px;max-width:1500px;margin:auto}
.grid{display:grid;gap:22px}
.dashboard-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr)}
.card{background:rgba(255,253,249,.93);border:1px solid rgba(37,67,57,.10);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}
.hero{background:var(--green);color:white;padding:28px;position:relative;overflow:hidden;min-height:190px}
.hero:after{content:"";position:absolute;width:250px;height:250px;border:46px solid rgba(214,237,140,.13);border-radius:50%;right:-65px;top:-80px}
.hero h2{font:400 30px/1.05 Georgia,serif;max-width:430px;margin:10px 0 12px}
.hero p{max-width:500px;color:#c9ddd5;font-size:13px;line-height:1.55}
.hero .primary{position:relative;z-index:2}
.primary,.secondary,.ghost,.chip{border:0;border-radius:12px;font:700 13px inherit;cursor:pointer}
.primary{background:var(--lime);color:#193d34;padding:12px 17px}
.primary:hover{filter:brightness(.96);transform:translateY(-1px)}
.primary.compact{padding:10px 14px}
.secondary{background:var(--green);color:white;padding:12px 17px}
.ghost{background:transparent;color:var(--green);border:1px solid var(--line);padding:10px 14px}
.section-head{display:flex;align-items:end;justify-content:space-between;margin:26px 2px 13px}
.section-head h2{font:400 23px Georgia,serif;margin:0}
.section-head p{font-size:12px;color:var(--muted);margin:4px 0 0}
.link-button{border:0;background:none;color:var(--green);font-weight:800;font-size:12px;cursor:pointer}
.dog-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.dog-card{display:flex;gap:15px;align-items:center;padding:17px;cursor:pointer;transition:.2s}
.dog-card:hover{transform:translateY(-2px)}
.dog-avatar{width:64px;height:64px;border-radius:22px;display:grid;place-items:center;font-size:35px;background:var(--mint);position:relative}
.dog-avatar.charlie{background:#f3d5bd}
.dog-avatar:after{content:"";position:absolute;right:-2px;bottom:1px;width:13px;height:13px;border-radius:50%;background:#58aa77;border:3px solid var(--paper)}
.dog-meta{flex:1}
.dog-meta h3{font:400 19px Georgia,serif;margin:0 0 5px}
.dog-meta p{font-size:11px;color:var(--muted);margin:0 0 9px}
.mini-tags{display:flex;gap:6px;flex-wrap:wrap}
.mini-tags span,.tag{padding:5px 8px;border-radius:99px;background:#eef1eb;color:#52645e;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.45px}
.dog-arrow{font-size:20px;color:#7e8e88}
.today-list{display:flex;flex-direction:column;gap:8px}
.booking{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:13px;border-radius:15px;background:#f7f5ef}
.booking time{font:700 12px Georgia,serif}
.booking h4{margin:0;font-size:12px}
.booking p{margin:3px 0 0;font-size:10px;color:var(--muted)}
.booking .dot{width:8px;height:8px;border-radius:50%;background:#77ae92}
.booking .dot.peach{background:#dc9674}
.kpi{display:flex;justify-content:space-between;gap:15px;margin-bottom:15px}
.kpi div{flex:1}
.kpi strong{display:block;font:400 24px Georgia,serif}
.kpi small{font-size:10px;color:var(--muted)}
.progress{height:7px;background:#e8e9e2;border-radius:9px;overflow:hidden}
.progress span{display:block;height:100%;background:var(--green);border-radius:9px}
.notice{padding:14px;border-radius:14px;background:#eef4df;font-size:11px;line-height:1.5;margin-top:17px}
.notice strong{display:block;margin-bottom:3px}
.page-grid{grid-template-columns:minmax(0,1.5fr) minmax(280px,.75fr)}
.page-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.page-title-row h2{font:400 32px Georgia,serif;margin:0}
.page-title-row p{color:var(--muted);font-size:13px;margin:5px 0 0}
.profile-hero{display:flex;align-items:center;gap:20px}
.profile-hero .dog-avatar{width:88px;height:88px;font-size:48px}
.profile-hero h2{font:400 30px Georgia,serif;margin:0 0 5px}
.profile-hero p{font-size:12px;color:var(--muted);margin:0}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}
.fact{padding:13px;background:#f7f5ef;border-radius:13px}
.fact small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.7px;margin-bottom:4px}
.fact strong{font-size:12px}
.context-list{display:flex;flex-direction:column;gap:10px}
.context{border-left:3px solid var(--blue);background:#f4f7f5;padding:12px 14px;border-radius:0 12px 12px 0}
.context.behaviour{border-color:var(--peach)}
.context.vet{border-color:#9fbf80}
.context strong{font-size:11px}
.context p{font-size:11px;color:var(--muted);line-height:1.45;margin:4px 0 0}
.timeline{position:relative;padding-left:20px}
.timeline:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;border-left:1px solid #ccd3cc}
.timeline-card{position:relative;margin-bottom:12px;padding:17px}
.timeline-card:before{content:"";position:absolute;left:-21px;top:24px;width:9px;height:9px;background:var(--green);border:3px solid var(--cream);border-radius:50%}
.timeline-top{display:flex;justify-content:space-between;gap:20px}
.timeline-top time{font-size:10px;color:var(--muted);white-space:nowrap}
.timeline-card h4{font-size:13px;margin:0 0 7px}
.timeline-card p{font-size:12px;line-height:1.55;color:#52635d;margin:0 0 10px}
.composer{max-width:780px;margin:auto}
.composer textarea{width:100%;min-height:160px;resize:vertical;border:1px solid var(--line);background:#faf9f5;border-radius:16px;padding:18px;font:15px/1.6 inherit;color:var(--ink);outline:none}
.composer textarea:focus{border-color:#77a597;box-shadow:0 0 0 3px rgba(77,139,120,.12)}
label.label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.8px;font-weight:800;margin:20px 0 9px}
.dog-picker{display:flex;gap:10px}
.dog-pick{flex:1;padding:13px;border:1px solid var(--line);background:white;border-radius:14px;display:flex;align-items:center;gap:10px;cursor:pointer;text-align:left}
.dog-pick.active{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:#f5faf7}
.dog-pick span{font-size:25px}
.dog-pick strong{display:block}
.dog-pick small{color:var(--muted)}
.detected{min-height:49px;padding:12px;border:1px dashed #b9c5bd;border-radius:13px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.detected em{font-size:11px;color:var(--muted)}
.composer-actions{display:flex;align-items:center;justify-content:space-between;margin-top:20px}
.composer-actions small{color:var(--muted);font-size:10px;max-width:330px}
.media-grid{grid-template-columns:repeat(3,1fr)}
.media-item{min-height:205px;border-radius:20px;overflow:hidden;position:relative;display:flex;align-items:end;padding:15px;color:white;background:linear-gradient(150deg,#729d8a,#264f46)}
.media-item:nth-child(2){background:linear-gradient(150deg,#e2b790,#8a5f43)}
.media-item:nth-child(3){background:linear-gradient(150deg,#9fc4cf,#3f7482)}
.media-item:nth-child(4){background:linear-gradient(150deg,#aab887,#53633d)}
.media-item:nth-child(5){background:linear-gradient(150deg,#cf9b84,#784b43)}
.media-item:nth-child(6){background:linear-gradient(150deg,#899daf,#3f5363)}
.media-art{position:absolute;inset:0;display:grid;place-items:center;font-size:82px;filter:drop-shadow(0 10px 10px rgba(0,0,0,.2))}
.media-copy{position:relative;z-index:2}
.media-copy strong{display:block;font-size:12px}
.media-copy small{font-size:10px;color:#e3e9e5}
.draft-badge{position:absolute;top:12px;right:12px;background:rgba(20,47,41,.7);backdrop-filter:blur(5px);padding:6px 8px;border-radius:99px;font-size:8px;font-weight:800;text-transform:uppercase}
.story-phone{max-width:390px;margin:auto;background:#fff;border:8px solid #173d34;border-radius:35px;overflow:hidden;box-shadow:0 25px 60px rgba(24,51,45,.2)}
.story-image{height:225px;background:linear-gradient(140deg,#a4c9b7,#37695c);display:grid;place-items:center;font-size:95px}
.story-body{padding:22px}
.story-body h3{font:400 25px Georgia,serif;margin:0 0 5px}
.story-body .story-date{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.story-copy{font:400 15px/1.6 Georgia,serif;color:#334a43;margin:18px 0}
.story-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.story-stats div{background:#f4f3ed;border-radius:11px;padding:10px;text-align:center}
.story-stats strong{display:block;font-size:11px}
.story-stats small{font-size:8px;color:var(--muted)}
.preview-note{font-size:10px;color:var(--muted);text-align:center;margin-top:12px}
.invite-grid{align-items:start}
.invite-card{padding:26px}
.form-row{margin-bottom:18px}
.form-split{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field-label{display:flex;flex-direction:column;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.8px;font-weight:800}
.field-label input{border:1px solid var(--line);border-radius:12px;background:#faf9f5;padding:12px 13px;font:600 13px inherit;color:var(--ink);outline:none;text-transform:none;letter-spacing:0}
.field-label input:focus{border-color:#77a597;box-shadow:0 0 0 3px rgba(77,139,120,.12)}
.role-choice,.permission-list{display:grid;gap:10px}
.role-choice{grid-template-columns:1fr 1fr}
.role-choice label,.permission-list label{border:1px solid var(--line);background:#fff;border-radius:15px;padding:13px;display:flex;gap:11px;align-items:flex-start;cursor:pointer}
.role-choice input,.permission-list input{accent-color:var(--green);margin-top:3px}
.role-choice label:has(input:checked),.permission-list label:has(input:checked){border-color:var(--green);background:#f5faf7;box-shadow:inset 0 0 0 1px var(--green)}
.role-choice strong,.permission-list strong{display:block;font-size:13px}
.role-choice small,.permission-list small{display:block;color:var(--muted);font-size:10px;line-height:1.45;margin-top:3px}
.local-boundary{margin-top:18px;padding:14px;border-radius:15px;background:#fff5ed;border:1px solid #f1d6c4;display:flex;flex-direction:column;gap:3px}
.local-boundary strong{font-size:12px}
.local-boundary span{font-size:11px;color:var(--muted)}
.summary-card{position:sticky;top:125px}
.invite-summary{display:flex;flex-direction:column;gap:12px}
.summary-person{display:flex;gap:12px;align-items:center;padding:14px;background:#f4f7f5;border-radius:15px}
.summary-person>span{width:42px;height:42px;display:grid;place-items:center;background:var(--mint);border-radius:14px;font-size:22px}
.summary-person strong,.summary-person small{display:block}
.summary-person small{font-size:11px;color:var(--muted);margin-top:2px}
.summary-line{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #e9e8e1}
.summary-line b{font-size:11px}
.summary-line span{font-size:11px;color:var(--muted);text-align:right}
.notice.compact{margin-top:4px}
.pending-list{display:flex;flex-direction:column;gap:10px}
.pending-invite{border:1px solid var(--line);background:#fbfaf6;border-radius:15px;padding:13px;display:grid;gap:10px}
.pending-invite>div:first-child{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center}
.pending-invite strong,.pending-invite small{display:block}
.pending-invite small{grid-column:2;color:var(--muted);font-size:10px;margin-top:2px}
.status-dot{width:9px;height:9px;border-radius:50%;background:#dda067;box-shadow:0 0 0 4px #f7eadc}
.pending-label{justify-self:start;background:#fff2df;color:#8a5f22;border-radius:99px;padding:5px 8px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}
.empty-state.small{border:1px dashed #c8d1cb;border-radius:14px;padding:14px;text-align:center}
.empty-state.small strong,.empty-state.small span{display:block}
.empty-state.small span{color:var(--muted);font-size:10px;margin-top:4px}
.week{grid-template-columns:repeat(7,1fr);gap:9px}
.day{min-height:170px;padding:12px;background:rgba(255,253,249,.75);border:1px solid var(--line);border-radius:15px}
.day.today{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}
.day-head{font-size:10px;color:var(--muted);text-transform:uppercase}
.day-head strong{display:block;font:400 20px Georgia,serif;color:var(--ink);margin-top:3px}
.event{margin-top:12px;padding:9px;border-radius:10px;background:var(--mint);font-size:9px;line-height:1.4}
.event.peach{background:#f4ded0}
.metrics{grid-template-columns:repeat(4,1fr)}
.metric strong{font:400 28px Georgia,serif;display:block}
.metric small{font-size:10px;color:var(--muted)}
.bar-chart{height:180px;display:flex;align-items:end;gap:16px;border-bottom:1px solid var(--line);padding:15px 8px 0}
.bar{flex:1;background:var(--mint);border-radius:8px 8px 0 0;position:relative;min-height:20px}
.bar.current{background:var(--green)}
.bar span{position:absolute;bottom:-24px;width:100%;text-align:center;font-size:9px;color:var(--muted)}
.expense-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #e9e8e1}
.expense-row:last-child{border:0}
.expense-icon{width:36px;height:36px;background:#edf1eb;border-radius:11px;display:grid;place-items:center}
.expense-row div:nth-child(2){flex:1}
.expense-row strong{font-size:11px}
.expense-row small{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.empty{text-align:center;padding:55px 20px}
.empty .big{font-size:45px}
.empty h2{font:400 28px Georgia,serif;margin:12px 0 7px}
.empty p{font-size:12px;color:var(--muted)}
.toast{position:fixed;right:25px;bottom:25px;background:#173f35;color:white;padding:13px 18px;border-radius:12px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.25s;z-index:50}
.toast.show{opacity:1;transform:none}
.mobile-menu{display:none;border:0;background:none;font-size:23px}
.mobile-only{display:none}
@media(max-width:1050px){.app-shell{grid-template-columns:205px 1fr}
.sidebar{padding-left:14px;padding-right:14px}
.dashboard-grid,.page-grid{grid-template-columns:1fr}
.media-grid{grid-template-columns:repeat(2,1fr)}
.week{grid-template-columns:repeat(4,1fr)}
.metrics{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){.app-shell{display:block}
.sidebar{position:fixed;left:-260px;width:240px;transition:.25s;box-shadow:10px 0 30px rgba(0,0,0,.18)}
.sidebar.open{left:0}
.topbar{height:auto;min-height:84px;padding:18px}
.mobile-menu{display:block}
.topbar>div:first-of-type{flex:1;margin-left:11px}
.topbar h1{font-size:21px}
.status-pill,.icon-button{display:none}
.primary.compact{font-size:0}
.primary.compact:first-letter{font-size:18px}
.content{padding:22px 17px 45px}
.dashboard-grid{gap:15px}
.dog-row,.facts{grid-template-columns:1fr}
.media-grid{grid-template-columns:1fr}
.week{grid-template-columns:repeat(2,1fr)}
.day{min-height:130px}
.metrics{grid-template-columns:1fr 1fr}
.composer-actions{align-items:flex-end}
.composer-actions small{max-width:200px}
.hero h2{font-size:26px}
.form-split,.role-choice{grid-template-columns:1fr}
.summary-card{position:static}
}

.hero-link{position:relative;z-index:2;border:0;background:transparent;color:#e8f2c9;font:700 12px inherit;padding:12px 14px;cursor:pointer}
.handoff-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:18px}.handoff-heading h2{font:400 32px Georgia,serif;margin:6px 0}.handoff-heading>div>p:last-child{color:var(--muted);font-size:12px;margin:0}
.audience-toggle{display:flex;padding:4px;background:#e7e8e1;border-radius:14px;flex:none}.audience-toggle button{border:0;background:transparent;color:var(--muted);padding:10px 14px;border-radius:10px;font:700 12px inherit;cursor:pointer}.audience-toggle button.active{background:var(--paper);color:var(--green);box-shadow:0 2px 8px rgba(31,57,48,.1)}
.handoff-dogs{max-width:620px;margin-bottom:20px}.handoff-grid{grid-template-columns:minmax(0,1.5fr) minmax(280px,.75fr)}.handoff-main{padding:26px}.handoff-card-head{display:flex;gap:17px;align-items:center}.handoff-card-head h2,.next-care h2{font:400 25px Georgia,serif;margin:5px 0}.handoff-card-head p{font-size:11px;color:var(--muted);margin:0}.handoff-label{font-size:9px;letter-spacing:1px;font-weight:800;color:#6e7f78;text-transform:uppercase}
.highlight-list{margin:22px 0;padding:0;list-style:none;counter-reset:highlights}.highlight-list li{counter-increment:highlights;position:relative;padding:13px 12px 13px 44px;border-top:1px solid #e8e9e2;font-size:12px;line-height:1.5}.highlight-list li:before{content:counter(highlights);position:absolute;left:7px;top:10px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--mint);color:var(--green);font-size:10px;font-weight:800}
.health-note{background:#f3f5ef;border-left:3px solid #a7b7ad;border-radius:0 13px 13px 0;padding:14px 16px}.health-note.watch{background:#fff4e9;border-color:#d78b5d}.health-note strong{font-size:11px}.health-note p{color:#5d6c66;font-size:11px;line-height:1.5;margin:4px 0 0}.next-care ul{padding-left:19px;margin:18px 0 25px}.next-care li{font-size:12px;line-height:1.55;margin-bottom:10px}
.evidence-panel{margin-top:20px}.evidence-panel .section-head{margin-top:0}.evidence-list{display:flex;flex-direction:column}.evidence-row{width:100%;display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:14px;border:0;border-top:1px solid #e8e9e2;background:transparent;text-align:left;padding:15px 8px;cursor:pointer;color:var(--ink)}.evidence-row:hover{background:#f7f7f2}.evidence-row time{font:700 12px Georgia,serif;color:var(--green)}.evidence-row span{min-width:0}.evidence-row span strong{display:block;font-size:12px}.evidence-row span small{display:block;color:var(--muted);font-size:10px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70ch}.evidence-row b{color:var(--green);font-size:10px}.empty-evidence{color:var(--muted);font-size:12px}
@media(max-width:1050px){.handoff-grid{grid-template-columns:1fr}}
@media(max-width:760px){.handoff-heading{align-items:stretch;flex-direction:column}.audience-toggle button{flex:1}.handoff-dogs{flex-direction:column}.evidence-row{grid-template-columns:48px 1fr}.evidence-row b{display:none}}
