*{box-sizing:border-box}
body{margin:0;background:#f3f5f0;color:#203d33;font:15px/1.6 system-ui,sans-serif}
header{padding:18px 5%;background:white;border-bottom:1px solid #dce3d9;display:flex;align-items:center;gap:24px}
header b{font-size:24px;white-space:nowrap;display:flex;align-items:center;gap:10px}header b img{display:block;flex-shrink:0}header span{color:#718273;font-size:12px}#logout{margin-left:auto}
main{max-width:1300px;margin:auto;padding:32px 24px}h1{font-size:30px;margin:4px 0}h2{font-size:16px;margin:12px 0}p{color:#6c7d71;font-size:13px;overflow-wrap:anywhere}
button,input,select,textarea{font:inherit;border:1px solid #cdd8ca;border-radius:7px;padding:9px 12px;color:#264938;background:white;max-width:100%;min-height:44px}
button{cursor:pointer;font-size:13px;touch-action:manipulation}button:hover{background:#e8f0e3}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #397c59;outline-offset:2px}
.primary{background:#244e39;color:white}.primary:hover{background:#163b27}.danger{color:#aa4941}input,select{width:100%;min-width:0}input[readonly]{background:#edf1e8}
label{display:block;margin:12px 0;font-size:12px}label>input,label>select{display:block;margin-top:5px}.check{display:flex;align-items:flex-start;gap:8px;min-height:32px}.check input{width:20px;height:20px;min-height:20px;flex:0 0 20px;margin:0}
#login{max-width:430px;background:white;border:1px solid #dce4d8;border-radius:14px;padding:28px;margin:40px auto}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.row input{flex:1;min-width:0}.row button{flex-shrink:0}
.toolbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;background:#f3f5f0;border-bottom:1px solid #dce3d9}
.backup-actions{display:flex;gap:8px;flex-wrap:wrap}#save{min-width:150px}
.panel{display:grid;grid-template-columns:270px minmax(0,1fr);background:white;border:1px solid #dce3d7;border-radius:14px;overflow:hidden;margin-top:20px}
aside{min-width:0;background:#f9fbf6;border-right:1px solid #e0e7db;padding:18px 12px}aside .row{padding:0 4px}
nav button{display:block;width:100%;border:0;text-align:left;background:transparent;font-size:13px;white-space:normal;overflow-wrap:anywhere;margin:5px 0}nav button.selected{background:#dfead8;font-weight:650}
article{padding:24px;min-width:0}.name{font-size:23px;font-weight:650}.mapping{background:#f4f7ef;padding:5px 16px 16px;border-radius:8px}#effective{overflow-wrap:anywhere}
textarea{width:100%;height:300px;resize:vertical;font:13px/1.8 ui-monospace,Consolas,monospace}.muted{font-size:12px;color:#647567}
.card{min-width:0;background:white;border:1px solid #dce3d7;border-radius:12px;padding:24px;margin-top:22px}.card label{max-width:500px}.card>button{margin:5px 5px 5px 0}
#url{margin-top:12px;font-family:ui-monospace,Consolas,monospace}pre{max-width:100%;max-height:300px;overflow:auto;font-size:12px;background:#f3f7f0;padding:16px}
#status{position:sticky;bottom:8px;z-index:6;background:#eef3e8;padding:12px;border-radius:8px;border:1px solid #dce3d7;overflow-wrap:anywhere}#status:empty{display:none}.error{color:#b73d31!important}
button:disabled,input:disabled,select:disabled{opacity:.55}.mobile-only{display:none}[hidden]{display:none!important}
@media(max-width:750px){
 header{padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));gap:12px}header span{display:none}header b{font-size:22px}
 main{padding:20px 12px;padding-bottom:calc(20px + env(safe-area-inset-bottom))}h1{font-size:25px;line-height:1.4}
 button,input,select,textarea{font-size:16px}button{line-height:1.4}label{font-size:13px}.name{font-size:20px}
 #login{padding:22px 18px;margin:20px auto}#loginForm button{width:100%}
 .toolbar{flex-wrap:wrap;gap:8px;padding:10px 0}.backup-actions{flex:1 1 100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.backup-actions button{font-size:14px}#save{width:100%;min-width:0}
 .panel{grid-template-columns:minmax(0,1fr);margin-top:14px}aside{border-right:0;border-bottom:1px solid #dce3d7;padding:12px}
 .mobile-only{display:block}#treeToggle{width:100%;font-size:14px}nav{display:none;max-height:260px;overflow:auto;overscroll-behavior:contain;margin-top:8px}nav.expanded{display:block}nav button{font-size:15px}
 article{padding:16px 12px}.row{gap:8px}.mapping{padding:4px 12px 14px}#apply{width:100%;font-size:14px}
 textarea{font-size:16px;height:320px;line-height:1.7}.card{padding:18px 14px}.card>button{width:100%;margin:5px 0}#status{bottom:calc(8px + env(safe-area-inset-bottom))}
}
@media(max-width:360px){main{padding-right:8px;padding-left:8px}.row{flex-wrap:wrap}.row input{flex-basis:70%}h1{font-size:23px}}
