:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#14222d;background:#f5f6f7;font-synthesis:none;text-rendering:optimizeLegibility;--navy: #071521;--navy-soft: #102838;--gold: #c58a00;--gold-dark: #a16f00;--paper: #ffffff;--muted: #63717c;--border: #dce2e6;--danger: #a1262f}*{box-sizing:border-box}html{min-width:320px;background:#071521}body{margin:0;min-width:320px;min-height:100vh;background:#f5f6f7}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.landing-page{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;color:#fff;background:#000}.landing-page:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#00000008 40%,#00000094)}.landing-content{position:relative;z-index:1;width:min(100%,52.28svh);min-height:100svh;overflow:hidden;padding:max(2rem,env(safe-area-inset-top)) clamp(1.5rem,5vw,5rem) max(3rem,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;background:#000 url(/dog-diary-hero.jpeg) center / cover no-repeat;box-shadow:0 0 70px #ffffff0f}.landing-content:before{content:"";position:absolute;z-index:1;left:0;right:0;bottom:6.5%;height:26%;background:linear-gradient(180deg,transparent 0,rgba(0,0,0,.98) 18%,#000 82%,transparent 100%)}.landing-button{position:relative;z-index:2;margin-top:auto;margin-bottom:10.5vh;width:min(100%,31rem);min-height:4.8rem;display:grid;place-items:center;border-radius:.55rem;background:linear-gradient(135deg,var(--gold),#d49a08);color:#fff;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,3vw,2rem);text-decoration:none;box-shadow:0 10px 30px #00000059;transition:transform .15s ease,filter .15s ease}.landing-button:hover{filter:brightness(1.08);transform:translateY(-2px)}.landing-button:focus-visible,.button:focus-visible,.header-action:focus-visible,.dog-card:focus-visible,.timeline-card:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.segmented-control button:focus-visible,.entry-type-options button:focus-visible,.timeline-filters button:focus-visible,.text-button:focus-visible{outline:3px solid #e3ad2c;outline-offset:3px}.app-shell{min-height:100vh;background:linear-gradient(180deg,#edf2f4 0,#f8f8f7 16rem)}.app-header{min-height:4.5rem;padding:max(.75rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) .75rem max(1rem,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:1rem;color:#fff;background:linear-gradient(135deg,var(--navy),#0b2130);box-shadow:0 2px 16px #04131d26}.brand{display:inline-flex;align-items:center;gap:.55rem;color:#fff;text-decoration:none;font-family:Georgia,Times New Roman,serif;font-size:1.35rem}.brand-mark{display:inline-block;font-size:1.05rem;filter:sepia(1) saturate(5) hue-rotate(5deg)}.header-action{color:#f3c557;font-weight:700;text-decoration:none;padding:.7rem .2rem}.app-main{width:min(100%,58rem);margin:0 auto;padding:2.2rem clamp(1rem,4vw,2rem) 5rem}.page-heading{margin-bottom:1.8rem}.page-heading h1,.dog-hero h1{margin:.15rem 0 .45rem;color:var(--navy);font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,5vw,3rem);font-weight:500}.page-heading p,.dog-hero p{margin:0;color:var(--muted);line-height:1.55}.eyebrow{color:var(--gold-dark)!important;font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.button{min-height:3.25rem;padding:.8rem 1.2rem;border:1px solid transparent;border-radius:.6rem;display:inline-flex;align-items:center;justify-content:center;font-weight:750;text-decoration:none;cursor:pointer;transition:transform .12s ease,background .12s ease}.button:active{transform:translateY(1px)}.button:disabled{opacity:.6;cursor:wait}.button-primary{color:#fff;background:linear-gradient(135deg,var(--gold-dark),var(--gold));box-shadow:0 5px 16px #a16f0033}.button-secondary{color:var(--navy);background:#fff;border-color:#b8c3ca}.button-danger{color:var(--danger);background:transparent;border-color:#dcb7bb}.button-danger.solid{color:#fff;background:var(--danger);border-color:var(--danger)}.button-full{width:100%;margin-top:.5rem}.text-button{display:block;margin-top:.65rem;padding:.4rem 0;color:var(--danger);border:0;background:none;text-decoration:underline;cursor:pointer}.status{margin:0 0 1.2rem;padding:1rem;border:1px solid #c8d2d8;border-radius:.65rem;background:#fff;line-height:1.45}.status-error{border-color:#e4b9bc;color:#7e1821;background:#fff7f7}.status-success{border-color:#aacabb;color:#195b3b;background:#f4fbf7}.loading-list{display:grid;gap:.8rem}.loading-list span{height:5rem;border-radius:.8rem;background:linear-gradient(90deg,#e1e6e9,#f5f7f8,#e1e6e9);background-size:200% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position:-200% 0}}.empty-state{padding:clamp(2rem,8vw,4rem) 1.5rem;text-align:center;border:1px solid var(--border);border-radius:1rem;background:#ffffffe0;box-shadow:0 16px 40px #1028380f}.empty-state h2{margin:.7rem 0 .45rem;font-family:Georgia,serif;font-size:1.7rem;color:var(--navy)}.empty-state p{max-width:28rem;margin:0 auto 1.4rem;color:var(--muted);line-height:1.55}.empty-paw{font-size:2.3rem;filter:grayscale(1) sepia(1)}.prototype-note{margin:2.5rem 0 0;color:#7c878f;text-align:center;font-size:.82rem}.dog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1rem}.dog-card{min-height:6rem;padding:1rem;display:flex;align-items:center;gap:1rem;color:var(--navy);text-decoration:none;border:1px solid var(--border);border-radius:.9rem;background:#fff;box-shadow:0 8px 24px #091d2a0f;transition:transform .15s ease,box-shadow .15s ease}.dog-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px #091d2a1a}.dog-card-copy{display:flex;flex:1;flex-direction:column;gap:.2rem}.dog-card-copy strong{font-family:Georgia,serif;font-size:1.35rem}.dog-card-copy small{color:var(--muted);font-size:.88rem}.card-chevron{color:var(--gold-dark);font-size:2rem}.dog-avatar{width:4rem;height:4rem;flex:0 0 auto;border-radius:50%;object-fit:cover;border:2px solid #d5ad53}.dog-avatar-placeholder{display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--navy-soft),#1f536d);font-family:Georgia,serif;font-size:1.5rem}.dog-avatar-large{width:7rem;height:7rem;font-size:2.4rem}.dog-form{display:grid;gap:1.2rem}.field{display:grid;gap:.45rem;font-weight:700}.field small,legend small{color:var(--muted);font-weight:500}.field input,.field select,.field textarea{width:100%;min-height:3.25rem;padding:.75rem .85rem;border:1px solid #bac5cc;border-radius:.55rem;color:var(--navy);background:#fff}.field textarea{min-height:8.5rem;resize:vertical;line-height:1.55}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold-dark)}.photo-field{padding:1rem;display:flex;align-items:center;gap:1rem;border:1px solid var(--border);border-radius:.8rem;background:#fff}.photo-preview{width:6.2rem;height:6.2rem;flex:0 0 auto;display:grid;place-items:center;overflow:hidden;border-radius:50%;color:var(--gold-dark);background:#eef2f4;font-size:2rem}.photo-preview img{width:100%;height:100%;object-fit:cover}.file-button input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.field-hint{margin:.5rem 0 0;color:var(--muted);font-size:.78rem;line-height:1.4}.birth-fieldset{margin:0;padding:1rem;border:1px solid var(--border);border-radius:.8rem;background:#fff}.birth-fieldset legend{padding:0 .25rem;font-weight:750}.segmented-control{margin:.35rem 0 1rem;padding:.2rem;display:grid;grid-template-columns:1fr 1fr;gap:.2rem;border-radius:.55rem;background:#e9edef}.segmented-control button{min-height:2.7rem;border:0;border-radius:.4rem;color:var(--muted);background:transparent;cursor:pointer}.segmented-control button.active{color:var(--navy);background:#fff;box-shadow:0 1px 5px #07152121;font-weight:750}.field.compact{font-weight:650}.dog-hero{padding:1.2rem;display:flex;align-items:center;gap:1.2rem;border-radius:1rem;color:#fff;background:linear-gradient(135deg,var(--navy),#15394f);box-shadow:0 14px 35px #07152129}.dog-hero h1{color:#fff}.dog-hero p:not(.eyebrow){color:#d6e0e5}.profile-actions{margin:1rem 0 2rem;display:flex;gap:.75rem;flex-wrap:wrap}.diary-placeholder{padding:2.3rem 1.3rem;text-align:center;border:1px dashed #a8b5bd;border-radius:.9rem;background:#ffffffa6}.diary-placeholder>span{color:var(--gold);font-size:2.4rem}.diary-placeholder h2{margin:.35rem 0 .55rem;color:var(--navy);font-family:Georgia,serif}.diary-placeholder p{max-width:35rem;margin:0 auto;color:var(--muted);line-height:1.55}.diary-section{margin-top:2rem}.diary-section-heading{margin-bottom:1rem;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.diary-section-heading h2{margin:.15rem 0 0;color:var(--navy);font-family:Georgia,serif;font-size:2rem;font-weight:500}.diary-actions{display:flex;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}.diary-actions .button{min-height:2.9rem;padding:.65rem .9rem}.timeline-filters{margin:0 0 1rem;padding:.25rem;display:flex;gap:.25rem;overflow-x:auto;border:1px solid var(--border);border-radius:.7rem;background:#e9edef;scrollbar-width:thin}.timeline-filters button{min-height:2.7rem;padding:.55rem .8rem;flex:0 0 auto;border:0;border-radius:.5rem;color:#53636e;background:transparent;font-weight:700;cursor:pointer}.timeline-filters button.active{color:var(--navy);background:#fff;box-shadow:0 1px 6px #0715211f}.timeline-list{display:grid;gap:.75rem}.timeline-card{min-height:6.1rem;padding:1rem;display:flex;align-items:center;gap:.9rem;color:var(--navy);text-decoration:none;border:1px solid var(--border);border-radius:.8rem;background:#fff;box-shadow:0 7px 20px #091d2a0d;transition:transform .15s ease,box-shadow .15s ease}.timeline-card:hover{transform:translateY(-1px);box-shadow:0 10px 25px #091d2a17}.timeline-card-main{min-width:0;flex:1}.timeline-card-heading{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.timeline-card-heading time{flex:0 0 auto;color:var(--muted);font-size:.8rem}.timeline-category{margin-top:.65rem;display:block;font-family:Georgia,serif;font-size:1.16rem}.timeline-card-main>p{margin:.3rem 0 0;overflow:hidden;color:var(--muted);line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.timeline-card-main>small{color:var(--muted)}.timeline-thumbnail{width:4.6rem;height:4.6rem;flex:0 0 auto;border-radius:.6rem;object-fit:cover}.timeline-card-compact{min-height:4.7rem}.timeline-card-compact .timeline-card-heading{align-items:center}.entry-type-badge{display:inline-flex;align-items:center;min-height:1.7rem;padding:.2rem .55rem;border-radius:999px;color:#233745;background:#e5edf1;font-size:.75rem;font-weight:800;letter-spacing:.02em}.entry-type-incident{color:#76242a;background:#f8e8e9}.entry-type-nothing-to-report{color:#2a5d46;background:#e7f2ec}.filtered-empty-state{padding:2rem 1rem;text-align:center;border:1px dashed #abb7be;border-radius:.8rem;background:#fff9}.filtered-empty-state h3{margin:0;color:var(--navy);font-family:Georgia,serif;font-size:1.4rem}.filtered-empty-state p{margin:.45rem 0 .6rem;color:var(--muted)}.filtered-empty-state .text-button{margin:0 auto}.diary-empty-state{padding-block:2.5rem}.empty-state-actions{display:flex;justify-content:center;gap:.7rem;flex-wrap:wrap}.entry-form{display:grid;gap:1.2rem}.entry-type-fieldset{margin:0;padding:1rem;border:1px solid var(--border);border-radius:.8rem;background:#fff}.entry-type-fieldset legend{padding:0 .25rem;font-weight:750}.entry-type-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.entry-type-options button{min-height:3.1rem;padding:.6rem .45rem;border:1px solid #c6d0d6;border-radius:.55rem;color:#52636e;background:#fff;cursor:pointer}.entry-type-options button.active{color:#fff;border-color:var(--navy);background:var(--navy);font-weight:750}.entry-photo-field{padding:1rem;display:flex;align-items:center;gap:1rem;border:1px solid var(--border);border-radius:.8rem;background:#fff}.entry-photo-preview{width:7rem;height:7rem;flex:0 0 auto;border-radius:.65rem;object-fit:cover}.nothing-fast-note{margin:0;padding:.9rem 0;color:var(--muted);line-height:1.5}.entry-detail{overflow:hidden;border:1px solid var(--border);border-radius:1rem;background:#fff;box-shadow:0 12px 34px #091d2a12}.entry-detail header{padding:1.3rem}.entry-detail h1{margin:.7rem 0 .35rem;color:var(--navy);font-family:Georgia,serif;font-size:clamp(1.9rem,5vw,2.8rem);font-weight:500}.entry-detail time{color:var(--muted)}.entry-detail-note{margin:0;padding:0 1.3rem 1.4rem;color:#2d3e49;line-height:1.65;white-space:pre-wrap}.entry-detail-photo{width:100%;max-height:42rem;display:block;object-fit:contain;background:#09131a}.dialog-backdrop{position:fixed;z-index:10;inset:0;padding:1.2rem;display:grid;place-items:center;background:#000c14b8}.confirm-dialog{width:min(100%,30rem);padding:1.5rem;border-radius:.9rem;background:#fff;box-shadow:0 20px 60px #0000004d}.confirm-dialog h2{margin:0 0 .7rem;color:var(--navy);font-family:Georgia,serif}.confirm-dialog p{color:var(--muted);line-height:1.55}.dialog-actions{margin-top:1.3rem;display:flex;justify-content:flex-end;gap:.7rem;flex-wrap:wrap}.report-controls{margin-bottom:1.5rem;padding:clamp(1rem,3vw,1.4rem);border:1px solid var(--border);border-radius:.9rem;background:#fff;box-shadow:0 9px 28px #091d2a0d}.report-range-fieldset{margin:0;padding:0;border:0}.report-range-fieldset legend{margin-bottom:.75rem;color:var(--navy);font-family:Georgia,serif;font-size:1.35rem;font-weight:700}.report-range-fieldset label{min-height:2.75rem;margin-right:1.2rem;display:inline-flex;align-items:center;gap:.55rem;cursor:pointer}.report-range-fieldset input,.report-checkboxes input{width:1.25rem;height:1.25rem;flex:0 0 auto;accent-color:var(--gold-dark)}.report-date-fields{margin-top:1rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.report-selection{margin-top:1.4rem;padding-top:1.25rem;border-top:1px solid var(--border)}.report-selection-heading{margin-bottom:.8rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.report-selection-heading h2{margin:0;color:var(--navy);font-family:Georgia,serif;font-size:1.35rem}.report-selection-heading p{margin:.25rem 0 0;color:var(--muted)}.report-selection-heading>div:last-child{display:flex;gap:.85rem}.report-selection-heading .text-button{margin:0;color:var(--navy-soft)}.report-checkboxes{display:grid;gap:.5rem}.report-checkboxes label{min-height:3.8rem;padding:.7rem .8rem;display:flex;align-items:center;gap:.75rem;border:1px solid var(--border);border-radius:.65rem;background:#f9faf9;cursor:pointer}.report-checkboxes label:has(input:checked){border-color:#cfac5c;background:#fffbf0}.report-checkboxes span{min-width:0;display:grid;gap:.15rem}.report-checkboxes strong{color:var(--navy)}.report-checkboxes small{color:var(--muted)}.report-preview{margin-top:2rem;overflow:hidden;border:1px solid var(--border);border-radius:1rem;background:#fff;box-shadow:0 14px 38px #091d2a14}.report-preview-heading{padding:clamp(1.2rem,4vw,2rem);color:#fff;background:linear-gradient(135deg,var(--navy),#15394f)}.report-preview-heading h2{margin:.2rem 0 .7rem;font-family:Georgia,serif;font-size:clamp(1.8rem,5vw,2.7rem);font-weight:500}.report-preview-heading h3{margin:0 0 .3rem;color:#f3c557;font-size:1.25rem}.report-preview-heading p:not(.eyebrow){margin:0;color:#d6e0e5;line-height:1.5}.report-summary{padding:clamp(1.2rem,4vw,1.8rem);border-bottom:1px solid var(--border)}.report-summary h3,.report-entry-list>h3,.report-disclaimer h3{margin:0 0 1rem;color:var(--navy);font-family:Georgia,serif;font-size:1.4rem}.report-summary dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.report-summary dl div{padding:.75rem;border-radius:.55rem;background:#f2f5f6}.report-summary dt{color:var(--muted);font-size:.78rem;font-weight:700}.report-summary dd{margin:.25rem 0 0;color:var(--navy);font-weight:800}.report-category-counts{margin-top:1.1rem}.report-category-counts h4{margin:0 0 .55rem;color:var(--navy)}.report-category-counts ul{margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .9rem;list-style:none}.report-category-counts li{padding-block:.35rem;display:flex;justify-content:space-between;gap:.8rem;border-bottom:1px solid #e7ebed}.report-entry-list{padding:clamp(1.2rem,4vw,1.8rem)}.report-entry{padding:1rem 0 1.25rem;border-top:1px solid var(--border)}.report-entry:first-of-type{border-top:0}.report-entry header{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.report-entry time{color:var(--muted);font-size:.85rem}.report-entry h4{margin:.7rem 0 .3rem;color:var(--navy);font-family:Georgia,serif;font-size:1.18rem}.report-entry>p:not(.photo-unavailable){margin:.45rem 0 0;color:#2d3e49;line-height:1.65;white-space:pre-wrap}.report-entry img{width:100%;max-height:38rem;margin-top:.9rem;display:block;border-radius:.65rem;object-fit:contain;background:#09131a}.photo-unavailable{margin:.8rem 0 0;padding:.8rem;color:var(--muted);border:1px dashed #aeb9c0;border-radius:.55rem;background:#f7f8f8}.report-disclaimer{margin:0 clamp(1.2rem,4vw,1.8rem) clamp(1.2rem,4vw,1.8rem);padding-top:1.2rem;border-top:2px solid var(--gold)}.report-disclaimer p{margin:0;color:#43535e;line-height:1.6}.report-export{margin:1rem 0 2rem}.report-empty-state{margin-top:1.5rem}@media(max-width:640px){.landing-content{width:100%}.landing-button{min-height:4.4rem}.app-main{padding-top:1.6rem}.photo-field,.dog-hero{align-items:flex-start}.dog-avatar-large{width:5.4rem;height:5.4rem}.diary-section-heading{align-items:stretch;flex-direction:column}.diary-actions{justify-content:stretch}.diary-actions .button{flex:1 1 10rem}.timeline-card-heading{align-items:flex-start;flex-direction:column;gap:.35rem}.timeline-card-heading time{font-size:.78rem}.entry-type-options,.report-date-fields,.report-summary dl,.report-category-counts ul{grid-template-columns:1fr}.report-selection-heading{flex-direction:column}.report-entry header{align-items:flex-start;flex-direction:column;gap:.45rem}}@media(max-width:390px){.brand{font-size:1.2rem}.photo-field{flex-direction:column;align-items:center;text-align:center}.dog-hero{flex-direction:column}.entry-photo-field{align-items:flex-start;flex-direction:column}.timeline-thumbnail{width:3.8rem;height:3.8rem}}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
