.landscape-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:var(--bg-page);color:var(--text-primary);align-items:center;justify-content:center;text-align:center;flex-direction:column;gap:var(--space-4);padding:var(--space-5)}.landscape-overlay-icon{font-size:3rem;display:block;animation:landscape-rotate 2s ease-in-out infinite}.landscape-overlay-text{font-size:var(--font-h2);font-weight:600;margin:0}.landscape-overlay-sub{font-size:var(--font-body);color:var(--text-secondary);margin:0}@keyframes landscape-rotate{0%,to{transform:rotate(0)}25%{transform:rotate(-90deg)}50%{transform:rotate(-90deg)}75%{transform:rotate(0)}}@media (orientation: landscape) and (max-height: 500px){.app-shell.layout-mobile .landscape-overlay{display:flex}}.app-shell{display:flex;flex-direction:column;min-height:100vh;background:var(--bg-page)}.app-shell-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);min-height:var(--touch-min);background:var(--bg-header);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.app-shell-title{margin:0;font-size:var(--font-h3);font-weight:600;color:var(--text-primary);flex:1;min-width:0}.app-shell-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.app-shell-notifications-link{display:inline-flex;align-items:center;justify-content:center;position:relative;min-width:var(--touch-min);min-height:var(--touch-min);border-radius:var(--radius-small);color:var(--text-primary);text-decoration:none}.app-shell-notifications-link:hover{background:var(--bg-hover)}.app-shell-notifications-icon{font-size:var(--icon-header-size)}.app-shell-notifications-badge{position:absolute;top:var(--space-1);right:var(--space-1);min-width:18px;height:18px;padding:0 5px;font-size:var(--font-small);font-weight:700;line-height:18px;text-align:center;color:var(--text-primary);background:var(--color-primary);border-radius:999px}.app-shell-menu-btn{min-width:var(--touch-min);min-height:var(--touch-min);padding:0;font-size:1.5rem;background:transparent;border:none;border-radius:var(--radius-small);color:var(--text-primary);cursor:pointer}.app-shell-menu-btn:hover,.app-shell-menu-btn:focus{background:var(--bg-hover)}.app-shell-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:11}.app-shell-drawer{position:fixed;top:0;right:0;width:260px;max-width:85vw;height:100vh;background:var(--bg-card);border-left:1px solid var(--border);box-shadow:-2px 0 12px #0000004d;z-index:12;transform:translate(100%);transition:transform .2s ease;padding:var(--space-4) 0}.app-shell-drawer.open{transform:translate(0)}.app-shell-drawer-inner{display:flex;flex-direction:column;gap:var(--space-1)}.drawer-link,.drawer-btn{display:flex;align-items:center;width:100%;padding:var(--space-3) var(--space-5);text-align:left;font-size:var(--font-body);color:var(--text-primary);text-decoration:none;background:none;border:none;cursor:pointer;min-height:var(--touch-min)}.drawer-link:hover,.drawer-btn:hover{background:var(--bg-hover)}.drawer-link-badge{margin-left:auto;padding:var(--space-1) var(--space-2);font-size:var(--font-small);font-weight:600;color:var(--text-primary);background:var(--color-primary);border-radius:999px}.drawer-profile{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border)}.drawer-profile-label{display:block;font-size:var(--font-small);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:var(--space-1)}.drawer-profile-email{font-size:var(--font-body);color:var(--text-primary);word-break:break-all}.drawer-placeholder{color:var(--text-muted);cursor:default}.drawer-placeholder:hover{background:transparent}.drawer-section{padding:var(--space-3) var(--space-5) var(--space-1);font-size:var(--font-small);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.drawer-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;color:var(--text-primary)}.drawer-label input{width:20px;height:20px}.app-shell-body{display:flex;flex:1;min-height:0}.app-shell-main{flex:1;padding:var(--space-4);min-width:0}.layout-mobile .app-shell-main{padding-bottom:calc(var(--space-4) + var(--app-bottom-nav-stack))}.app-shell-bottom-nav{display:flex;justify-content:stretch;align-items:center;gap:var(--space-1);position:fixed;bottom:0;left:0;right:0;box-sizing:content-box;height:var(--app-bottom-nav-content-height);padding:0 var(--space-2) var(--safe-bottom);background:var(--bg-card);border-top:1px solid var(--border);z-index:9}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1 1 0;min-width:0;min-height:var(--touch-min);padding:var(--space-1) 2px;color:var(--text-secondary);text-decoration:none;font-size:var(--font-small)}.bottom-nav-item:hover{color:var(--text-primary)}.bottom-nav-item.active{color:var(--color-accent);font-weight:600}.bottom-nav-icon-wrap{position:relative;display:inline-block;margin-bottom:2px}.bottom-nav-icon{font-size:var(--icon-bottom-nav-size)}.bottom-nav-label{width:100%;text-align:center;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bottom-nav-badge{position:absolute;top:-6px;right:-8px;min-width:1rem;padding:0 4px;font-size:.65rem;font-weight:700;line-height:1.2;color:var(--bg-card, #fff);background:var(--color-accent, #c62828);border-radius:8px}.app-shell-sidebar{display:flex;flex-direction:column;width:220px;flex-shrink:0;padding:var(--space-3) 0;background:var(--bg-card);border-right:1px solid var(--border);overflow-y:auto;height:calc(100vh - var(--touch-min));position:sticky;top:var(--touch-min)}.sidebar-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--text-secondary);text-decoration:none;font-size:var(--font-body);border-radius:0;transition:background .15s,color .15s}.sidebar-item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-item.active{color:var(--color-accent);font-weight:600;background:var(--bg-elevated);border-right:3px solid var(--color-accent)}.sidebar-icon{font-size:var(--icon-sidebar-size);flex-shrink:0;width:24px;text-align:center}.sidebar-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-badge{margin-left:auto;min-width:1.2rem;padding:0 5px;font-size:var(--font-small);font-weight:700;line-height:1.4;text-align:center;color:var(--text-primary);background:var(--color-accent);border-radius:999px}.sidebar-divider{height:1px;margin:var(--space-2) var(--space-4);background:var(--border)}.layout-desktop .app-shell-main{max-width:960px;margin:0 auto;padding:var(--space-5)}.app-shell.high-contrast .app-shell-header,.app-shell.high-contrast .app-shell-bottom-nav{background:var(--bg-elevated);border-color:var(--text-primary)}.app-shell.high-contrast .app-shell-title,.app-shell.high-contrast .bottom-nav-item.active{color:var(--text-primary)}.app-shell.high-contrast .bottom-nav-item{color:var(--text-secondary)}.app-shell.high-contrast .app-shell-menu-btn{color:var(--text-primary)}.app-shell.high-contrast .app-shell-main{background:var(--bg-page)}.app-shell.high-contrast .app-shell-sidebar{background:var(--bg-elevated);border-color:var(--text-primary)}.form-field-error{display:block;margin-top:var(--space-1);font-size:var(--font-small);color:var(--color-danger)}.form-input.has-error,.input-has-error .form-input,.auth-input.has-error,.modal-input.has-error{border-color:var(--color-danger);box-shadow:0 0 0 1px var(--color-danger)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--bg-page, #f5f5f5)}.auth-card{width:100%;max-width:360px;padding:1.5rem;background:var(--bg-card, #fff);border-radius:8px;border:1px solid var(--border, #ddd);box-shadow:0 2px 8px #0000000f}.auth-tabs{display:flex;gap:0;margin:-1.5rem -1.5rem 1rem;border-bottom:1px solid var(--border, #ddd)}.auth-tab{flex:1;min-height:48px;padding:.75rem 1rem;font-size:1rem;font-weight:500;color:var(--text-muted, #666);background:var(--bg-muted, #eee);border:none;border-bottom:3px solid transparent;cursor:pointer}.auth-tab:hover{color:var(--text, #333)}.auth-tab.active{color:var(--primary, #444);background:var(--bg-card, #fff);border-bottom-color:var(--primary, #444)}.auth-title{margin:0 0 1.25rem;font-size:1.5rem;font-weight:600;color:var(--text, #333)}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:500;color:var(--text, #333)}.auth-input{min-height:44px;padding:.5rem .75rem;font-size:1rem;border:1px solid var(--border, #ccc);border-radius:6px;background:var(--bg-card, #fff);color:var(--text, #333)}.auth-input:focus{outline:2px solid var(--primary, #555);outline-offset:0}.auth-error{padding:.75rem;background:#fde8e8;color:#b91c1c;border-radius:6px;font-size:.9rem}.auth-success{margin:0;color:var(--text, #333);font-size:1rem}.auth-submit{min-height:48px;margin-top:.25rem;padding:.75rem;font-size:1rem;font-weight:600;color:#fff;background:var(--primary, #444);border:none;border-radius:6px;cursor:pointer}.auth-submit:hover:not(:disabled){background:var(--primary-hover, #333)}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.auth-link-btn{background:transparent;border:none;color:var(--link, #2563eb);text-align:left;padding:0;font-size:.9rem;cursor:pointer}.auth-link-btn:hover{text-decoration:underline}.auth-forgot-box{border:1px solid var(--border, #ddd);border-radius:6px;padding:.75rem;display:flex;flex-direction:column;gap:.75rem;background:var(--bg-muted, #eee)}.auth-footer{margin:1.25rem 0 0;font-size:.9rem;color:var(--text-muted, #666);text-align:center}.auth-footer a{color:var(--link, #2563eb);text-decoration:none}.auth-footer a:hover{text-decoration:underline}.event-badge{display:inline-block;padding:.2rem .5rem;border-radius:6px;font-size:.75rem;font-weight:600;line-height:1.2;min-height:24px;box-sizing:border-box}.event-badge--progesterone{background:#1e40af;color:#fff}.event-badge--mating{background:#6b21a8;color:#fff}.event-badge--pregnancy-window{background:#c2410c;color:#fff}.event-badge--pregnancy-probable{background:#b91c1c;color:#fff}.event-badge--pregnancy-ultrasound{background:#0e7490;color:#fff}.event-badge--pregnancy-xray{background:#7c3aed;color:#fff}.event-badge--heat{background:#be185d;color:#fff}.event-badge--heat-prediction{background:transparent;color:#9d174d;border:2px solid #e879f9}.event-badge--vaccination,.event-badge--deworming{background:#4b5563;color:#fff}.event-badge--whelping{background:#15803d;color:#fff}.event-badge--default{background:#374151;color:#fff}.calendar-filters{background:var(--bg-page, #f5f5f5);margin:0 -1rem;padding:.75rem 1rem;position:sticky;top:0;z-index:10;border-bottom:1px solid var(--border, #ddd)}.calendar-filters-date-nav{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.calendar-filters-btn,.calendar-filters-today{min-height:44px;min-width:44px;padding:.5rem .75rem;font-size:1.25rem;font-weight:600;color:var(--text, #333);background:var(--bg-card, #fff);border:1px solid var(--border, #ccc);border-radius:8px;cursor:pointer}.calendar-filters-btn:hover,.calendar-filters-today:hover{background:var(--bg-hover, #eee)}.calendar-filters-today{flex:1;font-size:1rem}.calendar-filters-range-label{margin:0 0 .75rem;font-size:.9rem;color:var(--text-muted, #666)}.calendar-filters-range-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.calendar-filters-range-chip{min-height:44px;min-width:56px;padding:.5rem .75rem;font-size:.95rem;font-weight:500;color:var(--text, #333);background:var(--bg-card, #fff);border:1px solid var(--border, #ccc);border-radius:8px;cursor:pointer}.calendar-filters-range-chip:hover{background:var(--bg-hover, #eee)}.calendar-filters-range-chip.active{background:var(--primary, #444);color:#fff;border-color:var(--primary, #444)}.calendar-filters-row{display:flex;flex-direction:column;gap:.75rem}.calendar-filters-type-wrap{position:relative}.calendar-filters-toggle{min-height:44px;padding:.5rem .75rem;font-size:1rem;font-weight:500;text-align:left;width:100%;color:var(--text, #333);background:var(--bg-card, #fff);border:1px solid var(--border, #ccc);border-radius:8px;cursor:pointer}.calendar-filters-toggle:hover{background:var(--bg-hover, #eee)}.calendar-filters-toggle.has-filter{border-color:var(--primary, #444);color:var(--primary, #444)}.calendar-filters-type-panel{padding:.75rem 1rem;margin-top:.5rem;background:var(--bg-muted, #eee);border-radius:8px;border:1px solid var(--border, #ccc);display:flex;flex-direction:column;gap:.5rem}.calendar-filters-panel-action{align-self:flex-start;min-height:36px;padding:.35rem .65rem;font-size:.85rem;font-weight:600;color:var(--primary, #444);background:var(--bg-card, #fff);border:1px solid var(--border, #ccc);border-radius:8px;cursor:pointer}.calendar-filters-panel-action:hover{background:var(--bg-hover, #eee)}.calendar-filters-type-item{display:flex;align-items:center;gap:.5rem;min-height:44px;padding:.25rem 0;cursor:pointer;font-size:1rem;color:var(--text, #333)}.calendar-filters-type-item input{width:22px;height:22px;flex-shrink:0}.calendar-filters-check{display:flex;align-items:center;gap:.5rem;min-height:44px;font-size:1rem;color:var(--text, #333);cursor:pointer}.calendar-filters-check input{width:22px;height:22px}.calendar-filters-check.disabled{color:var(--text-muted, #666);cursor:not-allowed}.calendar-filters-check.disabled input:disabled{cursor:not-allowed}.calendar-filters-check-dog span{font-style:italic}.calendar-list{overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:5rem}.calendar-list-days{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.25rem}.calendar-list-day-header{padding:.5rem 0;border-bottom:2px solid var(--border, #ddd);position:sticky;top:0;background:var(--bg-page, #f5f5f5);z-index:1}.calendar-list-day-title{font-size:1rem;font-weight:600;color:var(--text, #333)}.calendar-list-event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.calendar-list-event-card{display:flex;align-items:flex-start;gap:.75rem;min-height:56px;padding:.75rem 1rem;border-radius:0 10px 10px 0;background:var(--bg-card, #fff);border:1px solid var(--border, #ddd);border-left-width:4px;border-left-style:solid;cursor:pointer;text-align:left;transition:background .15s ease}.calendar-list-event-card:hover,.calendar-list-event-card:focus{background:var(--bg-hover, #eee);outline:2px solid var(--primary, #444);outline-offset:2px}.calendar-list-event-card--event-badge--progesterone{border-left-color:#1e40af}.calendar-list-event-card--event-badge--mating{border-left-color:#6b21a8}.calendar-list-event-card--event-badge--pregnancy-window{border-left-color:#c2410c}.calendar-list-event-card--event-badge--pregnancy-probable{border-left-color:#b91c1c}.calendar-list-event-card--event-badge--heat{border-left-color:#be185d}.calendar-list-event-card--event-badge--heat-prediction{border-left-color:#e879f9}.calendar-list-event-card--event-badge--vaccination,.calendar-list-event-card--event-badge--deworming{border-left-color:#4b5563}.calendar-list-event-card--event-badge--whelping{border-left-color:#15803d}.calendar-list-event-card--event-badge--default{border-left-color:#374151}.calendar-list-event-badge{flex-shrink:0}.calendar-list-event-body{flex:1;min-width:0}.calendar-list-event-title{display:block;font-size:1rem;margin-bottom:.25rem;color:var(--text, #333)}.calendar-list-event-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted, #666)}.calendar-list-event-dates,.calendar-list-event-dog{margin-right:.25rem}.calendar-list-event-dog{font-style:italic}.calendar-list-event-confirmed{font-size:.75rem;padding:.1rem .4rem;border-radius:4px;background:var(--bg-muted, #eee);color:var(--text-muted, #666)}.calendar-list-event-prediction{font-size:.75rem;padding:.1rem .4rem;border-radius:4px;background:#fef3c7;color:#92400e}.cwv{display:flex;flex-direction:column;gap:0}.cwv-nav{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem;flex-wrap:wrap}.cwv-nav-btn{width:34px;height:34px;border:none;border-radius:6px;background:var(--bg-elevated);color:var(--text-primary);font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.cwv-nav-btn:hover{background:var(--bg-hover)}.cwv-today-btn{height:34px;padding:0 .75rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);color:var(--text-primary);font-size:.8rem;font-weight:500;cursor:pointer}.cwv-today-btn:hover{background:var(--bg-hover)}.cwv-week-label{font-size:.8rem;color:var(--text-secondary);margin-left:.25rem}.cwv-dow-header{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0;background:var(--bg-elevated);position:sticky;top:0;z-index:2}.cwv-dow-cell{text-align:center;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);padding:.35rem 0;border-right:1px solid var(--border-light)}.cwv-dow-cell:last-child{border-right:none}.cwv-weeks{border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px;overflow:hidden;overflow-x:auto}.cwv-week-block{min-width:0}.cwv-date-row{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-card);border-bottom:1px solid var(--border-light)}.cwv-date-cell{display:flex;flex-direction:column;align-items:center;padding:.3rem .15rem .2rem;border-right:1px solid var(--border-light);gap:1px;min-width:44px}.cwv-date-cell:last-child{border-right:none}.cwv-date-cell.today{background:color-mix(in srgb,var(--color-accent) 8%,var(--bg-card))}.cwv-date-cell.other-month{opacity:.5}.cwv-month-tag{font-size:.58rem;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1}.cwv-day-num{font-size:.9rem;font-weight:400;color:var(--text-primary);line-height:1}.cwv-day-num.today{background:var(--color-accent);color:#fff;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem}.cwv-events-row{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-card);align-items:start}.cwv-events-cell{display:flex;flex-direction:column;gap:2px;padding:3px 2px 6px;border-right:1px solid var(--border-light);min-height:40px;min-width:44px;align-self:stretch}.cwv-events-cell:last-child{border-right:none}.cwv-events-cell.today{background:color-mix(in srgb,var(--color-accent) 6%,var(--bg-card))}.cwv-week-sep{height:6px;background:var(--bg-elevated);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.cwv-event{display:flex;flex-direction:column;gap:0;width:100%;padding:2px 3px;border:none;border-radius:3px;cursor:pointer;text-align:left;background:var(--bg-elevated);border-left:3px solid var(--color-accent);line-height:1.2}.cwv-event:hover{filter:brightness(1.2)}.cwv-event--event-badge--mating{border-left-color:#6b21a8;background:color-mix(in srgb,#6b21a8 20%,var(--bg-elevated))}.cwv-event--event-badge--heat{border-left-color:#be185d;background:color-mix(in srgb,#be185d 20%,var(--bg-elevated))}.cwv-event--event-badge--heat-prediction{border-left-color:#a21caf;background:color-mix(in srgb,#a21caf 15%,var(--bg-elevated))}.cwv-event--event-badge--progesterone{border-left-color:#1d4ed8;background:color-mix(in srgb,#1d4ed8 20%,var(--bg-elevated))}.cwv-event--event-badge--pregnancy-window{border-left-color:#c2410c;background:color-mix(in srgb,#c2410c 20%,var(--bg-elevated))}.cwv-event--event-badge--pregnancy-probable{border-left-color:#b91c1c;background:color-mix(in srgb,#b91c1c 20%,var(--bg-elevated))}.cwv-event--event-badge--pregnancy-ultrasound{border-left-color:#0e7490;background:color-mix(in srgb,#0e7490 20%,var(--bg-elevated))}.cwv-event--event-badge--pregnancy-xray{border-left-color:#7c3aed;background:color-mix(in srgb,#7c3aed 20%,var(--bg-elevated))}.cwv-event--event-badge--whelping{border-left-color:#15803d;background:color-mix(in srgb,#15803d 20%,var(--bg-elevated))}.cwv-event--event-badge--vaccination,.cwv-event--event-badge--deworming{border-left-color:#4b5563;background:color-mix(in srgb,#4b5563 20%,var(--bg-elevated))}.cwv-event--event-badge--default{border-left-color:#374151;background:color-mix(in srgb,#374151 20%,var(--bg-elevated))}.cwv-event-title{font-size:.62rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cwv-event-dog{font-size:.56rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cwv-event-badge{font-size:.5rem!important;padding:1px 2px!important;margin-top:1px;line-height:1.1}.event-details-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.event-details-content{width:100%;max-width:420px;max-height:90vh;overflow-y:auto;background:var(--bg-card, #fff);border-radius:12px;box-shadow:0 4px 24px #0003;padding:1.25rem}.event-details-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600;color:var(--text, #333)}.event-details-badge-wrap{margin-bottom:1rem}.event-details-dl{margin:0 0 1.25rem;display:grid;gap:.35rem 1rem;grid-template-columns:auto 1fr;font-size:.95rem}.event-details-dl dt{color:var(--text-muted, #666);font-weight:500}.event-details-dl dd{margin:0;color:var(--text, #333)}.event-details-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}.event-details-btn{min-height:44px;min-width:88px;padding:.5rem 1rem;font-size:1rem;font-weight:500;border-radius:8px;cursor:pointer;border:1px solid var(--border, #ccc);background:var(--bg-card, #fff);color:var(--text, #333)}.event-details-btn--primary{background:var(--primary, #444);color:#fff;border-color:var(--primary, #444)}.event-details-btn--danger{background:#b91c1c;color:#fff;border-color:#b91c1c}.event-details-btn--danger:hover{background:#991b1b;border-color:#991b1b}.event-details-btn--primary:hover{background:var(--primary-hover, #333);border-color:var(--primary-hover, #333)}.event-details-btn--google{background:#fff;color:#1a73e8;border-color:#1a73e8;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.35rem}.event-details-btn--google:before{content:"";display:inline-block;width:16px;height:16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234285F4' d='M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z'/%3E%3Cpath fill='%2334A853' d='M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z'/%3E%3Cpath fill='%23FBBC05' d='M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l3.66-2.84z'/%3E%3Cpath fill='%23EA4335' d='M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain}.event-details-btn--google:hover{background:#e8f0fe}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal-content{width:100%;max-width:420px;max-height:90vh;overflow-y:auto;background:var(--bg-card, #fff);border-radius:8px;box-shadow:0 4px 20px #00000026;padding:1.25rem}.modal-title{margin:0 0 1rem;font-size:1.25rem;font-weight:600;color:var(--text, #333)}.modal-form{display:flex;flex-direction:column;gap:1rem}.modal-label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:500;color:var(--text, #333)}.modal-input{min-height:44px;padding:.5rem .75rem;font-size:1rem;border:1px solid var(--border, #ccc);border-radius:6px;background:var(--bg-card, #fff);color:var(--text, #333)}.modal-textarea{min-height:80px;resize:vertical}.modal-check{flex-direction:row;align-items:center;cursor:pointer}.modal-check input{width:20px;height:20px}.modal-error{padding:.75rem;background:#fde8e8;color:#b91c1c;border-radius:6px;font-size:.9rem}.modal-actions{display:flex;gap:.75rem;margin-top:.5rem}.modal-btn{min-height:48px;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;border:none;border-radius:6px;cursor:pointer}.modal-btn.primary{flex:1;color:#fff;background:var(--primary, #444)}.modal-btn.primary:hover:not(:disabled){background:var(--primary-hover, #333)}.modal-btn.primary:disabled{opacity:.7;cursor:not-allowed}.modal-btn.secondary{background:var(--bg-muted, #e5e5e5);color:var(--text, #333)}.modal-btn.secondary:hover{background:var(--bg-hover, #ddd)}.calendar-page{max-width:640px;margin:0 auto;padding:0 1rem}.calendar-view-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:.5rem;gap:.5rem}.calendar-header-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.calendar-export-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .7rem;font-size:.8rem;font-weight:500;border:1px solid var(--border);border-radius:7px;background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;white-space:nowrap}.calendar-export-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.calendar-export-btn:disabled{opacity:.6;cursor:default}.calendar-view-header .page-title{margin:0}.calendar-view-toggle{display:flex;gap:.25rem;background:var(--bg-elevated, #323238);border-radius:8px;padding:3px}.calendar-view-btn{padding:.35rem .85rem;font-size:.875rem;font-weight:500;border:none;border-radius:6px;cursor:pointer;background:transparent;color:var(--text-secondary, #b4b4bb);transition:background .15s,color .15s;min-height:32px}.calendar-view-btn.active{background:var(--color-primary, #4a5568);color:#fff}.calendar-view-btn:not(.active):hover{background:var(--bg-hover, #3a3a40);color:var(--text-primary, #f1f1f3)}.calendar-show-past-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:0 .5rem;cursor:pointer;font-size:.8rem;font-weight:500;color:var(--text-secondary);-webkit-user-select:none;user-select:none;white-space:nowrap;border-left:1px solid var(--border-light);margin-left:.15rem}.calendar-show-past-toggle input[type=checkbox]{accent-color:var(--color-accent);width:14px;height:14px;cursor:pointer}.calendar-show-past-wrap{display:inline-flex;align-items:center;gap:.35rem}.calendar-past-days-select{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--text-secondary)}.calendar-past-days-select select{min-height:28px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);color:var(--text-primary);padding:0 .35rem}.calendar-week-view,.calendar-list-view{margin-top:.5rem}.calendar-list-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.page-title{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:var(--text, #333)}.btn-primary{min-height:48px;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;color:#fff;background:var(--primary, #444);border:none;border-radius:8px;cursor:pointer}.btn-primary:hover{background:var(--primary-hover, #333)}.calendar-toast{margin:.75rem 0;padding:.75rem 1rem;border-radius:8px;font-size:.95rem}.calendar-toast.error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.calendar-loading{margin:1rem 0;color:var(--text-muted, #666)}.calendar-empty-state{margin:1.5rem 0;padding:1.5rem 1rem;text-align:center;background:var(--bg-muted, #f0f0f0);border-radius:12px;border:1px solid var(--border, #ddd)}.calendar-empty-message{margin:0 0 1rem;font-size:1rem;color:var(--text-muted, #666)}.calendar-empty-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.calendar-empty-actions .btn-primary,.calendar-empty-actions .btn-secondary{min-height:44px;padding:.5rem 1rem;font-size:1rem}.btn-secondary{font-weight:500;background:var(--bg-card, #fff);border:1px solid var(--border, #ccc);border-radius:8px;cursor:pointer}.btn-secondary:hover{background:var(--bg-hover, #eee)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.calendar-fab{position:fixed;bottom:calc(var(--app-bottom-nav-stack) + 1rem);right:1.5rem;width:56px;height:56px;border-radius:50%;background:var(--primary, #444);color:#fff;border:none;font-size:1.75rem;line-height:1;cursor:pointer;box-shadow:0 4px 12px #00000040;z-index:50;display:flex;align-items:center;justify-content:center;padding:0}.layout-desktop .calendar-fab{bottom:1.5rem}.calendar-fab:hover{background:var(--primary-hover, #333)}.calendar-fab:focus{outline:2px solid var(--primary, #444);outline-offset:2px}.app-card{background:var(--bg-card);padding:var(--space-4);border-radius:var(--radius-medium);border:1px solid var(--border);margin-bottom:var(--space-4)}.app-card:last-child{margin-bottom:0}.primary-btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--btn-primary-height);min-width:var(--btn-primary-min-width);padding:0 var(--space-5);font-size:var(--font-body);font-weight:600;color:var(--text-primary);background:var(--color-primary);border:none;border-radius:var(--radius-medium);text-decoration:none;cursor:pointer;transition:background .15s ease}.primary-btn:hover:not(:disabled):not([aria-disabled=true]){background:var(--color-primary-hover)}.primary-btn:disabled,.primary-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.page-primary-action .primary-btn{display:flex;margin:0 auto}.dogs-page{max-width:640px;margin:0 auto}.dogs-search{margin-bottom:var(--space-3)}.dogs-filters-row{margin-bottom:var(--space-4)}.dogs-filters-row .filter-check-label{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);font-size:var(--font-body);color:var(--text-primary);cursor:pointer}.dogs-filters-row .filter-check-label input{width:22px;height:22px}.search-label{display:block}.search-input{width:100%;min-height:var(--touch-min);padding:var(--space-2) var(--space-3);font-size:var(--font-body);border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg-card);color:var(--text-primary)}.search-input::placeholder{color:var(--text-muted)}.dogs-list-card{margin-bottom:var(--space-4)}.dogs-loading{margin:var(--space-4) 0;color:var(--text-secondary)}.dogs-empty-state{padding:var(--space-5) var(--space-4);text-align:center}.dogs-empty-copy{margin:0;font-size:var(--font-body);color:var(--text-secondary)}.dogs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.dogs-list .dog-card{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-4);min-height:var(--touch-min);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-medium);text-decoration:none;color:var(--text-primary)}.dogs-list .dog-card:hover{background:var(--bg-hover);border-color:var(--text-muted)}.dog-name{font-weight:600;font-size:var(--font-body)}.dog-call{font-size:var(--font-body);color:var(--text-secondary)}.dog-meta{font-size:var(--font-body);color:var(--text-secondary);margin-left:auto}.dog-detail{max-width:640px;margin:0 auto}.dog-call-name{margin:0 0 var(--space-4);font-size:var(--font-body);color:var(--text-secondary)}.detail-list{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-5);margin:0 0 var(--space-5);font-size:var(--font-body)}.detail-list dt{font-weight:500;color:var(--text-secondary)}.detail-list dd{margin:0;color:var(--text-primary)}.dog-detail-back{margin:0}.dog-detail-back a{color:var(--link);text-decoration:none;min-height:var(--touch-min);display:inline-flex;align-items:center}.dog-detail-back a:hover{text-decoration:underline}.add-dog-page{max-width:480px;margin:0 auto}.add-dog-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--font-body);font-weight:500;color:var(--text-primary)}.form-input{min-height:var(--touch-min);padding:var(--space-2) var(--space-3);font-size:var(--font-body);border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg-card);color:var(--text-primary)}.form-input::placeholder{color:var(--text-muted)}.form-input.has-error{border-color:var(--color-danger)}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.form-actions .primary-btn,.form-actions .btn-primary,.form-actions .secondary-btn,.form-actions .btn-secondary{min-height:var(--btn-primary-height);padding:0 var(--space-5)}.form-actions .primary-btn,.form-actions .btn-primary{flex:1}.task-block{margin-top:1rem}.task-block-list{list-style:none;padding:0;margin:0 0 1rem}.task-block-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.5rem 1rem;padding:.5rem 0;border-bottom:1px solid var(--border-subtle, #444)}.task-block-check{display:flex;align-items:flex-start;gap:.5rem;flex:1;min-width:0;cursor:pointer}.task-block-title{font-weight:500;word-break:break-word}.tasks-meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.9rem;color:var(--text-muted, #aaa)}.tasks-due:before{content:""}.task-block-delete{margin-left:auto}.tasks-empty,.tasks-muted{color:var(--text-muted, #888);margin:.5rem 0 1rem}.task-block-form{margin-top:.75rem}.dog-photo-block{margin-bottom:1rem}.dog-photo{display:block;width:120px;height:120px;border-radius:12px;object-fit:cover}.dog-photo-placeholder{width:100%;max-width:280px;aspect-ratio:1;background:var(--bg-muted, #f0f0f0);border:1px dashed var(--border, #ddd);border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--text-muted, #666);font-size:.9rem}.dog-photo-input{position:absolute;width:0;height:0;opacity:0;overflow:hidden;clip:rect(0,0,0,0)}.dog-photo-btn{margin-top:.75rem;min-height:44px;min-width:140px}.dog-detail-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border, #ddd)}.section-title{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--text, #333)}.repro-list{list-style:none;margin:0 0 .75rem;padding:0}.repro-item{padding:.5rem 0;border-bottom:1px solid var(--border-light, #eee);font-size:.95rem;color:var(--text, #333)}.repro-empty{padding:.5rem 0;color:var(--text-muted, #666);font-size:.95rem}.repro-note{color:var(--text-muted, #666);font-style:italic}.repro-link{margin-left:.5rem;font-size:.85rem;color:var(--link, #2563eb);text-decoration:none}.repro-link:hover{text-decoration:underline}.repro-form{margin-top:.75rem;padding:1rem;background:var(--bg-muted, #f0f0f0);border-radius:8px;display:flex;flex-direction:column;gap:.75rem}.repro-form .form-actions{margin-top:.25rem}.predictions-list{margin-top:.75rem}.prediction-item{padding:.75rem;background:var(--bg-card, #fff);border:1px solid var(--border, #ddd);border-radius:6px;margin-bottom:.5rem}.btn-inline{margin-left:.75rem;padding:.25rem .5rem;font-size:.85rem;color:var(--link, #2563eb);background:none;border:none;cursor:pointer;min-height:44px}.btn-inline:hover{text-decoration:underline}.btn-inline:disabled{opacity:.7;cursor:not-allowed}.btn-sm{min-height:44px;padding:.5rem 1rem;font-size:.95rem}.dog-profile-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.dog-events-section{background:var(--bg-card);border-radius:8px;padding:1rem;border:1px solid var(--border);margin-top:1rem}.dog-events-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.dog-events-header .section-title{margin:0}.dog-events-past-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:500;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.dog-events-past-toggle input[type=checkbox]{accent-color:var(--color-accent);width:14px;height:14px;cursor:pointer}.dog-owners-section .dog-owner-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem}.dog-owner-role{font-weight:600;min-width:6.5rem;color:var(--text-muted, #666);font-size:.88rem}.dog-owner-name{flex:1;min-width:12rem}.dog-owner-status{color:var(--text-muted, #666);font-size:.9rem}.dog-invite-form{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem;max-width:28rem}.dog-invite-form .form-label{margin-bottom:0}.customers-page{max-width:640px;margin:0 auto}.customers-search,.customers-filters{margin-bottom:.75rem}.customers-filters .filter-tag{max-width:200px}.customers-actions-bottom{margin-top:1.5rem;padding-top:1rem;display:flex;justify-content:center;align-items:center}.customers-actions-bottom .btn-primary{display:inline-block;min-height:48px;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;color:#fff;background:var(--primary, #444);border:none;border-radius:6px;cursor:pointer}.customers-actions-bottom .btn-primary:hover{background:var(--primary-hover, #333)}.customers-actions-bottom .customers-add-form{width:100%;max-width:480px}.customers-actions-bottom .form-actions{justify-content:center}.customers-add-form{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:var(--bg-card, #fff);border:1px solid var(--border, #ddd);border-radius:8px}.customers-loading{margin:1rem 0;color:var(--text-muted, #666)}.customers-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.customers-empty{padding:1rem;color:var(--text-muted, #666)}.customer-card{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:1rem;background:var(--bg-card, #fff);border:1px solid var(--border, #ddd);border-radius:8px;text-decoration:none;color:var(--text, #333);min-height:56px}.customer-card:hover{background:var(--bg-hover, #f5f5f5)}.customer-name{font-weight:600;font-size:1rem}.customer-meta{font-size:.9rem;color:var(--text-muted, #666)}.customer-tags{font-size:.85rem;color:var(--text-muted, #888);margin-left:auto}.customer-detail .customer-detail-actions-bottom{margin-top:1.5rem;padding-top:1rem;display:flex;justify-content:center;align-items:center;gap:.75rem;flex-wrap:wrap}.customer-delete-confirm{margin-top:1rem;padding:1rem;background:var(--bg-card, #fff);border:1px solid var(--border, #ddd);border-radius:8px}.customer-delete-confirm .confirm-text{margin:0 0 .75rem;color:var(--text, #333)}.customer-delete-confirm .form-actions-inline{display:flex;gap:.5rem;flex-wrap:wrap}.secondary-btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--btn-secondary-height);min-width:var(--touch-min);padding:0 var(--space-4);font-size:var(--font-body);font-weight:500;color:var(--text-primary);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-medium);cursor:pointer;transition:background .15s ease,border-color .15s ease}.secondary-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-muted)}.secondary-btn:disabled{opacity:.5;cursor:not-allowed}.status-chip{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-min);min-width:var(--touch-min);padding:0 var(--space-3);font-size:var(--font-small);font-weight:500;border-radius:var(--radius-small);border:none;cursor:default;transition:background .15s ease,font-weight .15s ease}.status-chip--default{background:var(--bg-elevated);color:var(--text-secondary)}.status-chip--success{background:#4a7c5940;color:#7cb88a}.status-chip--warning{background:#b8860b40;color:#d4a84b}.status-chip--danger{background:#b54a4a40;color:#d86a6a}.status-chip--accent{background:#6b7f9e40;color:#9ab0d4}.status-chip--active{font-weight:700}.status-chip--default.status-chip--active{background:var(--bg-hover);color:var(--text-primary)}.status-chip--success.status-chip--active{background:#4a7c5966;color:#9ed4ab}.status-chip--warning.status-chip--active{background:#b8860b66;color:#e8c35c}.status-chip--danger.status-chip--active{background:#b54a4a66;color:#e88a8a}.status-chip--accent.status-chip--active{background:#6b7f9e66;color:#b8cae0}button.status-chip{cursor:pointer}button.status-chip:hover:not(:disabled){filter:brightness(1.1)}button.status-chip:disabled{opacity:.6;cursor:not-allowed}.litters-page{max-width:640px;margin:0 auto}.litters-filters{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-5);margin-bottom:var(--space-4)}.litters-filters .filter-label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--font-body);font-weight:500;color:var(--text-primary)}.litters-filters .filter-select,.litters-filters .filter-input{max-width:200px;min-height:var(--touch-min)}.litters-actions-bottom{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.litters-actions-bottom .litters-add-form{width:100%;max-width:480px;max-height:70vh;overflow-y:auto}.litters-actions-bottom .form-actions{justify-content:center}.litters-add-form{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-medium)}.litters-list-card{margin-bottom:var(--space-4)}.litters-loading{margin:var(--space-4) 0;color:var(--text-secondary)}.litters-empty-state{padding:var(--space-5) var(--space-4);text-align:center}.litters-empty-copy{margin:0;font-size:var(--font-body);color:var(--text-secondary)}.litters-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.litter-card{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-4);min-height:var(--touch-min);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-medium);text-decoration:none;color:var(--text-primary)}.litter-card:hover{background:var(--bg-hover);border-color:var(--text-muted)}.litter-dam{font-weight:600;font-size:var(--font-body)}.litter-meta{font-size:var(--font-body);color:var(--text-secondary)}.litter-card .status-chip{margin-left:auto}.litter-dam-card{margin-bottom:.5rem}.litter-dam-card .page-title a{color:var(--link, #2563eb);text-decoration:none}.litter-dam-card .page-title a:hover{text-decoration:underline}.litter-detail .section-title{margin:1rem 0 .5rem;font-size:1rem;font-weight:600;color:var(--text, #333)}.puppies-table{width:100%;border-collapse:collapse;font-size:.9rem}.puppies-table th,.puppies-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border, #eee)}.puppies-table th{font-weight:600;color:var(--text-muted, #666)}.puppies-table a{color:var(--link, #2563eb);text-decoration:none}.puppies-table a:hover{text-decoration:underline}.confirm-text{font-size:.9rem;color:var(--text-muted, #666);margin-right:.5rem}.puppy-status-buttons{display:flex;flex-wrap:wrap;gap:.35rem}.puppy-status-buttons .btn-status{padding:.35rem .6rem;font-size:.85rem;border:1px solid var(--border, #ddd);background:var(--bg-card, #fff);color:var(--text, #333);border-radius:4px;cursor:pointer}.puppy-status-buttons .btn-status:hover:not(:disabled){background:var(--bg-hover, #f5f5f5)}.puppy-status-buttons .btn-status.active{background:var(--primary, #444);color:#fff;border-color:var(--primary, #444)}.puppy-status-inline{display:flex;flex-wrap:wrap;gap:.25rem}.puppy-status-inline .btn-status-sm{padding:.2rem .4rem;font-size:.75rem;border:1px solid var(--border, #ddd);background:var(--bg-card, #fff);color:var(--text, #333);border-radius:3px;cursor:pointer}.puppy-status-inline .btn-status-sm:hover:not(:disabled){background:var(--bg-hover, #f5f5f5)}.puppy-status-inline .btn-status-sm.active{background:var(--primary, #444);color:#fff;border-color:var(--primary, #444)}.puppies-section{display:flex;flex-direction:column}.puppies-actions-bottom{margin-top:1rem;padding-top:1rem;display:flex;justify-content:center;align-items:center}.puppies-actions-bottom .puppies-add-form{width:100%;max-width:400px;display:flex;flex-direction:column;gap:1rem}.puppies-actions-bottom .form-actions{justify-content:center}.puppy-detail .puppy-detail-actions-bottom{margin-top:1.5rem;padding-top:1rem;display:flex;justify-content:center;align-items:center;gap:.75rem;flex-wrap:wrap}.puppy-detail .puppy-detail-actions-bottom .btn-primary{display:inline-block;padding:.75rem 1.25rem;font-size:1rem;font-weight:600;color:#fff;background:var(--primary, #444);border:none;border-radius:6px;cursor:pointer;text-decoration:none}.puppy-detail .puppy-detail-actions-bottom .btn-primary:hover{background:var(--primary-hover, #333);color:#fff}.more-page{max-width:640px;margin:0 auto}.more-nav{display:flex;flex-direction:column;gap:.25rem}.more-appearance{padding:.75rem;margin-bottom:.5rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px}.more-appearance-label{display:block;font-size:.9rem;font-weight:600;color:var(--text-secondary);margin-bottom:.65rem}.more-appearance-row{margin-bottom:.65rem}.more-appearance-row:last-child{margin-bottom:0}.more-appearance-sublabel{display:block;font-size:.8rem;font-weight:500;color:var(--text-muted);margin-bottom:.35rem}.more-appearance-btns{flex-wrap:wrap}.more-color-btn{display:inline-flex;align-items:center;gap:.4rem}.more-color-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid var(--border);flex-shrink:0}.more-owner-badge{display:inline-block;margin-left:.4rem;padding:.1rem .4rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-accent);border:1px solid var(--color-accent);border-radius:4px;vertical-align:middle}.more-lang{padding:.75rem;margin-bottom:.5rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px}.more-lang-label{display:block;font-size:.9rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem}.more-lang-btns{display:flex;gap:.5rem}.more-lang-btn{min-height:44px;padding:.5rem 1rem;font-size:1rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-elevated);color:var(--text-primary);cursor:pointer}.more-lang-btn:hover{background:var(--bg-hover)}.more-lang-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.more-item{display:block;width:100%;min-height:48px;padding:.75rem 1rem;text-align:left;font-size:1rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);text-decoration:none;cursor:pointer}.more-item:hover{background:var(--bg-hover)}.more-item.placeholder{cursor:default;color:var(--text-muted)}.more-logout{margin-top:1rem;font-weight:600;color:#b91c1c;background:#fef2f2;border-color:#fecaca}.more-logout:hover{background:#fee2e2}.more-billing{padding:.75rem 0;margin-bottom:.5rem;border-top:1px solid var(--border, #eee)}.more-billing-title{font-size:1rem;font-weight:600;color:var(--text-secondary);margin:0 0 .75rem}.more-billing-row{display:flex;justify-content:space-between;padding:.25rem 0;font-size:.95rem}.more-billing-label{color:var(--text-secondary)}.more-billing-usage{margin-top:.75rem;padding:.5rem 0;font-size:.9rem}.more-billing-usage-row{display:flex;justify-content:space-between;padding:.2rem 0}.more-billing-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.more-upgrade{background:var(--primary, #444);color:#fff;border-color:var(--primary, #444);font-weight:600}.more-upgrade:hover{filter:brightness(1.1)}.more-portal{background:var(--bg-elevated)}.more-profile{padding:.75rem;margin-bottom:.75rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;font-size:.95rem}.more-profile-title{font-size:1rem;font-weight:600;color:var(--text-secondary);margin:0 0 .5rem}.more-profile-row{display:flex;justify-content:space-between;gap:.5rem;padding:.2rem 0;color:var(--text-primary)}.more-profile-meta{color:var(--text-muted);font-size:.8rem;margin-top:.35rem}.more-billing-hint{font-size:.85rem;color:var(--text-muted);margin-top:.5rem;line-height:1.4}.notification-prefs-page{max-width:720px;margin:0 auto;padding:1rem}.notification-prefs-header{margin-bottom:1rem}.notification-prefs-back{display:inline-block;margin-bottom:.5rem;font-size:.9rem;color:var(--link, #0066cc);text-decoration:none}.notification-prefs-back:hover{text-decoration:underline}.notification-prefs-lead{margin:.25rem 0 0;font-size:.9rem;color:var(--text-muted, #666)}.notification-prefs-loading{color:var(--text-muted, #666)}.notification-prefs-card{margin-bottom:1rem;padding:1rem;background:var(--bg-card, #f8f8f8);border:1px solid var(--border-light, #ddd);border-radius:8px}.notification-prefs-section-title{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:var(--text, #333)}.notification-prefs-hint{margin:0 0 .75rem;font-size:.85rem;color:var(--text-muted, #666)}.notification-prefs-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border-light, #eee);font-size:.95rem;color:var(--text, #333)}.notification-prefs-row:last-child{border-bottom:none}.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.section-header-text{min-width:0}.section-header-title{margin:0;font-size:var(--font-h2);font-weight:600;line-height:var(--line-tight);color:var(--text-primary)}.section-header-subtitle{margin:var(--space-1) 0 0;font-size:var(--font-small);color:var(--text-secondary)}.section-header-actions{flex-shrink:0;display:flex;align-items:center;gap:var(--space-2)}.dashboard-page{width:100%;min-height:100%;display:flex;justify-content:center;align-items:flex-start;background:var(--bg-page)}.dashboard-viewport{width:1280px;height:800px;max-width:100%;max-height:100vh;display:flex;flex-direction:column;background:var(--bg-page);border:1px solid var(--border);box-sizing:border-box}.dashboard-content{flex:1;overflow-y:auto;padding:var(--space-4) var(--space-5) calc(var(--space-6) + var(--btn-primary-height) + var(--space-4));display:flex;flex-direction:column;gap:var(--space-5)}.dashboard-section-sep{border-top:1px solid var(--border);padding-top:var(--space-4)}.dashboard-section-sep:first-of-type{border-top:none;padding-top:0}.dashboard-loading,.dashboard-empty{margin:var(--space-2) 0;color:var(--text-secondary);font-size:var(--font-body)}.dashboard-exports .section-header{margin-bottom:var(--space-3)}.dashboard-export-links{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.dashboard-event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.dashboard-event-item{margin:0}.dashboard-event-link{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);min-height:var(--touch-min);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-small);color:var(--text-primary);text-decoration:none}.dashboard-event-link:hover{background:var(--bg-hover);border-color:var(--text-muted)}.dashboard-event-date{font-size:var(--font-body);color:var(--text-secondary);min-width:5.5rem}.dashboard-event-title{flex:1;font-size:var(--font-body);font-weight:500}.dashboard-event-type{font-size:var(--font-small);font-weight:600;padding:var(--space-1) var(--space-2);background:var(--bg-elevated);color:var(--text-secondary);border-radius:var(--radius-small)}.dashboard-litter-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.dashboard-litter-row{display:flex;flex-direction:column;gap:var(--space-1)}.dashboard-litter-card{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);min-height:var(--touch-min);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-small);color:var(--text-primary)}.dashboard-litter-link{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);flex:1;min-width:0;color:var(--text-primary);text-decoration:none;min-height:var(--touch-min)}.dashboard-litter-link:hover{color:var(--color-accent)}.dashboard-litter-card:hover{border-color:var(--text-muted)}.dashboard-litter-card .secondary-btn{margin-left:auto}.dashboard-quick-action-spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--color-primary);border-radius:50%;animation:dashboard-spin .7s linear infinite;flex-shrink:0}.dashboard-status-chip-spinner{flex-shrink:0}@keyframes dashboard-spin{to{transform:rotate(360deg)}}.dashboard-inline-error{margin:0;padding:var(--space-2) var(--space-3);font-size:var(--font-body);color:var(--color-danger);background:#b54a4a26;border-radius:var(--radius-small)}.dashboard-litter-dam{font-weight:600;font-size:var(--font-body)}.dashboard-litter-due,.dashboard-litter-whelped,.dashboard-litter-counts{font-size:var(--font-body);color:var(--text-secondary)}.dashboard-puppy-counts{margin:0 0 var(--space-2);font-size:var(--font-body);color:var(--text-secondary)}.dashboard-puppy-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.dashboard-puppy-row{display:flex;flex-direction:column;gap:var(--space-1)}.dashboard-puppy-item-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);min-height:var(--touch-min);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-small)}.dashboard-puppy-item-wrap:hover{border-color:var(--text-muted)}.dashboard-puppy-item{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);flex:1;min-width:0;color:var(--text-primary);text-decoration:none;min-height:var(--touch-min)}.dashboard-puppy-item:hover{color:var(--color-accent)}.dashboard-puppy-status-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.dashboard-puppy-name{font-weight:500;font-size:var(--font-body)}.dashboard-puppy-meta{font-size:var(--font-body);color:var(--text-secondary)}.dashboard-page .page-primary-action{bottom:calc(var(--app-bottom-nav-stack) + var(--space-4))}.notifications-page{max-width:1280px;margin:0 auto;padding:1rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-content:start}@media (max-width: 900px){.notifications-page{grid-template-columns:1fr}}.notifications-page .page-title{grid-column:1 / -1;margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:var(--text, #333)}.notifications-card{margin-bottom:1rem;padding:1rem;background:var(--bg-card, #f8f8f8);border:1px solid var(--border-light, #ddd);border-radius:8px}.notifications-card-title{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--text, #333)}.notifications-overview{display:flex;flex-direction:column;gap:.5rem}.notifications-overview-unread{margin:0;font-size:.95rem}.notifications-overview-link{color:var(--link, #0066cc);text-decoration:none}.notifications-overview-link:hover{text-decoration:underline}.notifications-last-delivery{display:flex;flex-direction:column;gap:.35rem}.notifications-last-delivery-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem}.notifications-channel-label{min-width:4rem;color:var(--text-muted, #666)}.notifications-status-chip{display:inline-block;padding:.15rem .4rem;border-radius:4px;font-size:.75rem;font-weight:500}.notifications-status--sent{background:#d4edda;color:#155724}.notifications-status--failed{background:#f8d7da;color:#721c24}.notifications-status--none,.notifications-status--pending{background:var(--bg-muted, #e5e5e5);color:var(--text-muted, #666)}.notifications-sent-at{font-size:.8rem;color:var(--text-muted, #666)}.notifications-error-truncate{font-size:.8rem;color:#721c24;max-width:100%;overflow:hidden;text-overflow:ellipsis}.notifications-push-count{margin:.25rem 0 0;font-size:.9rem;color:var(--text-muted, #666)}.notifications-lead-presets{display:flex;flex-wrap:wrap;gap:.35rem}.notifications-actions-bottom{justify-content:center;margin-top:.75rem}.notifications-channel-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.35rem}.notifications-field-error{margin:.25rem 0 0;font-size:.9rem;color:#721c24}.notifications-push-device-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.notifications-test-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.notifications-delivery-list{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.35rem;max-height:240px;overflow-y:auto}.notifications-delivery-item{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.4rem .5rem;background:var(--bg-muted, #eee);border-radius:4px;font-size:.85rem}.notifications-delivery-channel{min-width:4rem;font-weight:500}.notifications-delivery-sent{font-size:.8rem;color:var(--text-muted, #666)}.notifications-retry-btn{margin-left:auto}.notifications-settings{margin-bottom:1.5rem;padding:1rem;background:var(--bg-card, #f8f8f8);border:1px solid var(--border-light, #ddd);border-radius:8px}.notifications-section-title{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--text, #333)}.notifications-settings-fields{display:flex;flex-direction:column;gap:.75rem}.notifications-setting-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.notifications-setting-label{min-width:10rem;font-size:.9rem;color:var(--text, #333)}.notifications-setting-row input[type=text],.notifications-setting-row input[type=time]{max-width:12rem}.notifications-settings-actions{margin-top:.5rem}.notifications-list-section{grid-column:1 / -1;margin-top:.5rem}.notifications-list-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.notifications-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.notifications-item{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;background:var(--bg-card, #fff);border:1px solid var(--border-light, #eee);border-radius:6px}.notifications-item--read{opacity:.85;background:var(--bg-muted, #e5e5e5)}.notifications-item--unread{border-color:var(--border, #bbb);background:var(--bg-card, #fafafa)}.notifications-item-open{flex:1;min-width:0;text-align:left;border:none;background:transparent;padding:0;cursor:pointer;font:inherit;color:inherit}.notifications-item-main{display:flex;flex-direction:column;gap:.25rem;min-width:0;flex:1}.notifications-item-title{font-weight:600;font-size:1rem;color:var(--text, #333)}.notifications-item-body{font-size:.9rem;color:var(--text-muted, #666)}.notifications-item-meta{font-size:.8rem;color:var(--text-muted, #666)}.notifications-mark-read-btn{flex-shrink:0;padding:.35rem .6rem;font-size:.8rem;font-weight:500;color:var(--text, #333);background:var(--bg-muted, #e5e5e5);border:1px solid var(--border, #ccc);border-radius:4px;cursor:pointer}.notifications-mark-read-btn:hover{background:var(--bg-hover, #eee)}.notifications-inline-warning{margin:.25rem 0 0;padding:.5rem .75rem;font-size:.9rem;color:#856404;background:#fff3cd;border-radius:4px}.notifications-inline-status{margin:.25rem 0 0;padding:.5rem .75rem;font-size:.9rem;color:var(--text-muted, #666)}.notifications-push-actions{margin:.25rem 0 0}.notifications-loading,.notifications-empty{margin:.5rem 0;color:var(--text-muted, #666);font-size:.95rem}.toast.error{margin-bottom:.75rem}.users-admin-page{max-width:760px;margin:0 auto;color-scheme:dark}.users-admin-actions{margin-bottom:.75rem}.users-admin-loading{color:var(--text-secondary)}.users-admin-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.users-admin-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:.85rem}.users-admin-main{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.65rem}.users-admin-meta{color:var(--text-secondary);font-size:.9rem}.users-admin-controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin-bottom:.65rem}.users-admin-field{display:flex;flex-direction:column;gap:.2rem;min-width:0}.users-admin-field-label{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.users-admin-select{min-height:38px;min-width:7.5rem;border:1px solid var(--border);border-radius:8px;padding:.35rem .5rem;background-color:var(--bg-elevated);color:var(--text-primary)}.users-admin-select:disabled{opacity:.65;cursor:not-allowed}.users-admin-select option{background-color:var(--bg-elevated);color:var(--text-primary)}.users-admin-billing-row{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.65rem;padding:.5rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.users-admin-plan-seg{display:inline-flex;flex-wrap:wrap;border-radius:8px;border:1px solid var(--border);overflow:hidden;align-self:flex-start}.users-admin-plan-btn{min-height:40px;min-width:5.5rem;padding:0 .85rem;border:none;margin:0;background:var(--bg-card);color:var(--text-secondary);font-weight:600;cursor:pointer}.users-admin-plan-btn+.users-admin-plan-btn{border-left:1px solid var(--border)}.users-admin-plan-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.users-admin-plan-btn:disabled{opacity:.6;cursor:not-allowed}.users-admin-plan-btn--active{background:var(--color-accent);color:var(--text-primary)}.users-admin-plan-btn--active:hover:not(:disabled){background:var(--color-accent);filter:brightness(1.08)}.users-admin-billing-hint{font-size:.75rem;color:var(--text-muted);max-width:28rem}.users-admin-password{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.users-admin-input{min-height:38px;border:1px solid var(--border);border-radius:8px;padding:.4rem .6rem;min-width:min(250px,100%);background-color:var(--bg-elevated);color:var(--text-primary)}.users-admin-input::placeholder{color:var(--text-muted)}.users-admin-delete{margin-top:.65rem}.users-admin-delete-btn{background:var(--bg-elevated);border-color:#fca5a5;color:#fca5a5}.users-admin-delete-btn:hover:not(:disabled){background:#fca5a51f;border-color:#f87171;color:#fecaca}.tasks-page{max-width:720px;margin:0 auto;padding:0 0 5rem}.tasks-filters{margin-bottom:1rem}.tasks-filter-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.tasks-chip{padding:.35rem .75rem;border:1px solid var(--border-subtle, #555);background:var(--bg-elevated, #333);color:inherit;border-radius:4px;cursor:pointer;font-size:.9rem}.tasks-chip.active{border-color:var(--accent, #6b9);background:var(--bg-active, #3a4a40)}.tasks-main-list{list-style:none;padding:0;margin:0}.tasks-main-row{border-bottom:1px solid var(--border-subtle, #444);padding:.75rem 0}.tasks-main-check{display:flex;align-items:flex-start;gap:.5rem;cursor:pointer;margin-bottom:.35rem}.tasks-main-title{font-weight:500;word-break:break-word}.tasks-main-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.88rem;color:var(--text-muted, #aaa);margin-bottom:.35rem}.tasks-target-pill{background:var(--bg-elevated, #2a2a2a);padding:.15rem .4rem;border-radius:3px}.tasks-main-actions{display:flex;gap:.75rem;margin-top:.25rem}.tasks-edit-panel{padding:.5rem 0}.tasks-empty,.tasks-muted{color:var(--text-muted, #888)}.groups-page{max-width:1280px;margin:0 auto;padding-bottom:120px}.groups-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-medium);padding:var(--space-4);margin-bottom:var(--space-4)}.groups-card h3{margin:0 0 var(--space-3);font-size:var(--font-h3);color:var(--text-primary)}.groups-muted{color:var(--text-secondary);font-size:var(--font-small)}.groups-row{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.groups-chip{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-3);border-radius:999px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-primary);font-size:var(--font-small);cursor:pointer;min-height:36px}.groups-chip.selected{border-color:var(--color-accent);background:var(--bg-hover);font-weight:600}.groups-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--font-small);background:var(--bg-elevated);border:1px solid var(--border)}.groups-badge.admin{color:var(--color-accent)}.groups-input,.groups-select{width:100%;max-width:400px;min-height:var(--touch-min);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg-page);color:var(--text-primary)}.groups-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(100%,520px);display:inline-block;vertical-align:middle}.groups-primary-bar{position:fixed;left:0;right:0;bottom:var(--app-bottom-nav-stack);z-index:8;display:flex;justify-content:center;padding:var(--space-3) var(--space-4);pointer-events:none}.groups-primary-bar .btn-primary{pointer-events:auto;min-width:min(280px,calc(100vw - 32px))}.groups-primary-bar--split{gap:var(--space-3);flex-wrap:wrap}.groups-primary-bar--split .btn-secondary,.groups-primary-bar--split .btn-primary{pointer-events:auto;min-width:min(200px,calc(50vw - 24px))}.groups-list-link{display:block;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-small);background:var(--bg-elevated);color:var(--text-primary);text-decoration:none;margin-bottom:var(--space-2)}.groups-list-link:hover{background:var(--bg-hover)}.groups-error{color:var(--color-danger, #c62828);margin-bottom:var(--space-2)}.groups-success{color:var(--color-success, #2e7d32);margin-bottom:var(--space-2)}:root{--safe-bottom: env(safe-area-inset-bottom, 0px);--app-bottom-nav-content-height: 56px;--app-bottom-nav-stack: calc(var(--app-bottom-nav-content-height) + var(--safe-bottom));--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius-small: 6px;--radius-medium: 10px;--radius-large: 16px;--font-h1: 24px;--font-h2: 20px;--font-h3: 16px;--font-body: 14px;--font-small: 12px;--line-tight: 1.35;--line-normal: 1.5;--bg-page: #1f1f23;--bg-card: #2a2a2f;--bg-elevated: #323238;--bg-header: #2a2a2f;--bg-hover: #3a3a40;--bg-muted: #2e2e33;--border: #3a3a40;--border-light: #2e2e33;--text-primary: #f1f1f3;--text-secondary: #b4b4bb;--text-muted: #888892;--color-success: #4a7c59;--color-warning: #b8860b;--color-danger: #b54a4a;--color-accent: #6b7f9e;--color-primary: #4a5568;--color-primary-hover: #3d4654;--link: #7b9acc;--touch-min: 44px;--btn-primary-height: 48px;--btn-primary-min-width: 160px;--btn-secondary-height: 40px;--icon-header-size: 1.25rem;--icon-bottom-nav-size: 1.25rem;--icon-sidebar-size: 1.15rem}html[data-theme=light]{--bg-page: #ececf0;--bg-card: #ffffff;--bg-elevated: #f7f7f9;--bg-header: #ffffff;--bg-hover: #e4e4ea;--bg-muted: #ebebef;--border: #cfd0d8;--border-light: #e2e3e8;--text-primary: #121214;--text-secondary: #3d3d45;--text-muted: #5c5c66;--color-success: #3d6b4a;--color-warning: #9a7209;--color-danger: #a33a3a;--color-accent: #4a5f85;--color-primary: #4a5568;--color-primary-hover: #3d4654;--link: #1d4ed8}html[data-font-scale=large]{--font-h1: 26px;--font-h2: 22px;--font-h3: 17px;--font-body: 16px;--font-small: 13px}html[data-color-theme=forest]{--bg-page: #1a2418;--bg-card: #222e20;--bg-elevated: #2a3628;--bg-header: #222e20;--bg-hover: #324030;--bg-muted: #263224;--border: #3a4a38;--border-light: #2e3e2c;--text-primary: #e8f0e6;--text-secondary: #a8b8a6;--text-muted: #7a8a78;--color-success: #5a9a5a;--color-warning: #c4a830;--color-danger: #c05050;--color-accent: #6aaa6a;--color-primary: #4a6a4a;--color-primary-hover: #3d5d3d;--link: #7ac07a;--icon-header-size: 1.35rem;--icon-bottom-nav-size: 1.4rem;--icon-sidebar-size: 1.25rem}html[data-color-theme=forest][data-theme=light]{--bg-page: #e8f0e6;--bg-card: #f5faf4;--bg-elevated: #edf5ec;--bg-header: #f5faf4;--bg-hover: #dde8dc;--bg-muted: #e2ede1;--border: #bccebb;--border-light: #d2e2d1;--text-primary: #1a2a18;--text-secondary: #3a4a38;--text-muted: #5a6a58;--color-success: #3a7a3a;--color-warning: #8a7a10;--color-danger: #a03a3a;--color-accent: #3a7a3a;--color-primary: #4a6a4a;--color-primary-hover: #3d5d3d;--link: #1a6a1a;--icon-header-size: 1.35rem;--icon-bottom-nav-size: 1.4rem;--icon-sidebar-size: 1.25rem}html[data-color-theme=ocean]{--bg-page: #181e28;--bg-card: #1e2738;--bg-elevated: #253040;--bg-header: #1e2738;--bg-hover: #2e3a4e;--bg-muted: #222c3c;--border: #334460;--border-light: #283548;--text-primary: #e0e8f4;--text-secondary: #96a8c4;--text-muted: #6e82a0;--color-success: #4a8a70;--color-warning: #c0a030;--color-danger: #c05050;--color-accent: #5090c0;--color-primary: #3a6090;--color-primary-hover: #2e5080;--link: #60a0e0;--icon-header-size: 1.45rem;--icon-bottom-nav-size: 1.5rem;--icon-sidebar-size: 1.35rem}html[data-color-theme=ocean][data-theme=light]{--bg-page: #e6ecf4;--bg-card: #f0f4fa;--bg-elevated: #e8eef6;--bg-header: #f0f4fa;--bg-hover: #d8e2f0;--bg-muted: #dce6f2;--border: #b0c0d8;--border-light: #c8d6e8;--text-primary: #141e2e;--text-secondary: #344058;--text-muted: #546078;--color-success: #2a6858;--color-warning: #8a7a10;--color-danger: #a03a3a;--color-accent: #3070a0;--color-primary: #3a6090;--color-primary-hover: #2e5080;--link: #1850a0;--icon-header-size: 1.45rem;--icon-bottom-nav-size: 1.5rem;--icon-sidebar-size: 1.35rem}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--font-body);line-height:var(--line-normal);color:var(--text-primary);background:var(--bg-page)}#root{min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}:root{--text: var(--text-primary);--primary: var(--color-primary);--primary-hover: var(--color-primary-hover)}.page-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;font-size:var(--font-body);color:var(--text-secondary)}.plan-limit-actions{margin-top:var(--space-2)}.plan-limit-upgrade{padding:var(--space-2) var(--space-3);font-size:var(--font-body);font-weight:600;background:var(--color-primary);color:var(--text-primary);border:none;border-radius:var(--radius-small);cursor:pointer;min-height:var(--touch-min)}.plan-limit-upgrade:hover{background:var(--color-primary-hover)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-with-primary-action{padding-bottom:calc(var(--space-6) + var(--btn-primary-height) + var(--space-4))}.page-primary-action{position:fixed;bottom:calc(var(--app-bottom-nav-stack) + var(--space-4));left:0;right:0;z-index:8;padding:0 var(--space-4);pointer-events:none}.page-primary-action>*{pointer-events:auto}.page-title-section{margin-bottom:var(--space-5)}.page-title-section h1,.page-title-section h2{margin:0;font-size:var(--font-h2);font-weight:600;color:var(--text-primary)}.toast.error{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:#b54a4a33;border:1px solid var(--color-danger);border-radius:var(--radius-medium);color:var(--text-primary);font-size:var(--font-body)}.toast.warning{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);background:color-mix(in srgb,var(--color-warning) 20%,transparent);border:1px solid var(--color-warning);border-radius:var(--radius-medium);color:var(--text-primary);font-size:var(--font-body)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;min-height:var(--btn-primary-height);min-width:var(--btn-primary-min-width);padding:0 var(--space-5);font-size:var(--font-body);font-weight:600;color:var(--text-primary);background:var(--color-primary);border:none;border-radius:var(--radius-medium);cursor:pointer;text-decoration:none}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:var(--btn-secondary-height);min-width:var(--touch-min);padding:0 var(--space-4);font-size:var(--font-body);font-weight:500;color:var(--text-primary);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-medium);cursor:pointer}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-muted)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-sm{min-height:var(--touch-min);min-width:auto;padding:0 var(--space-3);font-size:var(--font-small)}
