:root{--dkh-green-50:#f2f8e7;--dkh-green-100:#e2efc9;--dkh-green-200:#cbe29e;--dkh-green-300:#b0d472;--dkh-green-400:#9bc94f;--dkh-green-500:#8cc63f;--dkh-green-600:#6fa22e;--dkh-green-700:#557d22;--dkh-green-800:#3f5c1a;--dkh-green-900:#2b3f12;--dkh-ink:#1d1d1b;--dkh-ink-soft:#3a3a36;--dkh-gray-50:#f7f8f5;--dkh-gray-100:#eef0ea;--dkh-gray-200:#e2e5db;--dkh-gray-300:#cfd3c7;--dkh-gray-400:#a9ae9f;--dkh-gray-500:#6f7568;--dkh-gray-600:#545a4c;--dkh-gray-700:#454a3f;--dkh-danger:#c0392b;--dkh-warning:#b8860b;--dkh-ok:#6fa22e;--bg:var(--dkh-gray-50);--surface:#fff;--surface-2:var(--dkh-gray-100);--border:var(--dkh-gray-200);--text:var(--dkh-ink);--text-muted:var(--dkh-gray-500);--danger:var(--dkh-danger);--warning:var(--dkh-warning);--ok:var(--dkh-ok);--brand-primary:var(--dkh-green-500);--brand-primary-dark:var(--dkh-green-700);--brand-on-primary:var(--dkh-ink);--brand-cta:var(--dkh-green-700);--brand-on-cta:#fff;--brand-accent:var(--dkh-green-600);--radius:12px;--radius-sm:8px;--shadow:0 1px 3px #1d1d1b1a, 0 1px 2px #1d1d1b0f;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#14170f;--surface:#1c2016;--surface-2:#262b1e;--border:#333a28;--text:#eef1e6;--text-muted:#a7ad9b;--brand-primary:var(--dkh-green-500);--brand-primary-dark:var(--dkh-green-600);--brand-on-primary:var(--dkh-ink);--brand-cta:var(--dkh-green-500);--brand-on-cta:var(--dkh-ink);--brand-accent:var(--dkh-green-400);--ok:var(--dkh-green-400)}}:root{font-family:var(--font-sans);color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}a{color:var(--brand-accent)}:focus-visible{outline:2px solid var(--brand-cta);outline-offset:2px}.app{max-width:720px;min-height:100vh;margin:0 auto;padding-bottom:76px}.accentline{z-index:11;background:linear-gradient(90deg, var(--dkh-green-600), var(--dkh-green-400), var(--dkh-green-700));height:3px;position:sticky;top:0}.appbar{z-index:10;-webkit-backdrop-filter:saturate(1.2)blur(12px);color:var(--text);border-bottom:1px solid var(--border);padding:10px 16px;padding-top:max(10px, env(safe-area-inset-top));background:#ffffffd1;align-items:center;gap:12px;display:flex;position:sticky;top:3px}@media (prefers-color-scheme:dark){.appbar{background:#1c2016d1}}.appbar h1{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:1.05rem;font-weight:700;overflow:hidden}.appbar .sub{color:var(--text-muted);font-size:.72rem;font-weight:500}.appbar .spacer{flex:1}.appbar .brand-logo{width:auto;height:30px;display:block}.appbar .appname{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;font-size:.72rem;font-weight:700}.appbar button.back{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:9px;width:34px;height:34px;font-size:1.2rem;line-height:1}.content{padding:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 1px 2px #1d1d1b0a,0 6px 20px #1d1d1b08}.list{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--border);text-align:left;width:100%;color:inherit;background:0 0;border-top:none;border-left:none;border-right:none;align-items:center;gap:12px;padding:14px 16px;display:flex}.row:last-child{border-bottom:none}.row:active{background:var(--surface-2)}.row .main{flex:1;min-width:0}.row .title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.row .meta{color:var(--text-muted);margin-top:2px;font-size:.8rem}.row .chev{color:var(--text-muted)}.badge{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.7rem;display:inline-block}.badge.ok{color:var(--ok);background:#2f9e441f;border-color:#2f9e444d}.badge.open{color:var(--warning);background:#b8860b1f;border-color:#b8860b4d}.type-dot{background:var(--surface-2);border-radius:10px;flex:none;place-items:center;width:38px;height:38px;font-size:1.1rem;display:grid}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-weight:600;display:inline-flex}.btn.primary{background:var(--brand-cta);color:var(--brand-on-cta);border-color:var(--brand-cta)}.btn.accent{background:var(--brand-accent);color:#fff;border-color:var(--brand-accent)}.btn.block{width:100%}.btn:disabled{opacity:.5}.btn-row{flex-wrap:wrap;gap:10px;display:flex}.field{margin-bottom:16px}.field label{color:var(--text-muted);margin-bottom:6px;font-size:.8rem;font-weight:600;display:block}.field input,.field select,.field textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:10px;padding:12px}.value-input{text-align:center;letter-spacing:.05em;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700}.hint{color:var(--text-muted);font-size:.8rem}.warn{color:var(--warning);font-weight:600}.err{color:var(--danger)}.section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:20px 4px 8px;font-size:.8rem;font-weight:700}.empty{text-align:center;color:var(--text-muted);padding:40px 20px}.bottomnav{-webkit-backdrop-filter:saturate(1.2)blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10;background:#ffffffd9;display:flex;position:fixed;bottom:0;left:0;right:0}@media (prefers-color-scheme:dark){.bottomnav{background:#1c2016d9}}.bottomnav a{text-align:center;color:var(--text-muted);flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 4px;font-size:.7rem;text-decoration:none;display:flex}.bottomnav a.active{color:var(--brand-cta)}.bottomnav .ic{font-size:1.25rem}.photo-grid{flex-wrap:wrap;gap:8px;display:flex}.photo-grid img{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:72px;height:72px}.map-table{border-collapse:collapse;width:100%;font-size:.85rem}.map-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px}.map-table .sample{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:.78rem;overflow:hidden}.map-table select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:8px;padding:6px}.result-box{background:var(--surface-2);border-radius:10px;margin-top:12px;padding:14px;font-size:.9rem}.result-box .num{color:var(--brand-cta);font-weight:700}
