:root{
  --brand:#0F766E;
  --brand-dark:#123B37;
  --accent:#14B8A6;
  --bg:#F5F8F7;
  --card:#FFFFFF;
  --text:#102A27;
  --muted:#667A77;
  --line:#E4ECEA;
  --success-bg:#E9F7F2;
  --success-text:#0F766E;
  --danger:#C84B5A;
  --danger-bg:#FFF1F3;
  --warning:#A66A12;
  --warning-bg:#FFF7E8;
  --shadow:0 4px 20px rgba(15,61,54,.05);
  --radius-card:16px;
  --radius-control:10px;
  --sidebar:240px;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;
  min-height:100vh;
  font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.layout{
  display:grid;
  grid-template-columns:var(--sidebar) minmax(0,1fr);
  min-height:100vh;
}
aside{
  width:var(--sidebar);
  min-height:100vh;
  padding:24px 16px;
  background:var(--brand-dark);
  color:#fff;
  display:flex;
  flex-direction:column;
  position:sticky;
  top:0;
  align-self:start;
}
.brand{
  min-height:56px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:0 12px;
  margin-bottom:20px;
  color:#fff;
  font-size:24px;
  font-weight:800;
  letter-spacing:-.02em;
}
.brand span{
  margin-top:4px;
  color:rgba(255,255,255,.56);
  font-size:12px;
  font-weight:600;
  letter-spacing:.04em;
}
nav{display:grid;gap:4px}
nav a{
  min-height:48px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 12px;
  border-radius:10px;
  color:rgba(255,255,255,.76);
  font-size:14px;
  font-weight:600;
  transition:background-color .16s ease,color .16s ease;
}
nav a::before{
  content:"";
  width:18px;
  height:18px;
  flex:0 0 18px;
  opacity:.82;
  background:currentColor;
  -webkit-mask:center/18px 18px no-repeat;
  mask:center/18px 18px no-repeat;
}
nav a:hover{background:rgba(255,255,255,.08);color:#fff}
nav a.active{background:var(--brand);color:#fff}
nav a.active::before{opacity:1}
nav a[href="?page=dashboard"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E")}
nav a[href="?page=my_nodes"]::before,nav a[href="?page=nodes"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M4 7h16M4 17h16'/%3E%3Crect x='4' y='4' width='16' height='6' rx='2'/%3E%3Crect x='4' y='14' width='16' height='6' rx='2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M4 7h16M4 17h16'/%3E%3Crect x='4' y='4' width='16' height='6' rx='2'/%3E%3Crect x='4' y='14' width='16' height='6' rx='2'/%3E%3C/svg%3E")}
nav a[href="?page=store"]::before,nav a[href="?page=products"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M4 8h16l-1 12H5L4 8Z'/%3E%3Cpath d='M8 8a4 4 0 0 1 8 0'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M4 8h16l-1 12H5L4 8Z'/%3E%3Cpath d='M8 8a4 4 0 0 1 8 0'/%3E%3C/svg%3E")}
nav a[href="?page=billing"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M6 3h12v18l-3-2-3 2-3-2-3 2V3Z'/%3E%3Cpath d='M9 8h6M9 12h6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M6 3h12v18l-3-2-3 2-3-2-3 2V3Z'/%3E%3Cpath d='M9 8h6M9 12h6'/%3E%3C/svg%3E")}
nav a[href="?page=profile"]::before,nav a[href="?page=customers"]::before,nav a[href="?page=subaccounts"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E")}
nav a[href="?page=servers"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='3' y='4' width='18' height='6' rx='2'/%3E%3Crect x='3' y='14' width='18' height='6' rx='2'/%3E%3Cpath d='M7 7h.01M7 17h.01'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='3' y='4' width='18' height='6' rx='2'/%3E%3Crect x='3' y='14' width='18' height='6' rx='2'/%3E%3Cpath d='M7 7h.01M7 17h.01'/%3E%3C/svg%3E")}
.side-bottom{
  margin-top:auto;
  padding:20px 12px 0;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:13px;
  color:#fff;
}
.side-bottom small{display:block;margin-top:4px;color:rgba(255,255,255,.5);font-size:11px}
.side-bottom>a{color:rgba(255,255,255,.72);font-weight:600}
main{min-width:0;width:100%}
.top,.content{width:min(100%,1480px);margin:0 auto}
.top{padding:32px 32px 0}
.top h1{margin:0;color:var(--text);font-size:28px;line-height:1.25;font-weight:800;letter-spacing:-.02em}
.top p{margin:8px 0 0;color:var(--muted);font-size:13px}
.content{padding:24px 32px 40px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.card,.panel,.login-card,.purchase-dialog{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}
.card{border-radius:var(--radius-card);padding:20px}
.stat{min-height:128px;display:flex;flex-direction:column;justify-content:center}
.stat .label{color:var(--muted);font-size:12px;font-weight:700}
.stat .value{margin-top:8px;color:var(--brand);font-size:32px;line-height:1.1;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpi-sub{margin-top:8px;color:var(--muted);font-size:12px;line-height:1.5}
.panel{margin-top:20px;border-radius:var(--radius-card);overflow:hidden}
.panel-head{min-height:64px;padding:16px 20px;border-bottom:1px solid var(--line);display:flex;gap:16px;align-items:center;justify-content:space-between;background:#fff}
.panel-head h2{margin:0;color:var(--text);font-size:16px;font-weight:800}
.panel-body{padding:20px}
.table-wrap{width:100%;overflow:auto;overscroll-behavior-inline:contain}
table{width:100%;border-collapse:collapse;min-width:900px;background:#fff}
th,td{padding:16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;font-size:13px}
th{background:#FAFCFB;color:var(--muted);font-weight:700;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#FCFEFD}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;color:#23413B;font-size:12px;line-height:1.6;word-break:break-all}
.badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 10px;border-radius:999px;background:#EFF4F2;color:#526662;font-size:11px;font-weight:700;white-space:nowrap}
.badge.ok{background:var(--success-bg);color:var(--success-text)}
.badge.off{background:#EFF3F2;color:#637572}
.badge.err{background:var(--danger-bg);color:var(--danger)}
.badge.warn{background:var(--warning-bg);color:var(--warning)}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.btn{min-height:40px;border:1px solid var(--line);border-radius:var(--radius-control);padding:0 14px;background:#fff;color:#314844;font-size:13px;font-weight:700;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}
.btn:hover{border-color:#C6D8D4;background:#F8FBFA}.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn.primary{border-color:var(--brand);background:var(--brand);color:#fff}.btn.primary:hover{border-color:#0B6861;background:#0B6861}
.btn.success{border-color:var(--accent);background:var(--accent);color:#fff}.btn.success:hover{border-color:#0FA695;background:#0FA695}
.btn.danger{border-color:#F3CDD3;background:var(--danger-bg);color:var(--danger)}.btn.danger:hover{border-color:#EBB7C0;background:#FFE7EB}
.btn.sm{min-height:36px;padding:0 12px;font-size:12px}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.field label{display:block;margin:0 0 8px;color:#526662;font-size:12px;font-weight:700}
.field input,.field select,.field textarea,.row input,.row select,.search input,.panel-tools select{width:100%;min-height:40px;border:1px solid #D9E4E1;border-radius:var(--radius-control);background:#fff;color:var(--text);padding:8px 12px;outline:none;font-size:13px;transition:border-color .16s ease,box-shadow .16s ease}
.field textarea{min-height:104px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.row input:focus,.row select:focus,.search input:focus,.panel-tools select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(20,184,166,.10)}
.field.full{grid-column:1/-1}.help{margin-top:8px;color:var(--muted);font-size:12px;line-height:1.5}
.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row input,.row select{width:auto;min-width:160px;flex:1 1 160px}
.search{display:flex;align-items:center;gap:8px}.search input{min-width:240px}
.note{padding:16px;border:1px solid var(--line);border-radius:12px;background:#F9FBFA;color:#536B66;font-size:13px;line-height:1.7}
.flash{margin:0 0 16px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);box-shadow:var(--shadow)}.flash.success{border-color:#CDE9DF;background:#F6FCF9}.flash.error{border-color:#F0CDD2;background:#FFF8F9}.flash pre{margin:0;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.6}
.panel-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.panel-tools select{width:auto;min-width:160px}
.pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding:16px 20px;border-top:1px solid var(--line)}.page-info{margin-right:auto;color:var(--muted);font-size:12px}.page-dots{padding:0 4px;color:var(--muted)}.node-select,#nodeSelectAll{width:16px;height:16px;accent-color:var(--brand);cursor:pointer}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.login-card{width:min(420px,100%);padding:28px;border-radius:var(--radius-card)}.login-card h1{margin:0 0 8px;color:var(--text);font-size:28px;font-weight:800}.login-card p{margin:0 0 24px;color:var(--muted);font-size:13px}.login-card .field{margin-bottom:16px}.login-card .btn{width:100%;margin-top:4px}
.purchase-dialog{width:min(520px,calc(100vw - 32px));padding:0;border-radius:var(--radius-card);color:var(--text)}.purchase-dialog::backdrop{background:rgba(18,59,55,.36)}.purchase-dialog form{margin:0}.purchase-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid var(--line)}.purchase-dialog-head h3{margin:0 0 4px;font-size:18px}.purchase-dialog-head p{margin:0;color:var(--muted);font-size:12px}.dialog-close{border:0;background:transparent;color:var(--muted);font-size:24px;line-height:1;cursor:pointer;padding:0 4px}.server-choice-list{display:grid;gap:8px;max-height:336px;overflow:auto;padding:20px}.server-choice{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}.server-choice:hover{border-color:#B7D8D2;background:#F9FCFB}.server-choice input{width:16px;height:16px;margin:0;accent-color:var(--brand)}.server-choice span{font-weight:700}.purchase-dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:0 20px 20px}
[data-page="my_nodes"] .grid{grid-template-columns:minmax(240px,320px)}
[data-page="my_nodes"] .card.stat{min-height:112px}
[data-page="my_nodes"] .stat .value{font-size:36px}
[data-page="my_nodes"] td:first-child{min-width:300px}
[data-page="my_nodes"] td:nth-child(3){white-space:nowrap;font-variant-numeric:tabular-nums}
[data-page="my_nodes"] td:nth-child(4){min-width:360px}
[data-page="my_nodes"] td:nth-child(5){min-width:160px}
[data-page="my_nodes"] .badge.ok{font-size:0}
[data-page="my_nodes"] .badge.ok::before{content:"正常";font-size:11px}
[data-page="my_nodes"] .badge.err{font-size:0}
[data-page="my_nodes"] .badge.err::before{content:"已到期";font-size:11px}
[data-page="my_nodes"] .badge.off{font-size:0}
[data-page="my_nodes"] .badge.off::before{content:"停用";font-size:11px}
@media(max-width:1200px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top,.content{padding-left:24px;padding-right:24px}}
@media(max-width:900px){:root{--sidebar:100%}.layout{display:block}aside{position:static;width:100%;min-height:auto;padding:16px}.brand{min-height:auto;margin:0 0 12px;padding:0 8px;font-size:20px}.brand span{display:none}nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}nav a{min-height:44px}.side-bottom{margin-top:16px;padding:16px 8px 0}.top{padding:24px 16px 0}.content{padding:20px 16px 32px}.grid,.form-grid{grid-template-columns:1fr}.search{width:100%}.search input{width:100%;min-width:0}.panel-head{align-items:flex-start;flex-direction:column}.panel-tools{width:100%}.panel-tools select{width:100%}}
@media(max-width:768px){[data-page="my_nodes"] .table-wrap{overflow:visible}[data-page="my_nodes"] table{min-width:0;display:block;background:transparent}[data-page="my_nodes"] thead{display:none}[data-page="my_nodes"] tbody{display:grid;gap:12px}[data-page="my_nodes"] tr{display:block;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow);overflow:hidden}[data-page="my_nodes"] td{display:block;width:100%;min-width:0!important;padding:12px 16px;border-bottom:1px solid var(--line);background:#fff!important}[data-page="my_nodes"] td:last-child{border-bottom:0}[data-page="my_nodes"] td::before{display:block;margin-bottom:6px;color:var(--muted);font-size:11px;font-weight:700}[data-page="my_nodes"] td:nth-child(1)::before{content:"节点"}[data-page="my_nodes"] td:nth-child(2)::before{content:"状态"}[data-page="my_nodes"] td:nth-child(3)::before{content:"到期"}[data-page="my_nodes"] td:nth-child(4)::before{content:"更改账号/密码"}[data-page="my_nodes"] td:nth-child(5)::before{content:"续费"}[data-page="my_nodes"] .row{align-items:stretch}[data-page="my_nodes"] .row input{flex:1 1 100%;width:100%}[data-page="my_nodes"] .row .btn{width:100%}.pagination{justify-content:center}.page-info{width:100%;margin-right:0;text-align:center}}
@media(max-width:560px){nav{grid-template-columns:1fr}.top h1{font-size:24px}.content{padding-top:16px}.card,.panel-body{padding:16px}.panel-head{padding:16px}.purchase-dialog{width:calc(100vw - 24px)}.purchase-dialog-head,.server-choice-list{padding:16px}.purchase-dialog-actions{padding:0 16px 16px}.actions{gap:8px}.actions .btn{flex:1 1 auto}}

/* My Nodes: compact list, search, page-size selector and batch renew */
[data-page="my_nodes"] .my-nodes-panel{margin-top:16px}
[data-page="my_nodes"] .my-nodes-toolbar{min-height:auto;padding:12px 16px;align-items:center;gap:12px}
[data-page="my_nodes"] .my-node-search{display:flex;align-items:center;gap:8px;flex:1 1 620px;min-width:0}
[data-page="my_nodes"] .my-node-search>input[name="q"]{min-width:260px;max-width:420px;flex:1 1 320px;height:36px;border:1px solid #D9E4E1;border-radius:9px;background:#fff;color:var(--text);padding:0 11px;outline:none;font-size:12px}
[data-page="my_nodes"] .my-node-search>input[name="q"]:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(20,184,166,.10)}
[data-page="my_nodes"] .page-size-label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;white-space:nowrap;margin-left:4px}
[data-page="my_nodes"] .page-size-label select{height:36px;min-width:68px;border:1px solid #D9E4E1;border-radius:9px;background:#fff;color:var(--text);padding:0 28px 0 10px;outline:none}
[data-page="my_nodes"] .my-node-batch{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto}
[data-page="my_nodes"] .batch-summary{color:var(--muted);font-size:12px;white-space:nowrap}
[data-page="my_nodes"] .my-nodes-toolbar .btn{min-height:36px;padding:0 12px}
[data-page="my_nodes"] .my-nodes-panel table{min-width:1050px}
[data-page="my_nodes"] .my-nodes-panel th,[data-page="my_nodes"] .my-nodes-panel td{padding:10px 12px}
[data-page="my_nodes"] .my-nodes-panel th{font-size:12px}
[data-page="my_nodes"] .my-nodes-panel td{font-size:12px;line-height:1.45}
[data-page="my_nodes"] .select-col{width:42px;min-width:42px!important;text-align:center;padding-left:10px!important;padding-right:6px!important}
[data-page="my_nodes"] .select-col input{width:15px;height:15px;accent-color:var(--brand);cursor:pointer}
[data-page="my_nodes"] .select-col input:disabled{cursor:not-allowed;opacity:.3}
[data-page="my_nodes"] .my-nodes-panel .row{gap:6px;flex-wrap:nowrap}
[data-page="my_nodes"] .my-nodes-panel .row input{min-height:34px;height:34px;padding:6px 9px;font-size:12px;min-width:120px}
[data-page="my_nodes"] .my-nodes-panel .row input[name="username"]{flex:1 1 130px}
[data-page="my_nodes"] .my-nodes-panel .row input[name="password"]{flex:1 1 150px}
[data-page="my_nodes"] .my-nodes-panel .btn.sm{min-height:34px;height:34px;padding:0 10px}
[data-page="my_nodes"] .my-nodes-panel .kpi-sub{margin-top:4px;font-size:11px;line-height:1.35}
[data-page="my_nodes"] .single-renew-form{margin-top:4px}
[data-page="my_nodes"] .pagination{padding:12px 16px}
[data-page="my_nodes"] td:nth-child(2){min-width:280px}
[data-page="my_nodes"] td:nth-child(4){white-space:nowrap;font-variant-numeric:tabular-nums}
[data-page="my_nodes"] td:nth-child(5){min-width:330px}
[data-page="my_nodes"] td:nth-child(6){min-width:150px}
@media(max-width:1100px){[data-page="my_nodes"] .my-nodes-toolbar{align-items:stretch;flex-direction:column}[data-page="my_nodes"] .my-node-search{width:100%;flex:1 1 auto}[data-page="my_nodes"] .my-node-batch{width:100%;justify-content:flex-start}}
@media(max-width:768px){[data-page="my_nodes"] .my-node-search{display:grid;grid-template-columns:1fr auto auto;gap:8px}[data-page="my_nodes"] .my-node-search>input[name="q"]{grid-column:1/-1;width:100%;max-width:none;min-width:0}[data-page="my_nodes"] .page-size-label{margin-left:0}[data-page="my_nodes"] .my-node-batch{justify-content:space-between}[data-page="my_nodes"] .batch-summary{white-space:normal}[data-page="my_nodes"] .select-col{display:block!important;width:100%!important;text-align:left!important;padding:10px 16px!important}[data-page="my_nodes"] td:nth-child(1)::before{content:"选择"}[data-page="my_nodes"] td:nth-child(2)::before{content:"节点"}[data-page="my_nodes"] td:nth-child(3)::before{content:"状态"}[data-page="my_nodes"] td:nth-child(4)::before{content:"到期"}[data-page="my_nodes"] td:nth-child(5)::before{content:"更改账号/密码"}[data-page="my_nodes"] td:nth-child(6)::before{content:"续费"}[data-page="my_nodes"] .my-nodes-panel .row{flex-wrap:wrap}}
[data-page="my_nodes"] .my-nodes-panel td:nth-child(4){min-width:150px}

/* =========================================================
   Caicai v1.0.11 - 我的节点 UI 强制精修
   仅 CSS / 视觉，不修改任何业务逻辑
   ========================================================= */

.my-nodes-panel{
    margin-top:16px !important;
    border-radius:16px !important;
    overflow:hidden !important;
}

/* ===== 顶部工具条 ===== */
.my-nodes-toolbar{
    min-height:64px !important;
    padding:12px 16px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:16px !important;
    background:#fff !important;
    border-bottom:1px solid #E4ECEA !important;
}

.my-node-search{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    flex:1 1 auto !important;
    min-width:0 !important;
}

.my-node-search > input[name="q"]{
    width:300px !important;
    max-width:360px !important;
    min-width:220px !important;
    height:36px !important;
    padding:0 12px !important;
    border:1px solid #D7E3E0 !important;
    border-radius:9px !important;
    background:#fff !important;
    color:#102A27 !important;
    font-size:12px !important;
    line-height:36px !important;
    box-shadow:none !important;
}

.my-node-search > input[name="q"]:focus{
    border-color:#0F766E !important;
    box-shadow:0 0 0 3px rgba(15,118,110,.08) !important;
    outline:none !important;
}

.my-node-search .btn{
    height:36px !important;
    min-height:36px !important;
    padding:0 14px !important;
    border-radius:9px !important;
    white-space:nowrap !important;
    font-size:12px !important;
}

/* 每页 10/30/50 */
.page-size-label{
    height:36px !important;
    display:inline-flex !important;
    align-items:center !important;
    gap:6px !important;
    margin:0 !important;
    padding:0 8px 0 10px !important;
    border:1px solid #DDE7E4 !important;
    border-radius:9px !important;
    background:#F8FBFA !important;
    color:#667A77 !important;
    font-size:12px !important;
    white-space:nowrap !important;
}

.page-size-label select{
    width:54px !important;
    min-width:54px !important;
    height:30px !important;
    padding:0 6px !important;
    border:0 !important;
    border-radius:7px !important;
    background:#fff !important;
    color:#102A27 !important;
    font-size:12px !important;
    font-weight:600 !important;
    outline:none !important;
}

/* ===== 批量续费区域 ===== */
.my-node-batch{
    min-height:40px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:12px !important;
    flex:0 0 auto !important;
    padding-left:18px !important;
    border-left:1px solid #E8EFED !important;
}

.batch-summary{
    color:#667A77 !important;
    font-size:12px !important;
    white-space:nowrap !important;
    font-variant-numeric:tabular-nums !important;
}

.my-node-batch .btn{
    height:36px !important;
    min-height:36px !important;
    padding:0 14px !important;
    border-radius:9px !important;
    font-size:12px !important;
}

.my-node-batch .btn:disabled{
    background:#EDF3F1 !important;
    border-color:#EDF3F1 !important;
    color:#9AA9A5 !important;
    opacity:1 !important;
    cursor:not-allowed !important;
    box-shadow:none !important;
    transform:none !important;
}

/* ===== 节点表格：明显压缩上下间距 ===== */
.my-nodes-panel .table-wrap{
    overflow-x:auto !important;
}

.my-nodes-panel table{
    width:100% !important;
    min-width:1080px !important;
    table-layout:fixed !important;
}

.my-nodes-panel thead th{
    height:40px !important;
    padding:7px 12px !important;
    background:#FAFCFB !important;
    color:#5F716C !important;
    font-size:11px !important;
    font-weight:650 !important;
    vertical-align:middle !important;
}

.my-nodes-panel tbody td{
    padding:7px 12px !important;
    min-height:0 !important;
    height:auto !important;
    line-height:1.3 !important;
    font-size:11.5px !important;
    vertical-align:middle !important;
}

/* 选择列 */
.my-nodes-panel .select-col{
    width:42px !important;
    min-width:42px !important;
    padding-left:14px !important;
    padding-right:4px !important;
}
.my-nodes-panel .select-col input{
    width:15px !important;
    height:15px !important;
    accent-color:#0F766E !important;
}

/* 列宽 */
.my-nodes-panel th:nth-child(2),
.my-nodes-panel td:nth-child(2){width:30% !important}

.my-nodes-panel th:nth-child(3),
.my-nodes-panel td:nth-child(3){width:75px !important}

.my-nodes-panel th:nth-child(4),
.my-nodes-panel td:nth-child(4){width:165px !important}

.my-nodes-panel th:nth-child(5),
.my-nodes-panel td:nth-child(5){width:405px !important}

.my-nodes-panel th:nth-child(6),
.my-nodes-panel td:nth-child(6){width:145px !important}

/* 节点文本 */
.my-nodes-panel td:nth-child(2).mono{
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    color:#173D37 !important;
    font-size:11px !important;
}

/* 状态 */
.my-nodes-panel .badge{
    min-height:22px !important;
    padding:3px 8px !important;
    border-radius:7px !important;
    font-size:10.5px !important;
    line-height:16px !important;
}

/* 到期时间 */
.my-nodes-panel td:nth-child(4){
    white-space:nowrap !important;
    color:#29443E !important;
    font-variant-numeric:tabular-nums !important;
}

/* 账号密码控件缩小 */
.my-nodes-panel td:nth-child(5) .row{
    display:flex !important;
    align-items:center !important;
    flex-wrap:nowrap !important;
    gap:6px !important;
}

.my-nodes-panel td:nth-child(5) input{
    height:32px !important;
    min-height:32px !important;
    padding:4px 9px !important;
    border-radius:8px !important;
    font-size:11px !important;
}

.my-nodes-panel td:nth-child(5) input[name="username"]{
    width:auto !important;
    min-width:110px !important;
    flex:1 1 135px !important;
}

.my-nodes-panel td:nth-child(5) input[name="password"]{
    width:auto !important;
    min-width:130px !important;
    flex:1 1 155px !important;
}

.my-nodes-panel .btn.sm{
    height:32px !important;
    min-height:32px !important;
    padding:0 10px !important;
    border-radius:8px !important;
    font-size:11px !important;
    line-height:30px !important;
}

.my-nodes-panel .kpi-sub{
    margin-top:3px !important;
    font-size:10px !important;
    line-height:1.2 !important;
    color:#82928E !important;
}

/* 续费列 */
.my-nodes-panel td:nth-child(6){
    word-break:normal !important;
}
.my-nodes-panel td:nth-child(6) > div:first-child{
    max-width:132px !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
    font-size:11.5px !important;
    font-weight:650 !important;
    color:#173D37 !important;
}
.my-nodes-panel .single-renew-form{
    margin-top:4px !important;
}

/* 分页 */
.my-nodes-panel .pagination{
    min-height:48px !important;
    padding:9px 14px !important;
    background:#FCFDFD !important;
}

/* 1024 / 小屏 */
@media(max-width:1100px){
    .my-nodes-toolbar{
        flex-direction:column !important;
        align-items:stretch !important;
        gap:10px !important;
    }

    .my-node-search{
        width:100% !important;
    }

    .my-node-search > input[name="q"]{
        flex:1 1 auto !important;
        width:auto !important;
        max-width:none !important;
    }

    .my-node-batch{
        width:100% !important;
        padding:10px 0 0 !important;
        border-left:0 !important;
        border-top:1px solid #E8EFED !important;
        justify-content:space-between !important;
    }
}

@media(max-width:768px){
    .my-nodes-toolbar{
        padding:10px 12px !important;
    }

    .my-node-search{
        display:grid !important;
        grid-template-columns:1fr auto !important;
        gap:7px !important;
    }

    .my-node-search > input[name="q"]{
        grid-column:1/-1 !important;
        width:100% !important;
        min-width:0 !important;
    }

    .page-size-label{
        justify-self:start !important;
    }

    .my-nodes-panel tbody{
        gap:8px !important;
    }

    .my-nodes-panel tr{
        border-radius:12px !important;
    }

    .my-nodes-panel tbody td{
        padding:8px 12px !important;
    }

    .my-nodes-panel td:nth-child(5) .row{
        flex-wrap:wrap !important;
    }
}
