:root{--color-primary:#e17055;--color-primary-dark:#c0392b;--color-primary-light:#fab1a0;--color-primary-subtle:#e1705514;--color-bg:#f7f8fa;--color-surface:#fff;--color-text:#1a1a2e;--color-text-secondary:#6b7280;--color-border:#e5e7eb;--color-border-light:#f0f1f3;--color-success:#10b981;--color-danger:#ef4444;--color-danger-subtle:#ef444414;--color-warning:#f59e0b;--radius:12px;--radius-sm:8px;--shadow:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000012;--shadow-lg:0 8px 30px #0000001a;--max-width:1100px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary-dark)}.layout{flex-direction:column;min-height:100vh;display:flex}.header{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;padding:0 24px;position:sticky;top:0}.header-inner{max-width:var(--max-width);justify-content:space-between;align-items:center;height:60px;margin:0 auto;display:flex}.header-logo{color:var(--color-text);align-items:center;gap:8px;font-size:1.3rem;font-weight:700;display:flex}.header-logo:hover{color:var(--color-primary)}.header-nav{gap:4px;display:flex}.header-nav a,.header-nav button{color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:8px 14px;font-size:.9rem;font-weight:500;transition:color .2s,background .2s}.header-nav a:hover,.header-nav button:hover{color:var(--color-primary);background:var(--color-primary-subtle)}.main{max-width:var(--max-width);flex:1;width:100%;margin:0 auto;padding:32px 24px}.card{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);transition:box-shadow .2s,transform .2s;overflow:hidden}.card:hover{box-shadow:var(--shadow-md)}.card-clickable{cursor:pointer}.card-clickable:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:.9rem;font-weight:600;line-height:1.4;text-decoration:none;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);color:#fff}.btn-secondary{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-border-light);border-color:var(--color-text-secondary)}.btn-danger{background:var(--color-danger-subtle);color:var(--color-danger);border:1px solid #0000}.btn-danger:hover:not(:disabled){background:var(--color-danger);color:#fff}.btn-outline{color:var(--color-primary);border:1px solid var(--color-primary);background:0 0}.btn-outline:hover:not(:disabled){background:var(--color-primary-subtle)}.btn-sm{padding:6px 14px;font-size:.82rem}.btn-lg{padding:14px 28px;font-size:1rem}.btn-block{width:100%}.form-group{margin-bottom:20px}.form-label{color:var(--color-text);margin-bottom:6px;font-size:.88rem;font-weight:600;display:block}.form-input,.form-textarea,.form-select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);padding:10px 14px;font-family:inherit;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.form-input.error,.form-textarea.error{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-subtle)}.form-textarea{resize:vertical;min-height:100px}.form-error{color:var(--color-danger);margin-top:4px;font-size:.8rem}.form-hint{color:var(--color-text-secondary);margin-top:4px;font-size:.8rem}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.image-upload{border:2px dashed var(--color-border);border-radius:var(--radius);text-align:center;cursor:pointer;padding:32px;transition:border-color .2s,background .2s}.image-upload:hover{border-color:var(--color-primary-light);background:var(--color-primary-subtle)}.image-upload.has-image{border-style:solid;border-color:var(--color-border);padding:0;overflow:hidden}.image-upload input{display:none}.image-upload-placeholder{color:var(--color-text-secondary)}.image-upload-placeholder p{margin-top:8px;font-size:.88rem}.image-upload-placeholder .upload-icon{opacity:.4;font-size:2.5rem}.image-preview{object-fit:cover;width:100%;max-height:300px;display:block}.animal-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;display:grid}.animal-card-image{object-fit:cover;background:var(--color-bg);width:100%;height:200px;display:block}.animal-card-no-image{background:var(--color-bg);color:#ccc;justify-content:center;align-items:center;width:100%;height:200px;font-size:3rem;display:flex}.animal-card-body{padding:18px}.animal-card-name{margin-bottom:4px;font-size:1.2rem;font-weight:700}.animal-card-breed{color:var(--color-text-secondary);margin-bottom:8px;font-size:.88rem}.animal-card-org{color:var(--color-primary);font-size:.82rem;font-weight:500}.detail-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.detail-title{font-size:1.8rem;font-weight:700}.detail-actions{flex-wrap:wrap;gap:10px;display:flex}.detail-grid{grid-template-columns:1fr 1fr;gap:32px;margin-top:24px;display:grid}.detail-image{border-radius:var(--radius);width:100%;box-shadow:var(--shadow)}.detail-no-image{background:var(--color-bg);border-radius:var(--radius);color:#bbb;justify-content:center;align-items:center;width:100%;height:300px;font-size:1.1rem;display:flex}.detail-info{flex-direction:column;gap:14px;display:flex}.detail-info-item{flex-direction:column;gap:2px;display:flex}.detail-info-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:.78rem;font-weight:600}.detail-info-value{color:var(--color-text);font-size:1.02rem}.detail-description{background:var(--color-bg);border-radius:var(--radius);white-space:pre-wrap;border:1px solid var(--color-border-light);margin-top:24px;padding:20px;line-height:1.8}.detail-contact{background:var(--color-bg);border-radius:var(--radius);border-left:3px solid var(--color-primary);margin-top:24px;padding:20px}.detail-contact h3{color:var(--color-text);margin-bottom:12px;font-size:1rem}.detail-contact p{margin-bottom:4px}.search-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:28px;display:flex}.search-bar .form-input{flex:1;min-width:200px}.loading{color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:36px;height:36px;margin-bottom:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.alert{border-radius:var(--radius-sm);margin-bottom:20px;padding:14px 18px;font-size:.88rem}.alert-error{background:var(--color-danger-subtle);color:var(--color-danger);border:1px solid #ef444426}.alert-success{color:#059669;background:#10b98114;border:1px solid #10b98126}.empty-state{text-align:center;color:var(--color-text-secondary);padding:60px 20px}.empty-state h3{color:var(--color-text);margin-bottom:8px;font-size:1.25rem}.empty-state p{margin-bottom:20px}.contacts-list{flex-direction:column;gap:12px;display:flex}.contact-card{justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.contact-card-name{margin-bottom:2px;font-size:1rem;font-weight:600}.contact-card-phone{color:var(--color-text-secondary);font-size:.88rem}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 10px center;background-repeat:no-repeat;background-size:20px;padding-right:36px}.form-select.error{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-subtle)}.confirm-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.confirm-dialog{border-radius:var(--radius);width:100%;max-width:400px;box-shadow:var(--shadow-lg);background:#fff;padding:28px}.confirm-dialog h3{margin-bottom:12px}.confirm-dialog p{color:var(--color-text-secondary);margin-bottom:24px;line-height:1.6}.confirm-dialog-actions{justify-content:flex-end;gap:10px;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.page-title{font-size:1.6rem;font-weight:700}.login-page{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;max-width:380px;padding:36px 32px}.login-header{text-align:center;margin-bottom:28px}.login-title{color:var(--color-text);margin-bottom:4px;font-size:1.6rem;font-weight:700}.login-subtitle{color:var(--color-text-secondary);font-size:.9rem}@media (width<=768px){.form-row,.detail-grid,.animal-grid{grid-template-columns:1fr}.header-inner{flex-direction:column;gap:8px;height:auto;padding:12px 0}.detail-title{font-size:1.4rem}.page-title{font-size:1.3rem}.main{padding:20px 16px}}
