:root{
--pine:#15392f;--forest:#385f53;--sage:#7a8f7b;--red:#c44d3a;--stone:#efe8da;--paper:#f8f2e7;--ink:#1b2f2b;--line:#d5cdbf;--muted:#6c756f
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--stone);color:var(--ink)}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;padding-bottom:78px;-webkit-font-smoothing:antialiased}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.app-top{height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 22px 0;background:var(--pine);color:white;display:flex;align-items:center;justify-content:space-between}
.status-title{font-family:Georgia,serif;font-size:18px;letter-spacing:.12em;font-weight:700}
.top-icon{border:0;background:none;color:white;font-size:24px}
main{max-width:680px;margin:auto}
.view{display:none}.view.active{display:block}
.hero-wrap{background:var(--paper);padding:0 0 4px;overflow:hidden}
.hero-art{width:100%;display:block;aspect-ratio:325/310;object-fit:cover;object-position:center top}
.home-actions{background:var(--paper);padding:14px 21px 4px;display:grid;gap:10px}
.button{height:52px;border-radius:4px;font-weight:800;letter-spacing:.05em;font-size:15px}
.primary{border:1px solid var(--pine);background:var(--pine);color:white}
.outline{border:1px solid var(--pine);background:transparent;color:var(--pine)}
.totals-card{margin:16px 21px;padding:15px;background:rgba(248,242,231,.85);border:1px solid var(--line);border-radius:7px}
.micro-title{text-align:center;font-size:9px;font-weight:800;letter-spacing:.11em}
.totals-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:12px}
.totals-grid>div{text-align:center;border-right:1px solid var(--line)}.totals-grid>div:last-child{border:0}
.mini-icon{font-size:18px;height:21px}.totals-grid strong{display:block;font-family:Georgia,serif;font-size:20px}.totals-grid span{display:block;font-size:7px;font-weight:800;margin-top:2px}
.patterns-wrap{padding:5px 21px 24px}
.section-heading{display:flex;align-items:end;justify-content:space-between;margin:12px 0 8px}
.section-heading h2{font-family:Georgia,serif;font-size:20px;margin:0}.section-heading p{margin:2px 0 0;color:var(--muted);font-size:9px}
.link-button,.header-action{border:0;background:none;color:var(--pine);font-weight:700;font-size:12px}
.pattern-stack{border:1px solid var(--line);border-radius:7px;background:var(--paper);overflow:hidden}
.pattern-row{padding:14px 15px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.pattern-row:last-child{border:0}
.pattern-row span{display:block;font-size:8px;font-weight:800;color:var(--muted)}.pattern-row strong{display:block;font-family:Georgia,serif;font-size:17px;margin:4px 0 2px}.pattern-row small{color:var(--muted);font-size:9px}
.pattern-mark{font-size:26px;color:var(--pine)}.lure-mark{color:var(--red)}
.screen-header{height:58px;background:var(--pine);color:white;display:grid;grid-template-columns:70px 1fr 70px;align-items:center;padding:0 10px}
.screen-header strong{text-align:center;font-size:13px;letter-spacing:.06em}.screen-header .header-action{color:white}.back{border:0;background:none;color:white;font-size:31px;text-align:left}
.search-shell{margin:14px 18px 0;border:1px solid var(--line);background:var(--paper);border-radius:6px;padding:10px 12px;color:var(--muted);display:flex;gap:8px;align-items:center}
.search-shell input{width:100%;border:0;background:transparent;outline:0;font-size:14px}
.trip-list{padding:12px 18px;display:grid;gap:8px}
.trip-card{background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:12px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:3px 10px}
.place{font-family:Georgia,serif;font-size:17px;font-weight:700}.date{font-size:9px;color:var(--muted)}.fish-count{font-family:Georgia,serif;font-size:20px}.fish-count small{display:block;font-family:inherit;font-size:7px;color:var(--muted);text-align:right}
.trip-meta{grid-column:1/-1;border-top:1px solid var(--line);margin-top:7px;padding-top:7px;font-size:9px;color:var(--muted)}
.empty{text-align:center;margin:18px;padding:28px}.empty h2{font-family:Georgia,serif}.empty p{color:var(--muted);font-size:12px}
form{padding:16px 18px;background:var(--paper);display:grid;gap:14px}
label{font-size:9px;font-weight:800;letter-spacing:.04em}label em{font-weight:400;color:var(--muted)}
.input-shell,.rod-control,.unit-shell{margin-top:6px;border:1px solid var(--line);border-radius:5px;background:#fbf8f0;display:flex;align-items:center;min-height:44px}
.input-shell>span,.rod-icon{width:36px;text-align:center}
input,textarea{font-size:15px;background:transparent}
.input-shell input{border:0;outline:0;flex:1;padding:11px 8px 11px 0;min-width:0}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.rod-control button{width:42px;height:42px;border:0;background:transparent;font-size:18px}.rod-control input{flex:1;border:0;text-align:center;outline:0;min-width:0}
.metric-control{margin-top:6px;border-top:1px solid var(--line);padding-top:8px;text-align:center}.metric-symbol{font-size:20px}.metric-control input{width:60px;border:0;outline:0;text-align:center;font:22px Georgia,serif}.plusminus{display:flex;justify-content:space-between}.plusminus button{border:0;background:none;font-size:18px}
.metric-boxes{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 0}
.unit-shell{border:0;background:transparent;justify-content:center}.unit-shell input{width:60px;border:0;outline:0;text-align:center;font:21px Georgia,serif}.unit-shell b{font-size:10px;margin-left:3px}
textarea{margin-top:6px;width:100%;border:1px solid var(--line);border-radius:5px;background:#fbf8f0;padding:11px;resize:vertical;outline:0}
.delete{border:0;background:none;color:#9c3a30;padding:10px;font-size:11px;font-weight:800}.hidden{display:none!important}
.summary{margin:14px 18px}.summary-title{font-family:Georgia,serif;font-size:23px;margin:0 0 2px}.summary-date{color:var(--muted);font-size:9px}
.summary-metrics{margin-top:14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr)}.summary-metrics div{text-align:center;padding:11px 3px}.summary-metrics span{display:block;font-size:7px;color:var(--muted)}.summary-metrics b{font-family:Georgia,serif;font-size:16px}
.summary-details{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.summary-details div{padding:12px 4px}.summary-details span{display:block;font-size:8px;color:var(--muted)}.summary-details b{font-family:Georgia,serif;font-size:15px}.notes-box{padding:13px 4px}.notes-box span{font-size:8px;font-weight:800}.notes-box p{font-size:11px;line-height:1.4}
.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:13px 14px;background:var(--paper)}.tabs button{border:0;background:none;font-size:7px;font-weight:800;padding:8px 4px}.tabs button.active{background:var(--pine);color:white;border-radius:4px}
.stats-panel{margin:0 18px 18px;padding:15px;border:1px solid var(--line);background:var(--paper);border-radius:5px}.stats-panel h3{font-size:10px;margin:0}.stats-panel>p{font-size:9px;color:var(--muted);margin:3px 0 7px}
.stat-row{padding:13px 0;border-bottom:1px solid var(--line)}.stat-row:last-child{border:0}.stat-row span{display:block;font-size:8px;color:var(--muted)}.stat-row strong{display:block;font-family:Georgia,serif;font-size:17px;margin:3px 0}.stat-row small{color:var(--muted);font-size:9px}
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(680px,100%);height:76px;padding-bottom:env(safe-area-inset-bottom);background:var(--pine);display:grid;grid-template-columns:repeat(5,1fr);align-items:center;z-index:20}
.bottom-nav button{border:0;background:none;color:#efece2;font-size:18px}.bottom-nav small{display:block;font-size:8px;margin-top:2px}
#toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);opacity:0;background:var(--pine);color:white;padding:9px 14px;border-radius:18px;font-size:11px;transition:.2s;z-index:30}.show{opacity:1!important}
@media(max-width:375px){.hero-art{aspect-ratio:325/285}.two-col{grid-template-columns:1fr 1fr}}

.emoji-symbol{font-family:Apple Color Emoji,"Segoe UI Emoji",sans-serif;font-size:25px;line-height:1.1}.emoji-mini{font-family:Apple Color Emoji,"Segoe UI Emoji",sans-serif;font-size:17px}

.hero-art{width:100%;display:block;aspect-ratio:auto!important;object-fit:contain!important}
.counter-page{padding:18px;background:var(--paper);min-height:calc(100vh - 134px)}
.counter-intro{margin-bottom:16px}
.counter-intro h2{font-family:Georgia,serif;margin:3px 0 6px;font-size:23px}
.counter-intro p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}
.counter-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.counter-card{border:1px solid var(--line);border-radius:7px;background:#fbf8f0;text-align:center;padding:18px 12px}
.counter-card span{display:block;font-size:9px;font-weight:800;letter-spacing:.05em}
.counter-card strong{display:block;font-family:Georgia,serif;font-size:54px;line-height:1;margin:8px 0 14px}
.counter-emoji{font-size:31px;margin-bottom:7px}
.counter-buttons{display:grid;gap:8px}
.counter-buttons button{height:46px;border-radius:5px;font-weight:800;font-size:16px}
.counter-card.caught .counter-buttons button:first-child{background:var(--pine);border:1px solid var(--pine);color:white}
.counter-card.caught .counter-buttons button:last-child{background:transparent;border:1px solid var(--pine);color:var(--pine)}
.counter-card.lost .counter-buttons button:first-child{background:var(--red);border:1px solid var(--red);color:white}
.counter-card.lost .counter-buttons button:last-child{background:transparent;border:1px solid var(--red);color:var(--red)}
.target-card{margin:14px 0;border:1px solid var(--line);border-radius:7px;background:#fbf8f0;padding:15px}
.target-card>div:first-child{display:flex;justify-content:space-between;align-items:center}
.target-card span{font-size:9px;font-weight:800;letter-spacing:.05em}
.target-card small{font-size:9px;color:var(--muted)}
.target-stepper{display:grid!important;grid-template-columns:54px 1fr 54px;align-items:center;margin:12px 0}
.target-stepper button{height:42px;border:1px solid var(--line);background:white;font-size:20px}
.target-stepper strong{text-align:center;font-family:Georgia,serif;font-size:27px}
.target-progress{text-align:center!important;color:var(--muted);font-size:11px!important;padding-top:4px}

/* v2.5 interaction polish */
button,
.button,
.counter-buttons button,
.stepper button,
.rod-control button,
.plusminus button,
.bottom-nav button,
.header-action,
.back,
.text-btn,
.link-button {
  touch-action: manipulation;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

button:active,
.button:active,
.counter-buttons button:active,
.stepper button:active,
.rod-control button:active,
.plusminus button:active {
  transform: scale(.97);
}

input, select, textarea {
  font-size: 16px; /* avoids iOS focus zoom */
}

.input-shell select{
  flex:1;
  width:100%;
  border:0;
  outline:0;
  appearance:none;
  -webkit-appearance:none;
  background:transparent;
  padding:11px 30px 11px 0;
  font-size:16px;
  color:var(--ink);
}

.target-input-row{
  margin:12px 0 5px;
  display:flex!important;
  align-items:center;
  justify-content:center!important;
  gap:8px;
}
.target-input-row input{
  width:110px;
  height:48px;
  text-align:center;
  border:1px solid var(--line);
  border-radius:6px;
  background:white;
  font-family:Georgia,serif;
  font-size:26px;
  outline:none;
}
.target-input-row span{
  font-size:11px;
  color:var(--muted);
  font-weight:700;
}

.bottom-nav.four-nav{
  grid-template-columns:repeat(4,1fr);
}

.app-top{
  justify-content:flex-start;
}

.backup-panel{
  margin:0 18px 18px;
  padding:15px;
  border:1px solid var(--line);
  background:var(--paper);
  border-radius:5px;
}
.backup-panel h3{
  font-size:10px;
  margin:0;
}
.backup-panel p{
  font-size:9px;
  color:var(--muted);
  margin:3px 0 12px;
}
.backup-panel .button{
  width:100%;
}
