:root{font-family:system-ui,"PingFang SC","Microsoft YaHei",sans-serif;color:#172723;background:#f1f5f2;line-height:1.55;--green:#11654c;--line:#dce7df;--muted:#52675e}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,input,select,textarea{font:inherit}button,input,select,textarea{border:1px solid #cbdcd1;border-radius:9px;padding:.55rem .7rem;background:#fff;color:inherit}button{cursor:pointer;font-weight:650}button:hover{background:#e9f4ee}button:disabled{opacity:.55;cursor:default}.primary{color:white;background:var(--green);border-color:var(--green)}.primary:hover{background:#0c503c}label{display:grid;gap:.3rem;font-size:.86rem;font-weight:650}textarea{width:100%;resize:vertical}h1,h2,p{margin:0}h1{font-size:clamp(2rem,5vw,3.35rem);letter-spacing:-.045em;line-height:1.16}h2{font-size:1.22rem}p,small{color:var(--muted)}h1+p{margin:.7rem 0 1.6rem}.brand,.eyebrow{font-family:ui-monospace,monospace;letter-spacing:.13em;font-weight:750}.brand{font-size:1.25rem}.eyebrow{font-size:.75rem;color:var(--green)}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.intro,.login-form{padding:clamp(2rem,8vw,8rem);display:grid;align-content:center;gap:1.3rem}.intro{background:radial-gradient(ellipse at 85% 90%,#236a52,#102e27 65%);color:#e9fff0}.intro p,.intro .eyebrow{color:#b5d7c5}.login-form{background:#fafcfb}.login-form h2{font-size:2.1rem}#dashboard{display:grid;grid-template-columns:205px minmax(0,1fr);min-height:100vh}aside{background:#102e27;color:#e8fff3;padding:1.8rem 1rem;display:flex;flex-direction:column;gap:1rem}aside p{color:#b6d4c5}aside button{background:transparent;border-color:transparent;color:inherit;text-align:left}aside button:hover,aside [aria-current=page]{background:#245242}aside nav{display:grid}#logout{margin-top:auto}main{padding:clamp(1rem,3.8vw,4rem);min-width:0}header,.row{display:flex;align-items:end;gap:.65rem;flex-wrap:wrap}header,.spread{justify-content:space-between;align-items:center}header{margin-bottom:2rem}.region{color:var(--green);font-size:.8rem;background:#e1f1e7;border-radius:100px;padding:.35rem .8rem}.layout{display:grid;grid-template-columns:minmax(185px,235px) minmax(0,1fr);gap:1rem;align-items:start}.card{padding:1.2rem;border:1px solid var(--line);border-radius:15px;background:#fff;min-width:0;box-shadow:0 4px 16px #15372708}.card h2{margin-bottom:.55rem}.stack,form{display:grid;gap:.75rem}.stack{min-width:0}#groups{margin-top:1rem}#groups button{text-align:left}#groups [aria-current=true]{background:#e1f1e7;border-color:#75a791}.scroll,.networks{overflow:auto}.domain-table{max-height:320px;margin-top:.8rem}.networks{max-height:230px;padding:.45rem 0}.network{display:flex;align-items:center;gap:.55rem;padding:.45rem;border-bottom:1px solid var(--line)}input[type=checkbox]{accent-color:var(--green)}table{width:100%;border-collapse:collapse;text-align:left;font-size:.86rem}td,th{padding:.55rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted)}td:first-child{overflow-wrap:anywhere}td details{min-width:105px}summary{cursor:pointer}td p{overflow-wrap:anywhere;min-width:130px;max-width:230px;white-space:pre-wrap}.status{display:inline-block;border-radius:6px;padding:.12rem .38rem;background:#eef2f0}.normal{background:#dff5e8;color:#155e3e}.abnormal{background:#ffe8e5;color:#9d2924}.failed,.no-node{background:#fff1d6;color:#7a4f0b}progress{width:100%;accent-color:var(--green)}#notice{position:fixed;z-index:5;bottom:1rem;right:1rem;background:#173d31;color:white;padding:.8rem 1.1rem;border-radius:10px;max-width:min(90vw,520px);box-shadow:0 5px 25px #0003}@media(max-width:760px){.login,#dashboard,.layout{grid-template-columns:1fr}aside{padding:.8rem 1rem;flex-direction:row;align-items:center;flex-wrap:wrap}aside nav{display:flex}aside p{display:none}.intro,.login-form{padding:2rem}#logout{margin:0}header{margin-bottom:1rem}}

.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,205px),1fr));gap:1rem}
.history-tile{display:grid;align-content:start;gap:.55rem;min-height:132px;padding:1rem;text-align:left;border-color:var(--line);border-radius:14px;box-shadow:0 4px 16px #15372708;overflow-wrap:anywhere}
.history-tile strong{font-size:1.1rem}
.history-tile span{color:var(--green);font-size:.85rem}
.expiry-warning,.expiry-warning small{color:#a42421;font-weight:700}
#registration-rows small{display:block}

#history-detail,#results,#history-detail label,#batches{min-width:0;max-width:100%}
#history-detail{grid-template-columns:minmax(0,1fr)}
.batch-summary{display:flex;flex-wrap:wrap;gap:.4rem;margin:.3rem 0 .65rem}
.batch-hint{display:block;margin-bottom:.45rem}
.batch-scroll{overflow:auto;max-width:100%;max-height:62vh;border:1px solid var(--line);border-radius:10px}
.batch-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}
.batch-table th,.batch-table td{padding:.65rem .75rem;border-right:1px solid var(--line)}
.batch-table thead th{position:sticky;top:0;z-index:2;background:#edf5ef}
.batch-table .batch-domain{position:sticky;left:0;z-index:1;min-width:clamp(125px,22vw,220px);max-width:clamp(125px,22vw,220px);background:#f8fbf9;overflow-wrap:anywhere}
.batch-table thead .batch-domain{z-index:3;background:#edf5ef}
.batch-table .batch-carrier{width:160px;min-width:160px;max-width:160px}
.batch-carrier span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.batch-table th small{display:block;margin-top:.2rem;font-weight:500}
.batch-table td{min-width:160px;max-width:160px}
.batch-table tbody tr:nth-child(even) td{background:#f8fbf9}
.batch-table td p{min-width:0;max-width:136px;margin-top:.35rem}
.batch-table .status{white-space:nowrap}

.batch-table-few{width:100%;table-layout:fixed}
.batch-table-few .batch-domain{width:clamp(135px,24%,260px)}
.batch-table-few .batch-carrier,.batch-table-few td{width:auto;min-width:0;max-width:none}
.batch-table-few td details{min-width:0}
.batch-table-few td p{max-width:none}
.batch-table-few:has(thead th:nth-child(2)){min-width:max(100%,280px)}
.batch-table-few:has(thead th:nth-child(3)){min-width:max(100%,420px)}
.batch-table-few:has(thead th:nth-child(4)){min-width:max(100%,560px)}
.batch-table-few:has(thead th:nth-child(5)){min-width:max(100%,700px)}
.batch-table-few:has(thead th:nth-child(6)){min-width:max(100%,840px)}
.domain-tools{margin-top:.8rem}
.domain-tools label{flex:1;min-width:170px}
.domain-select-col{width:38px;min-width:38px}
.cancel-batch{margin-left:auto;color:#a42421;border-color:#e5b8b4}
.cancelled{background:#edf0f2;color:#52606b}
