:root{--primary: oklch(81.211% .01809 210.448);--primary-strong: color-mix(in oklch, var(--primary), black 18%);--primary-soft: color-mix(in oklch, var(--primary), white 78%);--primary-tint: color-mix(in oklch, var(--primary), white 88%);--bg1: color-mix(in oklch, var(--primary), white 92%);--bg2: color-mix(in oklch, var(--primary), white 82%);--surface: color-mix(in oklch, white, var(--primary) 90%);--surface-strong: color-mix(in oklch, white, var(--primary) 50%);--text: #142033;--muted: color-mix(in oklch, var(--text), transparent 40%);--grey: oklch(87.61% .0001 271.152);--shadow: 0 10px 24px rgba(0, 0, 0, .14);--shadow-soft: 0 6px 14px rgba(0, 0, 0, .1);--border: #ccc;--bg: #f5f5f5;--ok: oklch(70% .17 145);--warning: oklch(78% .17 85);--danger: oklch(62% .2 25);--green: var(--ok);--blue: oklch(34.125% .19032 270.352);--white: #FFFFFF;--ok-strong: color-mix(in oklch, var(--ok), black 18%);--ok-soft: color-mix(in oklch, var(--ok), white 78%);--ok-tint: color-mix(in oklch, var(--ok), white 88%);--warning-strong: color-mix(in oklch, var(--warning), black 18%);--warning-soft: color-mix(in oklch, var(--warning), white 78%);--warning-tint: color-mix(in oklch, var(--warning), white 88%);--danger-strong: color-mix(in oklch, var(--danger), black 18%);--danger-soft: color-mix(in oklch, var(--danger), white 78%);--danger-tint: color-mix(in oklch, var(--danger), white 88%);--focus: color-mix(in oklch, var(--primary), white 30%);--ui-border: color-mix(in oklch, var(--text), transparent 78%);--ui-border-strong: color-mix(in oklch, var(--text), transparent 65%);--ui-card: color-mix(in oklch, var(--surface), var(--text) 6%);--ui-card-hover: color-mix(in oklch, var(--surface), var(--text) 10%);--ui-active: white;--ui-active-border: white;--ui-line: color-mix(in oklch, var(--text), transparent 55%)}html,body{height:100%;margin:0}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;font-family:sans-serif}h4{background-color:var(--primary);font-size:16px;padding:7px}input,select{border:1px solid color-mix(in oklch,var(--border),var(--text) 8%);border-radius:4px;padding:6px 8px;color:var(--text)}input::placeholder{color:var(--muted)}button{border:1px solid color-mix(in oklch,var(--border),var(--text) 10%);border-radius:4px;padding:6px 10px;background:var(--bg-strong);color:var(--text);cursor:pointer}button:hover:not(:disabled){border-color:var(--primary-strong)}button:disabled{opacity:.45;cursor:default}textarea{border:1px solid color-mix(in oklch,var(--border),var(--text) 8%);border-radius:4px;padding:6px;background:var(--bg-strong);color:var(--text);font-family:Hack,monospace;width:100%;height:120px;resize:none;line-height:1.4}textarea::placeholder{color:var(--muted)}textarea:focus{outline:none;border-color:var(--primary-strong)}.sim-panel-body{padding:2px}.hidden{display:none!important}.tab-content{display:none;width:100%;min-width:0}.sim-body.tab-content{display:none}.sim-body.tab-content.active{display:flex}.page.tab-content.active,.analyzer.tab-content.active{display:block}.page{overflow-y:auto;width:100%}.page .page-content{display:flex;justify-content:center;padding:24px 16px;box-sizing:border-box;width:100%}.page .page-container{width:100%;max-width:700px}.sim-root{position:relative;width:100%;height:100vh;overflow:hidden;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;border:1px solid var(--ui-border-strong);background:var(--bg);color:var(--text)}.sim-body{flex:1 1 auto;min-height:0;display:flex;overflow:hidden}.sim-nodes{flex:1 1 auto;min-width:0;min-height:0;position:relative;overflow:auto;width:100%;height:100%;z-index:10}#tracer{height:100%}.sim-object{position:absolute;left:0;top:0}.sim-node{position:absolute;width:110px;height:70px;border:2px solid var(--ui-border-strong);border-radius:10px;background:var(--grey);display:grid;place-items:center;cursor:grab;z-index:200;color:var(--text)}.sim-node .title{font-weight:600;font-size:14px}.sim-node.sim-node-ghost{opacity:.75;filter:none}.sim-node.sim-node-ghost:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:color-mix(in oklch,var(--surface),white 55%);pointer-events:none}.sim-panel{position:absolute;min-width:600px;min-height:200px;max-width:1000px;max-height:1000px;border:2px solid var(--ui-border-strong);border-radius:12px;background:var(--bg);box-shadow:var(--shadow);overflow:auto;pointer-events:auto;z-index:1000}.sim-panel-header{height:38px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;background:color-mix(in oklch,var(--surface-strong),var(--text) 6%);cursor:grab}.sim-panel-header:active{cursor:grabbing}.sim-panel-title{font-weight:600}.sim-panel-close{font-size:22px;line-height:22px;border:none;background:transparent;cursor:pointer;color:var(--text)}.sim-panel-body{padding:0;height:calc(100% - 38px);overflow:hidden}.sim-toolbar{display:flex;flex:0 0 auto;align-items:center;gap:6px;padding:8px;background-color:var(--surface);-webkit-user-select:none;user-select:none;align-items:stretch}.sim-toolbar-group{display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--ui-border);border-radius:10px;padding:6px 8px 8px}.sim-toolbar-group-label{font-size:11px;font-weight:600;opacity:.7;min-height:14px;margin-bottom:6px;line-height:1.2;-webkit-user-select:none;user-select:none;pointer-events:none;text-align:center;color:var(--text)}.sim-toolbar-buttons{display:flex;flex-wrap:wrap;gap:6px}.sim-toolbar-branding-group{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:center;max-width:90px;border:none;flex-wrap:wrap}.sim-toolbar-branding{height:80%;font-size:25px;font-weight:700;letter-spacing:.2px;padding:0 12px;color:var(--text);-webkit-user-select:none;user-select:none;text-align:center;display:flex;align-items:center;justify-content:center;line-height:1.1}.sim-toolbar-branding,.sim-toolbar-branding-version{position:relative;z-index:1}.sim-toolbar-branding-version{height:20%;font-size:12px;font-weight:700;font-style:italic;align-items:center;justify-content:center}.sim-toolbar-branding-group:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(../beaver.svg);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:.4;pointer-events:none;z-index:0}.sim-sidebar{padding:10px;overflow:auto;border-right:1px solid var(--ui-border);background-color:var(--surface)}.sim-sidebar-title{font-size:12px;font-weight:600;opacity:.8;margin-bottom:10px;color:var(--text);text-align:center}.sim-sidebar-tools{display:flex;flex-direction:column;gap:8px}.sim-toolbar button,.sim-sidebar-btn{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:56px;min-width:70px;padding:8px 12px;border-radius:10px;border:1px solid var(--ui-border);background:var(--ui-card);color:var(--text);font-size:12px;line-height:1.1;text-align:center;white-space:nowrap;transition:transform 80ms ease,background .12s ease,box-shadow .12s ease,border-color .12s ease}.sim-toolbar-buttons .fas,.sim-sidebar-btn .fas{font-size:25px}.sim-toolbar button.active,.sim-sidebar-btn.active{outline:2px solid var(--focus);outline-offset:-2px;border-color:var(--ui-active-border);background:color-mix(in oklch,var(--ui-active),var(--surface) 60%)}.sim-toolbar button:hover,.sim-sidebar-btn:hover{background:var(--ui-card-hover);border-color:var(--ui-border-strong)}.sim-toolbar button:active,.sim-sidebar-btn:active{transform:translateY(1px);background:color-mix(in oklch,var(--primary),var(--surface) 78%);border-color:var(--ui-active-border);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--primary),transparent 70%),inset 0 10px 22px color-mix(in oklch,var(--text),transparent 88%)}.sim-toolbar button:focus-visible,.sim-sidebar-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sim-toolbar button.active:hover,.sim-sidebar-btn.active:hover{background:color-mix(in oklch,var(--ui-active),var(--surface) 60%);border-color:var(--ui-active-border);transform:none}.sim-link{position:absolute;height:2px;transform-origin:0 0;z-index:100}.sim-link-hit{position:absolute;left:0;top:-10px;width:100%;height:20px;background:transparent;pointer-events:auto}.sim-link-line{position:absolute;left:0;top:0;width:100%;height:2px;background:var(--ui-line);pointer-events:none}.sim-packets-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:300}.sim-packet{position:absolute;top:0;left:0;width:54px;height:54px;transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer;color:var(--danger)}.sim-packet .fa-envelope{font-size:54px}.sim-port-picker{position:fixed;z-index:10000;background:var(--surface-strong);border-radius:8px;padding:6px;display:flex;flex-wrap:wrap;gap:6px;box-shadow:var(--shadow-soft);border:1px solid var(--ui-border)}.sim-port-chip{padding:4px 8px;border-radius:6px;border:1px solid var(--ui-border);background:color-mix(in oklch,var(--surface),var(--text) 6%);cursor:pointer;font-size:12px;color:var(--text);transition:background .12s ease,transform 80ms ease,border-color .12s ease}.sim-port-chip:hover:not(:disabled){background:color-mix(in oklch,var(--surface),var(--text) 10%);border-color:var(--ui-border-strong)}.sim-port-chip:active:not(:disabled){transform:translateY(1px);background:color-mix(in oklch,var(--primary),var(--surface) 78%);border-color:var(--ui-active-border)}.sim-port-chip.in-use{opacity:.45}.sim-port-chip:disabled{cursor:not-allowed}.sim-root.edit-mode{cursor:default}.sim-root.edit-mode *{-webkit-user-select:none;user-select:none}.sim-root.edit-mode[data-tool=select]{cursor:default}.sim-root.edit-mode[data-tool^=place-],.sim-root.edit-mode[data-tool=link]{cursor:crosshair}.sim-root.edit-mode[data-tool=delete]{cursor:default}.sim-root.edit-mode[data-tool=link] .sim-node{cursor:pointer}.sim-root.edit-mode[data-tool=link] .sim-node.no-free-port{cursor:not-allowed!important;opacity:.4}.sim-root.edit-mode[data-tool=delete] .sim-nodes{cursor:default}.sim-root.edit-mode[data-tool=delete] .sim-node,.sim-root.edit-mode[data-tool=delete] .sim-link-hit{cursor:not-allowed!important}.sim-delete-hover{outline:2px solid rgba(255,60,60,.95);box-shadow:0 0 0 3px #ff3c3c40,0 0 16px #ff3c3c8c}.sim-link.sim-delete-hover .sim-link-line{box-shadow:0 0 10px #ff3c3ce6}.sim-delete-hover{cursor:not-allowed!important}.sim-rect{position:absolute;box-sizing:border-box;border:2px solid rgba(255,204,0,.6);border-radius:8px;background:rgba(255,204,0,.25);resize:both;overflow:hidden;z-index:0}.sim-rect-ghost{resize:none;overflow:hidden;border-style:dashed;opacity:.65}.sim-rect-color{width:100%;height:34px;padding:0;border:none;background:transparent}.sim-rect-opacity{width:100%}sim-toolbar-langbtn{margin-left:8px;padding:6px 10px;border-radius:8px}.sim-lang-picker{z-index:9999;display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:10px;background:var(--bg);border:1px solid rgba(255,255,255,.12);box-shadow:0 10px 30px #00000059}.sim-lang-option{text-align:left;padding:8px 10px;border-radius:8px}.sim-lang-option.active{outline:2px solid rgba(255,255,255,.25)}.sim-node .fas{font-size:32px}.fa-ban{color:var(--danger)}.fa-square{color:var(--warning-soft)}.fa-desktop{color:var(--blue)}.fa-play{color:var(--green)}.my-icon-router{width:40px;height:40px;background-image:url(../router.svg);background-repeat:no-repeat;background-position:center;background-size:40px 40px}.my-icon-switch{width:40px;height:40px;background-image:url(../switch.svg);background-repeat:no-repeat;background-position:center;background-size:40px 40px}.sim-sidebar-btn .my-icon-router,.sim-sidebar-btn .my-icon-switch{width:24px;height:24px;background-size:24px 24px}.window-resize-handle{position:absolute;z-index:10;pointer-events:auto;background:transparent}.window-resize-handle.br{position:absolute;right:2px;bottom:2px;width:14px;height:14px;cursor:nwse-resize;z-index:10;background:transparent}.window-resize-handle.b{position:absolute;left:0;right:14px;bottom:0;height:8px;cursor:ns-resize;z-index:9;background:transparent}.window-resize-handle.r{position:absolute;top:0;bottom:14px;right:0;width:8px;cursor:ew-resize;z-index:9;background:transparent}.os-root{width:100%;height:100%;background:radial-gradient(900px 500px at 20% 0%,color-mix(in oklch,var(--bg1),white 30%) 0%,transparent 60%),linear-gradient(to bottom,var(--bg1),var(--bg2));color:var(--text)}.menu{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:12px;padding:20px}.menu button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;width:110px;height:118px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;cursor:pointer;border-radius:18px;color:var(--text);font-size:13px;font-weight:650;text-align:center;line-height:1.2;transition:background .15s ease,transform .05s ease}.menu button:before{content:"";width:62px;height:62px;margin-top:5px;margin-bottom:5px;border-radius:18px;background:radial-gradient(18px 18px at 30% 25%,rgba(255,255,255,.85),transparent 60%),linear-gradient(135deg,var(--primary-soft),var(--primary));box-shadow:var(--shadow-soft)}.menu button i{position:absolute;width:40px;height:40px;top:21px;left:50%;transform:translate(-50%);font-size:40px;line-height:40px;color:currentColor;opacity:.95;filter:drop-shadow(0 1px 0 rgba(255,255,255,.35));pointer-events:none}.menu button{position:relative}.menu button:hover{background:color-mix(in oklch,var(--primary),white 90%)}.menu button:active{transform:scale(.96);background:color-mix(in oklch,var(--primary),white 85%)}.menu button:focus-visible{outline:2px solid var(--primary-strong);outline-offset:4px}.os-frame{overflow:auto;height:100%;background:var(--primary-soft);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.os-frame-bar{display:flex;align-items:center;height:44px;padding:0 14px;background:var(--primary);border-bottom:1px solid color-mix(in oklch,var(--text),transparent 88%)}.os-frame-title{flex:1;text-align:center;font-size:16px;font-weight:750;color:var(--text);letter-spacing:.2px;pointer-events:none}.process-root{padding:14px;color:var(--text);font-size:14px;line-height:1.4}.menu button[data-icon=terminal]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm2 3 4 4-4 4 1.4 1.4L11.8 12 6.4 6.6 5 8zm6 8h6v-2h-6v2z'/%3E%3C/svg%3E")}.menu button[data-icon=texteditor]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 3h12l4 4v14a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm11 1.5V8h3.5L15 4.5zM6 11h12v2H6v-2zm0 4h12v2H6v-2zm0-8h6v2H6V7z'/%3E%3C/svg%3E")}.menu button[data-icon=settings]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.14 12.94c.04-.31.06-.63.06-.94s-.02-.63-.06-.94l2.03-1.58a.5.5 0 0 0 .12-.64l-1.92-3.32a.5.5 0 0 0-.6-.22l-2.39.96a7.4 7.4 0 0 0-1.63-.94l-.36-2.54A.5.5 0 0 0 13.9 1h-3.8a.5.5 0 0 0-.49.42l-.36 2.54c-.58.23-1.12.54-1.63.94l-2.39-.96a.5.5 0 0 0-.6.22L2.71 7.48a.5.5 0 0 0 .12.64l2.03 1.58c-.04.31-.06.63-.06.94s.02.63.06.94L2.83 14.52a.5.5 0 0 0-.12.64l1.92 3.32c.13.22.39.3.6.22l2.39-.96c.5.4 1.05.71 1.63.94l.36 2.54c.04.24.25.42.49.42h3.8c.24 0 .45-.18.49-.42l.36-2.54c.58-.23 1.12-.54 1.63-.94l2.39.96c.22.09.47 0 .6-.22l1.92-3.32a.5.5 0 0 0-.12-.64l-2.03-1.58zM12 15.5A3.5 3.5 0 1 1 12 8a3.5 3.5 0 0 1 0 7.5z'/%3E%3C/svg%3E")}.menu button[data-icon=browser]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c-4.4 0-8 3.1-8 7 0 2.6 1.6 4.9 4 6.1V22l2.5-1.5L13 22v-6.9c2.4-1.2 4-3.5 4-6.1 0-3.9-3.6-7-8-7zm-3 6a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm6 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm-6.5 4h7v2h-7v-2z'/%3E%3C/svg%3E")}.menu button[data-icon=about]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 17h2v-6h-2v6zm0-8h2V7h-2v2zm1-7C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z'/%3E%3C/svg%3E")}.app-terminal .term{font-family:Hack,monospace;font-size:16px;line-height:21px;white-space:pre;overflow:hidden;background-color:#202020;color:#00ff20;padding:7px}.app-terminal .term:focus{outline:none}.app-terminal .term::selection{background:rgba(255,255,255,.2)}.app-sparktail-http{padding:6px;color:var(--text)}.app-sparktail-http{padding:6px;color:var(--text);display:flex;flex-direction:column;height:100%}.app-sparktail-http .sparktail-chrome{display:flex;align-items:center;gap:8px;padding:10px;background:linear-gradient(180deg,var(--bg1),var(--bg2));border-radius:12px;box-shadow:var(--shadow)}.app-sparktail-http .sparktail-chrome input{flex:1;min-width:120px;padding:10px 14px;border-radius:999px;background:white;color:var(--text);border:1px solid var(--primary-soft);outline:none;font-family:ui-sans-serif,system-ui;font-size:14px}.app-sparktail-http .sparktail-chrome input::placeholder{color:var(--muted)}.app-sparktail-http .sparktail-chrome input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint)}.app-sparktail-http .sparktail-throbber{width:26px;text-align:center;-webkit-user-select:none;user-select:none;color:var(--muted)}.app-sparktail-http .panel{flex:1;display:flex;flex-direction:column;background:transparent}.app-sparktail-http iframe.sparktail-preview{background:white;border-radius:12px!important;box-shadow:var(--shadow)}.app-sparktail-http textarea.sparktail-source,.app-sparktail-http textarea.sparktail-headers,.app-sparktail-http .sparktail-log{background:var(--surface);color:var(--text);border-radius:12px;box-shadow:var(--shadow);padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12.5px;line-height:1.35}.app-sparktail-http .button-row{margin-top:8px;gap:8px}.app-sparktail-http .sparktail-status{margin-top:auto;padding:6px 10px;background:none;border:none;box-shadow:none;color:var(--muted);font-family:ui-sans-serif,system-ui;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-editor,.app-editor .panel,.app-editor .panel>*{min-height:0}.app-editor .panel{height:100%;display:flex;flex-direction:column;gap:.5rem}.app-editor .editor-area{flex:1 1 auto;min-height:30rem;width:100%;resize:none;font-family:Hack,monospace;box-sizing:border-box;background-color:#fff}.app-editor .editor-area{white-space:pre;overflow:auto}.app-editor .editor-area:focus,.app-editor .editor-area:focus-visible{outline:none;box-shadow:none}.app-editor{height:100%;min-height:0;display:flex;flex-direction:column}.fp-screen{flex:1 1 auto;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;padding:1rem;box-sizing:border-box}.fp-dialog{display:flex;flex-direction:column;gap:.5rem;width:min(36rem,100%);max-height:80vh;padding:.75rem;box-sizing:border-box}.fp-title{font-weight:600;-webkit-user-select:none;user-select:none}.fp-name{width:100%;box-sizing:border-box}.fp-list{flex:1 1 auto;min-height:10rem;overflow:auto;display:flex;flex-direction:column;gap:.125rem}.fp-item{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px}.fp-item:hover{background:color-mix(in srgb,currentColor 8%,transparent)}.fp-item.is-selected{background:color-mix(in srgb,currentColor 16%,transparent)}.fp-item:before{width:1.25em;text-align:center;flex:0 0 auto;opacity:.85}.fp-dir:before{content:"📁"}.fp-file:before{content:"📄"}.fp-path{font-family:Hack,monospace;opacity:.8;margin:6px 0 10px;padding:6px 8px;border-radius:8px;background:rgba(0,0,0,.08);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-dnsd .tblwrap{margin:8px 0 12px}.app-dnsd .tbl{width:100%;border-collapse:collapse;table-layout:fixed}.app-dnsd .tbl th,.app-dnsd .tbl td{border:1px solid rgba(255,255,255,.14);padding:6px;vertical-align:middle}.app-dnsd .tbl th{text-align:left;font-weight:600;white-space:nowrap;opacity:.95}.app-dnsd .tbl td .input{width:100%;box-sizing:border-box;padding:6px 8px}.app-dnsd .tbl th:last-child,.app-dnsd .tbl td:last-child{width:42px;text-align:center}.app-dnsd .tbl td:last-child .btn{padding:4px 8px;min-width:0}.app-dnsd .tabbar{display:flex;gap:6px;margin:6px 0 10px;flex-wrap:wrap}.app-dnsd .tabbar .btn{padding:6px 10px}.app-dnsd .tabbar .btn.active{font-weight:700;outline:2px solid rgba(255,255,255,.22)}.app-dnsd .tabcontent{margin-bottom:10px}.app-dnsd .panel>div:first-child{margin-bottom:6px;opacity:.9}.app-dnsd .msg{white-space:pre;overflow:auto}textarea.log{font-family:Hack,monospace;font-size:12.5px;line-height:1.4;border:1px solid #2a2f3a;border-radius:6px;padding:8px 10px;margin:4px 0;white-space:pre;overflow-y:auto;overflow-x:auto;min-width:600px;min-height:200px}.msg{font-family:Hack,monospace;font-size:12.5px;line-height:1.4;border:1px solid #2a2f3a;border-radius:6px;padding:8px 10px;margin:4px 0;white-space:pre;overflow-y:auto;overflow-x:auto;max-height:240px}.app-simple-mail-server .user-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}.app-simple-mail-server .user-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.04)}.app-simple-mail-server .user-row-left{display:flex;flex-direction:column;gap:2px;min-width:0}.app-simple-mail-server .user-row-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-simple-mail-server .user-row-sub{font-size:12px;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-simple-mail-server .user-row-right{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.app-simple-mail-server .user-row-right button{white-space:nowrap}.app-simple-mail-server .user-list .msg{padding:8px 10px;opacity:.8}.router-name-row{display:flex;gap:8px;align-items:center}.router-selected-iface{margin:6px 0 10px;font-size:12px;color:var(--muted)}.router-tabs{display:flex;align-items:stretch;gap:0;flex-wrap:nowrap;overflow-x:auto;border-bottom:1px solid color-mix(in oklch,var(--border),var(--text) 8%);margin-bottom:10px;padding:0}.router-tab{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;margin:0;border:1px solid color-mix(in oklch,var(--border),var(--text) 8%);border-bottom:none;border-radius:4px 4px 0 0;background:var(--bg-strong);cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;top:1px;color:var(--text)}.router-tab+.router-tab{margin-left:-1px}.router-tab.is-active{border-color:color-mix(in oklch,var(--border),var(--text) 18%);z-index:2;top:0}.router-tab-plus{min-width:34px;justify-content:center;font-weight:700}.router-tab-label{font-weight:600}.router-tab-badge{padding:1px 6px;border-radius:10px;font-size:11px;line-height:1.2;border:1px solid color-mix(in oklch,var(--border),var(--text) 8%);color:var(--text)}.router-tab-badge.status-up{background:var(--ok-tint);border-color:var(--ok-strong)}.router-tab-badge.status-down{background:var(--danger-tint);border-color:var(--danger-strong)}.router-tab-badge.status-unknown{background:color-mix(in oklch,var(--bg),var(--text) 5%);border-color:color-mix(in oklch,var(--border),var(--text) 10%)}.router-if-panel.is-disabled{opacity:.7}.router-if-grid{display:grid;grid-template-columns:1fr 1fr 120px auto;gap:8px;margin-bottom:10px}.router-if-actions{display:flex;gap:8px}.router-routes-table{width:100%;border-collapse:collapse;border:1px solid color-mix(in oklch,var(--border),var(--text) 8%);border-radius:6px;overflow:hidden}.router-routes-table th,.router-routes-table td{padding:6px;border:none}.router-routes-table thead tr{border-bottom:1px solid color-mix(in oklch,var(--border),var(--text) 14%);background:var(--bg-strong)}.router-routes-table tbody tr{border-top:1px solid color-mix(in oklch,var(--border),var(--text) 6%)}.router-route-actions{display:flex;gap:6px}.router-route-auto{opacity:.7;font-style:italic;color:var(--muted)}.router-route-dirty td{background:var(--warning)}.router-route-add-row td,.router-route-add-dirty td{background:var(--primary)}.is-invalid{outline:2px solid var(--danger-strong);outline-offset:1px}.minimarkdown-h1{font-size:1.45em;font-weight:750;margin:.65em 0 .3em}.minimarkdown-h2{font-size:1.25em;font-weight:700;margin:.6em 0 .25em}.minimarkdown-h3{font-size:1.1em;font-weight:650;margin:.5em 0 .2em}.minimarkdown-paragraph{margin:.25em 0;line-height:1.45}.minimarkdown-paragraph code,.minimarkdown-table code,.minimarkdown-h1 code,.minimarkdown-h2 code,.minimarkdown-h3 code,.minimarkdown-ul code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:rgba(0,0,0,.06);padding:.1em .3em;border-radius:4px;font-size:.95em}.minimarkdown-ul{margin:.35em 0 .35em 1.25em;padding:0;line-height:1.45}.minimarkdown-li{margin:.15em 0}.minimarkdown-table{border-collapse:collapse;margin:.45em 0;width:100%;font-size:.95em}.minimarkdown-table th,.minimarkdown-table td{border:1px solid rgba(0,0,0,.15);padding:.3em .5em;vertical-align:top;text-align:center}.minimarkdown-table th{font-weight:650;background:rgba(0,0,0,.05)}.minimarkdown-table tr:nth-child(2n) td{background:rgba(0,0,0,.02)}.pcapviewer-root{display:grid;grid-template-rows:auto auto 1fr;font-family:system-ui,sans-serif;box-sizing:border-box;width:100%;height:100%;overflow:hidden;-webkit-user-select:none;user-select:none}.pcapviewer-toolbar{display:flex;gap:8px;padding:8px;align-items:center;background-color:var(--surface)}.pcapviewer-filter{flex:1;padding:6px 8px}.pcapviewer-status{opacity:.8;font-size:12px}.pcapviewer-layout{display:grid;grid-template-rows:minmax(80px,1fr) 5px minmax(120px,1fr);min-height:0}.pcapviewer-splitter{cursor:row-resize;background:transparent;position:relative}.pcapviewer-splitter:before{content:"";position:absolute;left:0;right:0;top:2px;height:1px;background:var(--border, #ccc)}.pcapviewer-splitter:hover:before{background:#888}.pcapviewer-bottom{display:grid;grid-template-columns:1.5fr .5fr}.pcapviewer-pane{border:1px solid #ddd;overflow:auto;min-height:0}.pcapviewer-table{width:100%;border-collapse:collapse;font-family:Hack,monospace;font-size:12px}.pcapviewer-table th,.pcapviewer-table td{border-bottom:1px solid #eee;padding:6px 8px;white-space:nowrap}.pcapviewer-row{cursor:pointer}.pcapviewer-row--ignored{opacity:.55}.pcapviewer-row--marked{font-weight:600}.pcapviewer-row--selected{outline:2px solid rgba(0,0,0,.25);outline-offset:-2px}.pcapviewer-pane--tree,.pcapviewer-pane--raw{font-family:Hack,monospace;font-size:12px}.pcapviewer-treepane{padding:8px}.pcapviewer-rawpane{margin:0;padding:8px}.pcapviewer-tree-title{font-weight:600;margin-bottom:6px}.pcapviewer-tree ul{list-style:none;margin:0;padding-left:14px}.pcapviewer-tree-node{display:grid;grid-template-columns:16px 1fr;gap:6px;padding:4px 6px;border-radius:6px;cursor:default;-webkit-user-select:none;user-select:none}.pcapviewer-tree-node:hover{background:rgba(0,0,0,.06)}.pcapviewer-tree-twisty{width:16px;text-align:center;opacity:.85;cursor:pointer}.pcapviewer-tree-label{white-space:pre-wrap;word-break:break-word;cursor:pointer}.pcapviewer-tree-children{margin-left:10px;border-left:1px solid rgba(0,0,0,.12);padding-left:10px}.pcapviewer-tree-leaf .pcapviewer-tree-twisty{opacity:.25;cursor:default}.pcapviewer-selected{background:rgba(0,0,0,.1);outline:1px solid rgba(0,0,0,.12)}.pcapviewer-tree li.pcapviewer-collapsed>.pcapviewer-tree-children{display:none}.pcapviewer-tabs{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:.25em;height:30px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;-webkit-overflow-scrolling:touch;background-color:var(--surface-strong)}.pcapviewer-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);border-bottom:none;background:#e5e5e5;border-radius:10px 10px 0 0;padding:.4em 1em;cursor:pointer;font-size:.95em;display:inline-flex;align-items:center;max-width:220px;flex:0 0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcapviewer-tab:hover{background:#ddd}.pcapviewer-tab--active{background-color:var(--surface);font-weight:700;position:relative;top:1px}.pcapviewer-tab--active:hover{background-color:var(--surface)}.pcapviewer-tab-close{display:inline-flex;align-items:center;justify-content:center;width:16px;height:24px;margin-left:6px;font-size:16px;line-height:1;border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.pcapviewer-tab-close:hover{opacity:1}.pcapviewer-vsplitter{cursor:col-resize;background:transparent;position:relative;touch-action:none}.pcapviewer-vsplitter:before{content:"";position:absolute;top:0;bottom:0;left:3px;width:1px;background:var(--border, #ccc)}.pcapviewer-vsplitter:hover:before{background:#888}.pcapviewer-layout,.pcapviewer-bottom,.pcapviewer-pane{min-width:0}.pcapviewer-bottom>*{min-width:0}.pcapviewer-pane--raw,.pcapviewer-pane--tree{overflow:auto}.pcapviewer-hexbyte--hl{background:rgba(129,137,13,.45);border-radius:3px}.pcapviewer-tabplus{position:relative;display:inline-block}.pcapviewer-tabpicker2{display:grid;grid-template-columns:1fr 1fr;background-color:var(--white);border:1px solid rgba(255,255,255,.15);border-radius:10px;overflow:hidden;box-shadow:0 8px 32px #0006}.pcapviewer-picker-left,.pcapviewer-picker-right{padding:6px;max-height:360px;overflow:auto}.pcapviewer-picker-left{border-right:1px solid rgba(255,255,255,.12)}.pcapviewer-tabpicker-item{display:block;width:100%;padding:6px 8px;background:transparent;border:0;color:inherit;text-align:left;cursor:pointer;border-radius:8px}.pcapviewer-tabpicker-item:hover,.pcapviewer-tabpicker-item--active{background:var(--surface)}.pcapviewer-tabpicker-item--disabled{opacity:.6;cursor:default}.pcapviewer-tabs-title{background-color:var(--surface);height:100%;padding:5px}.pcapviewer-picker-header{font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border-bottom:var(--border) 1px solid;padding:6px 8px;margin-bottom:4px;color:var(--text);background:transparent}.about-container{max-width:700px;margin:0 auto;line-height:1.65;display:block}.about .subtitle{color:#666;margin-top:-.5rem}.about .version{margin-top:1rem;font-size:.95rem;color:#444}.about h3{margin-top:2rem}.about hr{margin:2rem 0;border:none;border-top:1px solid #ddd}.about ul{padding-left:1.2rem}.about li{margin:.35rem 0}.about.license-text{font-size:.9rem;color:#444;font-family:Courier New,Courier,monospace}.about .thanks{margin-top:1.5rem;font-style:italic}.about .footer{text-align:center;font-size:.85rem;color:#777}.about a{color:#2c6ed5;text-decoration:none}.about a:hover{text-decoration:underline}
