.navbar{position:sticky;top:0;width:100%;z-index:100;height:var(--nav-height);background:#f5f0e8eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center}.navbar__inner{display:flex;align-items:center;justify-content:space-between;width:100%}.navbar__logo{font-family:var(--font-display);font-size:1.75rem;font-weight:900;color:var(--ink);letter-spacing:-.03em;display:flex;align-items:center;gap:var(--space-2);transition:opacity var(--transition-fast)}.navbar__logo:hover{opacity:.75}.navbar__logo-paw{font-size:1.4rem}.navbar__right{display:flex;align-items:center;gap:var(--space-3)}.navbar__user{font-size:.875rem;font-weight:400;color:var(--ink-muted);padding:var(--space-1) var(--space-3)}.navbar__btn{padding:8px 20px;border-radius:var(--radius-full);font-size:.875rem;font-weight:500;transition:all var(--transition-base);letter-spacing:.01em}.navbar__btn--ghost{color:var(--ink-muted);border:1px solid transparent}.navbar__btn--ghost:hover{color:var(--ink);border-color:var(--border-dark);background:var(--warm-white)}.navbar__btn--primary{background:var(--ink);color:var(--cream);border:1px solid var(--ink)}.navbar__btn--primary:hover{background:var(--amber);border-color:var(--amber)}.navbar__btn--amber{background:var(--amber);color:#fff;border:1px solid var(--amber)}.navbar__btn--amber:hover{background:var(--amber-light);border-color:var(--amber-light)}.dog-card{background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);transition:transform var(--transition-base),box-shadow var(--transition-base);animation:fadeUp .4s ease both;display:flex;flex-direction:column}.dog-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.dog-card__img-wrap{aspect-ratio:4 / 3;overflow:hidden;background:var(--amber-pale);position:relative}.dog-card__img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.dog-card:hover .dog-card__img{transform:scale(1.04)}.dog-card__img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:3rem;color:var(--amber);background:var(--amber-pale)}.dog-card__body{padding:var(--space-4);flex:1;display:flex;flex-direction:column;gap:var(--space-2)}.dog-card__name{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--ink);display:flex;align-items:center;justify-content:space-between}.dog-card__age{font-family:var(--font-body);font-size:.8rem;font-weight:400;color:var(--ink-faint);background:var(--cream);padding:2px 10px;border-radius:var(--radius-full);border:1px solid var(--border)}.dog-card__description{font-size:.875rem;color:var(--ink-muted);line-height:1.5;flex:1;line-clamp:3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.dog-card__footer{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-2);border-top:1px solid var(--border);margin-top:auto}.dog-card__owner{font-size:.75rem;color:var(--ink-faint)}.dog-card__owner span{color:var(--amber);font-weight:500}.dog-card__actions{display:flex;gap:var(--space-2)}.dog-card__action-btn{width:32px;height:32px;color:var(--ink-muted);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.75rem;transition:all var(--transition-fast)}.dog-card__action-btn--edit{color:var(--amber);background:var(--amber-pale)}.dog-card__action-btn--edit:hover{background:var(--amber);color:#fff}.dog-card__action-btn--delete{color:var(--rust);background:#fdecea}.modal-overlay{position:fixed;inset:0;background:#1a1a188c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--space-5);animation:fadeIn .2s ease}.modal{background:var(--surface);border-radius:var(--radius-xl);padding:var(--space-7);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:fadeUp .25s ease;position:relative}.modal__close{position:absolute;top:var(--space-4);right:var(--space-4);width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:var(--ink-faint);font-size:1.25rem;transition:all var(--transition-fast);background:transparent}.modal__close:hover{background:var(--cream);color:var(--ink)}.modal__title{font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--ink);margin-bottom:var(--space-5)}.form{display:flex;flex-direction:column;gap:var(--space-4)}.form__group{display:flex;flex-direction:column;gap:var(--space-2)}.form__label{font-size:.8rem;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em}.form__input,.form__textarea{width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:.95rem;font-weight:300;color:var(--ink);background:var(--warm-white);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.form__input:focus,.form__textarea:focus{border-color:var(--amber);box-shadow:0 0 0 3px #c8852a1f}.form__textarea{resize:vertical;min-height:100px}.form__file-zone{border:2px dashed var(--border-dark);border-radius:var(--radius-md);padding:var(--space-6);text-align:center;cursor:pointer;transition:all var(--transition-fast);background:var(--cream)}.form__file-zone:hover{border-color:var(--amber);background:var(--amber-pale)}.form__file-zone--has-file{border-color:var(--sage);background:#f0f5f0}.form__file-zone input[type=file]{display:none}.form__file-icon{font-size:2rem;margin-bottom:var(--space-2)}.form__file-label{font-size:.875rem;color:var(--ink-muted)}.form__file-label strong{color:var(--amber);font-weight:500}.form__file-name{font-size:.8rem;color:var(--sage);margin-top:var(--space-1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:12px 24px;border-radius:var(--radius-md);font-size:.95rem;font-weight:500;transition:all var(--transition-fast);cursor:pointer;border:none;letter-spacing:.01em;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--ink);color:var(--cream)}.btn--primary:hover:not(:disabled){background:var(--amber)}.btn--secondary{background:var(--cream);color:var(--ink);border:1.5px solid var(--border-dark)}.btn--secondary:hover:not(:disabled){background:var(--warm-white);border-color:var(--ink-muted)}.btn--danger{background:var(--rust);color:#fff}.btn--danger:hover:not(:disabled){background:#9a3820}.btn--full{width:100%}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--amber);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.spinner--lg{width:40px;height:40px;border-width:3px}.spinner-wrap{display:flex;align-items:center;justify-content:center;padding:var(--space-9)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:.875rem;display:flex;align-items:center;gap:var(--space-2)}.alert--error{background:#fee9e7;color:var(--rust);border:1px solid #FAC5BE}.alert--success{background:#eaf4ec;color:var(--sage);border:1px solid #BDDEC2}.empty-state{text-align:center;padding:var(--space-9) var(--space-5);color:var(--ink-faint)}.empty-state__icon{font-size:4rem;margin-bottom:var(--space-4);opacity:.4}.empty-state__title{font-family:var(--font-display);font-size:1.5rem;color:var(--ink-muted);margin-bottom:var(--space-2)}.empty-state__text{font-size:.9rem}.confirm-dialog__text{color:var(--ink-muted);margin-bottom:var(--space-6);line-height:1.6}.confirm-dialog__actions{display:flex;gap:var(--space-3);justify-content:flex-end}.user-card{background:var(--cream);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-2);padding:var(--space-4);transition:transform var(--transition-base),box-shadow var(--transition-base);animation:fadeUp .4s ease both;display:flex;flex-direction:row;gap:var(--space-2)}.user-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.user-card__id{font-family:var(--font-display);font-size:1rem;font-weight:350;color:var(--ink);display:flex;flex:1;align-items:center;justify-content:space-between}.user-card__username{font-family:var(--font-display);font-size:1rem;font-weight:350;color:var(--ink);display:flex;flex:1.25;align-items:center;justify-content:space-between}.user_card__is-superuser{font-family:var(--font-display);font-size:1rem;font-weight:350;color:var(--ink);display:flex;flex:1.5;align-items:center;justify-content:space-between}.user-card__action-btn{width:32px;height:32px;border-radius:var(--radius-sm);flex:1;align-items:center;justify-content:center;font-size:.875rem;transition:all var(--transition-fast)}.user-card__action-btn--delete{color:var(--rust);background:#fdecea}.dog-card__action-btn--delete:hover{background:var(--rust);color:#fff}.home-page{flex:1;padding:var(--space-7) 0}.home-page__header{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-7)}.home-page__title{font-size:clamp(2rem,5vw,3.5rem);font-weight:900;color:var(--ink);line-height:1.05;letter-spacing:-.04em}.home-page__title em{font-style:italic;color:var(--amber)}.home-page__subtitle{font-size:1rem;color:var(--ink-faint);font-weight:300;margin-top:var(--space-2)}.home-page__buttons{display:flex;flex-direction:row-reverse;gap:var(--space-4)}.search-bar{display:flex;flex-direction:row;gap:var(--space-2);margin-bottom:var(--space-6);max-width:480px}.search-bar__input{flex:1;padding:12px 16px;border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:.95rem;background:var(--warm-white);color:var(--ink);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.search-bar__input:focus{border-color:var(--amber);box-shadow:0 0 0 3px #c8852a1f}.search-bar__btn{padding:12px 16px;background:var(--ink);color:var(--cream);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;transition:background var(--transition-fast)}.search-bar__btn:hover{background:var(--amber)}.search-bar__clear{padding:12px 16px;color:var(--ink-faint);border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:.875rem;transition:all var(--transition-fast);background:var(--warm-white)}.search-bar__clear:hover{color:var(--ink);border-color:var(--border-dark)}.search-results-label{font-size:.875rem;color:var(--ink-faint);margin-bottom:var(--space-4)}.search-results-label strong{color:var(--amber)}.dog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-5)}.dog-grid .dog-card:nth-child(1){animation-delay:0ms}.dog-grid .dog-card:nth-child(2){animation-delay:60ms}.dog-grid .dog-card:nth-child(3){animation-delay:.12s}.dog-grid .dog-card:nth-child(4){animation-delay:.18s}.dog-grid .dog-card:nth-child(5){animation-delay:.24s}.dog-grid .dog-card:nth-child(6){animation-delay:.3s}.dog-grid .dog-card:nth-child(7){animation-delay:.36s}.dog-grid .dog-card:nth-child(8){animation-delay:.42s}.dog-grid .dog-card:nth-child(9){animation-delay:.48s}.dog-grid .dog-card:nth-child(10){animation-delay:.54s}.dog-grid .dog-card:nth-child(11){animation-delay:.6s}.dog-grid .dog-card:nth-child(12){animation-delay:.66s}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-8)}.pagination__info{font-size:.875rem;color:var(--ink-faint)}.auth-page{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-7) var(--space-5);background:var(--cream)}.auth-card{background:var(--surface);border-radius:var(--radius-xl);padding:var(--space-8);width:100%;max-width:420px;box-shadow:var(--shadow-lg);animation:fadeUp .35s ease}.auth-card__eyebrow{font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--amber);margin-bottom:var(--space-2)}.auth-card__title{font-family:var(--font-display);font-size:2.25rem;font-weight:900;color:var(--ink);letter-spacing:-.04em;margin-bottom:var(--space-6);line-height:1.1}.auth-card__footer{margin-top:var(--space-5);text-align:center;font-size:.875rem;color:var(--ink-faint)}.auth-card__footer a{color:var(--amber);font-weight:500;transition:opacity var(--transition-fast)}.auth-card__footer a:hover{opacity:.75}.footer{border-top:1px solid var(--border);padding:var(--space-5) 0;margin-top:auto}.footer__inner{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;color:var(--ink-faint);flex-wrap:wrap;gap:var(--space-2)}:root{--cream: #F5F0E8;--warm-white: #FAFAF7;--ink: #1A1A18;--ink-muted: #4A4A44;--ink-faint: #8A8A80;--amber: #C8852A;--amber-light: #E8A84A;--amber-pale: #F5E8CC;--rust: #B84C2A;--sage: #5A7A5A;--surface: #FFFFFF;--border: #E0D8CC;--border-dark: #C8BCA8;--font-display: "Playfair Display", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(26,26,24,.08);--shadow-md: 0 4px 16px rgba(26,26,24,.1);--shadow-lg: 0 8px 32px rgba(26,26,24,.14);--shadow-card: 0 2px 8px rgba(26,26,24,.06), 0 8px 24px rgba(26,26,24,.08);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--max-width: 1280px;--nav-height: 72px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-body);font-weight:300;color:var(--ink);background-color:var(--cream);min-height:100vh;line-height:1.6}#root{min-height:100vh;display:flex;flex-direction:column}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font-family:var(--font-body);cursor:pointer;border:none;background:none}input,textarea,select{font-family:var(--font-body)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);line-height:1.2}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-5)}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}
