html,body,#root{width:100%;height:100%}body{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}.titlebar{-webkit-app-region:drag;align-items:center;height:38px;display:flex}:root{--primary:#d4813a;--primary-light:#e9a55a;--primary-dark:#b86828;--accent:#7a9e7e;--accent-light:#a8c5ab;--success:#52a869;--warning:#d49a2e;--danger:#c45c52;--bg:#faf7f2;--surface:#fff;--surface-2:#f5f0ea;--surface-3:#ede6de;--text:#2d1f17;--text-secondary:#7a6a5e;--text-muted:#a89388;--border:#e2d8ce;--border-light:#ede8e2;--border-medium:#cec2b4;--shadow-xs:0 1px 2px #2d1f170a;--shadow-sm:0 1px 4px #2d1f170f, 0 1px 2px #2d1f170a;--shadow-md:0 4px 12px #2d1f1714, 0 2px 4px #2d1f170a;--shadow-lg:0 8px 24px #2d1f171a, 0 4px 8px #2d1f170f;--radius-xs:6px;--radius-sm:10px;--radius:14px;--radius-lg:20px;--radius-xl:24px;--radius-full:9999px;--ease:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif;line-height:1.5}::selection{color:var(--text);background:#f5c9a8}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}.app{background:var(--bg);max-width:420px;min-height:100dvh;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,16px);position:relative;overflow-x:hidden}.app:before,.app:after{content:"";filter:blur(80px);pointer-events:none;z-index:0;opacity:.45;border-radius:50%;position:fixed}.app:before{background:radial-gradient(circle,#fde0c4,#0000);width:320px;height:320px;top:-80px;right:-80px}.app:after{background:radial-gradient(circle,#e8f0ea,#0000);width:260px;height:260px;bottom:20%;left:-60px}.app-header{-webkit-backdrop-filter:blur(20px);z-index:100;height:54px;padding:0 16px;padding-top:env(safe-area-inset-top,0);background:#faf7f2e0;border-bottom:1px solid #e6dbd080;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}@supports (padding-top:env(safe-area-inset-top)){.app-header{height:calc(54px + env(safe-area-inset-top))}}.header-brand{cursor:pointer;-webkit-app-region:drag;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;text-decoration:none;display:flex}.header-paw{background:linear-gradient(135deg, var(--primary), var(--primary-light));border-radius:9px;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;display:flex;box-shadow:0 2px 8px #d4813a47}.app-header h1{color:var(--text);letter-spacing:-.04em;font-size:17px;font-weight:900}.header-right{align-items:center;gap:8px;display:flex}.top-nav{align-items:center;gap:6px;display:flex}.top-nav button{background:var(--surface);border:1.5px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all .2s var(--ease);border-radius:100px;align-items:center;gap:4px;padding:7px 14px;font-family:inherit;font-size:12px;font-weight:700;display:inline-flex}.top-nav button:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:translateY(-1px);box-shadow:0 2px 8px #d4813a40}.app-main{padding:20px 16px 48px}.page{animation:pageIn .4s var(--ease)}@keyframes pageIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.reveal{animation:fadeInUp .5s var(--ease) both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.page h2{letter-spacing:-.03em;color:var(--text);margin-bottom:16px;font-size:20px;font-weight:900}.page-desc{color:var(--text-secondary);margin-bottom:16px;font-size:14px;font-weight:300}.card{background:var(--surface);border:1.5px solid var(--border-light);transition:border-color .25s, box-shadow .25s var(--ease), transform .25s var(--ease);border-radius:18px;padding:20px;position:relative;overflow:hidden}.card:before{content:"";background:linear-gradient(90deg, var(--primary), var(--primary-light));transform-origin:0;height:3px;transition:transform .35s var(--ease);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.card:hover{border-color:var(--peach,#f5c9a8);transform:translateY(-2px);box-shadow:0 8px 32px #5c3d2e1a,0 2px 6px #5c3d2e0f}.card:hover:before{transform:scaleX(1)}.welcome-card{text-align:center;color:var(--text);background:linear-gradient(155deg,#fdf5ec 0%,#fde8d4 55%,#fce0be 100%);border:1.5px solid #f0dcc4;border-radius:20px;margin-bottom:20px;padding:28px 22px 24px;position:relative;overflow:hidden;box-shadow:0 4px 20px #d4813a1a,0 1px 3px #5c3d2e0f}.welcome-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#d4813a2e 0%,#0000 70%);width:200px;height:200px;position:absolute;top:-60px;right:-60px}.welcome-card:after{content:"";pointer-events:none;background:radial-gradient(circle,#7a9e7e1f 0%,#0000 70%);width:140px;height:140px;position:absolute;bottom:-40px;left:-20px}.welcome-card h2{color:var(--primary-dark);z-index:1;letter-spacing:-.02em;margin-bottom:6px;font-size:18px;position:relative}.welcome-card .eyebrow-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--primary);z-index:1;background:#ffffffa6;border:1px solid #d4813a33;border-radius:100px;align-items:center;gap:5px;margin-bottom:16px;padding:4px 12px 4px 8px;font-size:11px;font-weight:700;display:inline-flex;position:relative}.welcome-card .eyebrow-badge .dot{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.4)}}.no-dog{z-index:1;position:relative}.no-dog h2{color:var(--text);letter-spacing:-.03em;margin-bottom:6px;font-size:20px;font-weight:900}.no-dog p{color:var(--text-secondary);margin-bottom:16px;font-size:14px}.no-dog-icon{margin-bottom:12px;font-size:56px}.dog-profile{z-index:1;position:relative}.dog-avatar{width:80px;height:80px;transition:transform .3s var(--ease), box-shadow .3s var(--ease);background:0 0;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;display:flex;overflow:hidden;box-shadow:0 4px 16px #5c3d2e1f}.dog-avatar:hover{transform:scale(1.04);box-shadow:0 6px 20px #5c3d2e29}.dog-avatar img{object-fit:cover;width:100%;height:100%}.avatar-placeholder{font-size:40px}.welcome-msg{color:var(--primary);z-index:1;margin-bottom:12px;font-size:13px;font-weight:600;position:relative}.dog-profile h3{color:var(--text);letter-spacing:-.03em;margin-bottom:4px;font-size:22px;font-weight:900}.breed-name{color:var(--text-secondary);margin-bottom:2px;font-size:13px}.dog-age{color:var(--primary);font-size:13px;font-weight:700}.welcome-actions{z-index:1;justify-content:center;gap:8px;margin-top:16px;display:flex;position:relative}.welcome-actions .primary-btn{padding:10px 20px;font-size:13px}.welcome-actions .secondary-btn{padding:10px 16px;font-size:13px}.primary-btn{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s var(--ease);letter-spacing:0;border:none;padding:13px 26px;font-family:inherit;font-size:14px;font-weight:700;box-shadow:0 3px 10px #d4813a47}.primary-btn:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 5px 16px #d4813a59}.primary-btn:active{transform:translateY(0)}.primary-btn:disabled{background:var(--surface-3);color:var(--text-muted);cursor:not-allowed;box-shadow:none;transform:none}.secondary-btn{background:var(--surface);color:var(--text);border:1.5px solid var(--border-medium);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s var(--ease);padding:12px 18px;font-family:inherit;font-size:14px;font-weight:500}.secondary-btn:hover{background:var(--surface-2);color:var(--primary);border-color:var(--primary-light)}.text-btn{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;padding:5px 10px;font-family:inherit;font-size:12px;font-weight:600;transition:all .2s}.text-btn:hover{background:var(--surface-2);color:var(--primary)}.text-btn.danger{color:var(--danger)}.text-btn.danger:hover{background:#fef2f0}.back-link{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;gap:4px;margin-top:14px;padding:14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.back-link:hover{background:var(--surface-2);color:var(--primary)}.stats-overview{margin-bottom:20px}.stats-overview h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:10px;font-size:10px;font-weight:700}.stats-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stat-card{background:var(--surface);border:1.5px solid var(--border-light);border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:16px 10px 14px;display:flex}.stat-icon{background:var(--surface-2);border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;transition:background .2s;display:flex}.stat-value{color:var(--text);letter-spacing:-.04em;font-size:20px;font-weight:900;line-height:1}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;text-align:center;font-size:10px;font-weight:700}.grooming-card{margin-bottom:18px}.grooming-card h3{color:var(--text);align-items:center;gap:8px;margin-bottom:14px;font-size:14px;font-weight:700;display:flex}.grooming-status{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.grooming-item{background:var(--surface-2);border-radius:var(--radius);text-align:center;border:1.5px solid #0000;padding:14px 12px;transition:border-color .2s}.grooming-item .icon{margin-bottom:7px;font-size:26px;display:block}.grooming-item .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;font-size:10px;font-weight:600}.grooming-item .value{color:var(--text);font-size:14px;font-weight:700}.grooming-item .value.soon{color:var(--warning)}.grooming-item .value.overdue{color:var(--danger)}.grooming-item .value.ok{color:var(--success)}.mini-calendar{background:var(--surface-2);border-radius:var(--radius);padding:14px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calendar-header .month{color:var(--text);font-size:13px;font-weight:700}.calendar-nav{gap:4px;display:flex}.calendar-nav button{border:1px solid var(--border-light);background:var(--surface);border-radius:var(--radius-xs);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.calendar-nav button:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.calendar-weekdays{grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:6px;display:grid}.calendar-weekdays span{text-align:center;color:var(--text-muted);text-transform:uppercase;padding:3px 0;font-size:10px;font-weight:600}.calendar-days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-day{aspect-ratio:1;border-radius:var(--radius-xs);color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:12px;font-weight:500;transition:background .15s;display:flex;position:relative}.calendar-day:not(.other-month):hover{background:var(--surface-3)}.calendar-day.other-month{color:var(--text-muted);opacity:.45}.calendar-day.today{background:var(--primary);color:#fff;font-weight:700}.cal-dots{justify-content:center;gap:2px;display:flex;position:absolute;bottom:2px;left:0;right:0}.cal-dot{border-radius:50%;width:5px;height:5px}.cal-more{color:var(--text-muted);font-size:8px}.stat-hint{color:var(--text-muted);text-transform:none;letter-spacing:0;font-size:9px;font-weight:400;display:block}.stat-ref{color:var(--success);margin-top:-2px;font-size:9px;font-weight:600}.stat-guide{color:var(--primary);cursor:pointer;background:0 0;border:none;margin-top:-2px;padding:0;font-size:10px;font-weight:600}.stat-guide:hover{color:var(--primary-dark);text-decoration:underline}.calendar-day.has-bath:after{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;bottom:2px}.calendar-day.has-grooming:after{content:"";background:var(--primary-light);border-radius:50%;width:5px;height:5px;position:absolute;bottom:2px;right:3px}.calendar-legend{border-top:1px solid var(--border-light);justify-content:center;gap:18px;margin-top:12px;padding-top:10px;display:flex}.legend-dot{border-radius:50%;width:7px;height:7px}.recent-status{margin-bottom:12px}.status-card{background:var(--surface);border-radius:var(--radius);border:1.5px solid var(--border-light);align-items:center;gap:14px;margin-bottom:8px;padding:14px 16px;transition:border-color .2s;display:flex}.status-card:hover{border-color:var(--border-medium)}.status-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:flex}.status-card.poop-status .status-icon{background:#f5f0ea}.status-card.feeding-status .status-icon{background:#fef6ec}.status-content{flex:1;min-width:0}.status-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:10px;font-weight:700}.status-value{color:var(--text);letter-spacing:-.03em;font-size:18px;font-weight:800}.status-hint{color:var(--text-secondary);text-align:right;white-space:nowrap;font-size:12px}.section-card{background:var(--surface);border:1.5px solid var(--border-light);transition:all .25s var(--ease);border-radius:18px;margin-bottom:16px;padding:20px;position:relative;overflow:hidden}.section-card:before{content:"";background:linear-gradient(90deg, var(--primary), var(--primary-light));transform-origin:0;height:3px;transition:transform .35s var(--ease);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.section-card:hover{border-color:var(--primary-light);transform:translateY(-2px);box-shadow:0 8px 32px #5c3d2e1a}.section-card:hover:before{transform:scaleX(1)}.section-card h3{color:var(--text);align-items:center;gap:8px;margin-bottom:14px;font-size:14px;font-weight:700;display:flex}.weight-chart-empty{text-align:center;color:var(--text-muted);padding:32px 20px;font-size:13px}.weight-chart-card{margin-bottom:20px}.weight-chart-card h3{color:var(--text);align-items:center;gap:8px;margin-bottom:16px;font-size:14px;font-weight:700;display:flex}.weight-chart .recharts-cartesian-grid-horizontal line,.weight-chart .recharts-cartesian-grid-vertical line{stroke:var(--border-light)}.weight-chart .recharts-text{fill:var(--text-muted);font-size:11px}.weight-chart .recharts-tooltip-wrapper{outline:none}.chart-tooltip{border:1.5px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);background:#fff;padding:10px 14px;font-size:13px}.chart-tooltip p{line-height:1.6}.chart-tooltip strong{color:var(--text);font-weight:700}.chart-tooltip .sub{color:var(--text-muted);font-size:12px}.chart-legend{border-top:1px solid var(--border-light);justify-content:center;gap:18px;margin-top:14px;padding-top:12px;display:flex}.legend-item{color:var(--text-secondary);align-items:center;gap:7px;font-size:11px;font-weight:500;display:flex}.legend-line{border-radius:2px;width:18px;height:3px}.legend-zone{border-radius:3px;width:14px;height:9px}.menu-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:6px;display:grid}.menu-card{background:var(--surface);border:1.5px solid var(--border-light);cursor:pointer;transition:all .25s var(--ease);color:var(--text-secondary);border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:16px 4px 14px;font-family:inherit;font-size:11px;font-weight:700;display:flex;position:relative;overflow:hidden}.menu-card:before{content:"";background:linear-gradient(90deg, var(--primary), var(--primary-light));transform-origin:0;height:3px;transition:transform .3s var(--ease);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.menu-card:hover{border-color:var(--primary-light);color:var(--primary);background:var(--surface);transform:translateY(-3px);box-shadow:0 8px 28px #5c3d2e1a}.menu-card:hover:before{transform:scaleX(1)}.menu-card:active{transform:scale(.96)translateY(0)}.menu-icon{background:var(--surface-2);width:48px;height:48px;transition:background .2s, transform .2s var(--ease);border-radius:14px;justify-content:center;align-items:center;font-size:24px;display:flex}.menu-card:hover .menu-icon{background:#fef3e8;transform:scale(1.08)}.profile-form,.record-form,.food-form{background:var(--surface);border-radius:var(--radius-lg);border:1.5px solid var(--border-light);box-shadow:var(--shadow-md);padding:22px 20px}.photo-upload{border-bottom:1px solid var(--border-light);flex-direction:column;align-items:center;gap:10px;margin-bottom:20px;padding-bottom:20px;display:flex}.photo-preview{background:var(--surface-2);border:3px solid var(--border-medium);border-radius:50%;justify-content:center;align-items:center;width:88px;height:88px;display:flex;overflow:hidden}.photo-preview img{object-fit:cover;width:100%;height:100%}.photo-placeholder{font-size:40px}.photo-btn{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:9px 22px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s;box-shadow:0 2px 8px #d4813a40}.photo-btn:hover{background:var(--primary-dark)}.photo-hint{color:var(--text-muted);font-size:12px}.photo-hint.success{color:var(--success)}.photo-hint.error{color:var(--danger)}.default-avatars{background:var(--surface-2);border-radius:var(--radius);margin-bottom:18px;padding:14px}.default-avatars-label{color:var(--text-muted);text-align:center;margin-bottom:10px;font-size:11px;font-weight:600}.avatar-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.avatar-option{cursor:pointer;width:54px;height:54px;transition:all .2s var(--ease);background:0 0;border:none;border-radius:50%;overflow:hidden}.avatar-option:hover{transform:scale(1.08)}.avatar-option.selected{outline:2.5px solid var(--primary);outline-offset:1px}.avatar-option img{object-fit:cover;object-position:center;width:100%;height:100%}.form-group{margin-bottom:18px}.form-group label{color:var(--text);letter-spacing:.01em;margin-bottom:7px;font-size:12px;font-weight:700;display:block}.form-group input,.form-group select,.form-group textarea{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-width:0;max-width:100%;color:var(--text);box-sizing:border-box;padding:12px 14px;font-family:inherit;font-size:15px;transition:all .2s}.form-group input[type=date]{appearance:none;min-width:0}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #d4813a1a}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.readonly-group{opacity:.7}.readonly-value{background:var(--surface-2);border-radius:var(--radius-sm);color:var(--text);padding:10px 14px;font-size:15px}.form-group textarea{resize:vertical;min-height:88px;line-height:1.5}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-actions{gap:10px;margin-top:24px;display:flex}.record-type-selector{scrollbar-width:none;gap:6px;margin-bottom:20px;padding-bottom:2px;display:flex;overflow-x:auto}.record-type-selector::-webkit-scrollbar{display:none}.record-type-selector button{border:1.5px solid var(--border);background:var(--surface);border-radius:var(--radius);cursor:pointer;min-width:62px;transition:all .2s var(--ease);white-space:nowrap;color:var(--text-secondary);flex-direction:column;flex:1;align-items:center;gap:5px;padding:12px 8px;font-family:inherit;font-size:11px;font-weight:700;display:flex}.record-type-selector button .icon{font-size:20px}.record-type-selector button.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px #d4813a4d}.record-type-selector button:not(.active):hover{border-color:var(--primary-light);color:var(--primary)}.breed-selector{margin-bottom:20px}.breed-selector select{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;width:100%;color:var(--text);margin-top:8px;padding:12px 14px;font-family:inherit;font-size:15px}.current-breed{border-radius:var(--radius);background:#f7f3ee;border:1.5px solid #e0d6c8;justify-content:space-between;align-items:center;margin-bottom:18px;padding:14px 18px;display:flex}.current-breed strong{color:var(--primary);font-weight:700}.breed-details{background:var(--surface);border-radius:var(--radius-lg);border:1.5px solid var(--border-light);padding:22px}.breed-header{text-align:center;border-bottom:1px solid var(--border-light);margin-bottom:22px;padding-bottom:18px}.breed-header h3{letter-spacing:-.03em;color:var(--text);margin-bottom:3px;font-size:24px;font-weight:800}.breed-en{color:var(--text-secondary);margin-bottom:2px;font-size:14px}.breed-origin{color:var(--text-muted);font-size:12px}.info-cards{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px;display:grid}.info-card{background:var(--surface-2);border-radius:var(--radius);text-align:center;border:1.5px solid #0000;padding:14px 10px;transition:border-color .2s}.info-card:hover{border-color:var(--border-medium)}.info-card h4{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-size:10px;font-weight:700}.big-number{color:var(--text);letter-spacing:-.02em;font-size:17px;font-weight:800}.info-card .sub{color:var(--text-secondary);margin-top:3px;font-size:11px}.nutrition-section,.exercise-section,.characteristics,.personalized-nutrition{margin-bottom:20px}.nutrition-section h4,.exercise-section h4,.characteristics h4,.personalized-nutrition h4{color:var(--text);margin-bottom:12px;font-size:13px;font-weight:700}.nutrition-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.nutrition-item{background:var(--surface-2);border-radius:var(--radius-sm);padding:12px 14px}.nutrition-item.highlight{background:#fdf5ec;border:1.5px solid #f0dcc4}.nutrition-item .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px;font-size:10px;font-weight:600;display:block}.nutrition-item .value{color:var(--text);font-size:15px;font-weight:700}.exercise-section p{color:var(--text-secondary);margin-bottom:5px;font-size:13px}.tags{flex-wrap:wrap;gap:7px;display:flex}.tag{background:var(--surface-2);color:var(--text-secondary);border-radius:var(--radius-full);border:1.5px solid var(--border-light);padding:5px 13px;font-size:12px;font-weight:600}.score-selector h4{margin-bottom:12px;font-size:13px;font-weight:700}.score-options{flex-direction:column;gap:8px;display:flex}.score-option{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .2s var(--ease);align-items:center;gap:14px;padding:16px;font-family:inherit;display:flex}.score-option:hover{border-color:var(--score-color,var(--primary));background:color-mix(in srgb, var(--score-color,var(--primary)) 6%, white)}.score-option.selected{border-color:var(--score-color,var(--primary));background:color-mix(in srgb, var(--score-color,var(--primary)) 9%, white);box-shadow:0 0 0 3px color-mix(in srgb, var(--score-color,var(--primary)) 20%, transparent)}.score-emoji{font-size:30px}.score-label{min-width:48px;color:var(--text);font-size:14px;font-weight:700}.score-desc{color:var(--text-secondary);font-size:12px}.empty-state{text-align:center;color:var(--text-muted);padding:60px 20px;font-size:14px}.records-list{border:1.5px solid var(--border-light);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;gap:0;display:flex;overflow:hidden}.record-item{border-bottom:1px solid var(--border-light);background:var(--surface);align-items:flex-start;gap:12px;padding:14px 16px;transition:background .15s;display:flex}.record-item:last-child{border-bottom:none}.record-item:hover{background:var(--surface-2)}.record-header{flex:1;justify-content:space-between;align-items:center;min-width:0;display:flex}.record-type{color:var(--text);font-size:14px;font-weight:700}.record-date{color:var(--text-muted);white-space:nowrap;margin-left:8px;font-size:11px}.record-body{flex-wrap:wrap;flex:1;align-items:center;gap:8px;display:flex}.record-amount{color:var(--text);letter-spacing:-.03em;font-size:22px;font-weight:800;line-height:1}.record-time{color:var(--text-secondary);font-size:12px}.record-notes{width:100%;color:var(--text-secondary);margin-top:4px;font-size:12px;line-height:1.5}.poop-score{border-radius:var(--radius-full);padding:4px 10px;font-size:12px;font-weight:600}.poop-score.score-1{color:#b8403a;background:#fde8e8}.poop-score.score-2{color:#b86828;background:#fef0e4}.poop-score.score-3{color:#3d7a52;background:#edf5ee}.poop-score.score-4{color:#2d6b44;background:#d8eedd}.poop-score.score-5{color:#1e5834;background:#c4eacc}.record-done-badge{border-radius:var(--radius-full);color:#2d6b44;background:#edf5ee;padding:4px 10px;font-size:12px;font-weight:600}.measurement-mini{flex-wrap:wrap;gap:6px;display:flex}.meas-item{background:var(--surface-2);border-radius:var(--radius-xs);color:var(--text-secondary);padding:3px 8px;font-size:12px;font-weight:600}.delete-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;flex-shrink:0;margin-top:2px;padding:4px 8px;font-family:inherit;font-size:12px;transition:all .2s}.delete-btn:hover{color:var(--danger);background:#fef2f0}.breed-weight-range{border-radius:var(--radius);background:#f7f3ee;border:1.5px solid #e0d6c8;margin-bottom:18px;padding:14px 18px}.breed-weight-range strong{color:var(--primary);font-weight:700}.breed-weight-range .sub{color:var(--text-secondary);margin-top:3px;font-size:12px}.weight-indicator{border-radius:var(--radius-sm);text-align:center;margin-bottom:14px;padding:11px 14px;font-size:13px;font-weight:600}.weight-indicator .below,.weight-indicator .above{color:var(--primary-dark);background:#fef3e8;border:1.5px solid #f5dcc4}.weight-indicator .normal{color:#2d6b44;background:#edf5ef;border:1.5px solid #c8e6cf}.food-list{flex-direction:column;gap:10px;margin-top:18px;display:flex}.food-item{background:var(--surface);border:1.5px solid var(--border-light);border-radius:var(--radius-lg);padding:16px 18px;transition:border-color .2s}.food-item:hover{border-color:var(--border-medium)}.food-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.food-brand{color:var(--primary);font-size:15px;font-weight:800}.food-date{color:var(--text-muted);background:var(--surface-2);border-radius:var(--radius-full);padding:3px 10px;font-size:11px}.food-name{color:var(--text);margin-bottom:8px;font-size:14px}.food-price-info{color:var(--text-secondary);flex-wrap:wrap;gap:12px;margin-bottom:6px;font-size:12px;display:flex}.food-price-info .unit-price{color:var(--success);font-weight:700}.food-start-date{color:var(--text-muted);margin-bottom:4px;font-size:12px}.food-notes{color:var(--text-secondary);border-top:1px dashed var(--border-light);margin-top:8px;padding-top:8px;font-size:12px;line-height:1.5}.food-actions{border-top:1px solid var(--border-light);gap:4px;margin-top:12px;padding-top:12px;display:flex}.calculated-price{border-radius:var(--radius-sm);color:var(--primary-dark);text-align:center;background:#fdf5ec;border:1.5px solid #f0dcc4;margin-bottom:14px;padding:12px 18px;font-size:14px}.calculated-price strong{font-size:17px;font-weight:800}.date-selector{background:var(--surface);border-radius:var(--radius);border:1.5px solid var(--border-light);min-width:0;margin-bottom:18px;padding:14px;overflow:hidden}.quick-dates{gap:6px;min-width:0;margin-bottom:10px;display:flex}.quick-date-btn{border:1.5px solid var(--border);background:var(--surface);border-radius:var(--radius-xs);cursor:pointer;min-width:0;color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;padding:8px 6px;font-family:inherit;font-size:11px;font-weight:700;transition:all .2s;overflow:hidden}.quick-date-btn.active,.quick-date-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.date-input{border:1.5px solid var(--border);border-radius:var(--radius-sm);text-align:center;background:var(--surface);width:100%;max-width:100%;color:var(--text);appearance:none;box-sizing:border-box;min-width:0;padding:10px 12px;font-family:inherit;font-size:14px}.data-actions{border-top:1px solid var(--border-light);justify-content:center;gap:10px;margin-top:18px;padding:14px 0 0;display:flex}.import-status{color:var(--danger);border-radius:var(--radius-xs);background:#fef2f0;padding:4px 8px;font-size:12px;font-weight:600}.page-loading{justify-content:center;align-items:center;min-height:60vh;display:flex}.loading-spinner{color:var(--text-muted);font-size:14px}.error-fallback{min-height:60vh;color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:40px;display:flex}.error-fallback h2{color:var(--danger);font-size:18px}.filter-tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;margin-bottom:16px;display:flex;overflow-x:auto}.filter-tabs::-webkit-scrollbar{display:none}.filter-tab{border:1.5px solid var(--border);background:var(--surface);cursor:pointer;transition:all .2s var(--ease);color:var(--text-secondary);border-radius:100px;flex-shrink:0;align-items:center;gap:5px;min-height:44px;padding:8px 14px;font-family:inherit;font-size:12px;font-weight:600;display:flex}.filter-tab.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px #d4813a40}.health-subtypes{gap:8px;display:flex}.health-subtype-btn{border:1.5px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);flex:1;min-height:44px;padding:12px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s}.health-subtype-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.grooming-done-notice{border-radius:var(--radius);background:#edf5ef;border:1.5px solid #c8e6cf;align-items:center;gap:12px;margin-bottom:8px;padding:16px;display:flex}.check-badge{background:var(--success);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;font-weight:700;display:flex}.photo-section{margin:18px 0}.photo-section h4{color:var(--text);margin-bottom:10px;font-size:13px;font-weight:700}.photo-upload-btn{border:2px dashed var(--border-medium);border-radius:var(--radius);cursor:pointer;color:var(--text-secondary);justify-content:center;align-items:center;min-height:44px;padding:16px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s;display:flex}.photo-upload-btn:hover{border-color:var(--primary);color:var(--primary);background:#fef8f2}.poop-photo-preview{flex-direction:column;align-items:center;gap:8px;display:flex}.poop-photo-preview img{object-fit:cover;border-radius:var(--radius);border:1.5px solid var(--border-light);width:120px;height:120px}.record-main{flex:1;min-width:0}.record-photo-mini{margin-top:8px}.record-photo-mini img{object-fit:cover;border-radius:var(--radius-xs);border:1px solid var(--border-light);width:60px;height:60px}.record-health-note{color:var(--text);font-size:14px;font-weight:600}.empty-state .icon{opacity:.4;margin-bottom:14px;font-size:52px}.empty-state .sub{color:var(--text-muted);margin-top:4px;font-size:12px}@media (pointer:coarse){button,.menu-card,.filter-tab,.score-option{-webkit-tap-highlight-color:transparent}}.login-hero{text-align:center;padding:48px 0 24px}.login-icon{margin-bottom:12px;font-size:64px}.login-hero h1{margin-bottom:4px;font-size:24px;font-weight:900}.login-hero .login-subtitle{color:var(--text-secondary);font-size:14px}.login-dog-icon{border-radius:50%;width:80px;height:80px}.login-footer{text-align:center;color:var(--text-muted);margin-top:24px;font-size:12px}.login-form{background:var(--surface);border-radius:var(--radius-lg);border:1.5px solid var(--border-light);padding:22px 20px}.login-error{color:var(--danger);border-radius:var(--radius-sm);text-align:center;background:#fef2f0;margin-bottom:14px;padding:10px 14px;font-size:13px;font-weight:600}.login-btn{width:100%}.login-switch{text-align:center;width:100%;padding:12px}.pet-select-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.pet-select-header h2{font-size:18px;font-weight:900}.pet-list{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.pet-card{background:var(--surface);border:1.5px solid var(--border-light);border-radius:var(--radius);cursor:pointer;transition:all .2s var(--ease);text-align:left;flex:1;align-items:center;gap:14px;padding:16px;font-family:inherit;display:flex}.pet-card-row{align-items:center;gap:8px;display:flex}.pet-delete-btn{cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;flex-shrink:0;padding:8px;transition:all .15s}.pet-delete-btn:hover{background:#fef2f0}.pet-card:hover{border-color:var(--primary-light);transform:translateY(-1px);box-shadow:0 4px 16px #d4813a1a}.pet-card-icon{background:var(--surface-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:28px;display:flex;overflow:hidden}.pet-card-icon img{object-fit:cover;width:100%;height:100%}.pet-card-role{color:var(--primary);font-size:11px;font-weight:700;display:block}.pet-card-breed{color:var(--text-muted);font-size:12px;display:block}.header-pet-area{position:relative}.header-greeting{color:var(--primary);border-radius:var(--radius-full);white-space:nowrap;cursor:pointer;text-overflow:ellipsis;background:#fef6ec;border:none;max-width:120px;padding:5px 12px;font-family:inherit;font-size:11px;font-weight:700;overflow:hidden}.logout-btn{white-space:nowrap;padding:4px 10px;font-size:11px}.pet-switcher-dropdown{background:var(--surface);border:1.5px solid var(--border-light);border-radius:var(--radius);z-index:200;min-width:180px;margin-top:6px;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 8px 32px #0000001f}.dropdown-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:10px 14px 6px;font-size:10px;font-weight:700}.dropdown-item{cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;align-items:center;gap:8px;padding:10px 14px;font-family:inherit;font-size:13px;transition:background .15s;display:flex}.dropdown-item:hover{background:var(--surface-2)}.dropdown-item.active{background:#fef6ec;font-weight:700}.dropdown-item .role-tag{color:var(--text-muted);font-size:10px}.dropdown-item .check{color:var(--primary);margin-left:auto;font-weight:700}.dropdown-item.add-new{border-top:1px solid var(--border-light);color:var(--primary);margin-top:4px;padding-top:12px;font-weight:600}.cost-table{background:var(--surface);border-radius:var(--radius-lg);border:1.5px solid var(--border-light);margin-bottom:16px;overflow:hidden}.cost-header,.cost-row{grid-template-columns:2fr 1fr 1fr .6fr;padding:10px 14px;font-size:13px;display:grid}.cost-header{background:var(--surface-2);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700}.cost-row{border-top:1px solid var(--border-light)}.cost-row.total{background:#fef6ec;font-weight:800}.cost-row span:nth-child(2),.cost-row span:nth-child(3),.cost-row span:nth-child(4),.cost-header span:nth-child(2),.cost-header span:nth-child(3),.cost-header span:nth-child(4){text-align:right}.image-viewer{text-align:center;max-width:90vw}.image-viewer img{border-radius:var(--radius);cursor:pointer;max-width:100%;max-height:70vh}.image-viewer-actions{justify-content:center;gap:10px;margin-top:16px;display:flex}.modal-overlay{z-index:9999;background:#00000059;justify-content:center;align-items:flex-start;padding:80px 24px 24px;animation:.2s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow-lg);animation:slideUp .25s var(--ease);padding:24px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-card h3{margin-bottom:16px;font-size:18px;font-weight:900}.modal-close{width:100%;margin-top:12px}.checkbox-label{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.checkbox-label input{width:16px;height:16px;accent-color:var(--primary)}.invite-result{text-align:center;padding:12px 0}.invite-label{color:var(--text-muted);margin-bottom:8px;font-size:12px}.invite-code-box{border:2px dashed var(--primary-light);border-radius:var(--radius);cursor:pointer;background:#fef6ec;padding:16px;transition:background .15s}.invite-code-box:hover{background:#fef0e0}.invite-code-box code{letter-spacing:.06em;color:var(--primary-dark);font-size:28px;font-weight:900}.copy-hint{color:var(--text-muted);margin-top:6px;font-size:11px;display:block}.invite-hint{color:var(--text-muted);margin-top:8px;font-size:11px}.share-btn{white-space:nowrap;color:var(--primary);padding:4px 10px;font-size:11px;font-weight:700}.modal-tabs{border-bottom:1.5px solid var(--border-light);gap:4px;margin-bottom:16px;display:flex}.modal-tab{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s}.modal-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.invite-preview{background:var(--surface-2);border-radius:var(--radius);align-items:center;gap:10px;margin-bottom:14px;padding:12px 14px;display:flex}.invite-preview strong{font-size:16px}.invite-preview .tag{border-radius:var(--radius-full);padding:3px 10px;font-size:10px;font-weight:600}.invite-preview .tag.permanent{color:#2d6b44;background:#edf5ef}.invite-preview .tag.temp{color:#b86828;background:#fef3e8}.members-list{max-height:240px;overflow-y:auto}.member-item{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.member-item:last-child{border-bottom:none}.member-info strong{font-size:14px}.member-tags{gap:4px;display:flex}.member-tags .tag{border-radius:var(--radius-full);padding:2px 8px;font-size:10px;font-weight:600}.member-tags .tag.permanent{color:#2d6b44;background:#edf5ef}.member-tags .tag.temp{color:#b86828;background:#fef3e8}.chip-row{gap:6px;display:flex}.chip{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;color:var(--text-secondary);flex:1;padding:10px 8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s}.chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.mood-row{scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.mood-btn{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;flex-direction:column;align-items:center;gap:2px;min-width:56px;padding:8px 6px;font-family:inherit;transition:all .15s;display:flex}.mood-btn.active{border-color:var(--primary);background:#fef6ec}.mood-emoji{font-size:22px}.mood-label{color:var(--text-muted);font-size:10px}.poop-scores-inline{flex-direction:column;gap:6px;display:flex}.poop-score-btn{border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;align-items:center;gap:8px;padding:10px 14px;font-family:inherit;transition:all .15s;display:flex}.poop-score-btn.active{border-color:var(--primary);background:#fef6ec}.poop-score-btn .score-sub{color:var(--text-muted);font-size:11px}.poop-score-emoji{font-size:20px}.feedback-banner{border-radius:var(--radius-sm);text-align:center;margin-bottom:12px;padding:10px 14px;font-size:13px;font-weight:600}.feedback-banner.success{color:#2d6b44;background:#edf5ef;border:1.5px solid #c8e6cf}.feedback-banner.error{color:var(--danger);background:#fef2f0;border:1.5px solid #fcd}.save-toast{background:var(--success);color:#fff;border-radius:var(--radius-full);z-index:999;animation:toastIn .3s var(--ease);padding:10px 24px;font-size:13px;font-weight:700;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000026}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.text-center{text-align:center}.text-muted{color:var(--text-muted)}@media (width<=400px){.menu-grid{grid-template-columns:repeat(3,1fr);gap:6px}.info-cards{grid-template-columns:repeat(3,1fr)}.nutrition-grid{grid-template-columns:1fr}}
