/* Button states adapted from shadcn/ui (MIT); see THIRD_PARTY.md. */
:root{--ink:#182230;--muted:#637083;--blue:#2463eb;--line:#e6eaf0;--surface:#f7f9fc;--spring:cubic-bezier(.22,1.25,.36,1);--radius:16px;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--surface);font-size:14px;line-height:1.6}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{transition:background .2s,border-color .2s,box-shadow .2s,transform .24s var(--spring),opacity .2s}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{pointer-events:none;opacity:.55}button:hover{transform:translateY(-1px)}button:active,a.button:active{transform:scale(.97)}:focus-visible{outline:3px solid #9fc1ff;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:clamp(25px,2.5vw,34px);letter-spacing:-1px;line-height:1.35;font-weight:650}h2{font-size:18px;letter-spacing:-.3px}h3{font-size:17px}small{font-size:12px}button img{pointer-events:none}.icon{width:18px;height:18px;flex-shrink:0;vertical-align:middle}.shell{display:flex;min-height:100vh}.sidebar{width:236px;flex-shrink:0;background:white;border-right:1px solid var(--line);padding:34px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;font-size:19px;font-weight:700;letter-spacing:-.6px}.brand small{display:block;font-size:9px;letter-spacing:2.1px;color:#8590a2;font-weight:600}.brand-symbol{width:39px;height:43px;border-radius:12px;background:#edf3ff;display:grid;place-items:center}.brand-symbol .icon{width:24px;height:24px}.nav-label{color:#929baa;font-size:11px;letter-spacing:1px;margin:52px 12px 14px}.nav-item{border:0;background:none;display:flex;align-items:center;gap:12px;color:#627085;padding:13px;width:100%;border-radius:9px;text-align:left;margin:3px 0}.nav-item:hover{background:#f5f7fb}.nav-item.selected{color:#225bce;background:#edf3ff;font-weight:600}.nav-dot{width:5px;height:5px;background:#2463eb;border-radius:50%;margin-left:auto}.sidebar-bottom{margin-top:auto;padding:30px 12px 0}.sidebar-bottom p{font-size:12px;color:#8791a1;margin:20px 0}.sidebar-bottom>small{font-size:9px;letter-spacing:1.4px;color:#9aa3b0}.status-line{font-size:11px;color:#748198;display:flex;align-items:center;gap:8px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#3b78e7;flex-shrink:0}main{min-width:0;flex:1}.topbar{height:77px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;background:#ffffffbf;color:#788397;font-size:12px}.slash{color:#c5cbd4;margin:0 14px}.topbar-right{display:flex;align-items:center;gap:7px;font-size:11px}.topbar-right .icon{width:15px}.content{max-width:1420px;margin:0 auto;padding:40px 42px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:2.2px;color:#7a8a9f;display:block;margin-bottom:12px}.page-heading p{margin-top:10px}.muted{color:var(--muted);font-size:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;font-size:12px;font-weight:600;border:1px solid transparent;border-radius:8px;white-space:nowrap}.primary{background:var(--blue);color:white;box-shadow:0 4px 9px #2463eb19}.primary:hover{background:#1a55d4;box-shadow:0 5px 12px #2463eb30}.primary .icon{filter:brightness(0) invert(1)}.outline{border-color:#dce2eb;background:white;color:#43536a}.outline:hover,.ghost:hover{background:#f0f4fa}.ghost{background:transparent;color:#5f6f84;padding:0 10px}.full{width:100%}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 3px #1a305303}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:28px}.stat{padding:24px;display:flex;justify-content:space-between;align-items:flex-start}.stat span{font-size:12px;color:#6a778b}.stat strong{display:block;font-size:34px;font-weight:600;line-height:1.4;margin:8px 0}.stat small{font-size:11px;color:#929aaa}.stat-icon{display:grid;place-items:center;width:36px;height:36px;background:#f6f8fc;border:1px solid #edf0f6;border-radius:10px}.stat-icon .icon{width:17px;height:17px;opacity:.65}.section-heading{padding:23px 25px;display:flex;justify-content:space-between;gap:16px;align-items:center}.section-heading h2{font-size:16px;margin-bottom:4px}.inline-arrow{margin:0 8px;color:#a0acbb}.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding-left:12px}.search input{border:0;background:none;min-width:0;width:190px;outline:none;padding:8px 0;font-size:12px}.search .icon{opacity:.45;width:16px}.search:focus-within{border-color:#91b1ee;box-shadow:0 0 0 3px #2463eb0c}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{background:#fafbfd;color:#8a94a3;font-weight:500;padding:12px 25px;text-align:left;border-top:1px solid #f0f2f6;border-bottom:1px solid #f0f2f6;white-space:nowrap}td{padding:23px 25px;border-bottom:1px solid #f0f2f6}tbody tr{transition:background .2s}tbody tr:hover{background:#fcfdff}.domain-cell{max-width:370px}.domain-cell strong{font-size:14px;font-weight:600}.target{display:flex;align-items:center;gap:7px;color:#7f8b9e;margin-top:5px}.target .icon{width:13px;height:13px;opacity:.55}.target span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.tag{font-size:10px;border:1px solid #e6eaf1;background:#fcfcfe;border-radius:5px;padding:4px 7px;white-space:nowrap;color:#67778c}.rule-options{display:block;color:#8d98a8;margin-top:7px;font-size:10px;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:30px;padding:4px 9px;font-size:11px;white-space:nowrap}.active{background:#eef4ff;color:#3768b8}.paused{color:#85909e;background:#f3f4f6}.paused .dot{background:#9ca5b1}.actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.actions .icon{width:14px;height:14px}.right{text-align:right}.table-footer{display:flex;justify-content:space-between;align-items:center;padding:13px 25px;min-height:62px;color:#919bab;font-size:11px}.empty{text-align:center;padding:55px 24px}.empty-icon{display:grid;place-items:center;margin:0 auto 18px;width:58px;height:58px;background:#f1f5fc;border-radius:18px}.empty-icon .icon{width:25px;height:25px;opacity:.6}.empty p{margin:9px 0 22px;font-size:12px;color:var(--muted)}.bottom-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;margin-top:24px}.help-card{padding:26px}.help-card p{color:#7a879a;font-size:12px;line-height:1.9;margin:12px 0 18px;max-width:400px}.text-button{display:inline-flex;align-items:center;gap:7px;border:0;background:none;padding:5px 0;color:#3269c9;font-size:12px;min-height:32px}.text-button .icon{width:14px;height:14px}.quiet-note{border-top:1px solid var(--line);margin-top:22px;padding-top:16px;display:flex;align-items:flex-start;gap:8px;font-size:10px;color:#929bac;line-height:1.8}.quiet-note .icon{width:14px;height:14px;margin-top:2px;opacity:.6}.activity{padding-bottom:16px}.activity .section-heading{padding-bottom:10px}.activity-row{display:flex;align-items:flex-start;gap:12px;padding:9px 26px;color:#68758a;font-size:11px}.activity-row .dot{width:5px;height:5px;margin-top:6px;background:#c9d9f2}.activity-row small{display:block;color:#a0a9b7;font-size:10px;margin-top:2px}.page-footer{display:flex;justify-content:space-between;align-items:center;margin-top:30px;color:#99a3b0;font-size:10px}.notice{background:#eef4ff;border:1px solid #dce7fb;color:#365785;padding:13px 16px;border-radius:10px;margin-bottom:22px;font-size:12px}.error{background:#fff3f3;border-color:#f5dada;color:#a33131}.success{color:#235cb0}.stack{display:flex;flex-direction:column;gap:19px}.stack label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:550}.stack label small{color:#8c97a5;font-size:10px;font-weight:400}.stack input:not([type=checkbox]){width:100%;border:1px solid #dce2eb;background:white;border-radius:8px;padding:11px 12px;min-height:44px;color:var(--ink);font-size:13px}.stack input:focus{outline:none;border-color:#86a9ee;box-shadow:0 0 0 3px #2463eb0c}.stack input::placeholder{color:#a6afbd}.login-layout{display:grid;grid-template-columns:1fr 410px;gap:40px;align-items:center;max-width:1100px;margin:55px auto}.intro h1{font-size:clamp(26px,3vw,40px);line-height:1.6;letter-spacing:-1.2px}.intro h1 span{color:#8c9aae}.intro p{font-size:13px;color:#8390a2;line-height:2;margin:22px 0}.intro>small{color:#a4aebd;font-size:10px;letter-spacing:1px}.route-demo{display:flex;align-items:center;gap:14px;margin:40px 0 22px;max-width:280px}.route-demo>span{width:50px;height:50px;border-radius:14px;background:white;border:1px solid var(--line);display:grid;place-items:center;font-weight:600;color:#5178bd}.route-line{flex:1;height:1px;background:linear-gradient(90deg,#dce5f4,#7199df)}.route-demo .icon{width:17px;opacity:.55}.login-card{padding:32px}.login-card h2{font-size:23px}.login-card>p{margin:8px 0 27px}.footnote{display:flex;gap:7px;align-items:center;justify-content:center;color:#95a0af;font-size:10px;line-height:1.8}.footnote .icon{width:12px}.login-card>.footnote{margin:22px 0 0}dialog{width:min(540px,calc(100% - 30px));max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:20px;padding:28px;color:var(--ink);box-shadow:0 30px 100px #12234230;background:white}dialog::backdrop{background:#15263b50;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:6px}.dialog-heading .eyebrow{margin-bottom:5px}.icon-button{padding:8px;width:40px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px}.option-box{border:1px solid var(--line);border-radius:10px;padding:15px;background:#fafbfd;display:flex;flex-direction:column;gap:15px}.stack label.check{display:flex;flex-direction:row;gap:10px;align-items:flex-start}.check input{margin-top:4px;accent-color:var(--blue);width:15px;height:15px}.check small{display:block;margin-top:3px}.guide-steps{padding-left:20px;font-size:13px}.guide-steps li{padding:10px 0 10px 8px}.guide-steps p{font-size:12px;color:#7d899a;margin-top:7px;line-height:1.9}#account>p{margin:12px 0 24px}
@keyframes enter{from{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:none}}
@keyframes leave{to{opacity:0;transform:translateY(8px) scale(.98)}}
.content>*{animation:enter .55s var(--spring) both}.content>:nth-child(2){animation-delay:60ms}.content>:nth-child(3){animation-delay:120ms}.content>:nth-child(4){animation-delay:180ms}.sidebar>*{animation:enter .6s var(--spring) both}dialog[open]{animation:enter .3s var(--spring) both}dialog.closing{animation:leave .17s ease both}
@view-transition{navigation:auto}
.brand{view-transition-name:brand}.topbar{view-transition-name:topbar}.stats{view-transition-name:stats}.rules-card{view-transition-name:rules}
::view-transition-old(root){animation:leave .18s ease both}::view-transition-new(root){animation:enter .35s var(--spring) both}
@media(max-width:1150px){.sidebar{width:195px;padding:28px 16px}.brand{font-size:16px}.content{padding:30px 24px}.topbar{padding:0 24px}td,th{padding-left:16px;padding-right:16px}.login-layout{grid-template-columns:1fr;max-width:440px;margin:20px auto}.intro{display:none}.bottom-grid{grid-template-columns:1fr 1fr}.target span{max-width:210px}}
@media(max-width:760px){.shell{display:block}.sidebar{position:static;width:100%;height:auto;padding:17px 20px;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:17px}.brand small{font-size:8px}.brand-symbol{height:35px;width:35px}.sidebar .nav-label,.sidebar .nav-item,.sidebar-bottom{display:none}.topbar{height:54px;padding:0 20px}.content{padding:25px 16px}.page-heading{align-items:flex-start;flex-direction:column;gap:17px}h1{font-size:25px}.stats{gap:9px;margin-bottom:20px}.stat{padding:14px 12px}.stat-icon{display:none}.stat strong{font-size:27px}.stat small{font-size:9px}.stat span{font-size:11px}.section-heading{padding:19px 16px;align-items:flex-start;flex-direction:column}.search{width:100%}.search input{flex:1}.bottom-grid{grid-template-columns:1fr}.table-wrap table{min-width:710px}.login-card{padding:25px}.login-layout{margin:12px auto}.topbar-right{font-size:10px}.help-card{padding:22px}dialog{padding:23px}.page-footer{margin-top:25px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}::view-transition-group(*){animation:none!important}}

@media(max-width:760px){
.table-wrap table,.table-wrap tbody{display:block;min-width:0;width:100%}
.table-wrap thead{display:none}
.table-wrap tr{display:grid;grid-template-columns:1fr auto;padding:17px 16px;border-top:1px solid var(--line);gap:14px 10px}
.table-wrap td{display:block;border:0;padding:0;min-width:0}
.table-wrap .domain-cell{grid-column:1 / -1;max-width:none}
.table-wrap .target span{max-width:none;white-space:normal;overflow-wrap:anywhere}
.table-wrap td:last-child{grid-column:1 / -1}
.table-wrap .actions{justify-content:flex-start}
.table-wrap .domain-cell strong{overflow-wrap:anywhere}
}

[hidden]{display:none!important}
.stack select{font:inherit;padding:11px 12px;border:1px solid #dce2eb;border-radius:8px;background:white;color:var(--ink);min-height:44px;transition:border-color .2s,box-shadow .2s}

/* Keep the editor anchored while its form grows/shrinks; reserve its scrollbar width. */
#editor{margin-block:5vh;margin-inline:auto;max-height:90vh;max-height:90dvh;scrollbar-gutter:stable;overscroll-behavior:contain}
html:has(dialog[open]){overflow:hidden}
