:root{font:16px system-ui,sans-serif;color:#243b2b;background:#fbf8ee;--green:#315b3c;--soft:#e8f0dc;--line:#d8dfce;--muted:#506555}
*{box-sizing:border-box}body{margin:0}a{color:var(--green)}.wrap{max-width:1080px;margin:auto;padding:0 20px}.bar{background:#fff;border-bottom:1px solid var(--line)}.nav,.nav nav,.actions,.line{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.nav{min-height:64px;justify-content:space-between}.brand,.nav nav>a{text-decoration:none;font-weight:750}.logo{background:var(--soft);padding:5px 10px;border-radius:10px}.hero{background:var(--green);color:white;border-radius:22px;padding:24px;margin:22px 0 16px}.hero span{letter-spacing:.12em;font-size:.78rem;color:#ddf2cc}.hero h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1;margin:8px 0}.hero p{margin:0}.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:16px;margin:12px 0}.panel h2{margin:0 0 8px;font-size:1.2rem}.panel p{margin:5px 0 9px;color:var(--muted)}.auth{max-width:500px;margin-inline:auto}.cards,.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}.fields{align-items:end}.cards>.panel{margin:0}.device-link{text-decoration:none}.device-link:hover{border-color:var(--green)}.badge{display:inline-block;background:var(--soft);border-radius:24px;padding:4px 9px;font-size:.78rem;margin-bottom:7px}.line{justify-content:space-between;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.line p{margin:4px 0}.secret{display:block;overflow-wrap:anywhere;background:var(--soft);padding:12px;border-radius:8px}.notice,.error,#feedback:not(:empty){background:var(--soft);padding:9px 12px;border-radius:8px}.error{color:#842c19}
button,input,select{font:inherit;border-radius:8px;padding:8px 10px;min-height:40px}button{cursor:pointer;border:1px solid transparent;background:var(--green);color:white;font-weight:700}button.secondary{background:var(--soft);color:#23452f}button:disabled{opacity:.6;cursor:default}input,select{border:1px solid var(--line);width:100%;background:white;color:inherit}input[type=checkbox]{width:auto;min-height:0}label{display:block;font-size:.88rem;font-weight:650;margin:8px 0}label>input,label>select{margin-top:4px}.plant{display:block;width:108px;height:108px;margin:0 auto 2px}.pot{background:var(--soft);text-align:center}.pot p{margin:7px 0}.pot .reason{font-weight:750;color:#23452f}.pot small{color:var(--muted)}.pot button{margin:8px 0 0}.pot button.secondary{background:#fff}.settings-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}.settings-fields label{min-width:0}summary{cursor:pointer;font-weight:750}details form{margin-top:12px}fieldset{border:1px solid var(--line);border-radius:12px;min-width:0}dialog{border:1px solid var(--line);border-radius:16px;max-width:calc(100% - 24px);color:inherit}dialog::backdrop{background:#15281e99}[hidden]{display:none!important}main{padding-bottom:24px}

.admin-hero { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap }
.admin-hero-link { color:#fff; border:1px solid #adcb9e; border-radius:9px; padding:8px 12px }
.admin-jump { display:flex; gap:8px 20px; flex-wrap:wrap; margin:16px 0 }
.admin-jump a { font-weight:700; text-underline-offset:3px }
.admin-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px }
.admin-stats div { background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px }
.admin-stats span { display:block; color:var(--muted); font-size:.86rem }
.admin-stats strong { font-size:1.65rem }
.admin-filter { display:flex; align-items:end; gap:10px; flex-wrap:wrap }
.admin-filter label { flex:1 1 175px; margin:0 }
.admin-filter a { align-self:center }
.admin-section { scroll-margin-top:12px }
.admin-record { border-top:1px solid var(--line); padding:12px 0; overflow-wrap:anywhere }
.admin-record h3 { font-size:1.05rem; margin:0 }
.admin-record-head { display:flex; justify-content:space-between; align-items:start; gap:8px; flex-wrap:wrap }
.admin-badge { background:var(--soft); border-radius:30px; padding:4px 10px; font-size:.8rem }
.admin-badge.is-online { background:#dbeed4; color:#265134 }
.admin-badge.is-danger { background:#f8e2d9; color:#842c19 }
.admin-badge.is-pending { background:#faedc9; color:#644919 }
.admin-details { margin:10px 0; padding:8px 10px; background:#f4f7ec; border-radius:9px }
.admin-details form { border-top:1px solid var(--line); padding-top:8px }
.admin-empty { padding:12px 0 }
.admin-table { overflow-x:auto }
.admin-table table { width:100%; border-collapse:collapse; text-align:left }
.admin-table th,.admin-table td { border-bottom:1px solid var(--line); padding:8px; vertical-align:top }
.admin-table td:first-child { white-space:nowrap }
@media(max-width:620px) { .admin-stats { grid-template-columns:repeat(2,minmax(0,1fr)) } }

.admin-directory td { vertical-align:top; overflow-wrap:anywhere }
.admin-directory td:first-child { white-space:normal }
.admin-directory th { white-space:nowrap }
.admin-directory td small { display:block; margin:4px 0; color:var(--muted) }
.admin-directory td code { white-space:nowrap }
.admin-directory .admin-details { min-width:135px; margin:5px 0; }
.admin-directory .admin-details form { min-width:165px }
.admin-row-title { font-weight:750 }
.admin-linked-devices { list-style:none; margin:6px 0 0; padding:0 }
.admin-linked-devices li { padding:7px 0; border-top:1px solid var(--line) }
.admin-workspace .admin-stats { grid-template-columns:repeat(auto-fit,minmax(130px,1fr)) }

.device-control + .device-control { margin-top:28px; padding-top:8px; border-top:1px solid var(--line) }
.device-hero { display:flex; justify-content:space-between; align-items:start; flex-wrap:wrap; gap:16px }
.device-release { max-width:330px }
.device-release summary { color:#fff; border:1px solid #dfc6b5; border-radius:8px; padding:8px 12px }
.device-release form { background:#fff; color:var(--ink,#243b2b); margin-top:8px; padding:12px; border-radius:8px }
.device-release form button { background:#84372a }
.device-toolbar { display:flex; flex-wrap:wrap; align-items:start; gap:10px 18px; margin-top:16px }
.device-toolbar output:not(:empty) { display:block; padding:8px 0; overflow-wrap:anywhere }
.device-toolbar output code { display:inline-block; margin:4px 0; font-weight:750 }
.device-feedback:not(:empty) { background:var(--soft); padding:9px 12px; border-radius:8px }
