:root{color-scheme:dark;--bg:#0d1413;--panel:#131c1a;--line:#29352f;--muted:#93a29a;--text:#e7ece4;--accent:#c6e1ae;--gold:#dfba77}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:14px}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:4px}button{cursor:pointer;background:transparent;color:inherit;border:1px solid var(--line);border-radius:7px;padding:9px 14px;transition:background .18s,border-color .18s}button:hover{background:#23342a;border-color:#64775f}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}p{line-height:1.6}h1,h2,p{margin-top:0}h2{font-size:14px;font-weight:550;letter-spacing:.01em;margin:0}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:.17em;color:var(--muted);font-weight:600}.wordmark{font-size:17px;letter-spacing:.21em;font-weight:650;white-space:nowrap}.wordmark span{color:var(--accent);font-weight:350;font-size:16px;letter-spacing:.1em;margin-left:5px}.primary{background:var(--accent);color:#152111;border:0;font-weight:550}.primary:hover{background:#dcefc9;color:#152111}.quiet{font-size:12px}.text-button{border:none;padding:0;color:var(--accent);font-size:12px;text-align:left}.text-button:hover{background:none;text-decoration:underline}.badge{font-size:9px;letter-spacing:.09em;color:var(--muted);white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}header{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px;padding:0 36px}.header-title{color:var(--muted);font-size:12px;flex:1}.header-title span{padding:0 14px;color:#536458}.connection{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.connection i,.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent)}.connection i.off{background:var(--gold)}.intro{display:flex;justify-content:space-between;align-items:center;padding:38px 36px 32px}.intro .eyebrow{margin-bottom:10px}.intro h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.035em;font-size:38px;margin:0}.stats{display:flex;gap:36px}.stats>div{display:flex;flex-direction:column;gap:5px}.stats strong{font-size:27px;font-weight:400;font-variant-numeric:tabular-nums}.stats span{font-size:10px;color:var(--muted)}.workspace{padding:0 24px;display:grid;grid-template-columns:205px minmax(360px,1fr) 280px;gap:12px;min-height:570px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-heading{padding:20px;display:flex;justify-content:space-between;align-items:center;gap:8px}.residents{display:flex;flex-direction:column}.resident{width:100%;display:flex;align-items:center;gap:10px;padding:14px 18px;border:0;border-radius:0;text-align:left;border-left:2px solid transparent}.resident:hover{background:#1b2922}.resident.selected{background:#203026;border-left-color:var(--accent)}.resident .dot{width:7px;height:7px;flex:none;border-radius:50%}.resident .identity{flex:1;min-width:0}.resident .name{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resident .coords{font-size:10px;color:var(--muted);margin-top:4px;display:block}.resident .pulse{font-size:10px;color:var(--accent)}#agents{max-height:420px;overflow:auto}.sidebar-footer{margin-top:auto;padding:22px 18px;border-top:1px solid var(--line)}.sidebar-footer p{font-size:11px;margin-bottom:9px}.sidebar-footer .eyebrow{font-size:9px}.sidebar-footer #runtime-status{font-size:10px;overflow-wrap:anywhere}.center{display:flex;flex-direction:column}.map-toolbar{display:flex;justify-content:space-between;align-items:center;padding:0 18px;border-bottom:1px solid var(--line);height:58px;flex-shrink:0}.map-toolbar nav{display:flex;height:100%;gap:20px}.tab{border:none;border-radius:0;padding:0;font-size:11px;color:var(--muted);border-bottom:2px solid transparent}.tab:hover{background:none;color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}#map-caption{font-size:10px}#map-wrap{position:relative;flex:1;min-height:460px;overflow:hidden;background:#101a16}#map{width:100%;height:100%;position:absolute;touch-action:none}#map-legend{position:absolute;bottom:15px;left:18px;display:flex;gap:18px;font-size:9px;color:#b2c0b0;pointer-events:none;text-shadow:0 1px 5px #000}.legend-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-right:4px}.map-buttons{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:4px}.map-buttons button{width:30px;height:30px;padding:0;background:#101a16d9;font-size:17px;border-color:#3c4e3d}.timeline{padding:13px 18px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px}.timeline>div{display:flex;gap:8px;align-items:center}.timeline select{font-size:10px;max-width:170px}.activity{max-height:650px;display:flex;flex-direction:column}.activity .panel-heading{padding-bottom:7px}.activity-caption{padding:0 20px;font-size:11px;color:var(--muted)}#events{overflow:auto;padding:0 16px 16px;flex:1}.event{padding:14px 0;border-top:1px solid var(--line)}.event .event-top{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin-bottom:7px}.event .event-actor{color:var(--accent)}.event p{font-size:11px;margin:0;line-height:1.6;overflow-wrap:anywhere}.event details summary{font-size:10px;cursor:pointer;color:var(--muted);margin-top:7px}.event details pre{font-size:10px;color:var(--muted);white-space:pre-wrap;max-height:180px;overflow:auto}.event.observer .event-actor{color:var(--gold)}.empty{padding:25px 4px;color:var(--muted);font-size:12px;line-height:1.7}.bottom-grid{padding:16px 24px 0;display:grid;grid-template-columns:1.3fr 1fr;gap:16px}.inspector,.contact{min-height:260px}.inspector #inspector-content{padding:0 20px 20px}.inspector p,.contact p{font-size:12px}.contact>p{margin:0 20px 18px}.contact form{padding:0 20px 20px}input,textarea,select{background:#101715;color:var(--text);border:1px solid #344337;border-radius:6px;padding:10px 12px}textarea{resize:vertical;width:100%;min-height:85px;margin-top:10px;font-size:12px;line-height:1.5}select{font-size:11px}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:1px solid var(--accent)}.form-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;font-size:11px}.contact button{font-size:11px}#message-status{color:var(--muted)}.resource-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.resource-chip{border:1px solid var(--line);padding:8px 10px;border-radius:6px;font-size:11px;color:var(--muted)}.resource-chip b{color:var(--text);font-weight:500}.notes{padding:14px;background:#101715;border-radius:6px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:200px;overflow:auto;color:#bdcaba;font-size:12px;line-height:1.7}.file-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.file-list button{font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.inspector .small-title{font-size:10px;letter-spacing:.06em;color:var(--muted);margin:15px 0 8px}.publications-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:20px}.publication{padding:18px;border:1px solid var(--line);border-radius:8px;background:#19241e;display:flex;flex-direction:column;gap:12px;align-items:flex-start;min-width:0}.publication .pub-icon{font-family:Georgia,serif;font-size:30px;color:var(--accent)}.publication h3{font-size:12px;font-weight:500;margin:0;overflow-wrap:anywhere}.publication p{font-size:10px;color:var(--muted);margin:0}.publication button{font-size:10px}#publications{flex:1;min-height:460px;max-height:550px;overflow:auto}footer{padding:26px 36px;color:#798b7e;font-size:10px;display:flex;justify-content:space-between;gap:20px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:12vw;overflow:hidden;padding:50px}.login-card{max-width:370px;z-index:1}.login .wordmark{margin-bottom:70px}.login h1{font-family:Georgia,serif;font-size:48px;font-weight:400;line-height:1.1;letter-spacing:-.03em}.login .eyebrow{margin-bottom:17px}.login .muted{font-size:13px;margin-bottom:28px}.login label{display:block;font-size:11px;margin-bottom:9px;color:var(--muted)}.login input{width:100%;font-size:13px}.login .primary{width:100%;display:flex;justify-content:space-between;margin-top:12px;padding:13px 16px}.hint{font-size:10px;color:#778b7a;line-height:1.8;margin-top:24px}.hint code{font-size:10px}.error{color:#e8a889;font-size:12px;margin-top:12px;overflow-wrap:anywhere}.login-orbit{width:380px;height:380px;border:1px solid #3e5140;border-radius:50%;position:relative;transform:rotate(-27deg);background:radial-gradient(ellipse,#2c40294d,transparent 65%)}.login-orbit div{position:absolute;inset:40px;border:1px solid #3e514070;border-radius:50%}.login-orbit div:nth-child(2){inset:90px}.login-orbit div:nth-child(3){inset:140px}.login-orbit i{position:absolute;left:calc(50% - 5px);top:36px;width:9px;height:9px;background:var(--accent);box-shadow:0 0 35px #c6e1ae70;border-radius:50%}dialog{background:var(--panel);color:var(--text);border:1px solid #4a5e47;border-radius:12px;width:min(900px,95vw);max-height:90vh;padding:0}dialog::backdrop{background:#050b09bb;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}.dialog-head h2{overflow-wrap:anywhere}.dialog-head button{padding:4px 8px}.dialog-head+#dialog-body{padding:20px}#dialog-body pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.7;color:#c3d0be}#dialog-body iframe{width:100%;height:60vh;border:0;border-radius:6px;background:white}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#d1e6bb;color:#182415;border-radius:8px;padding:12px 20px;max-width:90vw;z-index:5;font-size:12px}
@media(min-width:1650px){.workspace{grid-template-columns:235px minmax(500px,1fr) 330px}.workspace{min-height:660px}#map-wrap{min-height:550px}.activity{max-height:740px}}@media(max-width:1100px){.workspace{grid-template-columns:170px minmax(330px,1fr)}.activity{grid-column:1/-1;max-height:260px}#events{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.stats{gap:22px}.header-title{display:none}.connection{margin-left:auto}.bottom-grid{grid-template-columns:1fr 1fr}.terrain-key{display:none}}@media(max-width:700px){header{height:65px;padding:0 18px;gap:15px}.connection{font-size:9px}header .quiet{font-size:10px;padding:7px 9px}.wordmark{font-size:14px}.intro{padding:26px 18px;display:block}.intro h1{font-size:34px}.intro .eyebrow{font-size:8px}.stats{margin-top:24px;justify-content:space-between;gap:12px}.stats strong{font-size:24px}.workspace{padding:0 10px;display:flex;flex-direction:column}.residents{order:2}.center{order:1}.activity{order:3;max-height:340px}.residents .panel-heading{padding:16px}.residents #agents{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:215px}.resident{padding:12px}.sidebar-footer{padding:14px 16px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.sidebar-footer .eyebrow{display:none}.sidebar-footer p{margin:0}.sidebar-footer #runtime-status{width:100%;order:2}.sidebar-footer .text-button{margin-left:auto}#map-wrap{min-height:400px}#map-caption{display:none}.map-toolbar{padding:0 14px;height:50px}.map-toolbar nav{gap:25px}.map-toolbar .tab{font-size:11px}#events{display:block}.bottom-grid{padding:12px 10px 0;grid-template-columns:1fr}.panel-heading{padding:18px}.contact form{padding:0 18px 18px}footer{padding:23px 18px;display:block;line-height:1.8}footer span{display:block}.login{padding:35px 24px;justify-content:flex-start}.login-card{width:100%;max-width:420px;margin:auto}.login .wordmark{margin-bottom:55px}.login h1{font-size:43px}.login-orbit{display:none}.timeline{padding:12px;font-size:9px}.timeline select{max-width:140px;font-size:9px}.timeline .text-button{font-size:9px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
