*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
    --bg-primary:#0a0a1a;
    --bg-secondary:#1a1a2e;
    --bg-card:rgba(255,255,255,0.04);
    --bg-card-hover:rgba(255,255,255,0.08);
    --text-primary:#e8e8f0;
    --text-secondary:#8888a8;
    --text-muted:#555570;
    --accent-coral:#ff6b6b;
    --accent-cyan:#4ecdc4;
    --accent-gold:#ffd93d;
    --accent-purple:#a855f7;
    --accent-pink:#ec4899;
    --border:rgba(255,255,255,0.08);
    --shadow:0 8px 32px rgba(0,0,0,0.4);
    --radius:16px;
    --radius-sm:10px;
    --transition:0.3s cubic-bezier(0.4,0,0.2,1);
    color-scheme:dark;
}
html{font-size:16px;-webkit-font-smoothing:antialiased}
body{
    font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 50%,#16213e 100%);
    color:var(--text-primary);
    min-height:100vh;
    overflow-x:hidden;
}
.hidden{display:none!important}
.text-muted{color:var(--text-secondary)}

.app{
    max-width:520px;
    margin:0 auto;
    min-height:100vh;
    display:flex;
    flex-direction:column;
}

.header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:16px 20px;
    position:sticky;
    top:0;
    z-index:100;
    background:rgba(10,10,26,0.8);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    border-bottom:1px solid var(--border);
}
.header-left{display:flex;align-items:center;gap:10px}
.logo{
    font-size:1.1rem;
    font-weight:800;
    letter-spacing:3px;
    background:linear-gradient(135deg,var(--accent-coral),var(--accent-gold));
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
}
.status-dot{
    width:8px;height:8px;border-radius:50%;
    background:var(--accent-cyan);
    box-shadow:0 0 8px var(--accent-cyan);
    animation:pulse-dot 2s ease-in-out infinite;
}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:0.4}}

.btn-icon{
    background:none;border:none;color:var(--text-secondary);
    cursor:pointer;padding:8px;border-radius:var(--radius-sm);
    transition:var(--transition);
    display:flex;align-items:center;justify-content:center;
}
.btn-icon:hover{color:var(--text-primary);background:var(--bg-card-hover)}

.main{flex:1;padding:0 16px 24px}

