:root{--bg:#fbf7f1;--surface:#fff;--surface-2:#f5efe5;--surface-3:#efe7da;--border:#e7ddc9;--border-strong:#d8cbb1;--shadow-card:0 1px 2px #3a26120a, 0 4px 16px #3a26120d;--shadow-pop:0 2px 8px #3a261214, 0 24px 48px #3a26121f;--text:#221a12;--text-1:#3a2e22;--text-2:#6b5d4d;--text-3:#9a8b77;--primary:#d77a4f;--primary-soft:#f4dccb;--primary-soft-2:#fae9dc;--primary-hover:#c26a40;--primary-ink:#7a3a1c;--sage:#6fa38b;--sage-soft:#deebe2;--sage-ink:#2f5a47;--sky:#6e97b3;--sky-soft:#dee9f1;--sky-ink:#2e4f69;--amber:#d4994f;--amber-soft:#f5e5c9;--amber-ink:#6b4615;--rose:#c25548;--rose-soft:#f3d8d2;--rose-ink:#6e2b22;--violet:#9b7cb6;--violet-soft:#e5dcef;--violet-ink:#4a356b;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:28px;--r-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--sp-9:56px;--font-display:"Bricolage Grotesque", "Plus Jakarta Sans", system-ui, sans-serif;--font-body:"Plus Jakarta Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--density:1}[data-theme=dark]{--bg:#16110c;--surface:#1f1812;--surface-2:#281f17;--surface-3:#32271d;--border:#3a2e22;--border-strong:#51412f;--shadow-card:0 1px 2px #0006, 0 4px 16px #00000052;--shadow-pop:0 2px 8px #00000080, 0 24px 48px #00000080;--text:#f5ecdc;--text-1:#e6dbc6;--text-2:#a99880;--text-3:#75664f;--primary:#e8895e;--primary-soft:#3f2516;--primary-soft-2:#4d2d1a;--primary-hover:#f39a70;--primary-ink:#fbd3bc;--sage:#88b89e;--sage-soft:#1f3329;--sage-ink:#bad9c7;--sky:#8ab1cb;--sky-soft:#1b2c39;--sky-ink:#bfd6e5;--amber:#e0b26b;--amber-soft:#3a2a14;--amber-ink:#f0d6a6;--rose:#d87165;--rose-soft:#3d1f1b;--rose-ink:#f0c3bc;--violet:#b499cd;--violet-soft:#2e2438;--violet-ink:#dccae9}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;color:inherit;background:0 0;border:0;padding:0}input,textarea,select{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);outline:none;width:100%;padding:10px 12px;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}textarea{resize:vertical;font-family:var(--font-body);line-height:1.55}::placeholder{color:var(--text-3)}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);margin:0;font-weight:600}h1{letter-spacing:-.02em;font-size:28px}h2{font-size:22px}h3{font-size:17px}h4{font-size:14px}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}hr{border:0;border-top:1px solid var(--border);margin:var(--sp-4) 0}.app{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:var(--sp-5) var(--sp-3);gap:var(--sp-2);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:var(--sp-3);padding:0 var(--sp-2) var(--sp-5);display:flex}.brand-mark{background:linear-gradient(135deg, var(--primary) 0%, #e89870 100%);color:#fff;border-radius:12px;place-items:center;width:36px;height:36px;display:grid;box-shadow:0 4px 12px #d77a4f4d}.brand-name{font-family:var(--font-display);letter-spacing:-.01em;font-size:16px;font-weight:600}.brand-sub{color:var(--text-2);margin-top:-2px;font-size:11px}.nav-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);padding:var(--sp-3) var(--sp-3) var(--sp-1);font-size:10.5px;font-weight:600}.nav-item{align-items:center;gap:var(--sp-3);padding:9px var(--sp-3);border-radius:var(--r-sm);color:var(--text-1);cursor:pointer;text-align:left;width:100%;transition:background .12s,color .12s;display:flex;position:relative}.nav-item:hover{background:var(--surface-2)}.nav-item.active{background:var(--primary-soft);color:var(--primary-ink);font-weight:600}[data-theme=dark] .nav-item.active{color:var(--primary-ink)}.nav-item .badge{background:var(--surface-3);color:var(--text-1);border-radius:var(--r-pill);margin-left:auto;padding:2px 8px;font-size:11px;font-weight:600}.nav-item.active .badge{background:var(--primary);color:#fff}.nav-icon{flex-shrink:0;place-items:center;width:18px;height:18px;display:grid}.sidebar-footer{padding:var(--sp-3);border-top:1px solid var(--border);align-items:center;gap:var(--sp-3);margin-top:auto;display:flex}.main{flex-direction:column;min-width:0;display:flex}.topbar{height:60px;padding:0 var(--sp-6);border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;align-items:center;gap:var(--sp-4);display:flex;position:sticky;top:0}.topbar .search{align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);max-width:480px;height:36px;color:var(--text-2);flex:1;padding:0 12px;display:flex}.topbar .search input{background:0 0;border:0;flex:1;padding:0}.topbar .search input:focus{box-shadow:none}.topbar .search kbd{font-family:var(--font-mono);background:var(--surface-2);color:var(--text-2);border-radius:4px;padding:2px 6px;font-size:11px}.role-switcher{align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);padding:4px;display:flex}.role-switcher button{border-radius:var(--r-pill);color:var(--text-2);padding:4px 12px;font-size:12.5px;font-weight:500}.role-switcher button.active{background:var(--text);color:var(--bg)}.user-chip{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);align-items:center;gap:10px;padding:4px 10px 4px 4px;display:flex}.content{padding:var(--sp-6) var(--sp-7);flex:1;min-width:0}.page-header{margin-bottom:var(--sp-6);justify-content:space-between;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap;display:flex}.page-header h1{font-size:28px}.page-header p{color:var(--text-2);margin:4px 0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-card)}.btn{border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:13.5px;font-weight:600;transition:background .12s,transform 40ms,box-shadow .12s,color .12s,border-color .12s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px #d77a4f66}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text-1)}.btn-secondary:hover{background:var(--surface-2)}.btn-ghost{color:var(--text-1)}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{color:var(--rose-ink);background:var(--rose-soft)}.btn-danger:hover{background:color-mix(in srgb, var(--rose-soft) 80%, var(--rose) 20%)}.btn-sm{padding:6px 10px;font-size:12.5px}.btn-lg{padding:12px 22px;font-size:14.5px}.icon-btn{border-radius:var(--r-sm);width:32px;height:32px;color:var(--text-2);place-items:center;transition:background .12s,color .12s;display:grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.tag{border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-1);white-space:nowrap;align-items:center;gap:6px;padding:3px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.tag-dot{background:var(--text-2);border-radius:50%;width:6px;height:6px}.tag-sage{background:var(--sage-soft);color:var(--sage-ink)}.tag-sage .tag-dot{background:var(--sage)}.tag-sky{background:var(--sky-soft);color:var(--sky-ink)}.tag-sky .tag-dot{background:var(--sky)}.tag-amber{background:var(--amber-soft);color:var(--amber-ink)}.tag-amber .tag-dot{background:var(--amber)}.tag-rose{background:var(--rose-soft);color:var(--rose-ink)}.tag-rose .tag-dot{background:var(--rose)}.tag-violet{background:var(--violet-soft);color:var(--violet-ink)}.tag-violet .tag-dot{background:var(--violet)}.tag-primary{background:var(--primary-soft);color:var(--primary-ink)}.tag-primary .tag-dot{background:var(--primary)}.avatar{background:var(--surface-2);width:36px;height:36px;color:var(--text-1);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid;position:relative;overflow:hidden}.avatar-sm{width:28px;height:28px;font-size:11px}.avatar-lg{width:56px;height:56px;font-size:18px}.avatar-xl{width:80px;height:80px;font-size:24px}.avatar.dog{color:#7a3a1c;background:#f2d9c2}.avatar.cat{color:#4a356b;background:#e5dcef}.avatar.bird{color:#2f5a47;background:#deebe2}.avatar.rabbit{color:#6b4615;background:#f5e5c9}.avatar.staff-vet{background:var(--primary-soft);color:var(--primary-ink)}.avatar.staff-rec{background:var(--sky-soft);color:var(--sky-ink)}.avatar.staff-groom{background:var(--violet-soft);color:var(--violet-ink)}.stack{flex-direction:column;display:flex}.stack-1{gap:var(--sp-1);flex-direction:column;display:flex}.stack-2{gap:var(--sp-2);flex-direction:column;display:flex}.stack-3{gap:var(--sp-3);flex-direction:column;display:flex}.stack-4{gap:var(--sp-4);flex-direction:column;display:flex}.stack-5{gap:var(--sp-5);flex-direction:column;display:flex}.stack-6{gap:var(--sp-6);flex-direction:column;display:flex}.row{align-items:center;display:flex}.row-2{gap:var(--sp-2);align-items:center;display:flex}.row-3{gap:var(--sp-3);align-items:center;display:flex}.row-4{gap:var(--sp-4);align-items:center;display:flex}.spread{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.muted{color:var(--text-2)}.mute2{color:var(--text-3)}.tiny{font-size:11.5px}.small{font-size:12.5px}.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1}.bold{font-weight:600}.strong{font-weight:700}.divider{background:var(--border);height:1px;margin:0}.v-divider{background:var(--border);align-self:stretch;width:1px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border:2px solid var(--bg);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;padding:var(--sp-6);background:#221a1266;place-items:center;animation:.15s fadeIn;display:grid;position:fixed;inset:0}[data-theme=dark] .overlay{background:#0009}.modal{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);flex-direction:column;width:100%;max-width:720px;max-height:90vh;animation:.18s popIn;display:flex;overflow:hidden}.modal-header{padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.modal-body{padding:var(--sp-5) var(--sp-6);flex:1;overflow-y:auto}.modal-footer{padding:var(--sp-4) var(--sp-6);border-top:1px solid var(--border);justify-content:flex-end;gap:var(--sp-2);background:var(--surface-2);display:flex}.drawer{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#221a1266;animation:.15s fadeIn;position:fixed;inset:0}[data-theme=dark] .drawer{background:#0009}.drawer-panel{background:var(--surface);width:380px;max-width:90vw;box-shadow:var(--shadow-pop);z-index:101;flex-direction:column;animation:.2s slideInRight;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-header{padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.drawer-body{padding:var(--sp-5) var(--sp-6);flex:1;overflow-y:auto}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.table th{text-align:left;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);background:var(--surface-2);padding:10px 14px;font-size:11.5px;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 14px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--surface-2)}.table tbody tr.selected{background:var(--primary-soft)}.species-pill{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:inline-flex}.tabs{border-bottom:1px solid var(--border);flex-wrap:nowrap;gap:2px;display:flex;overflow-x:auto}.tab{color:var(--text-2);cursor:pointer;white-space:nowrap;border-bottom:2px solid #0000;flex-shrink:0;margin-bottom:-1px;padding:10px 14px;font-size:13px;font-weight:600;transition:color .12s,border-color .12s}.truncate{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.nowrap{white-space:nowrap}.min0{min-width:0}.shrink0{flex-shrink:0}.tab:hover{color:var(--text-1)}.tab.active{color:var(--text);border-bottom-color:var(--primary)}.option-group{gap:var(--sp-2);display:grid}.option{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:border-color .12s,background .12s;display:flex}.option:hover{background:var(--surface-2)}.option.selected{border-color:var(--primary);background:var(--primary-soft)}.kbd{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);border-radius:4px;padding:1px 6px;font-size:11px}.bdot{background:var(--text-3);border-radius:50%;width:8px;height:8px;display:inline-block}.bdot.b-sage{background:var(--sage)}.bdot.b-sky{background:var(--sky)}.bdot.b-amber{background:var(--amber)}.bdot.b-rose{background:var(--rose)}.bdot.b-violet{background:var(--violet)}.bdot.b-primary{background:var(--primary)}.bdot.pulse{box-shadow:0 0 0 0 var(--primary);animation:1.6s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 60%, transparent)}70%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}.alert-pill{background:var(--rose-soft);color:var(--rose-ink);border-radius:var(--r-pill);align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.paw-bg{position:relative;overflow:hidden}.paw-bg:before{content:"";background:radial-gradient(circle at center, var(--primary-soft) 30%, transparent 70%);opacity:.5;pointer-events:none;width:220px;height:220px;position:absolute;top:-50px;right:-40px}.twk-panel{z-index:2147483646;color:#29261b;-webkit-backdrop-filter:blur(24px)saturate(160%);backdrop-filter:blur(24px)saturate(160%);background:#faf9f7c7;border:.5px solid #fff9;border-radius:14px;flex-direction:column;width:280px;max-height:calc(100vh - 32px);font:11.5px/1.4 ui-sans-serif,system-ui,-apple-system,sans-serif;display:flex;position:fixed;bottom:16px;right:16px;overflow:hidden;box-shadow:inset 0 1px #ffffff80,0 12px 40px #0000002e}.twk-hd{cursor:move;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:10px 8px 10px 14px;display:flex}.twk-hd b{letter-spacing:.01em;font-size:12px;font-weight:600}.twk-x{appearance:none;color:#29261b8c;cursor:default;background:0 0;border:0;border-radius:6px;width:22px;height:22px;font-size:13px;line-height:1}.twk-x:hover{color:#29261b;background:#0000000f}.twk-body{scrollbar-width:thin;scrollbar-color:#00000026 transparent;flex-direction:column;gap:10px;min-height:0;padding:2px 14px 14px;display:flex;overflow:hidden auto}.twk-body::-webkit-scrollbar{width:8px}.twk-body::-webkit-scrollbar-track{background:0 0;margin:2px}.twk-body::-webkit-scrollbar-thumb{background:#00000026 padding-box content-box;border:2px solid #0000;border-radius:4px}.twk-body::-webkit-scrollbar-thumb:hover{background:#00000040 padding-box content-box;border:2px solid #0000}.twk-row{flex-direction:column;gap:5px;display:flex}.twk-row-h{flex-direction:row;justify-content:space-between;align-items:center;gap:10px}.twk-lbl{color:#29261bb8;justify-content:space-between;align-items:baseline;display:flex}.twk-lbl>span:first-child{font-weight:500}.twk-val{color:#29261b80;font-variant-numeric:tabular-nums}.twk-sect{letter-spacing:.06em;text-transform:uppercase;color:#29261b73;padding:10px 0 0;font-size:10px;font-weight:600}.twk-sect:first-child{padding-top:0}.twk-field{appearance:none;box-sizing:border-box;width:100%;min-width:0;height:26px;color:inherit;font:inherit;background:#fff9;border:.5px solid #0000001a;border-radius:7px;outline:none;padding:0 8px}.twk-field:focus{background:#ffffffd9;border-color:#00000040}select.twk-field{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='rgba(0,0,0,.5)' d='M0 0h10L5 6z'/></svg>");background-position:right 8px center;background-repeat:no-repeat;padding-right:22px}.twk-slider{appearance:none;background:#0000001f;border-radius:999px;outline:none;width:100%;height:4px;margin:6px 0}.twk-slider::-webkit-slider-thumb{appearance:none;cursor:default;background:#fff;border:.5px solid #0000001f;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 3px #0003}.twk-slider::-moz-range-thumb{cursor:default;background:#fff;border:.5px solid #0000001f;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 3px #0003}.twk-seg{-webkit-user-select:none;user-select:none;background:#0000000f;border-radius:8px;padding:2px;display:flex;position:relative}.twk-seg-thumb{background:#ffffffe6;border-radius:6px;transition:left .15s cubic-bezier(.3,.7,.4,1),width .15s;position:absolute;top:2px;bottom:2px;box-shadow:0 1px 2px #0000001f}.twk-seg.dragging .twk-seg-thumb{transition:none}.twk-seg button{appearance:none;z-index:1;color:inherit;font:inherit;cursor:default;overflow-wrap:anywhere;background:0 0;border:0;border-radius:6px;flex:1;min-height:22px;padding:4px 6px;font-weight:500;line-height:1.2;position:relative}.twk-toggle{cursor:default;background:#00000026;border:0;border-radius:999px;width:32px;height:18px;padding:0;transition:background .15s;position:relative}.twk-toggle[data-on="1"]{background:#34c759}.twk-toggle i{background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.twk-toggle[data-on="1"] i{transform:translate(14px)}.twk-num{box-sizing:border-box;background:#fff9;border:.5px solid #0000001a;border-radius:7px;align-items:center;min-width:0;height:26px;padding:0 0 0 8px;display:flex}.twk-num-lbl{color:#29261b99;cursor:ew-resize;-webkit-user-select:none;user-select:none;padding-right:8px;font-weight:500}.twk-num input{min-width:0;height:100%;font:inherit;font-variant-numeric:tabular-nums;text-align:right;color:inherit;-moz-appearance:textfield;background:0 0;border:0;outline:none;flex:1;padding:0 8px 0 0}.twk-num input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.twk-num input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.twk-num-unit{color:#29261b73;padding-right:8px}.twk-btn{appearance:none;color:#fff;height:26px;font:inherit;cursor:default;background:#000000c7;border:0;border-radius:7px;padding:0 12px;font-weight:500}.twk-btn:hover{background:#000000e0}.twk-btn.secondary{color:inherit;background:#0000000f}.twk-btn.secondary:hover{background:#0000001a}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);width:100%;max-width:400px;box-shadow:var(--shadow-card);border-radius:16px;padding:40px}.login-header{text-align:center;margin-bottom:32px}.login-logo{color:var(--primary);letter-spacing:-.5px;font-size:32px;font-weight:700}.login-subtitle{color:var(--text-2);margin:8px 0 0;font-size:14px}.login-form{flex-direction:column;gap:20px;display:flex}.login-form label{color:var(--text-1);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.login-form input{border:1px solid var(--border);font:inherit;background:var(--surface);border-radius:10px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .15s}.login-form input:focus{border-color:var(--primary)}.login-btn{margin-top:8px;padding:12px;font-size:15px;font-weight:600}.login-error{background:var(--rose-soft);color:var(--rose-ink);border-radius:10px;padding:10px 14px;font-size:13px;font-weight:500}
