:root{--bg:#0b101a;--panel:#121a28;--panel2:#172233;--stroke:#263246;--text:#e9eef7;--muted:#91a0b5;--blue:#6ba8ff;--blue2:#2f77e5;--green:#35c68c;--amber:#e8ae54;--red:#ef6c78;--violet:#a78bfa;--shadow:0 18px 55px rgba(0,0,0,.25)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 72% -15%,rgba(65,112,185,.14),transparent 35%),var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,strong{font-family:'Manrope','DM Sans',sans-serif}h1{font-size:31px;letter-spacing:-1.2px;margin:5px 0 8px}h2{font-size:20px;margin:0}h3{font-size:15px;margin:0}.muted{color:var(--muted);margin:0;line-height:1.5}.tiny{font-size:11px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:#7eaef0}.hidden{display:none!important}.app-shell{min-height:100vh}.sidebar{width:245px;position:fixed;inset:0 auto 0 0;background:rgba(13,20,32,.97);border-right:1px solid var(--stroke);padding:27px 17px;display:flex;flex-direction:column;z-index:5}.brand-lockup{display:flex;align-items:center;gap:11px;padding:0 9px 37px}.brand-lockup strong{display:block;font:800 17px 'Manrope';letter-spacing:-.4px}.brand-lockup span{display:block;font-size:9px;letter-spacing:2px;color:var(--muted);margin-top:2px}.brand-mark{width:37px;height:37px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#65a8ff,#5969d8);color:white;font:800 13px 'Manrope';box-shadow:0 6px 20px rgba(75,133,232,.25)}.brand-mark.large{width:50px;height:50px;font-size:16px;border-radius:16px;margin-bottom:19px}.side-label{color:#65758d;font-size:9px;font-weight:700;letter-spacing:1.6px;padding:0 11px 12px}.side-nav{display:grid;gap:6px}.nav-link{border:0;background:transparent;color:#9cabc0;text-align:left;padding:12px 12px;border-radius:9px;display:flex;align-items:center;gap:12px;width:100%;font-weight:600;transition:.18s}.nav-link:hover{background:#192538;color:var(--text)}.nav-link.active{background:linear-gradient(90deg,rgba(67,129,225,.22),rgba(67,129,225,.07));color:#cfe1ff;box-shadow:inset 2px 0 #67a8ff}.nav-icon{width:17px;text-align:center;font-size:17px;color:#7fa8e5}.nav-count{margin-left:auto;background:#315d9f;color:#fff;border-radius:20px;font-size:10px;padding:2px 7px}.sidebar-bottom{margin-top:auto}.agent-status{display:flex;align-items:center;gap:10px;border:1px solid var(--stroke);background:#111b2b;padding:12px;border-radius:10px;margin:0 2px 10px}.agent-status strong{display:block;font-size:11px}.agent-status small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.pulse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(53,198,140,.1)}.sidebar-version{font-size:10px;color:#64748b;padding:22px 10px 0}.sidebar-version span{display:block;margin-top:4px}.main-area{margin-left:245px;min-height:100vh}.topbar{height:70px;border-bottom:1px solid rgba(38,50,70,.75);display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:rgba(11,16,26,.72);backdrop-filter:blur(14px);position:sticky;top:0;z-index:4}.breadcrumb{display:flex;gap:10px;align-items:center;color:#718198;font-size:12px}.breadcrumb b{color:#3e4b60}.breadcrumb strong{color:#dce6f5;font-size:12px}.top-actions{display:flex;align-items:center;gap:13px}.live-indicator{display:flex;align-items:center;gap:7px;color:#80d8b6;font-size:10px;font-weight:700;letter-spacing:1px}.live-indicator .pulse-dot{width:6px;height:6px}.icon-btn{width:34px;height:34px;border:1px solid var(--stroke);border-radius:9px;background:#141e2e;color:#9db0cb;font-size:20px;display:grid;place-items:center;position:relative}.icon-btn:hover{color:white;border-color:#466086}.notification-dot{position:absolute;top:6px;right:6px;width:6px;height:6px;background:var(--red);border-radius:50%}.mobile-brand{display:none}.page{display:none;max-width:1500px;margin:0 auto;padding:35px 38px 55px}.page.active{display:block}.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:29px}.intro-actions{display:flex;gap:9px}.btn{border:1px solid transparent;border-radius:8px;padding:10px 14px;font-weight:700;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s}.btn.primary{background:linear-gradient(130deg,#4e91ed,#3978dc);color:white;box-shadow:0 6px 16px rgba(50,111,210,.18)}.btn.primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn.secondary{background:#182538;border-color:#30415c;color:#c4d4e9}.btn.secondary:hover,.btn.ghost:hover{border-color:#54739f;color:white}.btn.ghost{background:transparent;border-color:var(--stroke);color:#9aabc2}.btn.danger{background:#b83e50;color:white}.btn.full{width:100%;margin-top:12px;padding:13px}.btn.small{padding:7px 10px;font-size:11px}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:35px}.summary-card{background:linear-gradient(145deg,#151f2f,#111a28);border:1px solid var(--stroke);border-radius:11px;padding:17px;display:flex;align-items:center;gap:13px;min-height:83px}.summary-icon{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;font-size:17px}.summary-icon.blue{background:#1c3556;color:#7fb6ff}.summary-icon.green{background:#153c35;color:#5bd6a8}.summary-icon.amber{background:#403322;color:#efbd70}.summary-icon.violet{background:#31274c;color:#b9a2ff}.summary-card span{display:block;color:var(--muted);font-size:11px}.summary-card strong{display:block;font:800 22px 'Manrope';margin-top:3px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:14px}.section-heading p{font-size:11px;margin-top:4px}.section-note{font-size:9px;color:#687990;letter-spacing:1px;font-weight:700}.instance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,410px),1fr));gap:16px}.instance-card{background:linear-gradient(145deg,#151f2f,#111925);border:1px solid #29374c;border-radius:13px;padding:19px;box-shadow:var(--shadow);min-width:0}.instance-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.instance-name{display:flex;align-items:center;gap:10px}.instance-avatar{width:35px;height:35px;border-radius:10px;background:#213653;color:#9dc6ff;display:grid;place-items:center;font:800 11px 'Manrope'}.instance-name h3{font-size:16px}.status-badge{padding:5px 9px;border-radius:20px;font-size:10px;font-weight:700;border:1px solid transparent;white-space:nowrap}.status-badge.online{background:#133a31;color:#6de0b5;border-color:#1f5949}.status-badge.paused{background:#423322;color:#edc27e;border-color:#6a4b26}.status-badge.offline{background:#3b2630;color:#f19aa4;border-color:#5d3340}.status-badge.unknown{background:#2b3443;color:#b5c0d0;border-color:#3e4d61}.state-line{display:flex;align-items:center;justify-content:space-between;margin:19px 0 15px}.state-label{font:800 21px 'Manrope';letter-spacing:-.6px}.state-label.play{color:var(--green)}.state-label.pause{color:var(--amber)}.pid-label{font-size:10px;color:var(--muted)}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0 0 15px}.metric{background:#0f1825;border:1px solid #202d40;padding:9px 10px;border-radius:8px;min-width:0}.metric span{display:block;font-size:9px;color:#71829a}.metric strong{display:block;font:700 12px 'Manrope';margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-row{display:flex;align-items:center;gap:8px;margin-bottom:15px}.profile-row label{font-size:10px;color:var(--muted);white-space:nowrap}.profile-row select{min-width:0;flex:1}.instance-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.instance-actions .btn{padding:9px 6px;font-size:10px}.tools-row{display:flex;gap:7px;flex-wrap:wrap;border-top:1px solid #263448;margin-top:15px;padding-top:13px}.tool-chip{background:#172437;border:1px solid #2b3d56;color:#a8bad3;border-radius:7px;padding:7px 9px;font-size:10px;font-weight:600}.tool-chip:hover{border-color:#6285b6;color:#e3edfc}.instance-error{color:#ee9ea7;background:#35232a;border:1px solid #623641;border-radius:7px;padding:9px;margin-top:12px;font-size:10px;line-height:1.45}.bottom-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:15px;margin-top:19px}.panel-card{background:linear-gradient(145deg,#141e2d,#101824);border:1px solid var(--stroke);border-radius:12px;padding:18px;min-width:0}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.panel-title p{font-size:10px;margin-top:4px}.text-btn{border:0;background:none;color:#8ebaff;font-size:10px;font-weight:700}.mini-operation{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #243044;font-size:11px}.mini-operation:first-child{border-top:0}.mini-operation strong{display:block}.mini-operation small{display:block;color:var(--muted);margin-top:3px}.quick-action{display:flex;align-items:center;gap:11px;width:100%;border:0;border-top:1px solid #243044;background:transparent;color:var(--text);padding:12px 1px;text-align:left}.quick-action:first-of-type{border-top:0}.quick-action>span:nth-child(2){flex:1}.quick-action strong{display:block;font:700 11px 'Manrope'}.quick-action small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.quick-action b{color:#7ca9e4}.quick-icon{width:31px;height:31px;background:#1c2c43;color:#84b4f7;border-radius:8px;display:grid;place-items:center}.loading-card{grid-column:1/-1;padding:36px;text-align:center;color:var(--muted);background:#121c2a;border:1px dashed #34445d;border-radius:12px}.notice{padding:11px 13px;border-radius:8px;font-size:11px;line-height:1.5;margin-top:14px}.notice.warning{background:#32291e;border:1px solid #69502c;color:#e8c38e}.notice.success{background:#16352e;border:1px solid #285c4c;color:#a0e5ca}.notice.error{background:#38232b;border:1px solid #75404c;color:#f1a8b0}.empty-state{text-align:center;color:#718199;padding:23px 10px;font-size:11px}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;text-align:left}.data-table th{color:#76879e;font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:11px;border-bottom:1px solid var(--stroke)}.data-table td{padding:13px 11px;border-bottom:1px solid #202c3f;font-size:11px}.data-table tbody tr:hover{background:rgba(58,89,132,.09)}.table-link{border:0;background:none;color:#8fbaff;text-align:left;font-weight:700}.operation-status{padding:4px 8px;border-radius:20px;background:#243247;color:#c3d2e6;font-size:9px;font-weight:700}.operation-status.succeeded{background:#153b32;color:#79d9b7}.operation-status.failed{background:#422831;color:#f19aa4}.operation-status.running,.operation-status.queued{background:#3b3324;color:#e7c17c}.operation-detail{margin-top:15px}.operation-detail pre,.log-output{white-space:pre-wrap;overflow:auto;max-height:60vh;background:#0b111c;border:1px solid #253247;padding:15px;border-radius:8px;color:#b3c4da;font:11px/1.6 'Cascadia Code',Consolas,monospace}.diagnostic-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:15px}.diagnostic-toolbar label,.settings-grid label,.modal label,.login-card label{display:grid;gap:7px;color:#9aabc1;font-size:10px;font-weight:600}.segmented{display:flex;background:#101a28;padding:3px;border:1px solid var(--stroke);border-radius:8px;gap:2px}.segmented button{border:0;background:transparent;color:#8b9bb1;padding:8px 11px;border-radius:6px;font-size:10px}.segmented button.active{background:#29466b;color:#d9e8fc}.log-panel{margin-top:12px}.log-output{min-height:350px;margin:0}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.settings-grid .panel-card{display:grid;align-content:start;gap:14px}.settings-grid label input,.modal select,.diagnostic-toolbar select,.profile-row select,.login-card input{width:100%;background:#0c1521;color:#dce7f5;border:1px solid #304057;border-radius:7px;padding:10px 11px;outline:none}.settings-grid label input:focus,.modal select:focus,.login-card input:focus{border-color:#6aa5f1;box-shadow:0 0 0 3px rgba(89,147,222,.12)}.field-help{font-size:10px;color:#75869c;line-height:1.55;margin:0}.instance-setting{border:1px solid #26354a;border-radius:8px;padding:12px;display:grid;gap:10px}.instance-setting h4{margin:0;font:700 12px 'Manrope';color:#dce7f6}.path-info{display:grid;gap:5px}.path-info span{color:#8293aa;font-size:10px}.path-info code{font:10px 'Cascadia Code',Consolas,monospace;color:#b9cbe2;overflow-wrap:anywhere;background:#0c1521;border:1px solid #253247;padding:8px;border-radius:6px}.modal{width:min(500px,calc(100% - 28px));background:#141f2f;border:1px solid #3a4b64;color:var(--text);border-radius:15px;padding:22px;box-shadow:0 25px 100px rgba(0,0,0,.7)}.modal::backdrop{background:rgba(3,7,13,.76);backdrop-filter:blur(5px)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:21px}.modal-icon.amber{background:#47341d;color:#f3bd69}.modal h2{margin:4px 0 7px}.modal>form>p{font-size:11px;margin-bottom:15px}.modal form>label{margin-top:15px}.snapshot-box{background:#0d1725;border:1px solid #283850;border-radius:8px;padding:12px;font-size:11px;line-height:1.8;margin-top:15px}.snapshot-box div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #1c2b40;padding:4px 0}.snapshot-box div:last-child{border-bottom:0}.snapshot-box span{color:#8092aa}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.compact-modal{max-width:420px}.notifications-list{display:grid;gap:9px}.notification-item{background:#0e1826;border:1px solid #26374d;border-radius:8px;padding:11px}.notification-item strong{font-size:11px}.notification-item p{font-size:10px;color:#a3b1c4;line-height:1.5;margin:5px 0}.notification-item small{font-size:9px;color:#71839c}.toast-stack{position:fixed;right:22px;bottom:22px;display:grid;gap:8px;z-index:20}.toast{max-width:360px;background:#1a293d;border:1px solid #405876;color:#dce8f8;box-shadow:var(--shadow);border-radius:9px;padding:12px 15px;font-size:11px;animation:toast-in .2s ease}.toast.error{border-color:#8d4551;background:#35242c}.toast.success{border-color:#32735d;background:#17352e}@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.login-screen{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 20%,rgba(65,112,185,.18),transparent 38%),var(--bg)}.login-card{width:min(390px,100%);background:linear-gradient(145deg,#172337,#101927);border:1px solid #30415a;border-radius:17px;padding:32px;box-shadow:var(--shadow)}.login-card h1{font-size:27px}.login-card p{font-size:11px;margin-bottom:22px}.login-card label{margin-bottom:8px}.form-error{color:#f29aa4;font-size:10px;margin-top:10px;min-height:14px}.mobile-brand{align-items:center;gap:8px}.brand-mark.small{width:29px;height:29px;border-radius:9px;font-size:10px}.sidebar .subtle{margin-top:4px}
@media(max-width:1100px){.sidebar{width:210px}.main-area{margin-left:210px}.page{padding:28px 25px}.topbar{padding:0 25px}.summary-grid{grid-template-columns:repeat(2,1fr)}.instance-grid{gap:12px}.instance-actions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{width:100%;height:60px;inset:auto 0 0 0;padding:5px 9px;border-right:0;border-top:1px solid var(--stroke);background:rgba(12,18,29,.98)}.brand-lockup,.side-label,.sidebar-bottom{display:none}.side-nav{height:100%;grid-template-columns:repeat(4,1fr);gap:3px}.nav-link{justify-content:center;flex-direction:column;gap:3px;text-align:center;padding:4px 2px;font-size:9px}.nav-icon{font-size:16px}.nav-count{display:none}.main-area{margin-left:0;padding-bottom:62px}.topbar{height:58px;padding:0 14px}.breadcrumb{display:none}.mobile-brand{display:flex}.live-indicator{font-size:9px}.top-actions{gap:7px}.icon-btn{width:31px;height:31px}.page{padding:23px 14px 35px}.page-intro{align-items:flex-start;flex-direction:column;margin-bottom:22px}.page-intro h1{font-size:27px}.intro-actions{width:100%}.summary-grid{gap:8px;margin-bottom:26px}.summary-card{padding:12px;min-height:72px;gap:9px}.summary-icon{width:30px;height:30px}.summary-card span{font-size:9px}.summary-card strong{font-size:18px}.section-heading{align-items:flex-start;flex-direction:column;gap:7px}.instance-grid,.bottom-grid,.settings-grid{grid-template-columns:1fr}.instance-card{padding:15px}.diagnostic-toolbar{align-items:stretch;flex-direction:column}.segmented{overflow-x:auto}.segmented button{white-space:nowrap}.table-wrap{margin:0 -6px}.data-table th,.data-table td{padding:10px 7px}.modal{padding:17px}.toast-stack{left:12px;right:12px;bottom:73px}.toast{max-width:none}.log-output{max-height:55vh;font-size:10px}.instance-actions{grid-template-columns:repeat(4,1fr)}.instance-actions .btn{font-size:9px}}

/* Remote access controls (Tailscale Funnel) */
.check-label{display:flex!important;align-items:center;gap:9px!important;grid-template-columns:auto 1fr!important;font-size:11px!important;color:#c3d0e1!important}
.check-label input{width:16px!important;height:16px;accent-color:#6ba8ff}
.remote-link-box{display:grid;gap:8px;padding:12px;border:1px solid #2d405a;background:#0c1521;border-radius:9px;min-width:0}
.remote-url{color:#90bbfa;font-size:12px;font-weight:700;overflow-wrap:anywhere;text-decoration:none}
.remote-url:hover{text-decoration:underline}
.remote-url.muted{color:#8190a6;font-weight:500}
.remote-buttons{display:flex;gap:8px;flex-wrap:wrap}
.remote-buttons .btn{flex:0 0 auto}
.remote-access-card{grid-column:1/-1}

/* Multi-instance manager */
.instance-setting-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.instance-setting-head h4{overflow-wrap:anywhere}.add-instance-box{display:grid;gap:12px;border:1px dashed #3c5575;border-radius:9px;padding:14px;margin-top:14px;background:rgba(23,38,58,.35)}.add-instance-box h4{margin:0;font:700 12px 'Manrope';color:#dce7f6}.add-instance-box label{display:grid;gap:7px;color:#9aabc1;font-size:10px;font-weight:600}.add-instance-box input{width:100%;background:#0c1521;color:#dce7f5;border:1px solid #304057;border-radius:7px;padding:10px 11px;outline:none}.add-instance-box input:focus{border-color:#6aa5f1;box-shadow:0 0 0 3px rgba(89,147,222,.12)}.add-instance-box code{color:#b9cbe2}


/* Tunnel startup/preflight feedback */
.tunnel-feedback {
  margin-top: 12px; padding: 11px 13px; border: 1px solid var(--border, #2b3445);
  border-radius: 10px; background: rgba(100, 116, 139, .10); color: var(--text, #e5e7eb);
  font-size: .9rem; line-height: 1.5; overflow-wrap: anywhere;
}
.tunnel-feedback.error { border-color: rgba(239, 68, 68, .45); background: rgba(239, 68, 68, .09); color: #fecaca; }
.tunnel-feedback.success { border-color: rgba(34, 197, 94, .35); background: rgba(34, 197, 94, .08); color: #bbf7d0; }

/* Farming dashboard */
.farm-filter{min-width:190px;background:#0e1826;color:var(--text);border:1px solid var(--stroke);border-radius:8px;padding:10px 12px}
.farm-instance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0 20px}
.farm-instance-card{min-width:0;background:linear-gradient(145deg,#141e2d,#101824);border:1px solid var(--stroke);border-radius:13px;padding:16px;box-shadow:0 8px 26px rgba(0,0,0,.12)}
.farm-instance-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}
.farm-instance-head h3{font-size:16px;margin:4px 0}
.farm-instance-head small{font:10px Consolas,monospace;color:#8495ad;overflow-wrap:anywhere}
.farm-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:8px 0 13px;color:#899bb3;font-size:10px}
.farm-live-state{border-radius:30px;padding:4px 9px;font-size:9px;font-weight:800;letter-spacing:.5px}
.farm-live-state.playing{color:#8ee2c0;background:#15372f;border:1px solid #285f4d}
.farm-live-state.paused{color:#e8c68a;background:#3b3020;border:1px solid #69502d}
.farm-metrics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.farm-metric{min-width:0;padding:11px;border:1px solid #29394f;background:#0d1725;border-radius:9px}
.farm-metric span,.farm-metric small{display:block;color:#8294ac;font-size:10px}
.farm-metric strong{display:block;font:800 17px 'Manrope';color:#e8f0fc;margin:6px 0 4px;overflow-wrap:anywhere}
.farm-metric small{font-size:9px;color:#80d8b6}
.farm-subtitle{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#91a4bf;margin:15px 0 8px}
.farm-booty-list{display:flex;flex-wrap:wrap;gap:7px}
.farm-booty-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid #30415b;background:#101c2c;border-radius:20px;padding:7px 10px;color:#bdcce0;font-size:10px}
.farm-booty-chip b{color:#f1f5fb}.farm-booty-chip small{color:#80d8b6;font-size:9px}
.farm-setup-card{margin-top:9px;padding:13px;border:1px dashed #405574;background:rgba(35,54,80,.25);border-radius:9px}
.farm-setup-card strong{font-size:12px}.farm-setup-card p{color:#94a5bb;font-size:10px;line-height:1.55;margin:6px 0 11px}.farm-setup-card.error{border-color:#74444e;background:rgba(100,38,48,.16)}
.farm-rewards-panel{margin-top:16px}
.farm-reward-list{display:grid;gap:0}
.farm-reward-item{display:flex;align-items:center;gap:11px;padding:11px 2px;border-top:1px solid #243044;min-width:0}
.farm-reward-item:first-child{border-top:0}
.farm-reward-icon{width:34px;height:34px;flex:0 0 34px;border:1px solid #4b3f2b;background:#382d1d;border-radius:10px;display:grid;place-items:center;color:#f0c36f;font-size:17px}
.farm-reward-main{flex:1;min-width:0}.farm-reward-main strong{display:block;font-size:11px}.farm-reward-main small{display:block;color:#8092aa;font-size:9px;margin-top:4px;overflow-wrap:anywhere}
.farm-reward-amount{font:800 13px 'Manrope';color:#83dfb9;white-space:nowrap}

/* Mobile-first touch refinements */
@media(max-width:760px){
  .sidebar{height:calc(66px + env(safe-area-inset-bottom));padding:5px 5px calc(5px + env(safe-area-inset-bottom));}
  .side-nav{grid-template-columns:repeat(6,minmax(0,1fr));gap:1px}
  .nav-link{min-width:0;min-height:52px;padding:5px 1px;font-size:9px;gap:3px;border-radius:8px}
  .nav-link .nav-icon{font-size:18px;width:auto;line-height:1}
  .nav-link .nav-text{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}
  .main-area{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .topbar{height:58px;padding:0 12px}
  .top-actions{gap:8px}.icon-btn{width:42px;height:42px;min-width:42px;font-size:19px;border-radius:11px}
  .page{padding:20px 12px 30px}
  .page-intro{gap:13px;margin-bottom:18px}.page-intro h1{font-size:25px}.page-intro p{font-size:12px}
  .intro-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%}.intro-actions .btn{min-height:44px;padding:10px 12px}
  .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .summary-card{min-width:0;padding:11px;min-height:72px}.summary-card span{font-size:9px}.summary-card strong{font-size:17px}
  .instance-grid,.bottom-grid,.settings-grid,.farm-instance-grid{grid-template-columns:minmax(0,1fr)}
  .instance-card{padding:14px}
  .instance-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .instance-actions .btn{min-height:46px;padding:10px 8px;font-size:11px}
  .tools-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .tool-chip{min-height:44px;padding:10px 8px;font-size:11px;text-align:center}
  .profile-row{flex-wrap:wrap}.profile-row select{flex-basis:100%;min-height:44px}.profile-row .btn{min-height:44px;flex:1}
  .btn{min-height:44px}.btn.small{min-height:40px}
  .diagnostic-toolbar label,.settings-grid label,.add-instance-box label{font-size:12px}
  .diagnostic-toolbar select,.settings-grid label input,.add-instance-box input,.login-card input,.profile-row select{min-height:45px;font-size:16px}
  .settings-grid .panel-card,.panel-card{padding:14px}
  .remote-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.remote-buttons .btn{min-height:44px}
  .remote-access-card .remote-buttons:last-of-type{grid-template-columns:1fr}
  .farm-filter{min-width:0;width:100%;min-height:44px;font-size:16px}
  .farm-instance-card{padding:14px}.farm-instance-head h3{font-size:17px}
  .farm-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .farm-metric{padding:10px}.farm-metric strong{font-size:16px}
  .farm-reward-item{gap:9px;padding:12px 0}.farm-reward-icon{width:36px;height:36px;flex-basis:36px}.farm-reward-main strong{font-size:12px}.farm-reward-amount{font-size:12px}
  .farm-notice{font-size:11px}
  .table-wrap{margin:0 -4px}.data-table th,.data-table td{padding:10px 6px;font-size:10px}
  .modal{width:calc(100% - 20px);max-height:calc(100dvh - 24px);overflow:auto;padding:16px;border-radius:14px}
  .modal-actions{display:grid;grid-template-columns:1fr 1fr}.modal-actions .btn{min-height:46px}
  .toast-stack{left:10px;right:10px;bottom:calc(76px + env(safe-area-inset-bottom))}
  .toast{max-width:none;font-size:12px;padding:13px 14px}
  .log-output{font-size:11px;max-height:52dvh;min-height:230px}
  .login-screen{min-height:100dvh;padding:16px}.login-card{padding:25px 20px;border-radius:15px}.login-card h1{font-size:25px}.login-card input{font-size:16px}
}
@media(min-width:761px) and (max-width:1100px){.farm-instance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* DMPlugin MCP Bridge cards and mobile-friendly telemetry details */
.instance-mcp-actions,
.farm-card-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-top:12px; }
.farm-extra-metrics { display:flex; align-items:center; gap:12px; padding:10px 2px; border-top:1px solid var(--border, rgba(127,127,127,.18)); color:var(--muted); font-size:.88rem; }
.farm-extra-metrics b { color:var(--text); margin-left:5px; }
.farm-hero-row { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; padding:10px 2px; color:var(--muted); font-size:.82rem; }
.farm-card-footer { border-top:1px solid var(--border, rgba(127,127,127,.18)); padding-top:10px; }
.farm-card-footer .field-help { min-width:0; overflow-wrap:anywhere; }
@media (max-width: 680px) {
  .instance-mcp-actions, .farm-card-footer { align-items:stretch; }
  .instance-mcp-actions > button, .farm-card-footer > button { min-height:44px; width:100%; }
  .farm-hero-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .farm-extra-metrics { font-size:.9rem; }
}


/* DMPlugin live map: relative coordinate radar, based only on MCP-returned entities. */
.map-toolbar{display:flex;align-items:end;gap:9px;flex-wrap:wrap}
.map-toolbar label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:700;min-width:150px}
.map-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:14px;margin-top:14px;align-items:start}
.map-radar-card,.map-entity-panel{min-width:0}
.map-radar{min-height:240px;display:grid;place-items:center;border:1px solid var(--stroke);background:radial-gradient(ellipse at center,rgba(42,80,120,.18),rgba(7,14,24,.94));border-radius:12px;overflow:hidden}
.map-svg{display:block;width:100%;height:auto;min-height:240px;max-height:600px}
.map-grid-line{stroke:rgba(116,151,188,.16);stroke-width:1;stroke-dasharray:4 8}
.map-boundary{fill:rgba(10,22,37,.12);stroke:rgba(120,156,196,.25);stroke-width:1.5}
.map-point{cursor:help;outline:none}
.map-point circle{stroke:#0b1320;stroke-width:1.5;fill:#a6b5c9}
.map-point.npc circle{fill:#efb35d}.map-point.player circle{fill:#f1787b}.map-point.pet circle{fill:#9c8bf0}.map-point.box circle{fill:#73d6ae}.map-point.mine circle{fill:#e58a53}.map-point.portal circle{fill:#60b9f4}
.map-point.hero circle:first-child{fill:#f5f8ff;stroke:#5fa8ff;stroke-width:2.5}.map-point .hero-ring{fill:none;stroke:#68b4ff;stroke-width:1.5;opacity:.7}
.map-point:focus circle{stroke:#fff;stroke-width:3}
.map-legend{display:flex;flex-wrap:wrap;gap:12px;padding:12px 2px 2px;color:var(--muted);font-size:10px}
.map-legend span{display:inline-flex;align-items:center;gap:6px}
.map-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#a6b5c9;flex:0 0 9px}
.map-dot.hero{background:#f5f8ff;outline:2px solid #5fa8ff}.map-dot.npc{background:#efb35d}.map-dot.player{background:#f1787b}.map-dot.pet{background:#9c8bf0}.map-dot.box{background:#73d6ae}.map-dot.portal{background:#60b9f4}.map-dot.mine{background:#e58a53}
.map-entity-list{display:grid;gap:0;max-height:580px;overflow:auto}
.map-entity-row{display:flex;align-items:center;gap:9px;padding:10px 1px;border-top:1px solid var(--stroke);min-width:0}
.map-entity-row:first-child{border-top:0}
.map-entity-main{flex:1;min-width:0}.map-entity-main strong{display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-entity-main small{display:block;color:var(--muted);font-size:9px;margin-top:4px}
.map-entity-type{color:var(--muted);font-size:9px;text-transform:uppercase}
@media(max-width:760px){
 .map-layout{grid-template-columns:minmax(0,1fr);gap:10px}
 .map-toolbar{display:grid;grid-template-columns:1fr 1fr;width:100%}
 .map-toolbar label{min-width:0}.map-toolbar label select{width:100%;min-height:44px;font-size:16px}
 .map-toolbar button{grid-column:1/-1;min-height:46px}
 .map-radar{min-height:190px}.map-svg{min-height:190px}
 .map-entity-list{max-height:340px}
 .map-legend{gap:9px 12px;font-size:10px}
}

/* Extended read-only DMPLUGIN telemetry: ores, PET, NPC events and repairs. */
.farm-detail-block { margin-top: 8px; padding-top: 2px; }
.farm-resource-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.farm-resource-chip { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; padding:9px 10px; border:1px solid #29394f; background:#0d1725; border-radius:9px; color:#aebed2; font-size:11px; }
.farm-inventory-warning { margin-top:8px; padding:8px 10px; border:1px solid rgba(213,165,88,.35); border-radius:8px; background:rgba(106,75,32,.18); color:#e4c58f; font-size:10px; line-height:1.5; }
.farm-resource-chip span { overflow-wrap:anywhere; }
.farm-resource-chip b { color:#e9f1fc; white-space:nowrap; }
@media(max-width:760px) {
  .farm-detail-block { margin-top:10px; }
  .farm-resource-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .farm-resource-chip { min-height:42px; padding:9px; font-size:11px; }
}


/* 0.3.7 — cleaner account overview, explicit window/MCP states, map geometry */
.instance-card-clean { padding:18px; }
.instance-state-strip { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:15px 0 13px; padding:12px; border:1px solid #27384e; background:rgba(9,17,28,.65); border-radius:10px; }
.instance-state-strip .state-label { font-size:22px; line-height:1.1; }
.instance-state-strip small { display:block; margin-top:4px; color:var(--muted); font-size:10px; }
.instance-state-tags { display:grid; gap:6px; justify-items:end; }
.state-tag { display:inline-flex; align-items:center; gap:5px; padding:5px 8px; border-radius:20px; border:1px solid var(--stroke); color:#b6c4d7; background:#172234; font-size:9px; white-space:nowrap; }
.state-tag.good { color:#83dfb9; border-color:#285b4c; background:#15342e; }
.state-tag.warn { color:#edc27e; border-color:#6a4b26; background:#423322; }
.state-tag.dim { color:#bdc7d5; border-color:#485568; background:#252f3e; }
.state-tag.unknown { color:#aebbd0; }
.instance-metrics-clean { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:14px; }
.instance-section-label { color:#7187a4; font-size:9px; font-weight:800; letter-spacing:1.3px; margin:13px 0 8px; }
.instance-actions-primary { grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.instance-actions-primary .btn { min-height:42px; font-size:11px; }
.instance-secondary-controls { border-top:1px solid #29374b; margin-top:13px; padding-top:11px; }
.instance-secondary-controls summary { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#b5c7df; font-weight:700; font-size:11px; cursor:pointer; list-style:none; }
.instance-secondary-controls summary::-webkit-details-marker { display:none; }
.instance-secondary-controls summary::after { content:'＋'; color:#82adf0; font-size:16px; }
.instance-secondary-controls[open] summary::after { content:'−'; }
.instance-secondary-controls summary span { color:#7f90a7; font-size:9px; font-weight:500; margin-left:auto; }
.instance-secondary-controls .tools-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:11px; padding-top:10px; }
.instance-secondary-controls .tool-chip { min-height:37px; }
.instance-secondary-controls .tool-chip:disabled { opacity:.38; cursor:not-allowed; }
.instance-context-note { margin-top:12px; padding:10px 11px; border-radius:8px; font-size:10px; line-height:1.5; }
.instance-context-note.neutral { color:#b5c7df; border:1px solid #3a4e68; background:rgba(37,58,82,.35); }
.instance-context-note.warning { color:#e9c58f; border:1px solid #66502f; background:rgba(61,47,29,.45); }
.instance-footnote { display:block; margin-top:11px; padding-top:10px; border-top:1px solid #243246; }
.map-view-actions { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.map-view-actions .btn { min-height:38px; }
.map-axis-label { fill:#8297b1; font:10px 'DM Sans',sans-serif; }
.map-target-line { stroke:#e4d18b; stroke-width:1.8; stroke-dasharray:5 5; opacity:.8; }
.map-target circle { fill:#e4d18b; stroke:#2b2618; stroke-width:2; }
.hero-direction { fill:#eaf4ff; stroke:#4f91dd; stroke-width:1.2; }
.map-radar { background:radial-gradient(ellipse at center,rgba(42,80,120,.14),rgba(7,14,24,.97)); }
.map-svg { min-height:0; max-height:660px; }
@media(max-width:760px) {
  .instance-state-strip { align-items:flex-start; flex-direction:column; gap:9px; }
  .instance-state-tags { width:100%; display:flex; justify-content:flex-start; flex-wrap:wrap; }
  .instance-metrics-clean { gap:6px; }
  .instance-metrics-clean .metric { padding:9px 8px; }
  .instance-metrics-clean .metric span { font-size:9px; }
  .instance-metrics-clean .metric strong { font-size:11px; }
  .instance-actions-primary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .instance-actions-primary .btn { min-height:46px; padding:8px 4px; font-size:10px; }
  .instance-secondary-controls .tools-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .instance-secondary-controls summary { min-height:42px; }
  .map-view-actions { display:grid; grid-template-columns:44px 1fr 44px; width:100%; }
  .map-view-actions #map-refresh { grid-column:1/-1; }
  .map-view-actions .btn { min-height:44px; }
  .map-radar { min-height:0; }
  .map-svg { width:100%; height:auto; }
}


/* 0.3.7 refinement: clearer instance hierarchy and honest UI/MCP separation */
.instance-card-clean { display:flex; flex-direction:column; gap:0; }
.instance-card-clean .instance-top { padding-bottom:12px; border-bottom:1px solid rgba(68,88,116,.35); }
.instance-primary-state { min-width:110px; }
.instance-state-tags { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:6px; }
.instance-card-section { margin-top:13px; padding:0; }
.instance-card-section .instance-section-label { margin-top:0; }
.instance-card-section .profile-row { margin:0; padding:10px; border:1px solid #26374d; border-radius:9px; background:rgba(12,21,34,.65); }
.profile-footnote { margin-top:6px; color:var(--muted); font-size:10px; line-height:1.4; }
.profile-footnote strong { color:#cbd9ec; font-weight:700; }
.instance-control-section { padding-top:12px; border-top:1px solid rgba(68,88,116,.35); }
.instance-actions-primary .btn { min-height:44px; }
.instance-secondary-controls { margin-top:12px; }
.instance-secondary-controls[data-ui-unavailable="true"] summary span { color:#e7bd7c; }
.instance-context-note { font-size:11px; }
.map-view-actions #map-fit.active, .map-view-actions #map-center.active { border-color:#4b83c8; background:#1b3555; color:#e4f0ff; }
.map-view-actions { gap:8px; }
.map-entity-row small { line-height:1.45; }

@media(max-width:760px) {
  .sidebar { height:calc(62px + env(safe-area-inset-bottom)); padding:4px 5px env(safe-area-inset-bottom); }
  .main-area { padding-bottom:calc(66px + env(safe-area-inset-bottom)); }
  .side-nav { grid-template-columns:repeat(6,minmax(0,1fr)); gap:1px; }
  .nav-link { min-width:0; padding:5px 1px; font-size:8px; line-height:1.1; overflow:hidden; }
  .nav-icon { font-size:17px; line-height:1.1; }
  .nav-link .nav-text { display:block; font-size:8px; white-space:nowrap; letter-spacing:-.2px; }
  .nav-link[data-page="operations"] .nav-text { font-size:0; }
  .nav-link[data-page="operations"] .nav-text::after { content:'Task'; font-size:8px; }
  .nav-link[data-page="diagnostics"] .nav-text { font-size:0; }
  .nav-link[data-page="diagnostics"] .nav-text::after { content:'Log'; font-size:8px; }
  .nav-link[data-page="settings"] .nav-text { font-size:0; }
  .nav-link[data-page="settings"] .nav-text::after { content:'Setup'; font-size:8px; }
  .page { padding:18px 12px 28px; }
  .page-intro { margin-bottom:17px; }
  .summary-grid { margin-bottom:20px; }
  .summary-card { min-height:66px; padding:10px; }
  .summary-card strong { font-size:17px; }
  .section-heading { margin-bottom:10px; }
  .instance-card-clean { padding:13px; border-radius:12px; }
  .instance-card-clean .instance-state-strip { margin:10px 0 10px; padding:10px; }
  .instance-primary-state .state-label { font-size:21px; }
  .instance-state-tags { justify-content:flex-start; }
  .state-tag { font-size:9px; }
  .instance-metrics-clean { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .instance-card-section .profile-row { display:grid; grid-template-columns:1fr auto; gap:7px; }
  .instance-card-section .profile-row label { grid-column:1/-1; }
  .instance-card-section .profile-row select { width:100%; min-width:0; min-height:44px; font-size:16px; }
  .instance-card-section .profile-row .btn { min-height:44px; }
  .instance-actions-primary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .instance-actions-primary .btn { min-height:48px; padding:7px 3px; font-size:10px; }
  .instance-secondary-controls summary { min-height:44px; }
  .map-toolbar { grid-template-columns:1fr; }
  .map-view-actions { grid-template-columns:44px minmax(0,1fr) minmax(0,1fr) 44px; }
  .map-view-actions #map-refresh { grid-column:1/-1; }
  .map-view-actions .btn { min-height:44px; padding:8px 5px; font-size:11px; }
  .map-radar { min-height:0; padding:4px; }
  .map-svg { min-height:0; width:100%; height:auto; }
  .map-legend { gap:8px 10px; padding-top:10px; }
  .map-entity-panel { padding:13px; }
}

/* 0.3.8 — MCP live configuration editor and starfield radar */
.config-toolbar { display:flex; align-items:end; gap:10px; }
.config-toolbar label { display:grid; gap:5px; min-width:190px; color:var(--muted); font-size:10px; font-weight:700; }
.config-layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr); gap:14px; margin-top:14px; align-items:start; }
.config-tree-card,.config-editor-card { min-width:0; }
.config-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:7px; padding:11px 12px; margin-bottom:8px; border:1px solid #293b52; border-radius:9px; background:rgba(11,20,33,.7); color:#6e87a5; font-size:10px; }
.config-breadcrumb button { border:0; background:transparent; color:#94b8e8; cursor:pointer; font-size:10px; padding:2px; }
.config-breadcrumb button.current { color:#eff6ff; font-weight:800; }
.config-tree { display:grid; gap:5px; max-height:580px; overflow:auto; padding-right:3px; }
.config-node { display:flex; align-items:center; gap:10px; width:100%; text-align:left; padding:11px 12px; border:1px solid rgba(54,75,101,.65); border-radius:9px; background:rgba(15,27,43,.74); color:#dce8f8; cursor:pointer; min-width:0; }
.config-node:hover { border-color:#4e80b6; background:rgba(27,48,72,.8); }
.config-node-icon { color:#7faee8; font-size:18px; width:18px; text-align:center; flex:0 0 18px; }
.config-node.folder .config-node-icon { color:#d6b36b; }
.config-node-main { display:grid; gap:3px; flex:1; min-width:0; }
.config-node-main strong { font-size:11px; overflow-wrap:anywhere; }
.config-node-main small { color:var(--muted); font-size:9px; line-height:1.4; overflow-wrap:anywhere; }
.config-node-value { max-width:34%; color:#a9c5e9; font-size:10px; text-align:right; overflow-wrap:anywhere; }
.config-node-arrow { color:#7189a8; font-size:18px; }
.config-category-empty { display:grid; justify-items:start; align-content:center; min-height:280px; padding:22px; color:var(--muted); }
.config-folder-symbol { display:grid; place-items:center; width:52px; height:52px; border-radius:13px; background:rgba(64,106,158,.18); color:#8bb8f1; font-size:27px; margin-bottom:14px; }
.config-category-empty h4 { margin:0 0 6px; color:#e5edf9; font-size:16px; }
.config-category-empty p { max-width:390px; font-size:11px; line-height:1.6; }
.config-category-empty span { margin-top:8px; font-size:10px; }
.config-value-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin:2px 0 11px; }
.config-type-badge { border:1px solid #3a5c83; border-radius:20px; padding:5px 9px; color:#9ec8f7; background:rgba(40,78,119,.24); font-size:9px; font-weight:800; letter-spacing:.5px; }
.config-path { color:#8295af; font-family:ui-monospace,monospace; font-size:9px; overflow-wrap:anywhere; }
.config-editor-card h4 { margin:8px 0 6px; color:#ecf3ff; font-size:16px; }
.config-description { margin:0 0 14px; color:#9aabc1; font-size:11px; line-height:1.6; }
.config-current-value { display:grid; gap:5px; padding:12px; margin:12px 0 15px; border:1px solid #2c425b; border-radius:9px; background:rgba(6,14,25,.64); }
.config-current-value small { color:#788da8; font-size:8px; font-weight:800; letter-spacing:1px; }
.config-current-value strong { color:#c7e2ff; font-family:ui-monospace,monospace; font-size:14px; overflow-wrap:anywhere; }
.config-field-label { display:grid; gap:7px; color:#b7c6db; font-size:10px; font-weight:700; }
.field-control,.config-field-label textarea { width:100%; box-sizing:border-box; }
.config-edit-form { display:grid; gap:10px; }
.config-lower-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; margin-top:14px; align-items:start; }
.npc-config-list { display:grid; gap:8px; max-height:620px; overflow:auto; }
.npc-config-row { display:grid; grid-template-columns:minmax(105px,1.3fr) repeat(3,minmax(65px,.55fr)) auto; gap:8px; align-items:end; padding:10px; border:1px solid rgba(50,71,98,.7); border-radius:9px; background:rgba(12,22,36,.6); }
.npc-config-name { min-width:0; align-self:center; display:grid; gap:4px; }
.npc-config-name strong { font-size:11px; overflow-wrap:anywhere; }
.npc-config-name small { color:var(--muted); font-size:9px; }
.npc-config-row label { display:grid; gap:5px; color:#8fa2ba; font-size:9px; }
.npc-config-row input,.npc-config-row select { min-width:0; width:100%; min-height:34px; padding:6px; font-size:11px; }
.npc-config-actions { display:flex; gap:4px; align-items:center; }
.npc-config-actions .btn { min-height:34px; padding:6px 8px; font-size:9px; }
.mcp-tool-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.mcp-tool-card { display:grid; align-content:start; gap:8px; padding:11px; min-width:0; border:1px solid rgba(55,78,105,.75); border-radius:10px; background:rgba(13,24,39,.7); }
.mcp-tool-card-head { display:flex; align-items:center; justify-content:space-between; gap:6px; }
.mcp-tool-card-head strong { color:#dce9f8; font-size:11px; }
.capability-live { border-radius:12px; padding:4px 6px; background:rgba(37,113,86,.18); border:1px solid rgba(62,151,116,.4); color:#8be1bd; font-size:8px; font-weight:800; }
.mcp-tool-card p { margin:0; color:#8fa2ba; font-size:9px; line-height:1.5; min-height:28px; }
.mcp-tool-field { display:grid; gap:4px; color:#aabbd0; font-size:9px; }
.mcp-tool-field input,.mcp-tool-field select,.mcp-tool-field textarea { width:100%; min-width:0; box-sizing:border-box; min-height:34px; padding:6px 8px; font-size:10px; }
.mcp-tool-card .btn { min-height:34px; font-size:9px; }
.mcp-capabilities-panel { margin-top:14px; }
.mcp-capability-columns { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.mcp-capability-columns h4 { color:#aabbd0; font-size:10px; letter-spacing:.5px; text-transform:uppercase; }
.mcp-capability-list { display:grid; gap:7px; max-height:340px; overflow:auto; }
.mcp-capability-row { display:flex; align-items:flex-start; gap:9px; padding:8px 9px; border:1px solid rgba(47,68,93,.55); border-radius:8px; background:rgba(12,22,36,.46); }
.mcp-capability-row > div { min-width:0; display:grid; gap:4px; }
.mcp-capability-row strong { color:#d4e2f3; font-size:10px; }
.mcp-capability-row small { color:#8397b1; font-size:8px; line-height:1.5; overflow-wrap:anywhere; }
.mcp-capability-row code { color:#a6c5e9; }
.capability-dot { width:7px; height:7px; border-radius:50%; flex:0 0 7px; margin-top:4px; background:#7dd9b3; box-shadow:0 0 9px rgba(125,217,179,.5); }
.capability-dot.tool { background:#82b8f5; box-shadow:0 0 9px rgba(130,184,245,.4); }
.config-safety-note { margin-top:14px; font-size:10px; line-height:1.55; }
.map-radar { position:relative; background-color:#060c16; background-image:radial-gradient(ellipse at 22% 28%,rgba(43,91,142,.32),transparent 42%),radial-gradient(ellipse at 77% 72%,rgba(86,55,122,.22),transparent 44%),radial-gradient(ellipse at 55% 12%,rgba(31,90,103,.16),transparent 36%),radial-gradient(circle at 15% 75%,rgba(255,255,255,.68) 0 1px,transparent 1.7px),radial-gradient(circle at 63% 27%,rgba(205,226,255,.55) 0 1px,transparent 1.5px),radial-gradient(circle at 84% 18%,rgba(255,255,255,.55) 0 1px,transparent 1.5px),radial-gradient(circle at 38% 68%,rgba(192,215,255,.5) 0 1px,transparent 1.6px),linear-gradient(145deg,#081322,#050911 68%,#111125); background-size:auto,auto,auto,173px 139px,221px 187px,197px 151px,239px 173px,auto; }
.map-radar::after { content:""; position:absolute; inset:0; pointer-events:none; opacity:.24; background:repeating-linear-gradient(115deg,transparent 0 76px,rgba(110,149,201,.07) 77px,transparent 80px 142px); mix-blend-mode:screen; }
.map-svg { position:relative; z-index:1; filter:drop-shadow(0 8px 20px rgba(0,0,0,.32)); }
.map-grid-line { stroke:rgba(137,176,220,.11); stroke-dasharray:2 10; }
.map-boundary { fill:rgba(5,13,24,.12); stroke:rgba(133,170,214,.34); }

@media(max-width:1050px) {
 .config-layout { grid-template-columns:minmax(0,1fr); }
 .config-lower-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:760px) {
 .config-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; width:100%; }
 .config-toolbar label { min-width:0; }
 .config-toolbar button { min-height:44px; }
 .config-layout,.config-lower-grid { grid-template-columns:minmax(0,1fr); gap:10px; }
 .config-tree { max-height:390px; }
 .config-node { padding:10px 8px; }
 .config-node-value { max-width:26%; font-size:9px; }
 .npc-config-row { grid-template-columns:minmax(0,1fr) minmax(70px,.6fr) minmax(65px,.55fr); gap:7px; }
 .npc-config-name { grid-column:1/-1; }
 .npc-config-actions { grid-column:1/-1; justify-content:flex-end; }
 .mcp-tool-grid { grid-template-columns:minmax(0,1fr); }
 .mcp-capability-columns { grid-template-columns:minmax(0,1fr); gap:10px; }
 .config-safety-note { font-size:9px; }
 .side-nav { grid-template-columns:repeat(7,minmax(0,1fr)); }
 .nav-link { font-size:7px; }
 .nav-link .nav-text { font-size:7px; }
}

/* 0.3.8 configuration tree filtering and bridge truncation notice */
.config-tree-search{display:grid;gap:6px;margin-bottom:10px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.config-tree-search input{width:100%;min-width:0;border:1px solid var(--stroke);border-radius:9px;background:rgba(7,14,24,.72);color:var(--text);padding:10px 11px;font:inherit;font-size:13px;text-transform:none;letter-spacing:normal;outline:none}
.config-tree-search input:focus{border-color:var(--blue)}
.config-node[hidden]{display:none}
.config-truncated{margin-top:10px;font-size:12px}

/* 0.3.9 — usability refresh: larger type, clearer hierarchy and more generous controls */
:root {
  --bg:#0a111d;
  --panel:#131e2d;
  --panel2:#1a293c;
  --stroke:#304158;
  --text:#eef4fc;
  --muted:#a6b5c9;
  --blue:#80b7ff;
  --shadow:0 16px 42px rgba(0,0,0,.24);
}
body { font-size:15px; line-height:1.5; }
h1 { font-size:clamp(27px,2.5vw,34px); letter-spacing:-.8px; }
h2 { font-size:21px; }
h3 { font-size:17px; }
.muted { font-size:13px; line-height:1.55; }
.eyebrow { font-size:11px; letter-spacing:1.35px; }
.sidebar { padding:24px 16px; }
.brand-lockup { padding-bottom:28px; }
.side-label { font-size:10px; }
.side-nav { display:flex; flex-direction:column; gap:5px; }
.nav-link { min-height:46px; padding:11px 13px; gap:12px; font-size:13px; }
.nav-text { font-size:13px; }
.main-area { min-width:0; }
.topbar { padding-inline:clamp(18px,3vw,40px); }
.page { padding:clamp(22px,3vw,38px) clamp(18px,3vw,40px) 52px; }
.page-intro { margin-bottom:23px; }
.page-intro .muted { max-width:760px; }
.panel-card { padding:21px; border-radius:14px; }
.panel-title { margin-bottom:18px; }
.panel-title p { font-size:12px; }
.section-heading p { font-size:13px; }
.btn { min-height:42px; padding:10px 15px; font-size:13px; border-radius:9px; }
.btn.small { min-height:36px; padding:7px 11px; font-size:12px; }
.btn.ghost,.btn.secondary { border-color:#3a4d66; }
input,select,textarea { font-size:14px; }
.field-help { font-size:12px; line-height:1.6; color:#aab9cc; }
.notice { padding:13px 15px; font-size:13px; line-height:1.6; border-radius:10px; }
.empty-state { font-size:13px; line-height:1.6; }
.section-note { font-size:10px; }
.summary-card { padding:19px; min-height:92px; }
.summary-card span { font-size:12px; }
.instance-card { padding:21px; }
.instance-name h3 { font-size:18px; }
.instance-actions .btn { min-height:40px; font-size:12px; }
.metric span { font-size:10px; }
.metric strong { font-size:13px; }
.quick-action strong { font-size:13px; }
.quick-action small { font-size:12px; line-height:1.5; }
.config-mode-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.config-mode-tabs button { min-height:44px; padding:10px 16px; border:1px solid var(--stroke); border-radius:10px; background:#172437; color:#bdcde1; font-size:13px; font-weight:700; }
.config-mode-tabs button.active { background:linear-gradient(130deg,#244b78,#1a3453); border-color:#5487c0; color:#f1f7ff; box-shadow:inset 0 0 0 1px rgba(128,183,255,.12); }
.plugin-catalog-panel { margin-bottom:15px; }

.plugin-jab-tools { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:16px; padding:14px 16px; border:1px solid var(--border,#344962); border-radius:12px; background:rgba(20,34,52,.55); }
.plugin-jab-copy { display:grid; gap:4px; min-width:0; }
.plugin-jab-copy strong { color:var(--text,#edf5ff); font-size:13px; }
.plugin-jab-copy span { color:var(--muted,#a6b6ca); font-size:12px; line-height:1.45; }
.plugin-jab-report { display:grid; gap:10px; margin-top:12px; }
.plugin-jab-report-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.plugin-jab-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.plugin-jab-summary > div { display:grid; gap:3px; padding:12px; border:1px solid var(--border,#344962); border-radius:10px; background:rgba(12,22,36,.55); }
.plugin-jab-summary strong { color:var(--text,#edf5ff); font-size:20px; }
.plugin-jab-summary span { color:var(--muted,#a6b6ca); font-size:11px; }
.plugin-jab-window { border:1px solid var(--border,#344962); border-radius:10px; overflow:hidden; background:rgba(12,22,36,.42); }
.plugin-jab-window summary { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 14px; cursor:pointer; color:var(--text,#edf5ff); font-size:13px; font-weight:700; }
.plugin-jab-window summary small { color:var(--muted,#a6b6ca); font-size:10px; font-weight:600; text-align:right; }
.plugin-jab-rows { display:grid; border-top:1px solid var(--border,#344962); }
.plugin-jab-row { display:grid; grid-template-columns:110px minmax(0,1fr) minmax(90px,180px); gap:10px; align-items:center; padding:9px 12px; border-bottom:1px solid rgba(80,105,135,.24); }
.plugin-jab-row:last-child { border-bottom:0; }
.plugin-jab-row.plugin-hit { background:rgba(55,119,188,.14); }
.plugin-jab-role,.plugin-jab-states { color:var(--muted,#a6b6ca); font-size:10px; overflow-wrap:anywhere; }
.plugin-jab-label { display:grid; gap:3px; min-width:0; }
.plugin-jab-label strong { color:var(--text,#edf5ff); font-size:12px; overflow-wrap:anywhere; }
.plugin-jab-label small { color:var(--muted,#a6b6ca); font-size:10px; overflow-wrap:anywhere; }
@media (max-width:700px) {
  .plugin-jab-tools { align-items:stretch; flex-direction:column; }
  .plugin-jab-tools button { width:100%; }
  .plugin-jab-summary { grid-template-columns:1fr 1fr; }
  .plugin-jab-report-head { align-items:stretch; flex-direction:column; }
  .plugin-jab-row { grid-template-columns:1fr; gap:4px; }
  .plugin-jab-window summary { align-items:flex-start; flex-direction:column; }
  .plugin-jab-window summary small { text-align:left; }
}

.plugin-catalog { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:10px; }
.plugin-catalog-card { display:grid; grid-template-columns:38px minmax(0,1fr) auto 14px; align-items:center; gap:11px; min-width:0; padding:14px; border:1px solid #344962; border-radius:12px; background:#101b2a; color:var(--text); text-align:left; transition:border-color .15s,background .15s,transform .15s; }
.plugin-catalog-card:hover { border-color:#638fbe; background:#172940; transform:translateY(-1px); }
.plugin-catalog-card.active { border-color:#75aef0; background:#1b3451; box-shadow:inset 0 0 0 1px rgba(117,174,240,.15); }
.plugin-catalog-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; background:#203b5d; color:#a8d0ff; font-size:20px; }
.plugin-catalog-copy { min-width:0; display:grid; gap:4px; }
.plugin-catalog-copy strong { color:#edf5ff; font-size:13px; overflow-wrap:anywhere; }
.plugin-catalog-copy small { color:#a6b6ca; font-size:11px; line-height:1.4; overflow-wrap:anywhere; }
.plugin-catalog-state { padding:4px 7px; border-radius:20px; border:1px solid #485b72; color:#c1ccda; background:#253448; font-size:9px; font-weight:800; white-space:nowrap; }
.plugin-catalog-state.loaded { color:#8fe1bd; border-color:#326b58; background:#16372f; }
.plugin-catalog-arrow { color:#91acd0; font-size:20px; }
.config-layout { gap:16px; align-items:stretch; }
.config-tree-card,.config-editor-card { min-height:400px; }
.config-node { min-height:58px; padding:11px 12px; }
.config-node-main strong { font-size:13px; }
.config-node-main small { font-size:11px; line-height:1.45; }
.config-node-value { font-size:11px; }
.config-breadcrumb button { min-height:35px; padding:6px 10px; font-size:12px; }
.config-current-value strong { font-size:15px; }
.config-field-label { font-size:12px; }
.field-control,.config-field-label textarea { min-height:44px; font-size:14px; }
.config-lower-grid { gap:16px; }
.npc-config-row { padding:13px; }
.npc-config-name strong { font-size:13px; }
.npc-config-name small,.npc-config-row label { font-size:11px; }
.npc-config-row input,.npc-config-row select { min-height:40px; font-size:13px; }
.mcp-tool-card { padding:14px; }
.mcp-tool-card-head strong { font-size:13px; }
.mcp-tool-card p { font-size:11px; }
.mcp-tool-field { font-size:11px; }
.mcp-tool-field input,.mcp-tool-field select,.mcp-tool-field textarea { min-height:40px; font-size:13px; }
.mcp-capability-columns h4 { font-size:12px; }
.mcp-capability-row { padding:11px; }
.mcp-capability-row strong { font-size:12px; }
.mcp-capability-row small { font-size:10px; }
.config-safety-note { font-size:12px; }

/* Map canvas: a true full-map viewport with image/SWF backgrounds and a separate SVG telemetry layer. */
.map-assets-panel { margin:0 0 16px; }
.map-assets-controls { display:grid; grid-template-columns:minmax(180px,1.2fr) auto minmax(220px,1.2fr) auto auto; align-items:end; gap:10px; }
.map-assets-controls label { display:grid; gap:7px; min-width:0; color:#aebed2; font-size:12px; font-weight:700; }
.map-assets-controls label strong { color:#eaf2fd; }
.map-assets-controls input[type=file],.map-assets-controls select { width:100%; min-width:0; min-height:43px; border:1px solid #3b4e66; border-radius:9px; background:#0e1928; color:#eaf2fd; padding:8px 10px; font-size:12px; }
.map-assets-controls select[multiple] { min-height:90px; padding:6px; }
.map-toolbar label { font-size:12px; }
.map-toolbar select { min-height:42px; }
.map-layout { grid-template-columns:minmax(0,1.65fr) minmax(270px,.75fr); gap:16px; }
.map-radar-card { overflow:hidden; }
.map-radar { position:relative; display:block; width:100%; aspect-ratio:900/557; min-height:300px; max-height:720px; padding:0; border-radius:12px; background:#050a12; isolation:isolate; }
.map-radar::after { z-index:1; opacity:.08; }
.map-background-layer { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; background:#050a12; }
.map-background-layer.has-original { background:#050a12; }
.map-background-item { position:absolute; inset:0; width:100%; height:100%; overflow:hidden; }
.map-background-item img,.map-ruffle-player { display:block; width:100%; height:100%; object-fit:fill; border:0; }
.map-background-missing,.map-background-error { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px; padding:25px; color:#8fa3bd; text-align:center; background:radial-gradient(ellipse at center,rgba(31,64,100,.42),rgba(5,10,18,.96)); }
.map-background-missing strong { color:#d5e6fa; font-size:15px; }
.map-background-missing span,.map-background-error { font-size:12px; line-height:1.55; }
.map-svg { position:absolute; inset:0; z-index:2; width:100%; height:100%; min-height:0; max-height:none; filter:drop-shadow(0 2px 4px rgba(0,0,0,.5)); }
.map-image-bounds { fill:transparent; stroke:rgba(175,210,245,.7); stroke-width:2; vector-effect:non-scaling-stroke; }
.map-boundary { fill:rgba(4,11,19,.03); stroke:rgba(190,218,246,.5); stroke-width:1.2; vector-effect:non-scaling-stroke; }
.map-axis-label { fill:rgba(220,235,252,.65); font-size:10px; }
.map-entity-main strong { font-size:13px; }
.map-entity-main small { font-size:11px; line-height:1.45; }
.map-entity-type { font-size:10px; }
.map-legend { font-size:12px; gap:10px 15px; }
.map-view-actions { display:flex; flex-wrap:wrap; gap:7px; }
.map-view-actions button { min-height:40px; }

@media(max-width:1150px) {
  .map-assets-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .map-assets-controls .map-upload-field { grid-column:1/-1; }
}
@media(max-width:1050px) {
  .map-layout { grid-template-columns:minmax(0,1fr); }
  .map-entity-list { max-height:360px; }
}
@media(max-width:760px) {
  .sidebar { position:fixed; inset:auto 0 0; width:100%; height:auto; padding:7px 8px calc(7px + env(safe-area-inset-bottom)); border-right:0; border-top:1px solid var(--stroke); background:rgba(11,17,28,.98); backdrop-filter:blur(16px); }
  .brand-lockup,.side-label,.sidebar-bottom { display:none; }
  .side-nav { display:flex; flex-direction:row; gap:3px; overflow-x:auto; scrollbar-width:none; }
  .side-nav::-webkit-scrollbar { display:none; }
  .nav-link { flex:0 0 70px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:2px; min-height:58px; padding:6px 4px; border-radius:9px; text-align:center; font-size:10px; }
  .nav-link .nav-icon { width:auto; font-size:18px; line-height:1.1; }
  .nav-link .nav-text { font-size:9px; line-height:1.2; }
  .nav-count { position:absolute; margin:0; transform:translate(19px,-16px); }
  .main-area { margin-left:0; padding-bottom:calc(70px + env(safe-area-inset-bottom)); }
  .topbar { height:58px; padding:0 15px; }
  .page { padding:22px 14px 32px; }
  .page-intro { align-items:flex-start; flex-direction:column; gap:13px; }
  .intro-actions { width:100%; flex-wrap:wrap; }
  .summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .summary-card { padding:13px; min-height:76px; }
  .bottom-grid { grid-template-columns:minmax(0,1fr); }
  .panel-card { padding:15px; }
  .config-mode-tabs { display:grid; grid-template-columns:1fr 1fr; }
  .config-mode-tabs button { padding:9px 8px; min-height:46px; font-size:12px; }
  .plugin-catalog { grid-template-columns:minmax(0,1fr); }
  .config-layout,.config-lower-grid { grid-template-columns:minmax(0,1fr); }
  .config-tree-card,.config-editor-card { min-height:0; }
  .map-assets-controls { grid-template-columns:minmax(0,1fr); }
  .map-assets-controls .map-upload-field { grid-column:auto; }
  .map-assets-controls button { width:100%; }
  .map-toolbar { display:grid; grid-template-columns:1fr 1fr; }
  .map-toolbar label { min-width:0; }
  .map-view-actions { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .map-view-actions button { grid-column:auto; min-height:44px; }
  .map-radar { min-height:230px; aspect-ratio:900/557; }
  .map-svg { min-height:0; }
  .map-entity-list { max-height:330px; }
  .npc-config-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .npc-config-name,.npc-config-actions { grid-column:1/-1; }
  .mcp-capability-columns { grid-template-columns:minmax(0,1fr); }
}

/* 0.3.9 usability pass — normalize secondary pages and form labels too. */
label { line-height:1.45; }
.page label { font-size:12px; }
.page input:not([type=checkbox]):not([type=radio]):not([type=file]),
.page select,
.page textarea { min-height:42px; padding:9px 11px; border-radius:9px; }
.page input[type=checkbox],.page input[type=radio] { accent-color:#70aef5; }
.data-table th { padding:12px 11px; font-size:11px; letter-spacing:.65px; }
.data-table td { padding:12px 11px; font-size:12px; line-height:1.45; }
.table-link { font-size:12px; }
.operation-status,.status-badge { font-size:10px; }
.farm-card-title,.farm-instance-card h3,.farm-rewards-panel h3 { font-size:15px; }
.farm-instance-card,.farm-rewards-panel { padding:18px; }
.farm-resource-chip { font-size:12px; }
.farm-reward-row,.farm-reward-item { font-size:12px; }
.diagnostic-toolbar label,.settings-grid label { font-size:12px; }
.log-output { font-size:12px; line-height:1.55; }
.path-info { gap:8px; }
.path-info span { font-size:11px; }
.path-info code { font-size:11px; overflow-wrap:anywhere; }
@media(max-width:760px) {
  .page label { font-size:12px; }
  .data-table th,.data-table td { padding:10px 8px; }
  .farm-instance-card,.farm-rewards-panel { padding:14px; }
  .log-output { font-size:11px; }
}
.mobile-logout { display:none; }
@media(max-width:760px) {
  .mobile-logout { display:grid; }
}

/* 0.3.11: expandable technical diagnostics remain readable on desktop and mobile. */
.plugin-jab-raw { margin-top: 12px; border: 1px solid var(--border,#344962); border-radius: 10px; overflow: hidden; }
.plugin-jab-raw summary { padding: 11px 13px; color: var(--text,#edf5ff); cursor: pointer; font-size: 12px; font-weight: 700; }
.plugin-jab-raw pre { max-height: 420px; overflow: auto; margin: 0; padding: 14px; border-top: 1px solid var(--border,#344962); background: rgba(5,12,22,.72); color: #c5d5e8; font: 11px/1.5 Consolas,monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.plugin-jab-report .notice ul { margin: 7px 0 0 18px; padding: 0; }
.plugin-jab-report .notice li { margin: 3px 0; }

.plugin-jab-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.plugin-jab-actions button:disabled{opacity:.55;cursor:wait}

/* 0.3.17 map usability: keep the map primary and reveal asset maintenance only when requested. */
#page-map .map-page-intro { align-items:flex-end; }
#page-map .map-toolbar { display:grid; grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) auto; align-items:end; gap:9px; }
#page-map .map-toolbar label { min-width:0; }
#page-map .map-layout { grid-template-columns:minmax(0,2.15fr) minmax(250px,.85fr); gap:14px; align-items:stretch; margin-top:12px; }
#page-map .map-radar-card { display:flex; flex-direction:column; min-height:0; }
#page-map .map-radar-heading { align-items:center; gap:10px; }
#page-map .map-radar-heading-actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }
#page-map .map-radar-heading-actions .btn { white-space:nowrap; }
#page-map .map-canvas-toolbar { display:flex; align-items:center; gap:7px; flex-wrap:wrap; padding:0 0 11px; }
#page-map .map-canvas-toolbar .btn { min-height:34px; }
#page-map .map-toolbar-spacer { flex:1; }
#page-map .map-zoom-level { min-width:44px; text-align:center; color:var(--muted); font-size:11px; font-variant-numeric:tabular-nums; }
#page-map .map-radar { width:100%; min-height:380px; max-height:calc(100vh - 290px); aspect-ratio:900/557; }
#page-map .map-entity-panel { display:flex; flex-direction:column; min-height:0; }
#page-map .map-entity-search-wrap { display:grid; gap:5px; margin:2px 0 10px; color:var(--muted); font-size:11px; font-weight:600; }
#page-map .map-entity-search-wrap input { width:100%; min-width:0; }
#page-map .map-entity-list { min-height:190px; max-height:calc(100vh - 440px); overflow:auto; padding-right:4px; }
#page-map .map-entity-results-count { display:block; margin:-4px 0 7px; color:var(--muted); font-size:10px; }
#page-map .map-assets-panel { margin:14px 0 0; padding:0; overflow:hidden; }
#page-map .map-assets-summary { display:flex; align-items:center; gap:14px; min-height:66px; padding:14px 17px; cursor:pointer; list-style:none; }
#page-map .map-assets-summary::-webkit-details-marker { display:none; }
#page-map .map-assets-summary::marker { content:""; }
#page-map .map-assets-summary-main { display:grid; gap:3px; flex:1; min-width:0; }
#page-map .map-assets-summary-main strong { color:var(--text); font-size:13px; }
#page-map .map-assets-summary-main small { color:var(--muted); font-size:11px; }
#page-map .map-assets-chevron { color:var(--muted); transition:transform .18s ease; }
#page-map .map-assets-panel[open] .map-assets-chevron { transform:rotate(180deg); }
#page-map .map-assets-content { border-top:1px solid var(--stroke); padding:15px 17px 17px; }
#page-map .map-assets-content .field-help { margin:0 0 12px; line-height:1.55; }
#page-map .map-wiki-source-row { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:0 0 8px; }
#page-map .map-wiki-toggle { display:flex; align-items:center; gap:8px; color:var(--text); font-size:12px; font-weight:600; }
#page-map .map-wiki-toggle input { accent-color:var(--accent); }
#page-map .map-wiki-source-row a { color:var(--accent); font-size:11px; text-decoration:none; }
#page-map .map-wiki-source-row a:hover { text-decoration:underline; }
#page-map .map-wiki-legal-note { font-size:10px; color:var(--muted); margin-bottom:14px!important; }
.map-background-layer.has-sector-map { background:#050a12; }
.map-background-item.map-wiki-reference img { object-fit:fill; opacity:.74; filter:saturate(.9) brightness(.78); }

#page-map .map-assets-controls { grid-template-columns:minmax(180px,1.1fr) auto minmax(180px,1.1fr) auto auto; align-items:end; gap:9px; }
#page-map .map-assets-controls .map-folder-upload-field { grid-column:1/3; }
#page-map .map-folder-upload-field input { font-size:11px; }
#page-map .map-radar:fullscreen { width:100vw; height:100vh; max-height:none; min-height:0; aspect-ratio:auto; border:0; border-radius:0; background:#050a12; }
#page-map .map-radar:fullscreen .map-svg { width:100%; height:100%; }
#page-map .map-radar:fullscreen .map-background-layer { width:100%; height:100%; }
#page-map .map-radar:fullscreen .map-background-item img,
#page-map .map-radar:fullscreen .map-ruffle-player { object-fit:contain; }
#page-map .map-entity-row[hidden] { display:none; }

@media(max-width:1150px) {
  #page-map .map-layout { grid-template-columns:minmax(0,1.7fr) minmax(230px,.8fr); }
  #page-map .map-assets-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #page-map .map-assets-controls .map-upload-field,
  #page-map .map-assets-controls .map-folder-upload-field { grid-column:1/-1; }
}
@media(max-width:900px) {
  #page-map .map-layout { grid-template-columns:minmax(0,1fr); }
  #page-map .map-radar { min-height:300px; max-height:none; }
  #page-map .map-entity-list { max-height:360px; }
}
@media(max-width:760px) {
  #page-map .map-page-intro { align-items:stretch; }
  #page-map .map-toolbar { width:100%; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  #page-map .map-toolbar button { grid-column:1/-1; min-height:43px; }
  #page-map .map-radar-heading { align-items:flex-start; }
  #page-map .map-radar-heading-actions { flex-direction:column; align-items:flex-end; gap:6px; }
  #page-map .map-canvas-toolbar { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  #page-map .map-canvas-toolbar .map-toolbar-spacer { display:none; }
  #page-map .map-canvas-toolbar #map-zoom-out { grid-column:1; }
  #page-map .map-canvas-toolbar #map-zoom-in { grid-column:3; }
  #page-map .map-zoom-level { grid-column:2; grid-row:2; }
  #page-map .map-radar { min-height:245px; max-height:none; aspect-ratio:900/557; }
  #page-map .map-assets-summary { gap:8px; padding:13px; }
  #page-map .map-assets-summary-main small { line-height:1.4; }
  #page-map .map-assets-summary .section-note { font-size:9px; }
  #page-map .map-assets-content { padding:13px; }
  #page-map .map-assets-controls { grid-template-columns:minmax(0,1fr); }
  #page-map .map-assets-controls .map-upload-field,
  #page-map .map-assets-controls .map-folder-upload-field { grid-column:auto; }
  #page-map .map-assets-controls button { width:100%; }
}


/* 0.3.17 map refinement: full-width canvas, optional entity drawer, honest Wiki reference rendering. */
#page-map .map-layout.map-layout-single { grid-template-columns:minmax(0,1fr); }
#page-map .map-radar { min-height:440px; max-height:calc(100vh - 260px); }
#page-map .map-entity-panel { margin-top:12px; padding:0; overflow:hidden; }
#page-map .map-entity-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:62px; padding:13px 17px; list-style:none; cursor:pointer; }
#page-map .map-entity-summary::-webkit-details-marker { display:none; }
#page-map .map-entity-summary > span:first-child { display:grid; gap:4px; }
#page-map .map-entity-summary strong { color:var(--text); font-size:13px; }
#page-map .map-entity-summary small { color:var(--muted); font-size:11px; }
#page-map .map-entity-panel[open] .map-entity-summary { border-bottom:1px solid var(--stroke); }
#page-map .map-entity-content { padding:14px 17px 17px; }
#page-map .map-entity-content .map-entity-list { max-height:440px; }
#page-map .map-background-attribution { margin:9px 2px 0; color:var(--muted); font-size:10px; line-height:1.5; }
#page-map .map-background-attribution a { color:#9cc8fa; text-decoration:underline; }
#page-map .map-wiki-reference { display:grid; place-items:center; background:#050a12; }
#page-map .map-wiki-reference img { width:100%; height:100%; object-fit:contain; opacity:.94; filter:saturate(.92) brightness(.9); }
#page-map .map-canvas-toolbar button:disabled { opacity:.4; cursor:not-allowed; }
@media(max-width:760px) {
  #page-map .map-radar { min-height:280px; max-height:none; aspect-ratio:900/557; }
  #page-map .map-entity-summary { padding:12px; }
  #page-map .map-entity-content { padding:12px; }
}

.map-load-error{display:flex;flex-direction:column;gap:9px;max-width:560px;padding:24px;text-align:center}
.map-load-error strong{color:var(--text)}
.map-load-error span{color:var(--muted);overflow-wrap:anywhere;font-size:12px}
.map-load-error small{color:var(--muted);font-size:11px}

/* Plugin inspector: read-only inventory of the verified DarkBot Plugin page. */
.plugin-jab-inventory,.plugin-jab-dialogs{display:grid;gap:10px;padding:13px;border:1px solid var(--border,#344962);border-radius:10px;background:rgba(12,22,36,.38)}
.plugin-jab-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text,#edf5ff);font-size:13px}
.plugin-jab-section-head span{color:var(--muted,#a6b6ca);font-size:10px;font-weight:700;letter-spacing:.06em}
.plugin-jab-inventory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.plugin-jab-inventory-card{display:grid;gap:5px;min-width:0;padding:10px 11px;border:1px solid rgba(80,105,135,.35);border-radius:8px;background:rgba(20,34,52,.52)}
.plugin-jab-inventory-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.plugin-jab-inventory-top strong{color:var(--text,#edf5ff);font-size:12px;overflow-wrap:anywhere}
.plugin-jab-inventory-card small{color:var(--muted,#a6b6ca);font-size:10px;line-height:1.4;overflow-wrap:anywhere}
.plugin-jab-state{flex:none;padding:3px 6px;border-radius:5px;font-size:9px;font-weight:800;letter-spacing:.04em}
.plugin-jab-state.active{background:rgba(22,163,74,.16);color:#86efac}
.plugin-jab-state.inactive{background:rgba(148,163,184,.12);color:#cbd5e1}
.plugin-jab-dialogs{border-color:rgba(59,130,246,.35)}

/* Search, status filter and stable ordering for the plugin inventory. */
.plugin-jab-filterbar{display:grid;grid-template-columns:minmax(220px,2fr) minmax(130px,.8fr) minmax(150px,1fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid rgba(80,105,135,.28);border-radius:9px;background:rgba(5,12,22,.26)}
.plugin-jab-filterbar label{display:grid;gap:5px;min-width:0}
.plugin-jab-filterbar label>span{color:var(--muted,#a6b6ca);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.plugin-jab-filterbar input,.plugin-jab-filterbar select{width:100%;min-width:0;min-height:38px;padding:8px 10px;border:1px solid var(--border,#344962);border-radius:7px;background:#101b2a;color:var(--text,#edf5ff);font:inherit;font-size:12px}
.plugin-jab-filterbar input::placeholder{color:#8092a9}
.plugin-jab-filter-count{align-self:center;color:var(--muted,#a6b6ca);font-size:10px;font-weight:700;white-space:nowrap}
.plugin-jab-inventory-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));align-items:stretch}
.plugin-jab-inventory-card{grid-template-rows:auto 1fr auto;min-height:112px}
.plugin-jab-inventory-top strong{line-height:1.4}
.plugin-jab-inventory-card>small{overflow-wrap:anywhere}
@media(max-width:760px){.plugin-jab-filterbar{grid-template-columns:1fr 1fr}.plugin-jab-search{grid-column:1/-1}.plugin-jab-filter-count{grid-column:1/-1;justify-self:start}}
@media(max-width:420px){.plugin-jab-filterbar{grid-template-columns:1fr}.plugin-jab-search{grid-column:auto}.plugin-jab-filter-count{grid-column:auto}}


/* 0.3.28 — Interactive sector maps: local 330×200 maps + live coordinate overlays. */
#page-map .map-radar { cursor:grab; touch-action:none; user-select:none; }
#page-map .map-radar.is-panning { cursor:grabbing; }
#page-map .map-svg { cursor:grab; }
#page-map .map-point { cursor:pointer; pointer-events:visiblePainted; }
#page-map .map-point.selected circle:first-child { stroke:#fff6a8; stroke-width:3.5; filter:drop-shadow(0 0 5px rgba(255,232,120,.95)); }
#page-map .map-point.selected .hero-ring { stroke:#fff6a8; opacity:1; }
#page-map .map-target { cursor:pointer; }
#page-map .map-inspector { position:absolute; z-index:5; top:12px; right:12px; display:grid; gap:4px; max-width:min(260px,65%); padding:10px 12px; border:1px solid rgba(130,174,222,.55); border-radius:9px; background:rgba(7,15,26,.88); box-shadow:0 8px 24px rgba(0,0,0,.36); color:#eaf3ff; pointer-events:none; backdrop-filter:blur(8px); }
#page-map .map-inspector strong { font-size:12px; }
#page-map .map-inspector span,#page-map .map-inspector small { color:#aebfd4; font-size:10px; }
#page-map .map-entity-row { cursor:pointer; border-radius:7px; padding-left:8px; padding-right:8px; }
#page-map .map-entity-row:hover,#page-map .map-entity-row:focus-visible { background:rgba(77,132,190,.13); outline:1px solid rgba(113,164,219,.35); }
#page-map .map-entity-row.selected { background:rgba(72,132,197,.19); outline:1px solid rgba(124,177,235,.58); }
#page-map .map-background-layer { pointer-events:none; }


/* 0.3.28 — interactive local sector cartography. */
#page-map .map-background-layer.has-sector-map { background:#050a12; }
#page-map .map-sector-reference { background:#050a12; }
#page-map .map-point { cursor:pointer; pointer-events:all; }
#page-map .map-point .map-hit-area { fill:rgba(0,0,0,.001); stroke:none; pointer-events:all; }
#page-map .map-point .map-point-visible { pointer-events:none; }
#page-map .map-point.selected .map-point-visible { stroke:#fff6a8; stroke-width:3.5; filter:drop-shadow(0 0 5px rgba(255,232,120,.95)); }
#page-map .map-cursor-coordinates { color:var(--muted,#9fb0c7); font-size:10px; font-variant-numeric:tabular-nums; white-space:nowrap; }
@media(max-width:760px){#page-map .map-cursor-coordinates{display:none;}}

#page-map .map-sector-reference { display:block; place-items:initial; background:#050a12; }
#page-map .map-sector-reference img { width:100%; height:100%; object-fit:fill; opacity:1; filter:none; image-rendering:auto; }

/* Interactive map inspector and coordinate pick marker. */
#page-map .map-inspector { pointer-events:auto; }
#page-map .map-coordinate-pin { pointer-events:none; }
#page-map .map-coordinate-pin circle:first-child { fill:rgba(255,192,79,.12); stroke:#ffd27a; stroke-width:2.2; vector-effect:non-scaling-stroke; }
#page-map .map-coordinate-pin path { stroke:#ffd27a; stroke-width:1.6; vector-effect:non-scaling-stroke; }
#page-map .map-coordinate-pin circle:last-child { fill:#fff1bc; stroke:#a56c20; stroke-width:1.2; vector-effect:non-scaling-stroke; }
#page-map .map-copy-coordinate { justify-self:start; margin-top:3px; padding:5px 8px; border:1px solid rgba(140,180,225,.45); border-radius:6px; background:rgba(38,67,99,.78); color:#eaf3ff; font-size:10px; cursor:pointer; }
#page-map .map-copy-coordinate:hover { background:rgba(54,91,132,.95); }


/* 0.3.29 — one fit-to-entities viewport, with a stable canvas aspect ratio. */
#page-map .map-radar {
  display:block;
  width:min(100%, 1165px);
  height:auto;
  aspect-ratio:900 / 557;
  min-height:0;
  max-height:none;
  margin-inline:auto;
  padding:0;
  overflow:hidden;
}
#page-map .map-radar .map-svg,
#page-map .map-radar .map-background-layer {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
#page-map .map-radar .map-background-item img,
#page-map .map-radar .map-ruffle-player { width:100%; height:100%; object-fit:fill; }
#page-map .map-canvas-toolbar #map-fit.active { border-color:#4b83c8; background:#1b3555; color:#e4f0ff; }
@media(max-width:760px) {
  #page-map .map-radar { width:100%; height:auto; min-height:0; max-height:none; aspect-ratio:900 / 557; }
  #page-map .map-canvas-toolbar { grid-template-columns:44px 60px 44px; justify-content:end; }
  #page-map .map-canvas-toolbar .map-toolbar-spacer { display:none; }
  #page-map .map-canvas-toolbar #map-fit { grid-column:1/-1; }
  #page-map .map-canvas-toolbar #map-zoom-out { grid-column:1; }
  #page-map .map-canvas-toolbar #map-zoom-in { grid-column:3; }
  #page-map .map-canvas-toolbar #map-zoom-level { grid-column:2; grid-row:2; }
}

/* Profile Scheduler */
.scheduler-info{line-height:1.65;margin:-3px 0 18px}
.scheduler-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(290px,.8fr);gap:14px;align-items:start;margin-bottom:14px}
.scheduler-create-card,.scheduler-active-card,.scheduler-list-card,.scheduler-history-card{min-width:0}
.scheduler-form{display:grid;gap:13px}
.scheduler-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.scheduler-form-grid label{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:11px;font-weight:600}
.scheduler-span-two{grid-column:1/-1}
.scheduler-weekdays{display:grid;gap:8px}
.weekday-options{display:flex;flex-wrap:wrap;gap:7px}
.weekday-options label{display:flex;align-items:center;gap:6px;border:1px solid var(--stroke);border-radius:8px;padding:8px 10px;color:var(--text);font-size:11px}
.weekday-options input{margin:0}
.scheduler-duration-fields{display:grid;gap:10px;border:1px solid var(--stroke);border-radius:10px;padding:12px;background:rgba(15,26,42,.38)}
.scheduler-duration-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.scheduler-duration-row label{display:grid;gap:6px}
.scheduler-duration-fields .field-help{margin:0;line-height:1.55}
.scheduler-timezone{font-size:10px;color:var(--muted)}
.form-feedback{min-height:15px;font-size:11px;color:var(--muted)}
.form-feedback.success{color:#73d7ac}.form-feedback.error{color:#f19ba4}
.scheduler-active-list,.scheduler-list,.scheduler-history{display:grid;gap:9px}
.scheduler-active-row,.scheduler-history-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--stroke)}
.scheduler-active-row:last-child,.scheduler-history-row:last-child{border-bottom:0}
.scheduler-active-main,.scheduler-history-row>div{display:grid;gap:4px;min-width:0}
.scheduler-active-main strong,.scheduler-history-row strong{font-size:12px}
.scheduler-active-main span,.scheduler-history-row small{font-size:10px;color:var(--muted);line-height:1.5}
.scheduler-pill{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid var(--stroke);border-radius:30px;padding:4px 8px;font-size:9px;font-weight:700;color:var(--muted);background:rgba(18,29,45,.55)}
.scheduler-pill.good{border-color:rgba(57,190,140,.25);color:#7bd7b1;background:rgba(39,147,106,.08)}
.scheduler-pill.warning{border-color:rgba(230,165,81,.3);color:#eab66f;background:rgba(190,121,42,.08)}
.scheduler-pill.muted{opacity:.75}
.scheduler-rule{display:grid;grid-template-columns:minmax(160px,.7fr) minmax(0,1.7fr) auto;align-items:center;gap:14px;padding:14px;border:1px solid var(--stroke);border-radius:11px;background:rgba(16,27,43,.42)}
.scheduler-rule.is-disabled{opacity:.66}
.scheduler-rule-time{display:grid;gap:5px}
.scheduler-rule-time span{font-size:8px;letter-spacing:1.2px;color:var(--muted);font-weight:700}
.scheduler-rule-time strong{font-size:12px;font-variant-numeric:tabular-nums}
.scheduler-rule-time small{font-size:9px;color:var(--muted)}
.scheduler-rule-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.scheduler-rule-title>strong{font-size:12px}
.scheduler-rule-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px;color:var(--muted);font-size:10px}
.scheduler-last-message{font-size:10px;color:var(--muted);line-height:1.45;margin-top:6px;overflow-wrap:anywhere}
.scheduler-rule-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.scheduler-history-row{align-items:center}
@media(max-width:1050px){.scheduler-layout{grid-template-columns:minmax(0,1fr)}.scheduler-active-card{order:2}}
@media(max-width:760px){
  .scheduler-form-grid{grid-template-columns:minmax(0,1fr)}
  .scheduler-span-two{grid-column:1}
  .scheduler-rule{grid-template-columns:minmax(0,1fr);gap:8px}
  .scheduler-rule-actions{justify-content:flex-start}
  .scheduler-rule-time{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
  .scheduler-rule-time span{width:100%}
  .scheduler-active-row,.scheduler-history-row{align-items:flex-start;flex-direction:column}
  .weekday-options{gap:5px}.weekday-options label{padding:7px 8px}
}
@media(max-width:760px){
  .side-nav{display:flex;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;gap:3px;overscroll-behavior-x:contain}
  .side-nav::-webkit-scrollbar{display:none}
  .side-nav .nav-link{flex:0 0 66px;min-width:66px}
}
