:root{color:#18202a;background:#f4f6f8;font-family:Inter,PingFang SC,Microsoft YaHei,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{align-items:center;background:#fff;border:1px solid #c8d1dc;border-radius:6px;color:#1c2836;cursor:pointer;display:inline-flex;gap:6px;height:36px;justify-content:center;padding:0 12px}button:disabled{cursor:not-allowed;opacity:.55}input{border:1px solid #c8d1dc;border-radius:6px;height:36px;padding:0 10px;width:100%}label{color:#445165;display:grid;font-size:13px;gap:6px}.login-shell{display:grid;min-height:100vh;place-items:center;padding:24px}.login-panel{background:#fff;border:1px solid #d8dee6;border-radius:8px;box-shadow:0 12px 30px #141f2c14;display:grid;gap:16px;max-width:420px;padding:28px;width:100%}.brand-row,.topbar,.section-title,.toolbar,.row-actions{align-items:center;display:flex}.brand-row{gap:12px}h1,h2,p{margin:0}h1{font-size:22px;font-weight:700}h2{font-size:16px}p{color:#687589;font-size:13px}.primary{background:#1663d8;border-color:#1663d8;color:#fff}.message,.notice{color:#a33d00;min-height:20px}.app-shell{display:grid;gap:16px;min-height:100vh;padding:18px}.topbar{background:#fff;border:1px solid #d8dee6;border-radius:8px;justify-content:space-between;padding:14px 16px}.toolbar,.row-actions{gap:8px}.notice{background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;padding:9px 12px}.content-grid{align-items:start;display:grid;gap:16px;grid-template-columns:minmax(340px,420px) minmax(0,1fr)}.editor,.table-wrap{background:#fff;border:1px solid #d8dee6;border-radius:8px;display:grid;gap:14px;padding:14px}.section-title{justify-content:space-between}.section-title span{color:#687589;font-size:13px}.form-grid{display:grid;gap:12px;grid-template-columns:1fr 1fr}.span-2{grid-column:1 / -1}.table-scroll{overflow:auto}table{border-collapse:collapse;min-width:1180px;width:100%}th,td{border-bottom:1px solid #e7ebf0;font-size:13px;max-width:220px;padding:10px;text-align:left;vertical-align:middle;white-space:nowrap}td{overflow:hidden;text-overflow:ellipsis}tbody tr{cursor:pointer}tbody tr:hover{background:#f7fafc}.mono{font-family:SFMono-Regular,Consolas,monospace}.expired{color:#b42318;font-weight:700}@media(max-width:980px){.content-grid{grid-template-columns:1fr}}@media(max-width:640px){.app-shell{padding:10px}.topbar,.brand-row{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}}
