:root{
  --green:#153f32;--green-2:#1e5a46;--green-3:#dfece5;--cream:#f6f3ea;--gold:#c89546;
  --ink:#1f2933;--muted:#6c7782;--line:#e4e8e5;--white:#fff;--danger:#c94d4d;
  --shadow:0 18px 48px rgba(20,63,50,.11);--radius:24px
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#edf1ee}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--green);padding:22px 18px;color:white;display:flex;flex-direction:column;z-index:20}.brand-card{background:white;border-radius:20px;padding:12px;box-shadow:0 10px 28px rgba(0,0,0,.15)}.brand-card img{display:block;width:100%;height:105px;object-fit:contain}.brand-caption{padding:16px 8px 10px}.brand-caption strong{display:block;font-size:15px}.brand-caption span{font-size:12px;color:#b9cec4}.menu{display:grid;gap:7px;margin-top:10px}.menu button{display:flex;align-items:center;gap:12px;width:100%;border:0;border-radius:14px;padding:12px 13px;background:transparent;color:#d6e4dd;text-align:left;font-weight:650}.menu button:hover,.menu button.active{background:rgba(255,255,255,.14);color:white}.menu .icon{width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:rgba(255,255,255,.08)}.sidebar-foot{margin-top:auto;padding:12px;border-top:1px solid rgba(255,255,255,.14);font-size:12px;color:#c1d3ca}
.main{min-width:0}.topbar{height:78px;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.topbar h1{font-size:22px;margin:0}.topbar p{font-size:12px;color:var(--muted);margin:4px 0 0}.top-actions{display:flex;gap:9px;align-items:center}.status-pill{border:1px solid #cce0d5;background:#eff8f3;color:#226046;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:750}.btn{border:0;border-radius:13px;padding:11px 15px;font-weight:750;display:inline-flex;gap:8px;align-items:center;justify-content:center}.btn-primary{background:var(--green);color:#fff}.btn-secondary{background:#edf3ef;color:var(--green)}.btn-gold{background:var(--gold);color:#fff}.btn-danger{background:#feecec;color:var(--danger)}.btn-outline{background:#fff;color:var(--ink);border:1px solid var(--line)}
.content{padding:24px 28px 96px}.page{display:none}.page.active{display:block}.hero{position:relative;overflow:hidden;border-radius:30px;background:linear-gradient(135deg,var(--green),#214e3e 62%,#345f4e);color:white;padding:28px;box-shadow:var(--shadow);display:grid;grid-template-columns:1.2fr .8fr;gap:20px;min-height:210px}.hero:before,.hero:after{content:"";position:absolute;border-radius:999px;background:rgba(255,255,255,.07)}.hero:before{width:340px;height:340px;right:-100px;top:-180px}.hero:after{width:230px;height:230px;right:180px;bottom:-170px}.hero h2{margin:0 0 8px;font-size:30px}.hero p{margin:0;color:#d1e4db;max-width:680px;line-height:1.5}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.hero-logo{z-index:1;display:grid;place-items:center;background:rgba(255,255,255,.96);border-radius:24px;padding:16px;align-self:stretch}.hero-logo img{width:100%;max-width:350px;max-height:150px;object-fit:contain}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:21px;padding:18px;box-shadow:0 10px 30px rgba(20,63,50,.06)}.stat-head{display:flex;justify-content:space-between;gap:12px}.stat-label{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.stat-value{font-size:27px;font-weight:850;margin:8px 0 3px}.stat-delta{font-size:12px;color:var(--muted)}.stat-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--green-3);color:var(--green);font-size:20px}.stat-card.gold .stat-icon{background:#fbf0de;color:#9d6e27}.stat-card.red .stat-icon{background:#fdecec;color:#b94e4e}
.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-top:16px}.panel{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 12px 34px rgba(20,63,50,.06);overflow:hidden}.panel-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.panel-head h3{margin:0;font-size:16px}.panel-head span{font-size:12px;color:var(--muted)}.panel-body{padding:18px 20px}.cash-bars{display:grid;gap:16px}.cash-row{display:grid;grid-template-columns:120px 1fr 120px;gap:12px;align-items:center}.cash-row label{font-size:13px;font-weight:700}.bar-track{height:14px;background:#eef2ef;border-radius:999px;overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green-2),#51a47d)}.bar-fill.expense{background:linear-gradient(90deg,#d6a05c,#e8c181)}.cash-row strong{text-align:right;font-size:13px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quick-card{border:1px solid var(--line);background:#fbfcfb;border-radius:18px;padding:15px;text-align:left}.quick-card strong{display:block;margin:8px 0 4px}.quick-card span{font-size:12px;color:var(--muted)}.quick-icon{width:38px;height:38px;border-radius:12px;background:var(--green-3);color:var(--green);display:grid;place-items:center}
.timeline{display:grid}.timeline-item{display:grid;grid-template-columns:12px 1fr auto;gap:12px;padding:14px 0;border-bottom:1px dashed var(--line);align-items:start}.timeline-item:last-child{border-bottom:0}.dot{width:10px;height:10px;background:var(--green-2);border-radius:999px;margin-top:6px;box-shadow:0 0 0 5px #e8f2ed}.timeline-item.expense .dot{background:var(--gold);box-shadow:0 0 0 5px #fbf1e4}.timeline-item strong{display:block;font-size:13px}.timeline-item p{font-size:12px;color:var(--muted);margin:4px 0 0}.amount{font-size:13px;font-weight:800}.amount.in{color:#267354}.amount.out{color:#b36c2c}
.page-toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:15px}.page-toolbar .filters{display:flex;gap:9px;flex-wrap:wrap}.search,input,select,textarea{border:1px solid var(--line);background:white;border-radius:13px;padding:11px 13px;outline:none}.search:focus,input:focus,select:focus,textarea:focus{border-color:#74a18d;box-shadow:0 0 0 3px rgba(45,112,83,.10)}.table-wrap{background:white;border:1px solid var(--line);border-radius:20px;overflow:auto;box-shadow:0 10px 30px rgba(20,63,50,.05)}table{width:100%;border-collapse:collapse;min-width:780px}th,td{padding:14px 16px;border-bottom:1px solid #edf0ee;text-align:left;font-size:13px}th{background:#f7f9f7;color:#67736d;font-size:11px;text-transform:uppercase;letter-spacing:.05em}tbody tr:hover{background:#fbfdfb}.badge{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:800}.badge.green{background:#e6f4ec;color:#267354}.badge.gold{background:#fbf0df;color:#996724}.badge.red{background:#fdeaea;color:#b94747}.badge.gray{background:#eef1ef;color:#65706a}.money-in{color:#267354;font-weight:800}.money-out{color:#b36c2c;font-weight:800}
.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.entity-card{background:white;border:1px solid var(--line);border-radius:20px;padding:17px;box-shadow:0 10px 28px rgba(20,63,50,.05)}.entity-top{display:flex;justify-content:space-between;gap:12px}.entity-icon{width:46px;height:46px;border-radius:15px;background:var(--green-3);display:grid;place-items:center;font-size:22px}.entity-card h3{font-size:16px;margin:12px 0 4px}.entity-card p{font-size:12px;color:var(--muted);margin:0}.entity-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.mini-stat{background:#f7f9f7;border-radius:13px;padding:10px}.mini-stat span{display:block;font-size:10px;color:var(--muted);text-transform:uppercase}.mini-stat strong{font-size:13px}.progress{height:9px;background:#edf1ee;border-radius:999px;overflow:hidden;margin-top:13px}.progress>div{height:100%;background:linear-gradient(90deg,var(--green-2),#5da787);border-radius:999px}
.empty{padding:50px 20px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--ink);margin-bottom:5px}
.modal-backdrop{position:fixed;inset:0;background:rgba(20,33,27,.55);display:none;align-items:center;justify-content:center;padding:18px;z-index:100}.modal-backdrop.open{display:flex}.modal{width:min(680px,100%);max-height:92vh;overflow:auto;background:white;border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.24)}.modal-head{padding:19px 21px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0}.close-btn{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:white}.modal-body{padding:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:750}.modal-foot{padding:16px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px}
.bottom-nav{display:none}.toast{position:fixed;right:20px;bottom:22px;background:#173d31;color:white;border-radius:15px;padding:13px 16px;box-shadow:0 18px 48px rgba(0,0,0,.24);z-index:200;transform:translateY(120px);opacity:0;transition:.25s}.toast.show{transform:none;opacity:1}
.splash{position:fixed;inset:0;background:var(--cream);display:grid;place-items:center;z-index:999;transition:.45s}.splash.hide{opacity:0;visibility:hidden}.splash-card{background:white;border-radius:30px;padding:24px;box-shadow:var(--shadow);width:min(440px,88vw);text-align:center}.splash-card img{width:100%;max-height:200px;object-fit:contain}.loader{height:6px;background:#e5e9e6;border-radius:999px;overflow:hidden;margin-top:20px}.loader:after{content:"";display:block;width:42%;height:100%;background:var(--green);border-radius:999px;animation:loading 1.1s infinite alternate ease-in-out}@keyframes loading{from{transform:translateX(-20%)}to{transform:translateX(160%)}}
@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.cards-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.app-shell{display:block}.sidebar{display:none}.topbar{height:70px;padding:0 17px}.topbar h1{font-size:18px}.topbar p{display:none}.top-actions .status-pill{display:none}.content{padding:15px 15px 96px}.hero{grid-template-columns:1fr;padding:20px;border-radius:24px;min-height:auto}.hero-logo{display:none}.hero h2{font-size:24px}.dashboard-grid{grid-template-columns:1fr}.cash-row{grid-template-columns:85px 1fr 95px}.bottom-nav{position:fixed;left:10px;right:10px;bottom:10px;height:70px;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:22px;box-shadow:0 18px 55px rgba(20,63,50,.18);z-index:40;padding:7px}.bottom-nav button{border:0;background:transparent;border-radius:15px;color:#7b8781;display:grid;place-items:center;font-size:10px;font-weight:750}.bottom-nav button span{font-size:20px;line-height:1}.bottom-nav button.active{background:var(--green);color:white}.cards-grid{grid-template-columns:1fr 1fr}.page-toolbar{align-items:flex-start;flex-direction:column}.page-toolbar .filters{width:100%}.page-toolbar .filters>*{flex:1}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}
@media(max-width:520px){.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:14px;border-radius:18px}.stat-value{font-size:21px}.stat-icon{width:35px;height:35px}.cards-grid{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr 1fr}.hero-actions .btn{flex:1}.cash-row{grid-template-columns:76px 1fr 80px;font-size:11px}.top-actions .btn span{display:none}}

/* v1.1 — Berkah Sabaha Farm logo proportion fix */
.sidebar{padding-top:16px}
.brand-card{min-height:188px;padding:8px 10px;display:grid;place-items:center;overflow:hidden}
.brand-card img{width:auto;max-width:100%;height:170px;max-height:170px;object-fit:contain;object-position:center;filter:drop-shadow(0 5px 8px rgba(0,0,0,.08))}
.brand-caption{padding-top:12px;text-align:center}
.brand-caption strong{font-size:14px}
.hero{grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr)}
.hero-logo{padding:10px 18px;min-height:220px;background:linear-gradient(145deg,#fff,#f8f3e9)}
.hero-logo img{width:auto;height:190px;max-width:100%;max-height:190px;object-fit:contain;object-position:center;filter:drop-shadow(0 8px 10px rgba(43,31,10,.14))}
.splash-card{width:min(390px,88vw)}
.splash-card img{width:auto;max-width:100%;height:260px;max-height:260px;object-fit:contain;object-position:center}
@media(max-width:1100px){.app-shell{grid-template-columns:235px 1fr}.brand-card{min-height:165px}.brand-card img{height:150px}.hero-logo img{height:170px}}
@media(max-width:820px){.hero{grid-template-columns:1fr}.hero-logo{display:none}.splash-card img{height:230px}}

/* v1.2 — modul pakan terpisah: Rumput, Ampas Tahu, Konsentrat */
.feed-card{display:flex;flex-direction:column}.feed-note{margin-top:12px;padding:10px 12px;border-radius:12px;background:#f8f5eb;color:#6f654e;font-size:11px;line-height:1.45}.history-title{margin-top:15px;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.mini-history{display:grid;margin-top:7px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.mini-history>div{display:flex;justify-content:space-between;gap:12px;padding:9px 11px;font-size:11px;border-bottom:1px solid var(--line);background:#fcfdfc}.mini-history>div:last-child{border-bottom:0}.mini-history strong{font-size:11px}.muted-row{color:var(--muted);justify-content:center!important}.card-actions{display:flex;gap:8px;margin-top:14px}.card-actions .btn{flex:1}.btn:disabled{opacity:.45;cursor:not-allowed}.feed-card .entity-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:820px){.bottom-nav{grid-template-columns:repeat(6,1fr);left:6px;right:6px}.bottom-nav button{font-size:8px;padding:2px}.bottom-nav button span{font-size:18px}.feed-card .card-actions{position:sticky;bottom:0}}


/* v2.0 — Cash Flow bulanan + Firebase-ready */
.status-pill.cloud-ready{background:#eef5ff;color:#315d91}.status-pill.cloud-online{background:#e6f4ec;color:#267354}.status-pill.cloud-error{background:#fdeaea;color:#b94747}
.cashflow-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:end;margin-bottom:15px}.cashflow-toolbar>div{display:grid;gap:3px}.cashflow-toolbar strong{font-size:17px}.cashflow-toolbar span{font-size:12px;color:var(--muted)}.cashflow-toolbar select{min-width:190px}
.cf-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.cf-stat-grid article{background:white;border:1px solid var(--line);border-radius:20px;padding:17px;box-shadow:0 10px 28px rgba(20,63,50,.05)}.cf-stat-grid span,.cf-stat-grid small{display:block;color:var(--muted)}.cf-stat-grid span{font-size:11px;text-transform:uppercase;font-weight:800;letter-spacing:.04em}.cf-stat-grid strong{display:block;font-size:24px;margin:8px 0 5px;color:var(--green)}.cf-stat-grid article.expense strong,.cf-stat-grid article.danger strong{color:#b36c2c}.cf-stat-grid small{font-size:11px}
.cf-month-list{display:grid;gap:13px}.cf-month{background:white;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 10px 28px rgba(20,63,50,.05)}.cf-month-head{width:100%;border:0;background:linear-gradient(135deg,var(--green),#245844);color:white;padding:17px 19px;display:grid;grid-template-columns:1fr auto 32px;align-items:center;gap:16px;text-align:left}.cf-month-head>div:first-child{display:grid;gap:4px}.cf-month-head span{font-size:16px;font-weight:850;text-transform:capitalize}.cf-month-head small{font-size:11px;color:rgba(255,255,255,.72)}.cf-month-total{text-align:right;display:grid;gap:3px}.cf-month-total strong{font-size:18px}.cf-month-head b{font-size:22px;text-align:center}.cf-month-body{display:none;padding:16px 18px 18px}.cf-month.open .cf-month-body{display:block}.cf-month-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:13px}.cf-month-stats>div{background:#f7f9f7;border-radius:14px;padding:11px}.cf-month-stats span{display:block;font-size:10px;color:var(--muted);text-transform:uppercase}.cf-month-stats strong{display:block;margin-top:4px;font-size:14px}.cf-category{border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:13px;background:#fffdf8}.cf-category h4{margin:0 0 7px;font-size:11px;text-transform:uppercase;color:#746b55}.cf-category>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed #e8e1d2;font-size:11px}.cf-category>div:last-child{border:0}.cf-list{border:1px solid var(--line);border-radius:15px;overflow:hidden}.cf-transaction{display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;padding:12px;border-bottom:1px solid var(--line)}.cf-transaction:last-child{border:0}.cf-tx-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-weight:900}.cf-tx-icon.income{background:#e6f4ec;color:#267354}.cf-tx-icon.expense{background:#fbf0df;color:#996724}.cf-tx-main{display:grid;gap:3px}.cf-tx-main strong{font-size:12px}.cf-tx-main span{font-size:10px;color:var(--muted)}.cf-tx-amount{font-size:12px;font-weight:850;white-space:nowrap}.cf-tx-amount.income{color:#267354}.cf-tx-amount.expense{color:#b36c2c}
.cashflow-preview{margin-bottom:16px}.cf-preview-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.cf-preview-list>button{border:1px solid var(--line);background:#fbfcfb;border-radius:15px;padding:13px;text-align:left;display:flex;justify-content:space-between;gap:12px;align-items:center}.cf-preview-list>button>div{display:grid;gap:3px}.cf-preview-list strong{font-size:12px;text-transform:capitalize}.cf-preview-list span,.cf-preview-list small{font-size:10px;color:var(--muted)}.cf-preview-list b{font-size:12px;color:#b36c2c}
@media(max-width:1100px){.cf-stat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.cashflow-toolbar{align-items:stretch;flex-direction:column}.cashflow-toolbar select{width:100%}.cf-preview-list{grid-template-columns:1fr}.cf-month-head{grid-template-columns:1fr auto 22px}.cf-month-stats{grid-template-columns:1fr 1fr}.cf-month-stats>div:last-child{grid-column:1/-1}.top-actions{gap:5px}.top-actions #firebaseBtn span{display:none}}
@media(max-width:520px){.cf-stat-grid{grid-template-columns:1fr 1fr;gap:9px}.cf-stat-grid article{padding:13px;border-radius:16px}.cf-stat-grid strong{font-size:19px}.cf-month-head{padding:14px}.cf-month-head span{font-size:14px}.cf-month-total strong{font-size:14px}.cf-month-body{padding:12px}.cf-transaction{grid-template-columns:34px 1fr}.cf-tx-amount{grid-column:2;text-align:left}.cf-tx-icon{width:32px;height:32px}}


/* v2.1 — Vitamin & Obat + Pembelian Lain-lain */
.purchase-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}
.purchase-stats .stat-card{min-height:132px}
@media(max-width:820px){.purchase-stats{grid-template-columns:1fr 1fr}.purchase-stats .stat-card:last-child{grid-column:1/-1}}
@media(max-width:520px){.purchase-stats{grid-template-columns:1fr}.purchase-stats .stat-card:last-child{grid-column:auto}}


/* v2.2 — Ampas Tahu: pembelian langsung + paket/deposit */
.field-help{display:block;margin-top:6px;color:var(--muted);font-size:11px;line-height:1.45}
.tofu-direct-panel{margin-bottom:16px}
.tofu-direct-panel .table-wrap{border:0;border-radius:0;box-shadow:none}
.section-title-row{display:flex;justify-content:space-between;align-items:end;margin:18px 0 10px}
.section-title-row>div{display:grid;gap:3px}.section-title-row strong{font-size:16px}.section-title-row span{font-size:11px;color:var(--muted)}
@media(max-width:820px){.tofu-direct-panel{overflow:hidden}.tofu-direct-panel .table-wrap{overflow-x:auto}.section-title-row{align-items:flex-start}}

/* v2.4 — opsi edit data */
.action-buttons{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.btn-sm{padding:8px 10px;border-radius:10px;font-size:11px}.card-actions{flex-wrap:wrap}.card-actions .btn{min-width:92px}
@media(max-width:520px){.action-buttons{min-width:120px}.btn-sm{flex:1}.card-actions .btn{min-width:0}}

/* v2.6 — Data kambing terpisah, foto & pertumbuhan */
.goat-modebar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.goat-modebar>div:first-child{display:grid;gap:3px}.goat-modebar strong{font-size:17px}.goat-modebar span{font-size:12px;color:var(--muted)}.goat-mode-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.consumer-preview-banner,.separation-note,.goat-form-note{border:1px solid #d9e8df;background:#f2f8f4;border-radius:16px;padding:12px 14px;display:grid;gap:3px;margin-bottom:14px}.consumer-preview-banner strong,.separation-note strong,.goat-form-note strong{font-size:12px;color:var(--green)}.consumer-preview-banner span,.separation-note span,.goat-form-note span{font-size:11px;color:var(--muted);line-height:1.45}.goat-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.goat-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.goat-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 12px 34px rgba(20,63,50,.07)}.goat-card-photo{height:220px;position:relative;background:linear-gradient(145deg,#e7efe9,#f5f1e6);overflow:hidden}.goat-card-photo img{width:100%;height:100%;object-fit:cover;display:block}.goat-card-photo>.badge{position:absolute;right:12px;top:12px}.goat-photo-placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:62px;color:#416d5a}.goat-card-body{padding:16px}.goat-card-title{display:flex;justify-content:space-between;gap:10px;align-items:start}.goat-card-title small{display:block;color:var(--muted);font-size:10px;font-weight:800}.goat-card-title h3{margin:3px 0 0;font-size:19px}.goat-card-title>span{font-size:11px;color:var(--green);background:var(--green-3);padding:6px 8px;border-radius:999px;font-weight:800}.goat-owner{font-size:12px;color:var(--muted);margin:10px 0 12px}.goat-owner strong{color:var(--ink)}.goat-public-stats,.goat-admin-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.goat-public-stats>div,.goat-admin-mini>div{background:#f7f9f7;border-radius:12px;padding:9px}.goat-public-stats span,.goat-admin-mini span{display:block;font-size:9px;color:var(--muted);text-transform:uppercase}.goat-public-stats strong,.goat-admin-mini strong{display:block;margin-top:4px;font-size:11px}.goat-admin-mini{margin-top:8px}.goat-admin-mini>div{background:#fffaf0;border:1px solid #f1e5cc}.goat-card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.goat-card-actions .btn{font-size:11px;padding:9px 10px}.photo-picker{display:grid;grid-template-columns:110px 1fr;gap:13px;align-items:center}.photo-preview{width:110px;height:110px;border-radius:17px;border:1px dashed #b8c9c0;background:#f5f8f6;overflow:hidden;display:grid;place-items:center;color:var(--green);font-size:34px}.photo-preview img{width:100%;height:100%;object-fit:cover}.admin-private label span{font-size:9px;background:#f2e7d3;color:#8a642c;border-radius:999px;padding:3px 6px;margin-left:5px}.check-row{display:flex!important;align-items:center;gap:7px;margin-top:9px;font-weight:600!important;color:var(--muted)}.check-row input{width:auto}.growth-form-head{display:flex;gap:11px;align-items:center;border:1px solid var(--line);background:#f8faf8;border-radius:15px;padding:11px;margin-bottom:14px}.mini-goat-avatar{width:54px;height:54px;border-radius:14px;background:var(--green-3);display:grid;place-items:center;overflow:hidden;color:var(--green);font-size:25px}.mini-goat-avatar img{width:100%;height:100%;object-fit:cover}.growth-form-head>div:last-child{display:grid;gap:3px}.growth-form-head span{font-size:11px;color:var(--muted)}.goat-detail{display:grid;gap:16px}.goat-detail-hero{display:grid;grid-template-columns:260px 1fr;gap:18px}.goat-detail-photo{height:260px;border-radius:20px;overflow:hidden;background:#eef3ef}.goat-detail-photo img{width:100%;height:100%;object-fit:cover}.goat-detail-title h2{font-size:28px;margin:10px 0 3px}.goat-detail-title>p{margin:0;color:var(--muted);font-size:12px}.goat-public-meta{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.goat-public-meta>div,.goat-private-box>div{border:1px solid var(--line);background:#fafbfa;border-radius:13px;padding:10px}.goat-public-meta span,.goat-private-box span{display:block;font-size:9px;color:var(--muted);text-transform:uppercase}.goat-public-meta strong,.goat-private-box strong{display:block;margin-top:5px;font-size:12px}.goat-private-box{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border:1px solid #efe3ca;background:#fffbf3;border-radius:17px;padding:12px}.consumer-note{background:#edf7f1;border:1px solid #d4e8dc;color:#35654f;border-radius:14px;padding:11px;font-size:11px}.growth-section{border:1px solid var(--line);border-radius:18px;overflow:hidden}.growth-section-head{padding:13px 15px;border-bottom:1px solid var(--line);background:#fbfcfb}.growth-section-head h3{margin:0;font-size:14px}.growth-section-head span{font-size:10px;color:var(--muted)}.growth-chart{padding:12px 14px}.growth-chart svg{width:100%;height:auto;display:block}.chart-axis{stroke:#d8dfda;stroke-width:1}.chart-line{fill:none;stroke:#1e5a46;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:#c89546;stroke:#fff;stroke-width:2}.chart-range{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:var(--muted)}.growth-empty{padding:24px;text-align:center;color:var(--muted);font-size:11px}.growth-history{display:grid}.growth-history article{display:grid;grid-template-columns:82px 1fr;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}.growth-history article:last-child{border-bottom:0}.growth-photo{width:82px;height:68px;border-radius:12px;overflow:hidden;background:#eef3ef;display:grid;place-items:center;color:var(--green);font-size:24px}.growth-photo img{width:100%;height:100%;object-fit:cover}.growth-copy{display:grid;align-content:start;gap:3px}.growth-copy strong{font-size:12px}.growth-copy span{font-size:10px;color:var(--muted)}.growth-copy p{font-size:11px;margin:4px 0 0;line-height:1.45}.modal:has(.goat-detail){width:min(980px,100%)}
@media(max-width:1100px){.goat-card-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.goat-modebar{align-items:flex-start;flex-direction:column}.goat-mode-actions{width:100%}.goat-mode-actions .btn{flex:1}.goat-stats{grid-template-columns:1fr 1fr}.goat-stats .stat-card:last-child{grid-column:1/-1}.goat-detail-hero{grid-template-columns:1fr}.goat-detail-photo{height:320px}.goat-private-box{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.goat-card-grid{grid-template-columns:1fr}.goat-card-photo{height:250px}.goat-public-stats,.goat-admin-mini{grid-template-columns:1fr 1fr}.goat-public-stats>div:last-child,.goat-admin-mini>div:last-child{grid-column:1/-1}.photo-picker{grid-template-columns:82px 1fr}.photo-preview{width:82px;height:82px}.goat-detail-photo{height:260px}.goat-public-meta,.goat-private-box{grid-template-columns:1fr}.growth-history article{grid-template-columns:68px 1fr}.growth-photo{width:68px;height:62px}}


/* v3.0 Production PWA */
body{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.sidebar{padding-bottom:calc(20px + env(safe-area-inset-bottom))}
.bottom-nav{bottom:calc(10px + env(safe-area-inset-bottom))}
.install-app-btn.hidden{display:none!important}
.install-backdrop{position:fixed;inset:0;z-index:260;background:rgba(20,33,27,.58);display:none;align-items:flex-end;justify-content:center;padding:18px;padding-bottom:calc(18px + env(safe-area-inset-bottom))}
.install-backdrop.open{display:flex}
.install-card{width:min(560px,100%);background:#fff;border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.28);overflow:hidden}
.install-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--line)}
.install-card-head>div{display:grid;gap:3px}.install-card-head strong{font-size:17px}.install-card-head span{font-size:11px;color:var(--muted)}
.install-card-body{padding:20px}.install-steps{margin:0;padding-left:22px;display:grid;gap:12px;font-size:13px;line-height:1.5}.install-steps strong{color:var(--green)}
.install-note,.install-warning{margin:14px 0 0;background:#f2f8f4;border:1px solid #d9e8df;border-radius:14px;padding:12px 14px;font-size:11px;line-height:1.5;color:var(--muted)}
.install-warning{display:grid;gap:4px;background:#fff8e9;border-color:#f0dfb7}.install-warning strong{color:#8a642c}
@media(min-width:821px){.install-backdrop{align-items:center}}
@media(max-width:520px){.top-actions #installAppBtn span{display:none}.topbar{padding-top:env(safe-area-inset-top);height:calc(70px + env(safe-area-inset-top))}.content{padding-bottom:calc(98px + env(safe-area-inset-bottom))}}
