:root{--paper: #f3efe5;--ink: #17211d;--forest: #173f35;--jade: #2d6b5a;--cinnabar: #a74332;--line: #d8d0c0;--muted: #6f766f;font-family:Arial,Microsoft YaHei,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:#fffdf8;color:var(--ink);border-radius:4px;padding:8px 12px}button:disabled{cursor:not-allowed;opacity:.5}.button-primary{background:var(--forest);color:#fff;border-color:var(--forest)}.button-danger{background:var(--cinnabar);color:#fff;border-color:var(--cinnabar)}.wide{width:100%}.link-button{border:0;padding:0;background:transparent;color:var(--jade)}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(460px,100%);background:#fffdf8;border:1px solid var(--line);border-top:5px solid var(--forest);padding:42px;box-shadow:8px 8px #ded6c7}.eyebrow{color:var(--jade);letter-spacing:.14em;font-size:12px}h1,h2,h3{font-family:Georgia,SimSun,serif}.login-channel,.muted{color:var(--muted)}form,label{display:grid;gap:8px}form{gap:16px}input,select,textarea{width:100%;border:1px solid var(--line);background:#fffefa;border-radius:3px;padding:9px;color:var(--ink)}textarea{min-height:72px;resize:vertical}.form-error{color:var(--cinnabar)}tr.clickable{cursor:pointer}tr.clickable:hover{background:#f5efe4}tr.clickable:focus-visible{outline:2px solid var(--jade);outline-offset:-2px}.error-detail{margin:12px 0;padding:12px;background:#f5efe4;border:1px solid var(--line);white-space:pre-wrap;word-break:break-word}.toast-stack{position:fixed;right:24px;bottom:24px;z-index:50;display:grid;gap:8px;max-width:380px}.toast{margin:0;padding:12px 16px;border:1px solid var(--line);border-radius:4px;box-shadow:4px 4px #e3dccf;background:#fffdf8}.toast-success{border-color:var(--jade);background:#eaf5f0}.app-shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr}.sidebar{background:var(--forest);color:#f6f0e4;padding:28px 18px}.brand{font-family:Georgia,serif;letter-spacing:.12em;font-size:18px;line-height:1.4;margin-bottom:44px}.brand small{font-family:Arial,sans-serif;font-size:11px;letter-spacing:.2em}nav{display:grid;gap:6px}nav button{text-align:left;border:0;background:transparent;color:#f6f0e4}nav button:hover,nav button.active{background:#2b5c4d}nav button.active{font-weight:700}.main-content{min-width:0}.topbar{min-height:48px;display:flex;justify-content:flex-end;gap:20px;align-items:center;padding:10px 28px;border-bottom:1px solid var(--line);font-size:13px}.channel{color:var(--jade)}.page-heading{padding:28px 32px 12px}.page-heading p{margin:0;color:var(--muted);font-size:13px}.page-heading h1{margin:8px 0 0}.card{margin:0 32px 24px;padding:24px;background:#fffdf8;border:1px solid var(--line);box-shadow:4px 4px #e3dccf}.stack{display:grid;gap:24px}.stack>.card{margin-bottom:0}.toolbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.toolbar h2,.toolbar h3{margin:0 0 6px}.compact{min-width:230px;font-size:12px}.compact-list{margin:12px 0 0;padding-left:18px;display:grid;gap:6px;color:var(--muted);font-size:13px}.filters{display:flex;gap:8px;flex-wrap:wrap}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:900px}th,td{border-bottom:1px solid var(--line);text-align:left;padding:11px 8px;vertical-align:top;font-size:13px}th{color:var(--muted);font-weight:600}tbody tr{cursor:default}tbody tr.clickable{cursor:pointer}tbody tr.selected{background:#f5efe4}tbody tr:hover{background:#f8f1e5}.table-wrap td small,.list-row small{display:block;color:var(--muted);margin-top:4px}.status{display:inline-block;padding:3px 7px;border:1px solid currentColor;border-radius:99px;font-size:12px}.status-active,.status-assigned,.status-approved{color:var(--jade)}.status-disabled,.status-revoked,.status-rejected{color:var(--cinnabar)}.status-pending,.status-pending_approval,.status-review_required{color:#8c6a25}.pager{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.empty{color:var(--muted);padding:32px 0;text-align:center}.notice{display:flex;flex-wrap:wrap;gap:10px;padding:12px;border:1px solid var(--line);margin-bottom:16px}.notice-error{border-color:#d5a99f;color:var(--cinnabar)}.notice-success{border-color:var(--jade);color:var(--forest);background:#eaf5f0}.row-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.select-col{width:36px;vertical-align:middle}.select-col input{width:auto}.batch-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:0 0 16px;padding:12px;background:#f5efe4;border:1px solid var(--line)}.batch-actions>span{align-self:center;font-weight:600}.batch-actions label{min-width:180px}.empty-state-card{display:grid;gap:6px;justify-items:center}.empty-state-card strong{font-size:15px}.skeleton{background:linear-gradient(90deg,#e3dccf 25%,#f0e9dc,#e3dccf 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}.skeleton-text{height:12px;margin:4px 0;width:100%}.skeleton-title{height:22px;width:40%;margin:8px 0 16px}.skeleton-block{height:64px;width:100%}.skeleton-w-60{width:60%}.skeleton-w-80{width:80%}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.detail-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:24px;padding:0 32px 24px}.detail-grid .card{margin:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.stats div{background:#f5efe4;padding:14px}.stats span,.stats strong{display:block}.stats span{color:var(--muted);font-size:12px}.stats strong{margin-top:7px;font-size:21px}.subsection{border-top:1px solid var(--line);padding-top:18px;margin-top:22px}.subsection h3{margin-top:0}.subsection.highlight{background:#f5efe4;border:1px solid var(--line);border-top-width:4px;border-top-color:var(--forest);padding:16px}.choice{border:1px solid var(--line);padding:12px;display:grid;gap:8px}.choice legend{padding:0 6px;color:var(--muted)}.check{display:flex;gap:8px;align-items:center}.check input{width:auto}.key-revoke{margin-top:16px}.key-revoke>summary{cursor:pointer;color:var(--muted)}details.subsection>summary{cursor:pointer;font-weight:600}details.subsection .subsection:first-of-type{border-top:none;margin-top:12px;padding-top:0}.form-grid{grid-template-columns:repeat(2,1fr)}.form-grid label:nth-last-of-type(1),.form-grid button{grid-column:1 / -1}.inline-form{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.inline-form>*{flex:1;min-width:120px}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sortable:hover{color:var(--jade)}.filters label{display:grid;gap:4px;font-size:12px;color:var(--muted)}.key-form{display:grid;gap:12px;margin:12px 0}.key-form label{display:grid;gap:6px}.key-form label span{font-weight:400}.key-form-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.list-row{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.plan-card{border-top:1px solid var(--line);padding:16px 0}.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 24px}.dialog-backdrop{position:fixed;inset:0;background:#17211d73;display:grid;place-items:center;padding:24px;z-index:5}.dialog{width:min(520px,100%);background:var(--paper);padding:24px;border:1px solid var(--line)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}@media(max-width:800px){.app-shell{grid-template-columns:1fr}.sidebar{padding:14px}.brand{margin-bottom:12px}nav{display:flex;overflow-x:auto}.topbar{justify-content:flex-start;flex-wrap:wrap}.page-heading,.card{margin-left:14px;margin-right:14px;padding:18px}.detail-grid{display:block;padding:0 14px 14px}.detail-grid .card{margin-bottom:14px}.form-grid{grid-template-columns:1fr}.form-grid label:nth-last-of-type(1),.form-grid button{grid-column:auto}.stats{grid-template-columns:1fr}}.card>.toolbar{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--card-bg, #f7f1e6) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding-bottom:.75rem;margin-bottom:.5rem;border-bottom:1px solid color-mix(in srgb,currentColor 12%,transparent)}.copy-button{margin-left:.35rem;font-size:.85em}:root{--paper: #f5f7fb;--ink: #182338;--forest: #19385f;--jade: #247a66;--cinnabar: #b64d4d;--line: #d9e1ee;--muted: #637089}body{background:#f5f7fb}.app-shell{grid-template-columns:248px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:28px 18px;background:linear-gradient(180deg,#17385e,#102b4b);box-shadow:10px 0 28px #182f4f1a}.brand{margin-bottom:30px;color:#f5f8ff}nav button{border-radius:10px;padding:11px 13px;color:#d9e6f7;transition:background .14s ease,transform .14s ease}nav button:hover,nav button.active{background:#ffffff21;transform:translate(2px)}.topbar{min-height:64px;justify-content:flex-end;background:#ffffffd1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.page-heading{padding-top:24px}.card{border-radius:16px;box-shadow:0 10px 30px #1b2f4e12}.overview-page{padding-bottom:30px}.overview-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 32px 20px;padding:26px 28px;border:1px solid #d4e0f2;border-radius:16px;background:linear-gradient(120deg,#eaf2ff,#f8fbff)}.overview-hero h2{margin:8px 0 6px;font-size:24px}.overview-hero p{margin:0;color:var(--muted)}.overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 32px 20px}.overview-card{display:grid;gap:7px;min-width:0;min-height:126px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left;box-shadow:0 8px 22px #1b2f4e0d}.overview-card.action{transition:border-color .14s ease,transform .14s ease,box-shadow .14s ease}.overview-card.action:hover,.overview-card.action:focus-visible{border-color:#8eadd9;box-shadow:0 12px 28px #1b2f4e1c;transform:translateY(-2px)}.overview-card span,.overview-card small{color:var(--muted)}.overview-card strong{color:var(--forest);font-size:30px;line-height:1}.overview-card small{font-size:12px}.overview-columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:20px}.overview-list-card{margin-bottom:0}.overview-alert-list,.overview-events{display:grid;gap:8px}.overview-alert-list button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left}.overview-alert-list button:hover{border-color:#8eadd9;background:#f8fbff}.overview-alert-list strong,.overview-alert-list small,.overview-events strong,.overview-events span,.overview-events small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-alert-list small,.overview-events span,.overview-events small{margin-top:3px;color:var(--muted);font-size:12px}.overview-alert-list b{color:var(--jade)}.overview-events>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:11px 0;border-bottom:1px solid var(--line)}.overview-events>div small{grid-column:2;grid-row:1 / span 2;align-self:center;white-space:nowrap}@media(max-width:1050px){.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-columns{grid-template-columns:1fr}}
