@font-face{font-family:Alegreya Sans;font-weight:400;font-display:swap;src:url(/assets/AlegreyaSans-400-latin-DtLlO8BS.woff2)format("woff2")}@font-face{font-family:Alegreya Sans;font-weight:500;font-display:swap;src:url(/assets/AlegreyaSans-500-latin-DS713u5J.woff2)format("woff2")}@font-face{font-family:Alegreya Sans;font-weight:700;font-display:swap;src:url(/assets/AlegreyaSans-700-latin-DEbcy2sF.woff2)format("woff2")}@font-face{font-family:Alegreya Sans;font-weight:800;font-display:swap;src:url(/assets/AlegreyaSans-800-latin-CpHsWMQ0.woff2)format("woff2")}@font-face{font-family:Alegreya Sans SC;font-weight:700;font-display:swap;src:url(/assets/AlegreyaSansSC-700-latin-B3GxztBF.woff2)format("woff2")}@font-face{font-family:Grenze Gotisch;font-weight:700;font-display:swap;src:url(/assets/GrenzeGotisch-700-latin-BhUVw2FV.woff2)format("woff2")}@font-face{font-family:Grenze Gotisch;font-weight:900;font-display:swap;src:url(/assets/GrenzeGotisch-700-latin-BhUVw2FV.woff2)format("woff2")}:root{--ink:#0c0e13;--slate:#141820;--slate-2:#1b212b;--slate-3:#252c38;--line:#2f3746;--line-soft:#ffffff10;--bronze:#b98b4e;--bronze-light:#e8c586;--bronze-dark:#5e4221;--verdigris:#4fb8a1;--verdigris-light:#8fe3cc;--parchment:#efe4cc;--text:#d8cfbd;--muted:#8f8778;--blood:#d8545a;--ember:#e3a13a;--display:"Grenze Gotisch", Georgia, serif;--sans:"Alegreya Sans", system-ui, sans-serif;--caps:"Alegreya Sans SC", "Alegreya Sans", system-ui, sans-serif;--mono:ui-monospace, "Cascadia Mono", Consolas, monospace;--cursor:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3clinearGradient%20id='gold'%20x1='0'%20y1='0'%20x2='1'%20y2='1'%3e%3cstop%20offset='0'%20stop-color='%23fff6d8'/%3e%3cstop%20offset='.3'%20stop-color='%23f3cf7a'/%3e%3cstop%20offset='.62'%20stop-color='%23b8822f'/%3e%3cstop%20offset='1'%20stop-color='%23f6dc96'/%3e%3c/linearGradient%3e%3clinearGradient%20id='goldv'%20x1='0'%20y1='0'%20x2='0'%20y2='1'%3e%3cstop%20offset='0'%20stop-color='%23fff6d8'/%3e%3cstop%20offset='.42'%20stop-color='%23f3cf7a'/%3e%3cstop%20offset='.66'%20stop-color='%23b07a2c'/%3e%3cstop%20offset='1'%20stop-color='%23f1d184'/%3e%3c/linearGradient%3e%3clinearGradient%20id='steel'%20x1='0'%20y1='0'%20x2='1'%20y2='1'%3e%3cstop%20offset='0'%20stop-color='%234c8f95'/%3e%3cstop%20offset='.45'%20stop-color='%231d3a48'/%3e%3cstop%20offset='1'%20stop-color='%230a121a'/%3e%3c/linearGradient%3e%3clinearGradient%20id='steelhi'%20x1='0'%20y1='0'%20x2='1'%20y2='1'%3e%3cstop%20offset='0'%20stop-color='%238ff0e4'/%3e%3cstop%20offset='.45'%20stop-color='%232c7f80'/%3e%3cstop%20offset='1'%20stop-color='%230d2a30'/%3e%3c/linearGradient%3e%3clinearGradient%20id='blade'%20x1='0'%20y1='0'%20x2='1'%20y2='0'%3e%3cstop%20offset='0'%20stop-color='%23e8fbff'/%3e%3cstop%20offset='.5'%20stop-color='%239cc8d0'/%3e%3cstop%20offset='.51'%20stop-color='%234f7f8a'/%3e%3cstop%20offset='1'%20stop-color='%2322414b'/%3e%3c/linearGradient%3e%3cradialGradient%20id='gem'%20cx='.38'%20cy='.32'%20r='.75'%3e%3cstop%20offset='0'%20stop-color='%23ffffff'/%3e%3cstop%20offset='.45'%20stop-color='%237fe6d8'/%3e%3cstop%20offset='1'%20stop-color='%230e3a36'/%3e%3c/radialGradient%3e%3cradialGradient%20id='glow'%20cx='.5'%20cy='.5'%20r='.5'%3e%3cstop%20offset='0'%20stop-color='%238ff0e4'%20stop-opacity='.9'/%3e%3cstop%20offset='1'%20stop-color='%238ff0e4'%20stop-opacity='0'/%3e%3c/radialGradient%3e%3c/defs%3e%3cpath%20d='M2%202%20L23%2014%20L14.6%2015.6%20L19.2%2024.8%20L15.6%2026.6%20L11%2017.4%20L5.2%2022.8%20Z'%20transform='translate(1.3%201.4)'%20fill='%23000'%20opacity='.4'/%3e%3cpath%20d='M2%202%20L23%2014%20L14.6%2015.6%20L19.2%2024.8%20L15.6%2026.6%20L11%2017.4%20L5.2%2022.8%20Z'%20fill='none'%20stroke='%2306080b'%20stroke-width='3.6'%20stroke-linejoin='round'/%3e%3cpath%20d='M2%202%20L23%2014%20L14.6%2015.6%20L19.2%2024.8%20L15.6%2026.6%20L11%2017.4%20L5.2%2022.8%20Z'%20fill='url(%23steel)'%20stroke='url(%23gold)'%20stroke-width='1.7'%20stroke-linejoin='round'/%3e%3cpath%20d='M4.3%205.6%20L6.2%2019.6'%20stroke='%23fff6d8'%20stroke-opacity='.55'%20stroke-width='.9'%20stroke-linecap='round'/%3e%3cpath%20d='M8.6%208.0%20L11.2%2010.6%20L8.6%2013.2%20L6.0%2010.6%20Z'%20fill='url(%23gem)'%20stroke='%2306080b'%20stroke-width='.9'%20stroke-linejoin='round'/%3e%3ccircle%20cx='7.8999999999999995'%20cy='9.7'%20r='.7'%20fill='%23fff'%20opacity='.9'/%3e%3c/svg%3e") 2 2, auto;--cursor-active:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3clinearGradient%20id='gold'%20x1='0'%20y1='0'%20x2='1'%20y2='1'%3e%3cstop%20offset='0'%20stop-color='%23fff6d8'/%3e%3cstop%20offset='.3'%20stop-color='%23f3cf7a'/%3e%3cstop%20offset='.62'%20stop-color='%23b8822f'/%3e%3cstop%20offset='1'%20stop-color='%23f6dc96'/%3e%3c/linearGradient%3e%3clinearGradient%20id='goldv'%20x1='0'%20y1='0'%20x2='0'%20y2='1'%3e%3cstop%20offset='0'%20stop-color='%23fff6d8'/%3e%3cstop%20offset='.42'%20stop-color='%23f3cf7a'/%3e%3cstop%20offset='.66'%20stop-color='%23b07a2c'/%3e%3cstop%20offset='1'%20stop-color='%23f1d184'/%3e%3c/linearGradient%3e%3clinearGradient%20id='steel'%20x1='0'%20y1='0'%20x2='1'%20y2='1'%3e%3cstop%20offset='0'%20stop-color='%234c8f95'/%3e%3cstop%20offset='.45'%20stop-color='%231d3a48'/%3e%3cstop%20offset='1'%20stop-color='%230a121a'/%3e%3c/linearGradient%3e%3clinearGradient%20id='steelhi'%20x1='0'%20y1='0'%20x2='1'%20y2='1'%3e%3cstop%20offset='0'%20stop-color='%238ff0e4'/%3e%3cstop%20offset='.45'%20stop-color='%232c7f80'/%3e%3cstop%20offset='1'%20stop-color='%230d2a30'/%3e%3c/linearGradient%3e%3clinearGradient%20id='blade'%20x1='0'%20y1='0'%20x2='1'%20y2='0'%3e%3cstop%20offset='0'%20stop-color='%23e8fbff'/%3e%3cstop%20offset='.5'%20stop-color='%239cc8d0'/%3e%3cstop%20offset='.51'%20stop-color='%234f7f8a'/%3e%3cstop%20offset='1'%20stop-color='%2322414b'/%3e%3c/linearGradient%3e%3cradialGradient%20id='gem'%20cx='.38'%20cy='.32'%20r='.75'%3e%3cstop%20offset='0'%20stop-color='%23ffffff'/%3e%3cstop%20offset='.45'%20stop-color='%237fe6d8'/%3e%3cstop%20offset='1'%20stop-color='%230e3a36'/%3e%3c/radialGradient%3e%3cradialGradient%20id='glow'%20cx='.5'%20cy='.5'%20r='.5'%3e%3cstop%20offset='0'%20stop-color='%238ff0e4'%20stop-opacity='.9'/%3e%3cstop%20offset='1'%20stop-color='%238ff0e4'%20stop-opacity='0'/%3e%3c/radialGradient%3e%3c/defs%3e%3cpath%20d='M2%202%20L23%2014%20L14.6%2015.6%20L19.2%2024.8%20L15.6%2026.6%20L11%2017.4%20L5.2%2022.8%20Z'%20transform='translate(1.3%201.4)'%20fill='%23000'%20opacity='.4'/%3e%3cpath%20d='M2%202%20L23%2014%20L14.6%2015.6%20L19.2%2024.8%20L15.6%2026.6%20L11%2017.4%20L5.2%2022.8%20Z'%20fill='none'%20stroke='%2306080b'%20stroke-width='3.6'%20stroke-linejoin='round'/%3e%3cpath%20d='M2%202%20L23%2014%20L14.6%2015.6%20L19.2%2024.8%20L15.6%2026.6%20L11%2017.4%20L5.2%2022.8%20Z'%20fill='url(%23steelhi)'%20stroke='url(%23gold)'%20stroke-width='1.7'%20stroke-linejoin='round'/%3e%3cpath%20d='M4.3%205.6%20L6.2%2019.6'%20stroke='%23fff6d8'%20stroke-opacity='.55'%20stroke-width='.9'%20stroke-linecap='round'/%3e%3ccircle%20cx='8.6'%20cy='10.6'%20r='6.5'%20fill='url(%23glow)'/%3e%3cpath%20d='M8.6%208.0%20L11.2%2010.6%20L8.6%2013.2%20L6.0%2010.6%20Z'%20fill='url(%23gem)'%20stroke='%2306080b'%20stroke-width='.9'%20stroke-linejoin='round'/%3e%3ccircle%20cx='7.8999999999999995'%20cy='9.7'%20r='.7'%20fill='%23fff'%20opacity='.9'/%3e%3c/svg%3e") 2 2, pointer}*{box-sizing:border-box}[hidden]{display:none!important}#app{height:100%}html,body{background:var(--ink);height:100%;color:var(--text);font:15px/1.4 var(--sans);-webkit-font-smoothing:antialiased;cursor:var(--cursor);margin:0}button,input,select,textarea{font:inherit;color:inherit}button,select,label.check,.link,[data-nav],th.sortable{cursor:var(--cursor-active)}input,textarea{cursor:text}::selection{background:#4fb8a155}a{color:var(--verdigris-light)}:focus-visible{outline:2px solid var(--verdigris);outline-offset:1px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border:2px solid var(--ink);background:#ffffff1c;border-radius:6px}.btn{border:1px solid var(--line);background:var(--slate-3);height:32px;color:var(--parchment);white-space:nowrap;border-radius:4px;align-items:center;gap:6px;padding:0 14px;font-weight:700;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--bronze)}.btn:disabled{opacity:.45;cursor:var(--cursor)}.btn.primary{color:#fff;background:linear-gradient(#2f7f6f,#1d5348);border-color:#3c9884}.btn.primary:hover:not(:disabled){border-color:var(--verdigris-light)}.btn.danger{color:#ffb3b6;background:#3a1a1c;border-color:#6b2a2e}.btn.danger:hover:not(:disabled){border-color:var(--blood)}.btn.ghost{background:0 0}.btn.small{height:26px;padding:0 9px;font-size:13px}.icon-btn{width:28px;height:28px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:4px;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--parchment);border-color:var(--line);background:var(--slate-3)}.icon-btn.danger:hover{color:#ffb3b6;border-color:#6b2a2e}input[type=text],input[type=number],input[type=password],input[type=search],select,textarea{border:1px solid var(--line);background:var(--ink);height:32px;color:var(--parchment);border-radius:4px;min-width:0;padding:0 10px}textarea{resize:vertical;height:auto;font:13px/1.45 var(--mono);padding:8px 10px}input:focus,select:focus,textarea:focus{border-color:var(--verdigris);outline:none;box-shadow:0 0 0 3px #4fb8a122}input[type=number]{font-variant-numeric:tabular-nums}input[type=color]{border:1px solid var(--line);background:var(--ink);border-radius:4px;width:40px;height:32px;padding:2px}label.check{-webkit-user-select:none;user-select:none;align-items:center;gap:7px;display:inline-flex}label.check input{width:16px;height:16px;accent-color:var(--verdigris);margin:0}.caps{font:700 12px var(--caps);letter-spacing:.08em;text-transform:lowercase;color:var(--bronze)}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:13px}kbd{font:12px var(--mono);border:1px solid var(--line);color:var(--muted);border-bottom-width:2px;border-radius:3px;padding:1px 5px}.login{background:radial-gradient(circle at 50% 35%, #1b2433, var(--ink) 70%);place-items:center;min-height:100%;padding:24px;display:grid}.login form{border:1px solid var(--line);background:var(--slate);border-radius:8px;gap:12px;width:min(380px,100%);padding:30px 28px;display:grid;box-shadow:0 30px 80px #0009}.login h1{font:900 40px/1 var(--display);color:var(--bronze-light);text-align:center;text-shadow:0 2px #000;margin:0 0 4px}.login p{text-align:center;color:var(--muted);margin:0 0 8px}.login .error{color:#ff9ea2;min-height:20px;font-size:14px}.shell{grid-template-rows:52px 1fr;grid-template-columns:220px 1fr;height:100%;display:grid}.topbar{border-bottom:1px solid var(--line);background:var(--slate);grid-column:1/-1;align-items:center;gap:14px;padding:0 16px;display:flex}.brand{align-items:center;gap:8px;display:flex}.brand img{width:auto;height:26px}.brand b{font:900 26px/1 var(--display);color:var(--bronze-light);text-shadow:0 2px #000}.brand span{font:700 13px var(--caps);letter-spacing:.1em;color:var(--verdigris)}.topbar .who{color:var(--muted);align-items:center;gap:10px;margin-left:auto;display:flex}.topbar .who b{color:var(--parchment)}.badge{font:700 11px var(--caps);letter-spacing:.06em;color:var(--verdigris-light);background:#4fb8a11f;border:1px solid #4fb8a144;border-radius:10px;padding:2px 7px}nav.side{border-right:1px solid var(--line);background:var(--slate);flex-direction:column;gap:4px;padding:14px 10px;display:flex;overflow-y:auto}nav.side .caps{padding:10px 10px 4px}nav.side a{color:var(--text);border-radius:5px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:flex}nav.side a svg{width:18px;height:18px;color:var(--bronze);flex:none}nav.side a:hover{background:var(--slate-3)}nav.side a.on{color:var(--parchment);box-shadow:inset 2px 0 0 var(--verdigris);background:linear-gradient(90deg,#4fb8a124,#0000)}nav.side a.soon{color:var(--muted);pointer-events:none}nav.side a.soon em{font:700 10px var(--caps);letter-spacing:.06em;color:var(--muted);margin-left:auto;font-style:normal}main{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.page-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 20px;display:flex}.page-head h2{font:700 24px/1.1 var(--display);color:var(--parchment);margin:0}.page-head .grow{flex:1}.toasts{z-index:50;gap:8px;display:grid;position:fixed;bottom:18px;right:18px}.toast{border:1px solid var(--line);background:var(--slate-2);border-radius:6px;min-width:260px;max-width:460px;padding:10px 14px;animation:.18s ease-out in;box-shadow:0 10px 30px #0008}.toast.ok{border-color:#3c9884}.toast.error{color:#ffc4c6;border-color:#8b3337}@keyframes in{0%{opacity:0;transform:translateY(6px)}}.db{flex:1;grid-template-columns:230px 1fr;min-height:0;display:grid}.tables{border-right:1px solid var(--line);background:#10141b;padding:10px;overflow-y:auto}.tables input{width:100%;margin-bottom:8px}.tables button{text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:8px;width:100%;padding:7px 9px;display:flex}.tables button:hover{background:var(--slate-3)}.tables button.on{color:var(--parchment);background:#4fb8a11f}.tables button span{text-overflow:ellipsis;font-family:var(--mono);flex:1;font-size:13px;overflow:hidden}.tables button small{color:var(--muted);font-variant-numeric:tabular-nums}.tables button i{color:var(--muted);font-size:11px;font-style:normal}.view{flex-direction:column;min-width:0;min-height:0;display:flex}.tabs{border-bottom:1px solid var(--line);gap:2px;padding:0 20px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 14px;font-weight:700}.tabs button.on{color:var(--parchment);border-bottom-color:var(--verdigris)}.toolbar{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 20px;display:flex}.toolbar .grow{flex:1}.toolbar input[type=search]{width:240px}.pager{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:4px;display:flex}.pager span{padding:0 8px}.filters{flex-wrap:wrap;gap:6px;padding:0 20px 10px;display:flex}.filter{border:1px solid var(--line);background:var(--slate-2);border-radius:5px;align-items:center;gap:4px;padding:3px 4px 3px 8px;display:inline-flex}.filter select,.filter input{height:26px;font-size:13px}.filter input{width:130px}.grid-wrap{flex:1;min-height:0;overflow:auto}table.grid{border-collapse:separate;border-spacing:0;min-width:100%;font-size:13.5px}table.grid th{z-index:2;background:var(--slate-2);text-align:left;border-bottom:1px solid var(--line);border-right:1px solid var(--line-soft);white-space:nowrap;color:var(--parchment);padding:7px 10px;font-weight:700;position:sticky;top:0}table.grid th small{font:400 11px var(--mono);color:var(--muted);display:block}table.grid th .key{color:var(--ember);margin-right:4px}table.grid th .dir{color:var(--verdigris);margin-left:4px}table.grid td{border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft);white-space:nowrap;text-overflow:ellipsis;max-width:340px;font-family:var(--mono);vertical-align:top;padding:6px 10px;font-size:13px;overflow:hidden}table.grid tbody tr:hover td{background:#ffffff06}table.grid td.editable:hover{cursor:var(--cursor-active);box-shadow:inset 0 0 0 1px #4fb8a155}table.grid td.null{color:#5f5a52;font-style:italic}table.grid td.num{text-align:right;font-variant-numeric:tabular-nums}table.grid td.bool{text-align:center}table.grid td.secret{color:var(--muted)}table.grid td.json{color:#c9b6e4}table.grid td.saved{animation:1.2s ease-out saved}@keyframes saved{0%{background:#4fb8a144}}table.grid td.actions{width:1%;font-family:var(--sans);background:var(--slate);z-index:1;padding:2px 6px;position:sticky;left:0}table.grid th.actions{z-index:3;position:sticky;left:0}table.grid tbody tr:hover td.actions{background:var(--slate-2)}table.grid tr.locked td{color:var(--muted)}table.grid .ref{color:var(--verdigris-light);border-bottom:1px dotted #8fe3cc66;text-decoration:none}.lock{color:var(--ember);font-size:12px;font-family:var(--sans)}.empty{text-align:center;color:var(--muted);padding:40px 20px}.pop{z-index:40;border:1px solid var(--bronze-dark);background:var(--slate-2);border-radius:6px;gap:8px;width:380px;padding:12px;display:grid;position:fixed;box-shadow:0 18px 50px #000c}.pop header{align-items:baseline;gap:8px;display:flex}.pop header b{font-family:var(--mono);color:var(--parchment)}.pop header small{color:var(--muted);font-family:var(--mono)}.pop textarea{width:100%;min-height:70px}.pop .row{justify-content:flex-end;gap:6px;display:flex}.pop .row .left{margin-right:auto}.pop .err{color:#ff9ea2;font-size:13px}.veil{z-index:30;background:#0009;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--slate);border-left:1px solid var(--line);align-content:start;gap:12px;width:min(520px,100%);height:100%;padding:18px 20px;display:grid;overflow-y:auto}.drawer h3{font:700 22px var(--display);color:var(--parchment);margin:0}.field{gap:4px;display:grid}.field>span{color:var(--parchment);align-items:baseline;gap:8px;font-weight:700;display:flex}.field>span small{font:400 13px var(--sans);color:var(--muted)}.field input,.field select,.field textarea{width:100%}.drawer .row{justify-content:flex-end;gap:8px;padding-top:6px;display:flex}.structure{padding:16px 20px;overflow:auto}.sql{flex-direction:column;flex:1;min-height:0;display:flex}.sql .editor{border-bottom:1px solid var(--line-soft);gap:8px;padding:14px 20px;display:grid}.sql textarea{width:100%;min-height:120px;font-size:14px}.sql .bar{align-items:center;gap:10px;display:flex}.sql .results{flex:1;align-content:start;gap:14px;min-height:0;padding:12px 20px;display:grid;overflow:auto}.sql .result h4{font:700 13px var(--caps);letter-spacing:.06em;color:var(--bronze);margin:0 0 6px}.sql .result .grid-wrap{border:1px solid var(--line);border-radius:4px;max-height:420px}.errbox{color:#ffc4c6;font:13px var(--mono);white-space:pre-wrap;background:#2a1416;border:1px solid #8b3337;border-radius:5px;padding:10px 12px}.items{flex:1;grid-template-columns:300px 1fr;min-height:0;display:grid}.item-list{border-right:1px solid var(--line);background:#10141b;align-content:start;gap:2px;padding:10px;display:grid;overflow-y:auto}.item-list input{margin-bottom:8px}.item-list .caps{padding:10px 6px 4px}.item-list button{text-align:left;background:0 0;border:0;border-radius:5px;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;width:100%;padding:5px 8px;display:grid}.item-list button:hover{background:var(--slate-3)}.item-list button.on{box-shadow:inset 2px 0 0 var(--verdigris);background:#4fb8a11f}.item-list button b{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.item-list button small{font:12px var(--mono);color:var(--muted)}.icon{width:34px;height:34px;box-shadow:0 0 0 1px var(--bronze-dark);background:#07090c 50%/cover no-repeat;border:1px solid #000;border-radius:4px;flex:none;display:inline-block}.icon.big{width:64px;height:64px}.item-edit{grid-template-columns:minmax(380px,640px) minmax(260px,320px);align-content:start;gap:24px;padding:18px 24px 40px;display:grid;overflow-y:auto}.form{gap:14px;min-width:0;display:grid}.form .pair{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form .triple{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.form fieldset{border:1px solid var(--line);border-radius:6px;gap:12px;margin:0;padding:12px 14px 14px;display:grid}.form legend{padding:0 6px}.form .checks{flex-wrap:wrap;gap:16px;display:flex}.form .color{gap:6px;display:flex}.form .actions{background:linear-gradient(transparent, var(--ink) 30%);align-items:center;gap:8px;padding:12px 0;display:flex;position:sticky;bottom:-40px}.form .actions .dirty{color:var(--ember);font-size:13px}.form .hint{color:var(--muted);font-size:13px}.preview{align-content:start;gap:14px;display:grid;position:sticky;top:0}.tip{border:1px solid var(--bronze-dark);background:linear-gradient(#1d222c,#12161d);border-radius:6px;gap:4px;padding:12px 14px;display:grid;box-shadow:inset 0 1px #ffffff0c}.tip header{align-items:center;gap:12px;margin-bottom:4px;display:flex}.tip b{font-size:18px}.tip small{color:var(--muted)}.tip .val{color:var(--verdigris-light)}.tip .bad{color:#ff9ea2}table.plus{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}table.plus th,table.plus td{border-bottom:1px solid var(--line-soft);text-align:right;padding:4px 6px}table.plus th:first-child,table.plus td:first-child{text-align:left}table.plus th{font:700 11px var(--caps);letter-spacing:.06em;color:var(--bronze)}.log{flex:1;overflow:auto}.log td.detail{white-space:normal;max-width:640px;font-family:var(--sans)}.diff{flex-wrap:wrap;gap:4px 12px;display:flex}.diff span{font:12px var(--mono)}.diff del{color:#ff9ea2;text-decoration:none}.diff ins{color:var(--verdigris-light);text-decoration:none}.preview .stage{border:1px solid var(--line);background:#1a2130;border-radius:6px;height:340px;overflow:hidden}.preview .stage canvas{cursor:grab;width:100%;height:100%;display:block}.preview .anims{flex-wrap:wrap;gap:6px;display:flex}table.drops td,table.wares td{vertical-align:middle;white-space:nowrap}.form fieldset{min-width:0;overflow-x:auto}table.drops input,table.drops select,table.wares input{height:28px;font-size:13px}table.drops select{width:130px}table.drops th,table.drops td{padding:4px 3px}table.wares td{padding:6px}.world{flex:1;grid-template-columns:1fr 400px;min-height:0;display:grid}.mapbox{background:#0b1822;min-width:0;min-height:0;position:relative}.mapbox canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.map-tools{border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#12161dcc;border-radius:6px;align-items:center;gap:12px;padding:6px 12px;font-size:14px;display:flex;position:absolute;top:10px;left:10px}.map-info{pointer-events:none;justify-content:space-between;gap:12px;font-size:13px;display:flex;position:absolute;bottom:10px;left:10px;right:10px}.map-info span{background:#12161dcc;border-radius:5px;padding:4px 10px}.map-info span:empty{display:none}.map-info .hint{color:var(--verdigris-light)}.side-panel{border-left:1px solid var(--line);background:var(--slate);flex-direction:column;min-height:0;display:flex}.side-panel .tabs{padding:0 12px}.panel-body{flex:1;padding:14px 16px 30px;overflow-y:auto}.panel-body .form .actions{background:0 0;padding:4px 0 0;position:static}.npc-stage{border:1px solid var(--line);border-radius:6px;height:260px;overflow:hidden}.npc-stage canvas{width:100%;height:100%;display:block}table.fauna td{vertical-align:middle;padding:4px 3px}table.fauna select{width:130px;height:28px;font-size:13px}table.fauna input{height:28px;font-size:13px}.w3d{flex:1;grid-template-columns:1fr 400px;min-height:0;display:grid}.stage3d{background:#0b1822;min-width:0;min-height:0;position:relative;overflow:hidden}.stage3d canvas{cursor:crosshair;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.labels3d{pointer-events:none;position:absolute;inset:0}.label3d{white-space:nowrap;font:700 12px var(--sans);color:#f4e2b8;background:#0c0e13b0;border:1px solid #b98b4e55;border-radius:4px;padding:2px 8px;position:absolute;top:0;left:0}.label3d.spawn{color:#ffd7d9;border-color:#d8545a66}.label3d.on{border-color:var(--verdigris);color:#fff;background:#1d5348dd}.hud3d{pointer-events:none;flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute;top:10px;left:10px;right:10px}.hud3d>*{pointer-events:auto}.tools3d{border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#12161dd9;border-radius:7px;flex-wrap:wrap;gap:4px;padding:5px;display:flex}.tools3d .tool{height:30px;color:var(--text);background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:6px;padding:0 10px;font-weight:700;display:inline-flex}.tools3d .tool:hover{background:var(--slate-3)}.tools3d .tool.on{color:#fff;background:#4fb8a126;border-color:#4fb8a188}.tools3d kbd{padding:0 4px;font-size:11px}.brush3d{border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#12161dd9;border-radius:7px;flex-wrap:wrap;align-items:center;gap:12px;padding:6px 12px;font-size:13px;display:flex}.brush3d label{align-items:center;gap:6px;display:inline-flex}.brush3d input[type=range]{width:90px;accent-color:var(--verdigris)}.brush3d b{min-width:42px;font:600 12px var(--mono);color:var(--muted)}.brush3d .sep{background:var(--line);width:1px;height:22px}.brush3d.dim label:nth-child(-n+3){opacity:.45}.info3d{pointer-events:none;justify-content:space-between;gap:12px;font-size:13px;display:flex;position:absolute;bottom:10px;left:10px;right:10px}.info3d span{background:#12161dcc;border-radius:5px;padding:4px 10px}.info3d .help{color:var(--muted)}.brush3d .kinds{gap:4px;display:inline-flex}.brush3d .kind{border:1px solid var(--line);height:26px;color:var(--text);background:0 0;border-radius:5px;align-items:center;gap:5px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.brush3d .kind i{border:1px solid #0008;border-radius:3px;width:12px;height:12px}.brush3d .kind.on{border-color:var(--verdigris);color:#fff;background:#4fb8a122}.objects3d .palette3d{flex-direction:column;gap:8px;max-height:46vh;padding-right:4px;display:flex;overflow-y:auto}.objects3d .palette3d .group{flex-wrap:wrap;gap:4px;display:flex}.objects3d .palette3d .group b{width:100%;font:700 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.objects3d .pal{border:1px solid var(--line);height:26px;color:var(--text);background:0 0;border-radius:5px;padding:0 9px;font-size:12px;font-weight:600}.objects3d .pal:hover{background:var(--slate-3)}.objects3d .pal.on{color:#fff;background:#ffd76b1f;border-color:#ffd76b}.objects3d kbd{font:600 10px var(--mono);opacity:.7;margin-left:4px}.frame3d{pointer-events:none;z-index:5;background:#ffd76b14;border:1px dashed #ffd76b;position:absolute}.peers3d{border:1px solid var(--line);z-index:3;background:#12161dd9;border-radius:7px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;max-width:50%;padding:5px 8px;font-size:12px;display:flex;position:absolute;bottom:70px;right:12px}.peers3d .peer{border:1px solid var(--peer);color:#fff;background:0 0;border-radius:12px;align-items:center;gap:6px;height:24px;padding:0 9px;font-size:12px;font-weight:700;display:inline-flex}.peers3d .peer i{background:var(--peer);border-radius:50%;width:9px;height:9px}.label3d.peer{color:#fff;border-color:var(--peer);background:color-mix(in srgb, var(--peer) 35%, #0c0e13d9)}.grips{grid-template-columns:240px minmax(0,1fr) 360px;height:calc(100vh - 118px);min-height:0;display:grid}.grips .item-list{border-right:1px solid var(--line);overflow-y:auto}.grips .item-row{color:inherit;border-bottom:1px solid #ffffff08;align-items:center;gap:10px;padding:8px 12px;text-decoration:none;display:flex}.grips .item-row img{background:#0c0e13;border-radius:5px;width:36px;height:36px}.grips .item-row span{display:grid}.grips .item-row small{color:var(--muted);font-size:11px}.grips .item-row.on{background:#4fb8a11f}.grip-stage{grid-template-rows:1fr auto auto;min-width:0;min-height:0;display:grid;position:relative}.grip-stage .stage{min-height:0;position:relative}.grip-stage .stage canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.grip-bar{border-top:1px solid var(--line);background:#12161d;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;display:flex}.grip-hint{border-top:1px solid var(--line);background:#12161d;padding:5px 12px 7px;font-size:11.5px}.grip-bar .modes{border:1px solid var(--line);border-radius:6px;display:inline-flex;overflow:hidden}.grip-bar .modes button{height:28px;color:var(--text);background:0 0;border:0;padding:0 10px;font-size:12px;font-weight:700}.grip-bar .modes button+button{border-left:1px solid var(--line)}.grip-bar .modes button.on{color:#fff;background:#4fb8a12e}.grip-bar .sep{background:var(--line);width:1px;height:22px}.grip-bar input[type=range]{min-width:120px;accent-color:var(--verdigris);flex:1}.grip-panel{border-left:1px solid var(--line);padding:14px;overflow-y:auto}.grip-panel .form,.grip-panel fieldset,.grip-panel .field{min-width:0}.grip-panel input{box-sizing:border-box;width:100%;min-width:0}.grip-panel .actions{flex-wrap:wrap}.grip-bar [hidden]{display:none}.grip-bar .modes button:disabled{opacity:.4;cursor:default}.grip-panel fieldset.on{border-color:var(--verdigris)}.grip-panel .state{color:var(--muted,#9aa);font-size:12px}.grip-panel .btns{flex-wrap:wrap;gap:8px;display:flex}.grip-miss{z-index:1;color:#ffb86b;pointer-events:none;background:#12161dd9;padding:4px 12px;font-size:12px;position:absolute;bottom:0;left:0;right:0}.login h1 img{filter:drop-shadow(0 4px 14px #000c);width:100%;max-width:300px;margin:-6px auto 0;display:block}.showcase .cams{gap:10px;margin:0;padding:0;list-style:none;display:grid}.showcase .cams li{background:#f0c0600d;border:1px solid #f0c06055;border-radius:6px;gap:8px;padding:10px;display:grid}.showcase .cam-head{align-items:center;gap:8px;display:flex}.showcase .cam-head b{color:#1a1408;width:26px;height:26px;font:700 14px var(--sans);background:#f0c060;border-radius:50%;flex:none;place-items:center;display:grid}.showcase .cam-head input{flex:1;min-width:0;font-weight:700}.showcase .cam-row{grid-template-columns:110px 1fr;align-items:end;gap:10px;display:grid}.showcase .cam-row small{padding-bottom:8px}.showcase .cam-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.showcase .locked-note{border-left:3px solid var(--peer);background:color-mix(in srgb, var(--peer) 18%, transparent);margin:0;padding:8px 10px;font-size:14px}.showcase .actions{flex-wrap:wrap}nav.side a .count{background:var(--ember,#d8643a);color:#fff;min-width:20px;font:700 12px var(--sans);text-align:center;border-radius:10px;margin-left:auto;padding:1px 6px;font-style:normal}.access{gap:18px;max-width:980px;padding:0 28px 40px;display:grid}.access-settings{background:#ffffff06;border:1px solid #b98b4e44;border-radius:6px;flex-wrap:wrap;align-items:end;gap:18px 34px;padding:16px 18px;display:flex}.access-settings .field{min-width:240px}.access-tabs{gap:6px;display:flex}.access-tabs .tab{color:var(--parchment);font:700 14px var(--sans);background:0 0;border:1px solid #b98b4e44;border-radius:4px;align-items:center;gap:8px;padding:7px 14px;display:inline-flex}.access-tabs .tab.on{border-color:var(--verdigris);background:#1d5348aa}.access-tabs .tab b{color:var(--muted);font-weight:700}.requests{gap:10px;margin:0;padding:0;list-style:none;display:grid}.request{border:1px solid #b98b4e33;border-left:3px solid var(--bronze,#b98b4e);background:#ffffff05;border-radius:6px;gap:8px;padding:14px 16px;display:grid}.request.accepted{border-left-color:var(--verdigris)}.request.declined{opacity:.85;border-left-color:#8a3a2c}.request .who{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.request .who b{font:700 18px var(--sans)}.request .phase{font:700 11px var(--caps);letter-spacing:.08em;text-transform:uppercase;color:var(--verdigris-light,#8fe3cc);background:#4fb8a133;border-radius:3px;padding:1px 7px}.request .phase.beta{color:#e8c586;background:#b98b4e33}.request .message{white-space:pre-wrap;margin:0;line-height:1.5}.request .row-actions{align-items:center;gap:8px;display:flex}.request .row-actions .grow,.access .grow{flex:1}.access .empty{padding:20px 0}.tools3d .tools-sep{background:var(--line);align-self:stretch;width:1px;margin:2px 4px}.tools3d .travel-btn{color:var(--verdigris-light)}.travel3d{z-index:20;background:#0b0e13f2;border:1px solid #b98b4e66;border-radius:8px;grid-template-columns:1fr 320px;display:grid;position:absolute;inset:60px 24px;overflow:hidden;box-shadow:0 20px 60px #000c}.travel3d[hidden]{display:none}.travel-map{aspect-ratio:15200/8200;cursor:crosshair;background:#2a6d9a;place-self:center;width:min(100%,185.366vh - 259.512px);position:relative;overflow:hidden}.travel-map img{pointer-events:none;-webkit-user-select:none;user-select:none;max-width:none;height:auto;position:absolute}.travel-pins{pointer-events:none;position:absolute;inset:0}.travel-pin{font:700 13px var(--sans);color:#fff;text-shadow:0 1px 3px #000,0 0 2px #000;white-space:nowrap;justify-items:center;gap:2px;display:grid;position:absolute;transform:translate(-50%,-50%)}.travel-pin i{background:var(--bronze-light);width:9px;height:9px;transform:rotate(45deg);box-shadow:0 0 0 2px #000a}.travel-me{filter:drop-shadow(0 0 4px #000);pointer-events:none;border-bottom:18px solid #ff5a45;border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;position:absolute}.travel-hint{color:var(--text);pointer-events:none;background:#0b0e13cc;border-radius:4px;padding:3px 9px;font-size:13px;position:absolute;bottom:10px;left:10px}.travel-side{border-left:1px solid var(--line);grid-template-rows:auto auto 1fr;gap:10px;min-height:0;padding:14px;display:grid}.travel-head{align-items:center;gap:8px;display:flex}.travel-head b{font:700 22px var(--display);color:var(--bronze-light)}.travel-head .btn{margin-left:auto}.travel-list{align-content:start;gap:2px;min-height:0;display:grid;overflow:auto}.travel-group{font:700 11px var(--caps);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:10px 0 4px}.travel-item{color:var(--text);text-align:left;font:15px var(--sans);background:0 0;border:1px solid #0000;border-radius:5px;justify-content:space-between;gap:10px;padding:6px 9px;display:flex}.travel-item span{color:var(--muted);white-space:nowrap;font-size:13px}.travel-item:hover,.travel-item.on{color:#fff;background:#4fb8a11f;border-color:#4fb8a166}.showcase .cam-still{aspect-ratio:16/9;object-fit:cover;border:1px solid #f0c06033;border-radius:4px;width:100%;display:block}.showcase .cam-still.none{color:var(--muted);background:#0b0e13;place-items:center;font-size:13px;display:grid}.stills-shoot{z-index:60;background:#0b0e13f2;border:1px solid #f0c06066;border-radius:8px;gap:8px;padding:10px;display:grid;position:fixed;bottom:18px;right:18px;box-shadow:0 12px 40px #000c}.stills-shoot p{color:var(--text);margin:0;font-size:13px}.stills-frame{border-radius:4px;width:320px;height:180px;overflow:hidden}.stills-frame iframe{transform-origin:0 0;pointer-events:none;border:0;width:1600px;height:900px;transform:scale(.2)}.players{flex-direction:column;flex:1;gap:12px;min-height:0;padding:12px 20px 0;display:flex}.players>[data-foot]{margin:0 0 10px;font-size:13px}.players table.grid td{font-family:var(--sans)}.players table.grid td.reason{max-width:260px}.players table.grid td.heroes{white-space:normal;max-width:380px}.players table.grid tbody tr{cursor:var(--cursor-active)}.page-head input[type=search]{width:240px}.realm-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.pill{font:700 11px var(--caps);letter-spacing:.06em;color:var(--muted);background:#ffffff10;border-radius:3px;margin-right:4px;padding:1px 7px;display:inline-block}.pill.admin{color:#e8c586;background:#b98b4e33}.pill.gm{color:#f0c060;background:#b98b4e33}.pill.mute{color:#ffb38a;background:#d8643a33}.pill.ban{color:#ffb3b6;background:#3a1a1c}.pill.online{color:var(--verdigris-light);background:#4fb8a133}.pill.me{color:var(--parchment);background:#ffffff18}.players-drawer{width:min(560px,100%)}.players-drawer section{gap:8px;display:grid}.pd-head{align-items:center;gap:8px;display:flex}.pd-head .grow{flex:1}.players-drawer h4,.players-drawer p{margin:0}.players-drawer .row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.players-drawer .row-actions input{width:180px;height:26px;font-size:13px}.pd-heroes{gap:4px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.pd-heroes .online{color:var(--verdigris-light)}.sanction-form{border:1px solid var(--line);background:#ffffff05;border-radius:6px;gap:10px;padding:12px;display:grid}.sanction-form .custom{gap:6px;display:flex}.sanction-form .custom input{width:90px}.sanction-form .row{justify-content:flex-end;gap:8px;display:flex}.sanction-form textarea{font-family:var(--sans)}.presets,.reason-chips{flex-wrap:wrap;gap:4px;display:flex}.presets button,.reason-chips button{border:1px solid var(--line);color:var(--parchment);background:0 0;border-radius:4px;padding:4px 9px}.presets button.on{border-color:var(--verdigris);background:#1d5348aa}.sanction{border-left:3px solid var(--ember);background:#ffffff06;border-radius:4px;justify-items:start;gap:4px;padding:8px 10px;display:grid}.sanction.ban{border-left-color:var(--blood)}.danger-zone{background:#3a1a1c55;border:1px solid #6b2a2e;border-radius:6px;padding:12px}.danger-zone .warn{color:#ffc4c6;margin:0}.danger-zone .gm-confirm{gap:10px;display:grid}.danger-zone .row{justify-content:flex-end;gap:8px;display:flex}.btn.armed{animation:1s ease-in-out infinite alternate armed}@keyframes armed{to{border-color:var(--blood)}}.pd-history{gap:4px;margin:0;padding-left:18px;font-size:13px;display:grid}.pd-history time{color:var(--muted);margin-right:6px}@media (max-width:700px){.page-head input[type=search]{width:100%}.players{padding:10px 12px 0}}.bonus-page{gap:22px;padding:14px 22px 30px;display:grid;overflow:auto}.bonus-page h3{color:var(--bronze-light);margin:0 0 6px}.bonus-page .hint{color:var(--muted);margin:0 0 8px;font-size:13px}.bonus-page .grid-wrap{max-height:60vh}.bonus-page table.grid td{max-width:380px}.bonus-page table.grid tr.retired td{color:var(--muted)}.bonus-page table.grid tr.sum td{color:var(--parchment);background:var(--slate-2);font-weight:700}.bonus-cols{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));align-items:start;gap:18px 22px;display:grid}.bonus-cols section{gap:6px;display:grid}.preview .tip .bonus-fixed,.goods-bonus li{color:var(--bronze-light)}.goods-bonus li.fifth{color:#8fc8ff}.preview .tip .use{color:var(--verdigris-light)}.preview .tip .bad,.preview .bad,.goods .bad{color:var(--blood)}table.plus.fixed td,table.plus.give-chosen td{padding:2px 4px}table.plus.fixed select,table.plus.give-chosen select{max-width:330px}.pd-heroes li .btn{margin-left:8px}.goods{border:1px solid var(--line);background:var(--slate-2);border-radius:6px;gap:8px;margin-top:10px;padding:10px 12px;display:grid}.goods h4{margin:0}.goods .online{color:var(--verdigris-light)}.goods-table{width:100%}.goods-table td{vertical-align:top}.goods-bonus{margin:2px 0 0;padding-left:16px;font-size:12.5px}.give-form{border-top:1px solid var(--line-soft);gap:8px;padding-top:8px;display:grid}.give-form h4{color:var(--parchment);margin:0}.give-row{grid-template-columns:1fr 80px 70px;gap:8px;display:grid}.give-bonus{flex-wrap:wrap;align-items:center;gap:6px 16px;display:flex}.give-form .row{justify-content:flex-end;display:flex}.give-form .hint{color:var(--muted);margin:0;font-size:12.5px}