.screen{animation:fadeIn 0.4s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

.hatch-container{
    display:flex;flex-direction:column;align-items:center;
    justify-content:center;min-height:80vh;gap:20px;text-align:center;
    padding:40px 20px;
}
.hatch-container h2{font-size:1.5rem;font-weight:700}
.hatch-form{display:flex;gap:12px;width:100%;max-width:320px;margin-top:12px}
.hatch-form .input{flex:1}

.input{
    background:var(--bg-card);border:1px solid var(--border);
    border-radius:var(--radius-sm);padding:12px 16px;
    color:var(--text-primary);font-size:0.95rem;width:100%;
    transition:var(--transition);outline:none;
}
.input:focus{border-color:var(--accent-cyan);box-shadow:0 0 0 3px rgba(78,205,196,0.15)}
.input::placeholder{color:var(--text-muted)}

.btn{
    border:none;border-radius:var(--radius-sm);padding:12px 24px;
    font-size:0.95rem;font-weight:600;cursor:pointer;
    transition:var(--transition);display:inline-flex;
    align-items:center;justify-content:center;gap:8px;
    position:relative;overflow:hidden;
}
.btn-primary{
    background:linear-gradient(135deg,var(--accent-coral),#ff8e8e);
    color:#fff;
}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 15px rgba(255,107,107,0.4)}
.btn-primary:active{transform:translateY(0)}
.btn-secondary{
    background:var(--bg-card);color:var(--text-primary);
    border:1px solid var(--border);
}
.btn-secondary:hover{background:var(--bg-card-hover)}
.btn-sm{padding:8px 16px;font-size:0.85rem}
.btn-glow{
    animation:glow-pulse 2s ease-in-out infinite;
}
@keyframes glow-pulse{
    0%,100%{box-shadow:0 0 20px rgba(255,107,107,0.3)}
    50%{box-shadow:0 0 30px rgba(255,107,107,0.6)}
}
.btn:disabled{opacity:0.5;cursor:not-allowed;transform:none!important}

.pet-section{padding:20px 0}
.pet-info{
    display:flex;flex-wrap:wrap;align-items:center;
    gap:12px;margin-bottom:16px;padding:0 4px;
}
.pet-name-row{display:flex;align-items:center;gap:10px}
.pet-name-row h2{font-size:1.4rem;font-weight:700}
.pet-stage{
    background:var(--bg-card);border:1px solid var(--border);
    border-radius:20px;padding:3px 12px;font-size:0.75rem;
    font-weight:600;text-transform:uppercase;letter-spacing:1px;
    color:var(--accent-cyan);
}
.pet-mood{
    display:flex;align-items:center;gap:6px;
    font-size:0.9rem;color:var(--text-secondary);
}
.mood-emoji{font-size:1.1rem}
.pet-age{font-size:0.8rem;color:var(--text-muted);margin-left:auto}

.pet-stage-container{
    display:flex;justify-content:center;
    padding:20px 0 30px;position:relative;
}

.stats-section{margin-bottom:20px}
.stats-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
}
.stat-card{
    background:var(--bg-card);border:1px solid var(--border);
    border-radius:var(--radius-sm);padding:14px;
    transition:var(--transition);
}
.stat-card:hover{background:var(--bg-card-hover)}
.stat-card--wide{grid-column:1/-1}
.stat-header{
    display:flex;align-items:center;gap:8px;margin-bottom:10px;
}
.stat-icon{font-size:1rem}
.stat-label{font-size:0.8rem;font-weight:500;color:var(--text-secondary);flex:1}
.stat-value{font-size:0.8rem;font-weight:700;font-variant-numeric:tabular-nums}
.stat-bar{
    height:6px;background:rgba(255,255,255,0.06);
    border-radius:3px;overflow:hidden;
}
.stat-bar-fill{
    height:100%;border-radius:3px;
    transition:width 0.6s cubic-bezier(0.4,0,0.2,1);
}
.stat-bar--hunger{background:linear-gradient(90deg,#ff6b6b,#ffa07a)}
.stat-bar--happiness{background:linear-gradient(90deg,#ec4899,#f472b6)}
.stat-bar--energy{background:linear-gradient(90deg,#ffd93d,#fbbf24)}
.stat-bar--hygiene{background:linear-gradient(90deg,#4ecdc4,#22d3ee)}
.stat-bar--health{background:linear-gradient(90deg,#a855f7,#c084fc)}

.stat-card[data-stat="hunger"] .stat-value{color:var(--accent-coral)}
.stat-card[data-stat="happiness"] .stat-value{color:var(--accent-pink)}
.stat-card[data-stat="energy"] .stat-value{color:var(--accent-gold)}
.stat-card[data-stat="hygiene"] .stat-value{color:var(--accent-cyan)}
.stat-card[data-stat="health"] .stat-value{color:var(--accent-purple)}

.stat-bar-fill.low{animation:bar-pulse 1s ease-in-out infinite}
@keyframes bar-pulse{0%,100%{opacity:1}50%{opacity:0.5}}

.actions-section{margin-bottom:24px}
.actions-primary,.actions-secondary{
    display:flex;flex-wrap:wrap;gap:8px;justify-content:center;
}
.actions-primary{margin-bottom:10px}
.btn-action{
    background:var(--bg-card);border:1px solid var(--border);
    border-radius:var(--radius-sm);padding:10px 14px;
    cursor:pointer;transition:var(--transition);
    display:flex;flex-direction:column;align-items:center;
    gap:4px;min-width:64px;color:var(--text-primary);
}
.btn-action:hover{
    background:var(--bg-card-hover);
    transform:translateY(-2px);
    box-shadow:0 4px 12px rgba(0,0,0,0.3);
}
.btn-action:active{transform:translateY(0)}
.btn-action:disabled{opacity:0.4;cursor:not-allowed;transform:none!important}
.btn-emoji{font-size:1.4rem}
.btn-label{font-size:0.7rem;font-weight:500;color:var(--text-secondary)}

.log-section{
    background:var(--bg-card);border:1px solid var(--border);
    border-radius:var(--radius);padding:16px;
}
.section-title{
    font-size:0.85rem;font-weight:600;color:var(--text-secondary);
    text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;
}
.log-list{max-height:200px;overflow-y:auto}
.log-list::-webkit-scrollbar{width:4px}
.log-list::-webkit-scrollbar-track{background:transparent}
.log-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
.log-entry{
    display:flex;align-items:center;gap:10px;
    padding:8px 0;border-bottom:1px solid var(--border);
    font-size:0.85rem;
}
.log-entry:last-child{border-bottom:none}
.log-time{color:var(--text-muted);font-size:0.75rem;font-variant-numeric:tabular-nums;min-width:44px}
.log-text{color:var(--text-secondary)}
.log-empty{color:var(--text-muted);font-size:0.85rem;text-align:center;padding:16px 0}

.death-container{
    display:flex;flex-direction:column;align-items:center;
    justify-content:center;min-height:80vh;gap:16px;
    text-align:center;padding:40px 20px;
}
.death-icon{font-size:4rem;animation:float-slow 3s ease-in-out infinite}
.death-container h2{font-size:1.8rem;font-weight:700;color:var(--accent-coral)}
.memorial-divider{
    width:60px;height:2px;
    background:linear-gradient(90deg,transparent,var(--border),transparent);
    margin:8px 0;
}

.settings-overlay{
    position:fixed;inset:0;background:rgba(0,0,0,0.5);
    z-index:200;opacity:0;pointer-events:none;
    transition:opacity 0.3s ease;
}
.settings-overlay.active{opacity:1;pointer-events:all}
.settings-panel{
    position:fixed;top:0;right:-400px;width:380px;max-width:100%;
    height:100vh;background:var(--bg-secondary);
    border-left:1px solid var(--border);
    z-index:201;overflow-y:auto;
    transition:right 0.3s cubic-bezier(0.4,0,0.2,1);
}
.settings-panel.active{right:0}
.settings-header{
    display:flex;justify-content:space-between;align-items:center;
    padding:16px 20px;border-bottom:1px solid var(--border);
    position:sticky;top:0;background:var(--bg-secondary);z-index:1;
}
.settings-header h2{font-size:1.1rem;font-weight:700}
.settings-body{padding:20px}
.settings-group{
    margin-bottom:28px;padding-bottom:24px;
    border-bottom:1px solid var(--border);
}
.settings-group:last-of-type{border-bottom:none}
.settings-group-title{
    font-size:0.85rem;font-weight:600;color:var(--accent-cyan);
    text-transform:uppercase;letter-spacing:1px;margin-bottom:16px;
}
.toggle-row{
    display:flex;justify-content:space-between;align-items:center;
    padding:8px 0;cursor:pointer;margin-bottom:12px;
}
.toggle-row input{display:none}
.toggle-switch{
    width:44px;height:24px;background:var(--bg-card);
    border:1px solid var(--border);border-radius:12px;
    position:relative;transition:var(--transition);
}
.toggle-switch::after{
    content:'';position:absolute;top:3px;left:3px;
    width:16px;height:16px;border-radius:50%;
    background:var(--text-muted);transition:var(--transition);
}
.toggle-row input:checked+.toggle-switch{background:var(--accent-cyan);border-color:var(--accent-cyan)}
.toggle-row input:checked+.toggle-switch::after{left:23px;background:#fff}

.field{margin-bottom:12px}
.field-label{display:block;font-size:0.8rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px}
.field-row{display:flex;gap:12px}
.field-row .field{flex:1}

.settings-status{
    margin-top:12px;padding:10px;border-radius:var(--radius-sm);
    font-size:0.85rem;text-align:center;
}
.settings-status.success{background:rgba(78,205,196,0.1);color:var(--accent-cyan)}
.settings-status.error{background:rgba(255,107,107,0.1);color:var(--accent-coral)}

.toast-container{
    position:fixed;top:20px;right:20px;z-index:300;
    display:flex;flex-direction:column;gap:8px;
}
.toast{
    background:var(--bg-secondary);border:1px solid var(--border);
    border-radius:var(--radius-sm);padding:12px 20px;
    font-size:0.85rem;color:var(--text-primary);
    box-shadow:var(--shadow);
    animation:toast-in 0.3s ease,toast-out 0.3s ease 2.7s forwards;
    max-width:300px;
}
@keyframes toast-in{from{opacity:0;transform:translateX(100px)}to{opacity:1;transform:translateX(0)}}
@keyframes toast-out{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100px)}}

.pet-action-text{
    position:absolute;top:10px;left:50%;transform:translateX(-50%);
    font-size:1rem;font-weight:700;color:var(--accent-gold);
    animation:action-float 1.5s ease forwards;
    pointer-events:none;white-space:nowrap;
}
@keyframes action-float{
    0%{opacity:1;transform:translateX(-50%) translateY(0)}
    100%{opacity:0;transform:translateX(-50%) translateY(-40px)}
}

@keyframes float-slow{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-10px)}
}

.screen--login{display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-container{display:flex;flex-direction:column;align-items:center;gap:32px;padding:40px 20px;width:100%;max-width:360px}
.login-logo{margin-bottom:16px}
.logo-text{font-size:2rem;font-weight:800;letter-spacing:4px;background:linear-gradient(135deg,var(--accent-coral),var(--accent-gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.login-form{width:100%;display:flex;flex-direction:column;gap:16px}
.login-error{color:var(--accent-coral);font-size:0.85rem;text-align:center;padding:8px}
.btn-block{width:100%}
.header-right{display:flex;align-items:center;gap:4px}
.header-user{font-size:0.8rem;color:var(--text-secondary);margin-right:4px}
.app-footer{text-align:center;padding:16px;font-size:0.75rem;color:var(--text-muted);border-top:1px solid var(--border)}

@media(max-width:520px){
    .app{max-width:100%}
    .main{padding:0 12px 20px}
    .stats-grid{gap:8px}
    .stat-card{padding:10px}
    .btn-action{min-width:56px;padding:8px 10px}
    .settings-panel{width:100%}
    .hatch-form{flex-direction:column}
    .actions-primary{gap:6px}
}
