:root{--bg: #15171a;--surface: #1e2125;--surface-2: #262a30;--border: #2e3238;--border-strong: #454b54;--text: #e4e6ea;--muted: #98a0ab;--accent: #6ea4ff;--primary: #2f6fe4;--primary-hover: #2760d0;--ok: #3fb950;--fail: #ff6b63;--warn: #d9a42b;--run: #6ea4ff;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--fs-xs: 12px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:var(--fs-md) / 1.5 system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;-webkit-text-size-adjust:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:0;border-color:var(--accent)}button{background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:6px 12px;min-height:32px;cursor:pointer;font:inherit;line-height:1.3}button:hover:not(:disabled){border-color:var(--muted);background:#2d3239}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}button.danger{color:var(--fail);background:transparent;border-color:color-mix(in srgb,var(--fail) 55%,var(--border))}button.danger:hover:not(:disabled){background:color-mix(in srgb,var(--fail) 14%,transparent);border-color:var(--fail)}button.danger.solid{background:#b3261e;border-color:#b3261e;color:#fff;font-weight:600}button.danger.solid:hover:not(:disabled){background:#9c211a}button.inline{padding:2px 10px;min-height:26px;font-size:var(--fs-xs)}button.link{background:none;border:0;padding:0;min-height:0;color:var(--accent)}button.link:hover:not(:disabled){background:none;text-decoration:underline}.icon-btn{width:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border-color:transparent;color:var(--muted)}.icon-btn:hover:not(:disabled){color:var(--text);background:var(--surface-2);border-color:var(--border)}input,textarea,select{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:7px 10px;min-height:34px;font:inherit}input::placeholder,textarea::placeholder{color:#6f7783}input:disabled,textarea:disabled,select:disabled{opacity:.55}select{width:auto;max-width:100%}textarea{font-family:var(--font-mono);font-size:var(--fs-xs);resize:vertical}h1,h2,h3{margin:0}h1{font-size:var(--fs-lg);letter-spacing:.01em}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-md)}pre{margin:0;white-space:pre-wrap;word-break:break-all;font:var(--fs-xs) / 1.55 var(--font-mono)}code{font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--bg);padding:1px 5px;border-radius:4px;overflow-wrap:anywhere}.page{height:100%;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);max-width:1600px;margin:0 auto}.bar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.bar h1,.bar button,.bar .muted,.bar .status{white-space:nowrap}.bar.small{font-size:var(--fs-xs);color:var(--muted);padding:4px 2px}.grow{flex:1}.sep{align-self:stretch;width:1px;margin:4px var(--sp-1);background:var(--border)}.muted{color:var(--muted)}.mono{font-family:var(--font-mono);font-size:var(--fs-xs)}.error{color:var(--fail);margin:0;padding:var(--sp-2) var(--sp-3);background:color-mix(in srgb,var(--fail) 10%,var(--bg));border:1px solid color-mix(in srgb,var(--fail) 45%,var(--border));border-radius:var(--r-sm);font-size:var(--fs-sm)}.error-text{color:var(--fail);font-size:var(--fs-xs)}.empty{color:var(--muted)}.empty-box{margin:48px auto 0;max-width:460px;padding:var(--sp-5);text-align:center;border:1px dashed var(--border-strong);border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3)}.empty-box h2{font-size:var(--fs-lg)}.empty-box ol{margin:0;padding-left:20px;text-align:left;color:var(--muted)}.loading{color:var(--muted);padding:var(--sp-5);text-align:center}.status.success{color:var(--ok)}.status.failed{color:var(--fail)}.status.running{color:var(--run)}.badge{display:inline-flex;align-items:center;gap:4px;padding:0 8px;min-height:20px;border-radius:10px;font-size:11px;font-weight:600;line-height:18px;white-space:nowrap;color:var(--muted);background:var(--bg);border:1px solid var(--border-strong)}.badge.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 50%,var(--border))}.badge.fail{color:var(--fail);border-color:color-mix(in srgb,var(--fail) 55%,var(--border))}.badge.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 55%,var(--border))}.badge.running{color:var(--run);border-color:color-mix(in srgb,var(--run) 55%,var(--border))}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}.dot.success,.dot.ok{background:var(--ok)}.dot.failed,.dot.fail{background:var(--fail)}.dot.running{background:var(--run)}.dot.warn{background:var(--warn)}.dash-head{flex-wrap:wrap;gap:var(--sp-2) var(--sp-3)}.brand{font-size:var(--fs-lg);margin-right:var(--sp-1)}.conn{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0;max-width:100%;padding:4px 10px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);font-size:var(--fs-sm)}.conn .host{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conn .state{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.conn .icon-btn{width:26px;min-height:26px}.head-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.tabs{display:flex;align-items:flex-end;gap:var(--sp-1);border-bottom:1px solid var(--border);flex-wrap:wrap}.tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--muted);padding:8px 14px;margin-bottom:-1px}.tabs button:hover:not(:disabled){color:var(--text);background:none}.tabs button.active,.tabs button[aria-selected=true]{color:var(--text);font-weight:600;border-bottom-color:var(--accent)}.tabs .tab-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding-bottom:4px}.tabs .tab-actions button{padding:6px 12px;margin-bottom:0;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);font-weight:400}.tabs .tab-actions button.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.tabs .tab-actions button.danger{background:transparent;color:var(--fail);border-color:color-mix(in srgb,var(--fail) 55%,var(--border))}.tabs .badge{margin-left:6px}.main-tabs button.primary{margin-bottom:4px;padding:6px 14px;border:1px solid var(--primary);border-radius:var(--r-sm);background:var(--primary);color:#fff}.main-tabs button.primary:hover:not(:disabled){background:var(--primary-hover)}.dash-body{display:flex;gap:var(--sp-4);flex:1;min-height:0}.dash-main{flex:1;min-width:0;overflow:auto;padding-bottom:var(--sp-4)}.groupnav{width:200px;flex:0 0 auto;display:flex;flex-direction:column;gap:2px;border-right:1px solid var(--border);padding-right:var(--sp-3);overflow-y:auto}.groupnav-title{font-size:11px;letter-spacing:.04em;color:var(--muted);padding:2px 8px 6px}.groupnav-row{display:flex;align-items:center;gap:2px;border-radius:var(--r-sm)}.groupnav-row>button:first-child{flex:1;min-width:0;display:flex;justify-content:space-between;gap:var(--sp-2);border:none;background:none;text-align:left}.groupnav-row>button:first-child:hover:not(:disabled){background:var(--surface)}.groupnav-row>button.active{background:var(--surface);font-weight:600;box-shadow:inset 2px 0 0 var(--accent)}.groupnav-row.drop{outline:2px dashed var(--accent)}.groupnav-add{border:none;background:none;color:var(--muted);text-align:left}.groupnav-note{font-size:11px;margin:var(--sp-3) 0 0;padding:0 8px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-3)}.card{position:relative;background:var(--surface);border:1px solid var(--border);border-left-width:3px;border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:6px;cursor:pointer;min-width:0}.card:hover{border-color:var(--border-strong);background:#22262b}.card[draggable=true]{cursor:grab}.card.s-success{border-left-color:var(--ok)}.card.s-failed{border-left-color:var(--fail)}.card.s-running{border-left-color:var(--run)}.card.s-none{border-left-color:var(--border-strong)}.card-head{display:flex;align-items:center;gap:var(--sp-2);justify-content:space-between}.card-head h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .domain{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .domain.none{color:var(--muted)}.card .image{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-top:6px;padding-top:var(--sp-2);border-top:1px solid var(--border)}.card-foot .when{font-size:var(--fs-xs);color:var(--muted)}.card-foot button{flex:none}.detail{gap:var(--sp-2)}.detail-head{gap:var(--sp-2) var(--sp-3)}.detail-head h1{font-size:var(--fs-xl);overflow:hidden;text-overflow:ellipsis;max-width:100%}.dirty{color:var(--warn);font-size:var(--fs-xs);font-weight:600}.status-line{margin:0;font-size:var(--fs-sm);padding:6px 10px;border-radius:var(--r-sm);background:var(--surface);border-left:3px solid var(--muted);display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.status-line.ok{border-left-color:var(--ok)}.status-line.warn{border-left-color:var(--warn)}.editor{flex:1;min-height:160px;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden}.editor>div{height:100%}.editor.tall{flex:none;height:340px}.overview{padding:var(--sp-2) 0;overflow:auto;flex:1;min-height:120px}.problems{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);font-size:var(--fs-xs);flex:none}.problems-head{display:flex;gap:14px;padding:5px 10px}.problems ul{list-style:none;margin:0;padding:0;max-height:120px;overflow:auto;border-top:1px solid var(--border)}button.problem{display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:var(--sp-2);width:100%;padding:3px 10px;min-height:0;text-align:left;background:none;border:0;border-radius:0;white-space:normal}button.problem:hover{background:var(--bg)}.panel{height:34%;min-height:170px;max-height:60vh;flex:none;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.panel.closed{height:auto;min-height:0}.panel-toggle{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:34px;padding:6px 12px;border:0;border-radius:0;background:none;color:var(--text);font-size:var(--fs-sm);font-weight:600;text-align:left}.panel-toggle:hover:not(:disabled){background:var(--surface-2)}.panel-toggle .muted{font-weight:400}.panel-body{flex:1;min-height:0;display:flex;border-top:1px solid var(--border)}.history{width:230px;flex:none;margin:0;padding:0;list-style:none;overflow:auto;border-right:1px solid var(--border);font-size:var(--fs-xs)}.history li{padding:0}.history li button{width:100%;display:flex;align-items:center;gap:var(--sp-2);padding:6px 10px;border:0;border-radius:0;background:none;text-align:left;font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.history li button:hover{background:var(--surface-2)}.history li.active button{background:var(--bg);box-shadow:inset 2px 0 0 var(--accent)}.history li.empty-item{padding:8px 10px;color:var(--muted)}.log{flex:1;min-width:0;display:flex;flex-direction:column}.log-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:4px 8px;border-bottom:1px solid var(--border);font-size:var(--fs-xs);color:var(--muted)}.logview{flex:1;min-height:0;overflow:auto;background:var(--bg);padding:var(--sp-2) 0;font:var(--fs-xs) / 1.55 var(--font-mono)}.log .logview{border-radius:0}.logview.boxed{flex:none;max-height:220px;border:1px solid var(--border);border-radius:var(--r-sm)}.logview-empty{margin:0;padding:var(--sp-2) var(--sp-3);color:var(--muted);font-family:inherit}.logline{display:flex;gap:var(--sp-3);padding:0 var(--sp-3) 0 0;white-space:pre-wrap;word-break:break-all}.logno{flex:none;width:36px;text-align:right;color:#5d6570;-webkit-user-select:none;user-select:none}.logtext{min-width:0}.logline.cmd .logtext{color:var(--accent)}.logline.ok .logtext{color:var(--ok)}.logline.warn .logtext{color:var(--warn)}.logline.err{background:color-mix(in srgb,var(--fail) 14%,transparent);box-shadow:inset 3px 0 0 var(--fail)}.logline.err .logtext{color:var(--fail);font-weight:600}.overlay{position:fixed;inset:0;z-index:100;background:#0009;display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.modal{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);width:460px;max-width:100%;max-height:100%;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.modal:focus{outline:none}.modal.wide{width:600px}.modal.xwide{width:780px}.modal.inspect{width:900px}.modal-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border);flex:none}.modal-head h2{flex:1;min-width:0}.modal-head-extra{display:flex;align-items:center;gap:var(--sp-2)}.modal-body{padding:var(--sp-4) var(--sp-5);overflow:auto;display:flex;flex-direction:column;gap:var(--sp-3);min-height:0}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);background:var(--surface);border-radius:0 0 var(--r-lg) var(--r-lg);flex:none}.actions{display:flex;justify-content:flex-end;gap:var(--sp-2);flex-wrap:wrap}.field,.modal label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm);color:var(--text)}.field-label{font-weight:600}.req{color:var(--fail);margin-left:2px}.opt{color:var(--muted);font-weight:400;font-size:var(--fs-xs);margin-left:6px}.hint{color:var(--muted);font-size:var(--fs-xs);font-weight:400}.form-section{display:flex;flex-direction:column;gap:var(--sp-3)}.form-section+.form-section{padding-top:var(--sp-3);border-top:1px solid var(--border)}.form-section>h3{font-size:var(--fs-sm);color:var(--muted);text-transform:none;letter-spacing:.02em}.form-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--sp-3)}.helper{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg);border:1px dashed var(--border-strong);border-radius:var(--r-sm)}.helper-toggle{align-self:flex-start}.ecr-pick{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.ecr-pick select{flex:1;min-width:0}.ecr-pick input{flex:1;min-width:140px;width:auto}.auth{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.auth form{width:380px;max-width:100%;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4);box-shadow:0 20px 60px #0006}.auth h1{font-size:var(--fs-xl)}.auth label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm);font-weight:600}.auth button.primary{width:100%;min-height:38px}.summary{display:flex;gap:var(--sp-2) var(--sp-3);flex-wrap:wrap;align-items:center;font-size:var(--fs-sm)}.summary .st{padding:2px 10px;border:1px solid var(--border);border-radius:12px;background:var(--bg)}.section{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;flex:none}.section h3{margin:0;padding:7px 12px;font-size:var(--fs-sm);background:var(--bg);border-bottom:1px solid var(--border)}.row{display:grid;grid-template-columns:90px 190px minmax(0,1fr);gap:10px;padding:6px 12px;border-bottom:1px solid var(--border);font-size:var(--fs-sm);align-items:start}.row:last-child{border-bottom:0}.row .detail{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-mono);font-size:var(--fs-xs)}.row.sync .detail{font-family:inherit;font-size:var(--fs-sm)}.row .content{margin-top:4px;font-family:system-ui,sans-serif}.row .content summary{cursor:pointer;color:var(--accent)}.row .content pre{margin:4px 0 0;padding:var(--sp-2);max-height:260px;overflow:auto;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm)}.st{font-weight:600;white-space:nowrap}.st.ok{color:var(--ok)}.st.warn{color:var(--warn)}.st.fail{color:var(--fail)}.st.info{color:var(--muted)}.pad{margin:0;padding:var(--sp-2) 12px;font-size:var(--fs-xs);border-bottom:1px solid var(--border)}button.inline.after{margin-left:10px}.sync{display:flex;flex-direction:column;gap:4px;min-width:230px;flex:0 0 auto;padding:4px 10px;font-size:var(--fs-xs);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.sync-row{display:flex;align-items:center;gap:var(--sp-2)}.sync-row span{white-space:nowrap}.sync-row .muted{margin-left:auto;font-variant-numeric:tabular-nums}.sync-icon{display:inline-block;font-size:var(--fs-md);color:var(--muted)}.sync.running .sync-icon{color:var(--run)}.sync.ok .sync-icon{color:var(--ok)}.sync.warn .sync-icon{color:var(--warn)}.sync.fail .sync-icon,.sync.fail .sync-label{color:var(--fail)}.sync-icon.spin{animation:sync-spin .9s linear infinite}.sync-bar{height:3px;overflow:hidden;background:var(--border);border-radius:2px}.sync-fill{height:100%;background:var(--run);transition:width 1s linear}.sync-fill.indeterminate{width:40%;animation:sync-slide 1.1s ease-in-out infinite}.sync.flash{animation:sync-flash 2.4s ease-out}.card.flash{animation:card-flash 3.2s ease-out}@keyframes sync-spin{to{transform:rotate(360deg)}}@keyframes sync-slide{0%{transform:translate(-100%)}to{transform:translate(260%)}}@keyframes sync-flash{0%{background:color-mix(in srgb,var(--ok) 35%,var(--surface))}to{background:var(--surface)}}@keyframes card-flash{0%{background:color-mix(in srgb,var(--ok) 28%,var(--surface));border-color:var(--ok)}to{background:var(--surface)}}@media(prefers-reduced-motion:reduce){.sync-icon.spin,.sync-fill.indeterminate,.sync.flash,.card.flash{animation:none}.sync-fill{transition:none}}.site-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:10px 12px;margin:0 0 var(--sp-3);overflow-x:auto}.site-head{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:var(--sp-2);font-weight:600}.site-head .badge,.route .badge{margin-left:6px}.route{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:4px 0}.route-match{min-width:90px;font-family:var(--font-mono)}.route-targets,.target{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.features{margin-top:6px}.diagram{position:relative}.diagram svg{position:absolute;inset:0}.edge{fill:none;stroke:currentColor;stroke-width:2}.edge-ok{color:var(--ok)}.edge-fail{color:var(--fail)}.edge-idle{color:#6e7681}.dnode{position:absolute;width:210px;height:96px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:var(--sp-2) 12px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--bg);overflow:hidden;font-size:var(--fs-xs)}.dnode-caddy{border-color:var(--accent)}.dnode-svc{border-color:var(--ok)}.dnode .img,.dnode .features{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dnode .badges,.dnode .addr{display:flex;flex-wrap:wrap;gap:4px}.edge-label{position:absolute;transform:translate(-50%,-50%);padding:1px 8px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface-2);font-family:var(--font-mono);font-size:11px;white-space:nowrap}.ecr,.dns,.links{display:flex;flex-direction:column;gap:var(--sp-3)}.dns,.links{overflow:auto}.dash-main:has(.ecr){overflow:hidden;display:flex;flex-direction:column}.ecr{flex:1;min-height:0;padding-bottom:0}.ecr-list{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-3);align-content:start;padding:var(--sp-2) 0 var(--sp-3)}.ecr-list .card{border-left-width:1px}.ecr-list .card.active{border-color:var(--accent)}.ecr-panel{height:auto;min-height:0;max-height:40%}.ecr-panel .ecr-body{display:block;overflow:auto}.ecr-table{width:100%;border-collapse:collapse;font-size:var(--fs-xs)}.ecr-table th{text-align:left;font-weight:600;font-size:11px;color:var(--muted);padding:4px 8px}.ecr-table td{padding:6px 8px;border-top:1px solid var(--border)}.ecr-table .badge{margin-right:4px}.table-wrap{overflow-x:auto}.dns-add,.links-add{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.dns-add input{width:200px}.links-add input{width:180px}.links-add .links-url{width:320px}.links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.link-card{display:flex;align-items:center;gap:6px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.link-card a{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;color:inherit;text-decoration:none}.link-card a span{font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-card:hover{border-color:var(--accent)}pre.guide-code{flex:none;padding:var(--sp-2) var(--sp-3);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm)}.guide-toc{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 16px;flex:none}.guide-toc button{text-align:left}.guide-item{display:flex;flex-direction:column;gap:6px}.guide-item+.guide-item{padding-top:var(--sp-3);border-top:1px solid var(--border)}@media(max-width:768px){.page{padding:var(--sp-3);height:auto;min-height:100%}.dash-body{min-height:auto}.dash-main,.dash-main:has(.ecr),.ecr-list,.dns,.links,.overview{overflow:visible}.ecr{flex:none}.ecr-panel{max-height:none}.editor{flex:none;height:55vh}.overview{flex:none}.panel{height:340px;max-height:none}.panel.closed{height:auto}.sep{display:none}.detail-head .danger{margin-left:auto}.head-actions button{padding:6px 8px;font-size:var(--fs-sm)}.dash-body{flex-direction:column;gap:var(--sp-2)}.groupnav{width:auto;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--border);padding:0 0 var(--sp-2);overflow:visible}.groupnav-title,.groupnav-note{display:none}.groupnav-row>button:first-child{border:1px solid var(--border);border-radius:16px;padding:4px 12px;gap:var(--sp-2)}.groupnav-row>button.active{box-shadow:none;border-color:var(--accent)}.grid,.ecr-list{grid-template-columns:minmax(0,1fr)}.head-actions{width:100%}.head-actions button{flex:1 1 auto}.conn,.sync{width:100%}.tabs{flex-wrap:nowrap;overflow-x:auto}.tabs button{white-space:nowrap}.detail .tabs{flex-wrap:wrap;overflow-x:visible}.tabs .tab-actions{width:100%;padding:var(--sp-2) 0}.tabs .tab-actions button{flex:1 1 auto}.panel-body{flex-direction:column}.history{width:auto;max-height:90px;border-right:0;border-bottom:1px solid var(--border)}.overlay{padding:0;align-items:flex-end}.modal,.modal.wide,.modal.xwide,.modal.inspect{width:100%;max-height:94%;border-radius:var(--r-lg) var(--r-lg) 0 0}.modal-head{padding-left:var(--sp-4)}.modal-body{padding:var(--sp-3) var(--sp-4)}.modal-foot{padding:var(--sp-3) var(--sp-4);border-radius:0}.modal-foot button{flex:1 1 auto}.form-row{grid-template-columns:1fr 1fr}.form-row>:first-child{grid-column:1 / -1}.row{grid-template-columns:80px minmax(0,1fr)}.row .detail{grid-column:1 / -1}.guide-toc{grid-template-columns:1fr}.dns-add input,.links-add input,.links-add .links-url{width:100%;flex:1 1 100%}.editor.tall{height:260px}}button.card-title{color:var(--text);font:inherit;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.modal label.field-label{display:block}
