:root { color-scheme: light; font-family: system-ui, sans-serif; line-height: 1.6; color: #233a34; background: #f3f1e9; }
* { box-sizing: border-box; } body { margin: 0; } main { max-width: 860px; margin: auto; padding: 24px 18px 44px; }
header, main > section { background: #fff; border: 1px solid #c6d5ca; border-radius: 18px; padding: 22px; margin-bottom: 18px; }
h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); margin: 0 0 6px; } h2, h3 { margin-top: 0; } .eyebrow { color: #315f51; font-weight: 700; margin-bottom: 2px; }
a { color: #174f74; } .buttons { display: flex; flex-wrap: wrap; gap: 10px; } button, select, summary { font: inherit; min-height: 48px; }
button { border: 2px solid #315e50; color: #173f34; background: #fff; border-radius: 9px; padding: 9px 14px; font-weight: 700; cursor: pointer; }
button.primary { background: #245a49; color: #fff; } button:disabled { opacity: .55; cursor: default; } select { max-width: 100%; padding: 8px; }
button:focus-visible, select:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid #a55417; outline-offset: 3px; }
.items { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px; padding: 0; list-style: none; }
.items li, .node { background: #f0f5ef; border: 1px solid #c4d7c7; border-radius: 10px; padding: 12px; } .items li { display: flex; align-items: center; gap: 10px; } .items svg { width: 48px; height: 48px; flex: none; }
.node { margin: 10px 0; background: #f8faf6; } .node h4 { margin: 0 0 4px; } .node p { margin: 4px 0; } .children { border-left: 3px solid #819f8a; margin-left: 8px; padding-left: 12px; }
.hint { background: #e9f1e9; padding: 12px; border-radius: 8px; } #status { min-height: 2em; font-weight: 700; } footer { color: #42574f; }
dialog { max-width: min(90vw, 540px); border: 2px solid #315e50; border-radius: 16px; padding: 24px; color: #233a34; } dialog::backdrop { background: #182c27b3; }
#tree { overflow-x: auto; } details > summary { cursor: pointer; margin-bottom: 8px; } #ladder-host { margin-bottom: 18px; }
@media (max-width: 480px) { .children { margin-left: 2px; padding-left: 8px; } main { padding-inline: 16px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }
