*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--green-900:#1B4332;--green-700:#2D6A4F;--green-500:#40916C;--green-300:#95D5B2;--green-100:#D8F3DC;--sand:#FEFAE0;--sand-warm:#FAEDCD;--brown:#D4A373;--brown-dark:#BC8A5F;--gray-900:#1a1a1a;--gray-700:#3d3d3d;--gray-500:#6b6b6b;--gray-300:#b0b0b0;--gray-100:#f5f5f0;--white:#fff;--radius:10px;--radius-sm:6px;--shadow:0 2px 12px rgba(0,0,0,.08);--shadow-lg:0 8px 32px rgba(0,0,0,.12);--font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;--max-width:1200px}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--gray-900);background:var(--gray-100);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--green-700);text-decoration:none}a:hover{text-decoration:underline}
.site-header{background:var(--white);border-bottom:2px solid var(--green-300);position:sticky;top:0;z-index:100}
.header-inner{max-width:var(--max-width);margin:0 auto;padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.logo{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;color:var(--green-900)}
.logo svg{flex-shrink:0}
.site-nav{display:flex;gap:.25rem}
.nav-link{padding:.4rem .85rem;border-radius:var(--radius-sm);font-size:.9rem;color:var(--gray-700);transition:background .15s}
.nav-link:hover,.nav-link.active{background:var(--green-100);color:var(--green-900);text-decoration:none}
main{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem 3rem}
.planner-section{padding-top:2rem}
.planner-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}
.input-panel,.batch-panel-inner{background:var(--white);border-radius:var(--radius);padding:1.75rem;box-shadow:var(--shadow)}
.batch-panel-inner{position:sticky;top:80px}
.input-panel h1{font-size:1.5rem;color:var(--green-900);margin-bottom:.25rem}
.panel-desc{color:var(--gray-500);margin-bottom:1.5rem;font-size:.95rem}
.errand-form{display:grid;gap:1rem;margin-bottom:1.5rem}
.form-row label{display:block;font-size:.85rem;font-weight:600;color:var(--gray-700);margin-bottom:.3rem}
.form-row input,.form-row select{width:100%;padding:.6rem .75rem;border:2px solid var(--gray-300);border-radius:var(--radius-sm);font-size:.95rem;font-family:var(--font);background:var(--white);transition:border-color .15s}
.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--green-500);box-shadow:0 0 0 3px rgba(64,145,108,.15)}
.form-row-split{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.checkbox-row{display:flex;align-items:center;gap:.5rem}
.checkbox-row input{width:18px;height:18px;accent-color:var(--green-700)}
.checkbox-row label{margin-bottom:0;font-weight:400}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1.25rem;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;font-family:var(--font);cursor:pointer;border:2px solid transparent;transition:all .15s}
.btn-primary{background:var(--green-700);color:var(--white)}.btn-primary:hover{background:var(--green-900)}
.btn-secondary{background:var(--sand);color:var(--green-900);border-color:var(--brown)}.btn-secondary:hover{background:var(--sand-warm)}
.btn-ghost{background:transparent;color:var(--green-700);border-color:var(--green-300)}.btn-ghost:hover{background:var(--green-100)}
.presets-area{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:1rem 0;border-top:1px solid var(--gray-100);margin-bottom:1rem}
.presets-label{font-size:.85rem;color:var(--gray-500);width:100%}
.presets-area .btn{padding:.4rem .85rem;font-size:.85rem}
.errand-list-wrap h2{font-size:1.1rem;color:var(--green-900);display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}
.count-badge{background:var(--green-100);color:var(--green-700);font-size:.75rem;padding:.15rem .5rem;border-radius:20px;font-weight:700}
.errand-list{display:grid;gap:.5rem;max-height:360px;overflow-y:auto;padding-right:.25rem}
.errand-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--gray-100);border-radius:var(--radius-sm);border-left:4px solid var(--green-300)}
.errand-item.urgent{border-left-color:#E76F51}
.errand-item.low{border-left-color:var(--gray-300)}
.errand-item-type{font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;font-weight:700;color:var(--green-700);background:var(--green-100);padding:.15rem .5rem;border-radius:4px;white-space:nowrap}
.errand-item-info{flex:1;min-width:0}
.errand-item-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.errand-item-meta{font-size:.8rem;color:var(--gray-500)}
.errand-item-area{font-size:.8rem;color:var(--brown-dark);font-weight:500}
.errand-item-remove{background:none;border:none;color:var(--gray-300);cursor:pointer;font-size:1.25rem;padding:.25rem;line-height:1;transition:color .15s}
.errand-item-remove:hover{color:#E76F51}
.empty-state{text-align:center;padding:2rem 1rem;color:var(--gray-500)}
.empty-state svg{margin-bottom:.75rem;opacity:.5}
.batch-panel-inner h2{font-size:1.1rem;color:var(--green-900);margin-bottom:1rem}
.batch-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.25rem}
.stat{text-align:center;padding:.75rem;background:var(--green-100);border-radius:var(--radius-sm)}
.stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--green-900);line-height:1.2}
.stat-label{font-size:.75rem;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}
.batch-output{display:grid;gap:1rem;max-height:400px;overflow-y:auto;padding-right:.25rem}
.batch-group{background:var(--sand);border-radius:var(--radius-sm);padding:1rem}
.batch-group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}
.batch-group-name{font-weight:700;font-size:.95rem;color:var(--green-900)}
.batch-group-count{font-size:.75rem;background:var(--brown);color:var(--white);padding:.1rem .5rem;border-radius:20px}
.batch-group-items{list-style:none;display:grid;gap:.35rem}
.batch-group-items li{display:flex;align-items:center;gap:.5rem;font-size:.9rem;padding:.35rem .5rem;background:var(--white);border-radius:4px}
.batch-group-items li .check{width:16px;height:16px;border:2px solid var(--green-300);border-radius:3px;flex-shrink:0}
.batch-group-items li .deadline-tag{font-size:.7rem;color:var(--brown-dark);background:var(--sand-warm);padding:.1rem .4rem;border-radius:3px;margin-left:auto;white-space:nowrap}
.batch-empty{text-align:center;padding:2rem 1rem;color:var(--gray-500)}
.batch-actions{display:flex;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--gray-100)}
.info-section{padding-top:3rem}
.info-section h2{font-size:1.4rem;color:var(--green-900);margin-bottom:1.5rem;text-align:center}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-bottom:2.5rem}
.info-card{background:var(--white);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);text-align:center}
.info-icon{margin-bottom:.75rem}
.info-card h3{font-size:1.05rem;color:var(--green-900);margin-bottom:.5rem}
.info-card p{font-size:.9rem;color:var(--gray-500);line-height:1.5}
.how-steps{background:var(--white);border-radius:var(--radius);padding:1.75rem;box-shadow:var(--shadow)}
.how-steps h3{font-size:1.1rem;color:var(--green-900);margin-bottom:1rem}
.how-steps ol{padding-left:1.25rem;display:grid;gap:.6rem}
.how-steps li{font-size:.95rem;color:var(--gray-700)}
.tips-section{padding-top:3rem}
.tips-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-bottom:2rem}
.tip-card{background:var(--white);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);border-top:3px solid var(--brown)}
.tip-card h3{font-size:1rem;color:var(--green-900);margin-bottom:.5rem}
.tip-card p{font-size:.9rem;color:var(--gray-500)}
.assumptions-box{background:var(--sand);border-radius:var(--radius);padding:1.5rem}
.assumptions-box h3{font-size:1rem;color:var(--green-900);margin-bottom:.75rem}
.assumptions-box ul{padding-left:1.25rem;display:grid;gap:.4rem}
.assumptions-box li{font-size:.9rem;color:var(--gray-700)}
.faq-section{padding-top:3rem;padding-bottom:2rem}
.faq-list{display:grid;gap:.5rem}
.faq-list details{background:var(--white);border-radius:var(--radius-sm);box-shadow:var(--shadow);overflow:hidden}
.faq-list summary{padding:1rem 1.25rem;font-weight:600;font-size:.95rem;color:var(--green-900);cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between}
.faq-list summary::after{content:'+';font-size:1.25rem;color:var(--green-500);transition:transform .2s}
.faq-list details[open] summary::after{content:'−'}
.faq-list details p{padding:0 1.25rem 1rem;font-size:.9rem;color:var(--gray-500);line-height:1.6}
.site-footer{background:var(--green-900);color:var(--green-100);padding:2rem 1.5rem;margin-top:2rem}
.footer-inner{max-width:var(--max-width);margin:0 auto;text-align:center;display:grid;gap:.5rem}
.footer-inner a{color:var(--green-300)}.footer-inner a:hover{color:var(--white)}
.footer-links{font-size:.9rem}
.footer-meta{font-size:.8rem;color:var(--green-300)}
@media(max-width:900px){.planner-layout{grid-template-columns:1fr}.batch-panel-inner{position:static}.info-grid,.tips-grid{grid-template-columns:1fr}}
@media(max-width:600px){.header-inner{flex-direction:column;align-items:flex-start}.site-nav{width:100%;overflow-x:auto}.form-row-split{grid-template-columns:1fr}.input-panel,.batch-panel-inner{padding:1.25rem}main{padding:0 1rem 2rem}.batch-stats{grid-template-columns:1fr 1fr 1fr}}
@media print{.site-header,.site-footer,.input-panel,.batch-actions,.presets-area,.errand-list-wrap,.nav-link,.faq-section,.tips-section,.info-section,.how-steps,.assumptions-box,.site-nav{display:none!important}.batch-panel-inner{box-shadow:none;position:static}.planner-layout{grid-template-columns:1fr}body{background:#fff}}



/* Factory-injected deployment helpers. The AI owns the site design above this block. */
.ad-unit {
  width: min(100%, 720px);
  min-height: 120px;
  margin: 24px auto;
  display: block;
}

.legal-page {
  width: min(900px, calc(100% - 32px));
  margin: 40px auto;
}

.factory-fallback-nav {
  width: min(900px, calc(100% - 32px));
  margin: 24px auto 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  align-items: center;
  font-size: 0.95rem;
}

.factory-fallback-nav a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}
