:root{--forest: #05301e;--gold: #f5ae00;--ivory: #fff7d2;--leaf: #1d5629;--golden: #ffcd23;--black: #19110c;--deep: #002416;--danger: #8f1d14;--tabbar-h: 64px;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;background:var(--ivory);color:var(--black);font:17px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}.shell{min-height:100vh}.app-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top) + 8px) 16px 10px;background:var(--forest);color:var(--ivory)}.app-header__logo{width:40px;height:40px}.app-header__title{margin:0;font-size:1.3rem;font-weight:700}.app-main{padding:16px 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 24px);max-width:640px;margin:0 auto}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:2;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--forest)}.tabbar__tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#c9d6cc;text-decoration:none;font-size:.72rem;font-weight:600}.tabbar__tab.is-current{color:var(--golden)}.card{background:#fff;border:1px solid #e7dcae;border-radius:12px;padding:16px;margin-bottom:14px}.card p{margin:0 0 8px}.card p:last-child{margin-bottom:0}.muted{color:#4a4a3c}.db-test{background:var(--golden);border-color:var(--gold)}.db-test__label{font-size:2rem;font-weight:800;letter-spacing:.1em;color:var(--black)}.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 16px}.facts dt{color:#4a4a3c}.facts dd{margin:0;overflow-wrap:anywhere}.btn{display:block;width:100%;min-height:52px;border-radius:12px;font:inherit;font-weight:700;font-size:1.05rem;border:2px solid var(--forest)}.btn:disabled{opacity:.6}.btn--primary{background:var(--forest);color:var(--ivory)}.btn--secondary{background:#fff;color:var(--forest)}.update-banner{position:fixed;left:12px;right:12px;top:calc(env(safe-area-inset-top) + 8px);z-index:10;min-height:52px;border:none;border-radius:12px;background:var(--gold);color:var(--black);font:inherit;font-weight:700;box-shadow:0 4px 16px #00000040}.signin{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:calc(env(safe-area-inset-top) + 40px) 16px 32px;background:var(--forest);color:var(--ivory)}.signin__logo{width:140px;height:140px}.signin__title{margin:12px 0 4px;font-size:1.8rem}.signin__form{width:100%;max-width:400px;margin-top:20px;display:flex;flex-direction:column;gap:6px}.signin__form label{font-weight:600;margin-top:8px}.signin__form input{min-height:50px;padding:10px 12px;border-radius:10px;border:2px solid var(--leaf);font:inherit;font-size:17px;background:var(--ivory);color:var(--black)}.signin__form .btn{margin-top:18px;background:var(--gold);color:var(--black);border-color:var(--gold)}.signin__message{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:#fff;color:var(--danger);font-weight:600}.db-badge{margin:4px 0 0;padding:2px 12px;border-radius:999px;background:var(--golden);color:var(--black);font-weight:800;letter-spacing:.08em}.center{text-align:center}.small{font-size:.88rem}.page-title{margin:0 0 14px}.page-title h2{margin:4px 0 0;font-size:1.4rem;color:var(--forest)}.back-link{display:inline-block;min-height:44px;padding:10px 0;color:var(--leaf);font-weight:700;text-decoration:none}.btn{display:flex;align-items:center;justify-content:center;text-decoration:none;text-align:center;padding:0 14px}.btn--quiet{background:transparent;color:var(--danger);border-color:transparent;text-decoration:underline}.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.btn-stack{display:grid;gap:10px;margin:0 0 16px}.group{margin-bottom:18px}.group__heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 6px;font-size:1.05rem}.group__heading a{color:var(--forest)}.group__count{font-size:.85rem;font-weight:400;color:#4a4a3c}.list{display:grid;gap:8px}.list.spaced{margin-top:14px}.list-item{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:56px;padding:10px 16px;background:#fff;border:1px solid #e7dcae;border-radius:12px;color:var(--black);text-decoration:none;font-weight:600}.list-item.is-archived{background:#f1eedf;color:#7a7766;font-weight:400}.chevron{color:var(--leaf);font-size:1.4rem}.archived{margin-top:20px}.archived summary{min-height:44px;padding:10px 0;font-weight:700;color:#4a4a3c;cursor:pointer}.status{padding:10px 14px;border-radius:10px;margin:0 0 14px;font-weight:600}.status--archived{background:#e6e3d4;color:#4a4a3c}.card h3{margin:0 0 8px;font-size:1.05rem;color:var(--forest)}.card--error{border-color:var(--danger)}.card--error p{color:var(--danger);font-weight:600}.not-recorded{color:#7a7766;font-style:italic}ul.plain{margin:0;padding-left:18px}ul.plain li{margin-bottom:6px}.form{display:grid;gap:14px}.field label{display:block;font-weight:700;margin-bottom:4px}.field input,.field select,.field textarea{width:100%;min-height:50px;padding:10px 12px;border:2px solid #c9bf95;border-radius:10px;background:#fff;color:var(--black);font:inherit;font-size:17px}.field textarea{min-height:90px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--golden);border-color:var(--forest)}.date-row{display:flex;gap:8px;align-items:stretch}.date-row input{flex:1;min-width:0}.btn-clear{min-width:72px;border:2px solid #c9bf95;border-radius:10px;background:#fff;color:var(--forest);font:inherit;font-weight:700}.form-message{margin:0;padding:10px 12px;border-radius:10px;background:#fff;color:var(--danger);font-weight:600;border:2px solid var(--danger)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:flex-end;background:#00000073;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}.modal__box{width:100%;max-width:520px;margin:0 auto;background:var(--ivory);border-radius:16px;padding:18px}.modal__box p{margin:0 0 16px;font-weight:600}.modal .btn-row{margin:0}.sample-badge{margin-left:auto;padding:2px 8px;border-radius:999px;background:var(--golden);color:var(--black);font-size:.7rem;font-weight:800}.tap{border:none;margin:0;padding:0;min-width:0}.tap legend{font-weight:700;margin-bottom:6px;padding:0}.tap__row{display:flex;flex-wrap:wrap;gap:8px}.tap__btn{flex:1 1 auto;min-width:72px;min-height:52px;padding:6px 10px;border:2px solid #c9bf95;border-radius:12px;background:#fff;color:var(--black);font:inherit;font-weight:700}.tap__btn--none{color:#6b6858;font-weight:600}.tap__btn.is-on{background:var(--forest);border-color:var(--forest);color:var(--ivory)}.tap__btn--none.is-on{background:#e6e3d4;border-color:#9c9677;color:var(--black)}.stepper{display:flex;align-items:center;gap:10px}.stepper__btn{width:60px;height:52px;border:2px solid var(--forest);border-radius:12px;background:#fff;color:var(--forest);font-size:1.6rem;font-weight:800}.stepper__value{min-width:96px;text-align:center;font-size:1.3rem;font-weight:800}.stepper__value.is-none{font-size:.95rem;font-weight:600;color:#6b6858}.shortcut{margin-top:8px;min-height:44px;padding:6px 14px;border:2px dashed var(--leaf);border-radius:12px;background:transparent;color:var(--leaf);font:inherit;font-weight:700}.section{background:#fff;border:1px solid #e7dcae;border-radius:12px;padding:0 14px}.section>summary{min-height:52px;display:flex;align-items:center;font-weight:800;color:var(--forest);cursor:pointer}.section[open]>summary{border-bottom:1px solid #efe6c4;margin-bottom:12px}.section__body{display:grid;gap:16px;padding-bottom:16px}.save-bar{position:sticky;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 8px);z-index:1;display:grid;gap:8px;padding-top:8px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.filters .tap__btn{flex:0 1 auto;min-height:44px}.filters select{min-height:44px;border:2px solid #c9bf95;border-radius:12px;padding:0 10px;font:inherit;background:#fff}.concern{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #efe6c4}.concern:last-child{border-bottom:none}.concern strong{color:var(--danger)}.edited{color:#6b6858;font-size:.9rem;font-style:italic;margin:-6px 0 12px}.block{display:block;margin-top:2px}.list-item--two{font-weight:400}.notes{white-space:pre-wrap;margin:10px 0 0;padding-top:10px;border-top:1px solid #efe6c4}.shortcut-link{display:inline-block;min-height:44px;padding:10px 0 0;color:var(--leaf);font-weight:700}.section--plain{padding-top:14px}.summary{margin-top:3px;font-size:.9rem;color:var(--forest);font-weight:600}.archived-tag{margin-left:8px;padding:1px 8px;border-radius:999px;background:#e6e3d4;color:#4a4a3c;font-size:.75rem;font-weight:700}
