/* Arcveil Admin - shadcn inspired dashboard */
:root{
  --abg:#f8fafc;
  --asurface:#fff;
  --acard:#fff;
  --aborder:#e5e7eb;
  --ainput:#d1d5db;
  --aprimary:#18181b;
  --aprimary-foreground:#fafafa;
  --aaccent:#f4f4f5;
  --aaccent-foreground:#18181b;
  --amuted:#f4f4f5;
  --amuted-foreground:#71717a;
  --atext:#09090b;
  --atext2:#3f3f46;
  --atext3:#71717a;
  --danger:#dc2626;
  --success:#16a34a;
  --warning:#d97706;
  --ring:#18181b;
  --radius:8px;
  --shadow-sm:0 1px 2px rgb(0 0 0 / .04);
  --shadow-md:0 8px 24px rgb(15 23 42 / .08);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  --border:var(--aborder);
  --border-light:var(--aborder);
  --neutral-2:#f8fafc;
  --text-3:var(--atext3);
  --text-4:#cbd5e1;
  --fs-body-2:13px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--abg)}
body{min-height:100vh;font-family:var(--font);font-size:14px;line-height:1.5;color:var(--atext);background:var(--abg);-webkit-font-smoothing:antialiased}
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:999px}
a{color:inherit}

.admin-shell{min-height:100vh;display:flex;background:var(--abg)}
.admin-sidebar{position:fixed;inset:0 auto 0 0;z-index:80;width:264px;background:var(--asurface);border-right:1px solid var(--aborder);display:flex;flex-direction:column}
.admin-brand{height:64px;display:flex;align-items:center;gap:11px;padding:0 18px;border-bottom:1px solid var(--aborder)}
.admin-brand-mark,.topbar-avatar{display:flex;align-items:center;justify-content:center;color:#fff;background:var(--aprimary);font-weight:800}
.admin-brand-mark{width:34px;height:34px;border-radius:8px;font-size:15px}
.site-logo-mark{width:100%;height:100%;display:block;object-fit:contain}
.admin-brand-mark .site-logo-mark{width:100%;height:100%}
.admin-brand-mark{background:transparent!important;box-shadow:none!important;overflow:hidden}
.admin-brand strong{display:block;font-size:14px;line-height:1.2;color:var(--atext)}
.admin-brand span{display:block;margin-top:2px;font-size:12px;color:var(--atext3)}
.admin-nav{flex:1;overflow-y:auto;padding:12px 10px 16px;display:flex;flex-direction:column;gap:2px}
.admin-nav .nav-section{padding:13px 10px 6px;font-size:11px;font-weight:700;color:var(--atext3);letter-spacing:.04em}
.admin-nav a{height:36px;display:flex;align-items:center;gap:10px;padding:0 10px;border-radius:8px;color:var(--atext3);font-size:13px;font-weight:500;text-decoration:none;border:1px solid transparent;transition:background .15s,color .15s,border-color .15s}
.admin-nav a:hover{background:var(--aaccent);color:var(--atext)}
.admin-nav a.active{background:var(--aprimary);color:var(--aprimary-foreground);border-color:var(--aprimary)}
.admin-nav .nav-icon{width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 17px}
.nav-group{display:block}
.nav-group summary{height:36px;display:flex;align-items:center;gap:10px;padding:0 10px;border-radius:8px;color:var(--atext2);font-size:13px;font-weight:600;cursor:pointer;list-style:none;user-select:none}
.nav-group summary::-webkit-details-marker{display:none}
.nav-group summary:hover{background:var(--aaccent);color:var(--atext)}
.nav-group summary:after{content:"";width:7px;height:7px;margin-left:auto;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s}
.nav-group[open] summary:after{transform:rotate(45deg)}
.nav-children{display:grid;gap:2px;margin:2px 0 7px 27px;padding-left:9px;border-left:1px solid var(--aborder)}
.admin-nav .nav-children a{height:32px;padding:0 9px;font-size:12px;font-weight:500;color:var(--atext3)}
.admin-nav .nav-children a.active{background:#f4f4f5;color:var(--atext);border-color:var(--aborder);box-shadow:inset 3px 0 0 var(--aprimary)}
.admin-sidebar-footer{height:54px;border-top:1px solid var(--aborder);display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:12px;color:var(--atext3)}
.admin-sidebar-footer strong{color:var(--success);font-size:12px}
.sidebar-overlay{display:none;position:fixed;inset:0;z-index:70;background:rgb(0 0 0 / .38);backdrop-filter:blur(2px)}
.sidebar-overlay.visible{display:block}

.admin-workspace{margin-left:264px;min-height:100vh;display:flex;flex-direction:column;width:calc(100% - 264px);min-width:0}
.topbar.admin-topbar{position:sticky;top:0;z-index:60;height:64px;background:rgb(255 255 255 / .88);backdrop-filter:blur(14px);border-bottom:1px solid var(--aborder);display:flex;align-items:center;justify-content:space-between;padding:0 24px;box-shadow:none}
.icon-btn{width:36px;height:36px;border:1px solid var(--aborder);border-radius:8px;background:var(--asurface);color:var(--atext2);display:none;align-items:center;justify-content:center;cursor:pointer}
.icon-btn:hover{background:var(--aaccent);color:var(--atext)}
.admin-topbar-title{display:flex;flex-direction:column;gap:1px}
.admin-topbar-title span{font-size:12px;color:var(--atext3)}
.admin-topbar-title strong{font-size:15px;color:var(--atext)}
.topbar-right{display:flex;align-items:center;gap:10px}
.user-dropdown{position:relative}
.topbar-user{height:38px;display:flex;align-items:center;gap:8px;border:1px solid var(--aborder);border-radius:8px;background:var(--asurface);padding:0 10px 0 5px;cursor:pointer;color:var(--atext2);font-family:inherit}
.topbar-user:hover{background:var(--aaccent);color:var(--atext)}
.topbar-avatar{width:28px;height:28px;border-radius:999px;font-size:12px}
.topbar-username{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500}
.topbar-arrow{width:14px;height:14px;color:var(--atext3);display:inline-flex}
.main-content{width:100%;max-width:1500px;margin:0 auto;padding:24px}

.page-head,.page-hero-admin{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.page-head h2,.page-hero-admin h2,.section-title{font-size:24px;line-height:1.25;font-weight:700;color:var(--atext);letter-spacing:0}
.page-head p,.page-hero-admin p{margin-top:5px;font-size:13px;color:var(--atext3)}
.section-title{display:flex;align-items:baseline;gap:10px;margin-bottom:18px}
.section-title .sub{font-size:13px;font-weight:400;color:var(--atext3)}

.stat-grid,.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:18px}
.stat-card{position:relative;min-height:118px;background:var(--acard);border:1px solid var(--aborder);border-radius:8px;padding:18px;box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color .15s,box-shadow .15s}
.stat-card:hover{border-color:#d4d4d8;box-shadow:var(--shadow-md)}
.stat-card::after{display:none}
.stat-icon,.stat-card .stat-icon,.stat-card .sicon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;font-size:17px;background:#f4f4f5;color:var(--atext)}
.stat-icon.blue,.stat-card .stat-icon.blue,.stat-card .sicon.purple{background:#eff6ff;color:#2563eb}
.stat-icon.green,.stat-card .stat-icon.green,.stat-card .sicon.green{background:#ecfdf5;color:#16a34a}
.stat-icon.amber,.stat-card .stat-icon.amber,.stat-card .sicon.amber{background:#fffbeb;color:#d97706}
.stat-icon.red,.stat-card .stat-icon.red,.stat-card .sicon.rose{background:#fef2f2;color:#dc2626}
.stat-label,.stat-card .stat-label,.stat-card .slabel{font-size:12px;color:var(--atext3);font-weight:500;margin-bottom:6px;text-transform:none;letter-spacing:0}
.stat-value,.stat-card .stat-value,.stat-card .svalue{font-size:27px;line-height:1.1;font-weight:700;color:var(--atext);font-variant-numeric:tabular-nums}
.stat-unit{margin-left:5px;font-size:13px;font-weight:500;color:var(--atext3)}
.stat-sub,.stat-card .ssub{margin-top:6px;font-size:12px;color:var(--atext3)}

.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.admin-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.card,.settings-section,.pool-gen-panel{background:var(--acard);border:1px solid var(--aborder);border-radius:8px;padding:18px;margin-bottom:14px;box-shadow:var(--shadow-sm);overflow:hidden}
.card:hover{box-shadow:var(--shadow-sm)}
.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:-18px -18px 16px;padding:14px 18px;border-bottom:1px solid var(--aborder);background:#fff}
.card-header h3{font-size:15px;font-weight:600;color:var(--atext);line-height:1.35}
.chart-wrap{position:relative;width:100%;height:320px}
.chart-wrap canvas{width:100%!important;height:100%!important}

.table-wrap,.card [id$="Table"],.card [id$="Content"],.card [id$="List"],#payTable,#planTable,#blackIPTable,#adminTicketTable{max-width:100%;overflow-x:auto}
.table-wrap{border:1px solid var(--aborder);border-radius:8px}
table,.card table,.table-wrap table,.data-table{width:100%;border-collapse:collapse;font-size:13px;background:#fff}
.table-wrap table,.card [id$="Table"] table,.card [id$="Content"] table,.card [id$="List"] table,#payTable table,#planTable table,#blackIPTable table,#adminTicketTable table{min-width:760px}
thead th,.card thead th,.table-wrap thead th,.data-table thead th{height:40px;padding:0 14px;background:#fafafa;color:var(--atext3);font-size:12px;font-weight:600;text-align:left;border-bottom:1px solid var(--aborder);white-space:nowrap;text-transform:none;letter-spacing:0}
tbody td,.card tbody td,.table-wrap tbody td,.data-table tbody td{padding:11px 14px;border-bottom:1px solid #f1f5f9;color:var(--atext2);vertical-align:middle}
tbody tr:hover{background:#fafafa}
tbody tr:last-child td{border-bottom:none}
td:last-child{white-space:nowrap}
code{font-family:"SF Mono","Consolas","Menlo",monospace;font-size:12px;padding:2px 6px;background:#f4f4f5;border:1px solid #e4e4e7;border-radius:5px;color:#27272a}

.badge{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid transparent;white-space:nowrap}
.badge-success{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}
.badge-danger{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.badge-warning{background:#fffbeb;color:#b45309;border-color:#fde68a}
.badge-primary,.badge-info{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.badge-gray,.badge-default{background:#f4f4f5;color:#52525b;border-color:#e4e4e7}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 13px;border-radius:8px;border:1px solid var(--aborder);background:var(--asurface);color:var(--atext);font-family:inherit;font-size:13px;font-weight:500;line-height:1;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
.btn:hover{background:var(--aaccent)}
.btn:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid rgb(24 24 27 / .22);outline-offset:2px}
.btn-primary{background:var(--aprimary);border-color:var(--aprimary);color:var(--aprimary-foreground);box-shadow:none}
.btn-primary:hover{background:#27272a;border-color:#27272a;transform:none;box-shadow:none}
.btn-outline,.btn-default{background:var(--asurface);border-color:var(--aborder);color:var(--atext2)}
.btn-outline:hover,.btn-default:hover{background:var(--aaccent);color:var(--atext)}
.btn-sm{height:32px;padding:0 11px;font-size:12px;border-radius:7px}
.btn-md{height:38px;padding:0 16px}
.btn-text{height:30px;border-color:transparent;background:transparent;color:var(--atext3);padding:0 8px}
.btn-text:hover{background:var(--aaccent);color:var(--atext)}
.btn-danger{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
.btn-danger:hover{background:#fee2e2}
.btn:disabled{opacity:.55;cursor:not-allowed}

input:not([type="checkbox"]):not([type="radio"]),textarea,select{width:100%;height:36px;padding:0 10px;border:1px solid var(--ainput);border-radius:8px;background:var(--asurface);color:var(--atext);font-family:inherit;font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s}
input::placeholder,textarea::placeholder{color:#a1a1aa}
input:focus,textarea:focus,select:focus{border-color:#18181b;box-shadow:0 0 0 3px rgb(24 24 27 / .08)}
textarea{height:auto;min-height:86px;padding:9px 10px;line-height:1.55;resize:vertical}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M4 5.5L7 8.5L10 5.5' stroke='%2371717a' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:30px}
input[type="checkbox"],input[type="radio"]{width:16px;height:16px;accent-color:var(--aprimary);vertical-align:middle}
.form-group{margin-bottom:14px}
.form-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--atext2)}
.form-group label:has(input[type="checkbox"]){display:flex;align-items:center;gap:8px}
.form-hint{margin-top:6px;font-size:12px;color:var(--atext3);line-height:1.5}
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.toolbar input,.toolbar select{width:auto;min-width:190px}
.pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding-top:14px}
.sub-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:-4px 0 16px;padding:6px;border:1px solid var(--aborder);border-radius:8px;background:var(--asurface);box-shadow:var(--shadow-sm)}
.sub-nav a{height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 11px;border-radius:7px;color:var(--atext3);font-size:13px;font-weight:500;text-decoration:none}
.sub-nav a:hover{background:var(--aaccent);color:var(--atext)}
.sub-nav a.active{background:var(--aprimary);color:var(--aprimary-foreground)}
.sub-nav svg{width:15px;height:15px}
.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.settings-grid.compact{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.settings-card-link{position:relative;min-height:104px;display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px solid var(--aborder);border-radius:8px;background:var(--asurface);color:inherit;text-decoration:none;box-shadow:var(--shadow-sm);transition:border-color .15s,background .15s,box-shadow .15s}
.settings-card-link:hover{border-color:#d4d4d8;background:#fafafa;box-shadow:var(--shadow-md)}
.settings-card-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;flex:0 0 34px;border:1px solid var(--aborder);border-radius:8px;background:#f8fafc;color:var(--atext2)}
.settings-card-icon svg{width:17px;height:17px}
.settings-card-link b{display:block;margin-bottom:5px;font-size:14px;font-weight:600;color:var(--atext)}
.settings-card-link p{margin:0;color:var(--atext3);font-size:12px;line-height:1.6}
.settings-card-link em{position:absolute;right:12px;top:12px;font-style:normal;height:22px;display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;background:#f4f4f5;border:1px solid #e4e4e7;color:#52525b;font-size:11px;font-weight:500}
.ops-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:14px}
.ops-card{background:var(--asurface);border:1px solid var(--aborder);border-radius:8px;padding:14px 15px;box-shadow:var(--shadow-sm)}
.ops-card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;font-size:14px;font-weight:600;color:var(--atext)}
.ops-card p{font-size:12px;color:var(--atext3);line-height:1.65}
.ops-list{display:grid;gap:14px}
.ops-list b{display:block;margin-bottom:4px;color:var(--atext);font-size:14px}
.ops-list p{font-size:13px;color:var(--atext3);line-height:1.7}
.trust-rule-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.trust-rule-groups section{min-width:0}
.trust-rule-category{height:36px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.trust-rule-category b{font-size:14px;color:var(--atext)}
.trust-rule-category span{color:var(--atext3);font-size:12px}
.trust-rule-list{display:grid;gap:10px}
.trust-rule-card{min-width:0;padding:13px;border:1px solid var(--aborder);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm)}
.trust-rule-main{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.trust-rule-main h4{margin:0 0 5px;color:var(--atext);font-size:14px;line-height:1.35}
.trust-rule-main p{margin:0;color:var(--atext3);font-size:12px;line-height:1.55}
.trust-rule-badges{display:flex;gap:5px;justify-content:flex-end;flex-wrap:wrap;flex:0 0 auto}
.trust-rule-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:11px}
.trust-rule-meta span{min-width:0;padding:7px 8px;border:1px solid #edf0f3;border-radius:7px;background:#fafafa;color:var(--atext3);font-size:11px;line-height:1.35}
.trust-rule-meta b{color:var(--atext);font-size:12px}
.trust-rule-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:11px;padding-top:10px;border-top:1px solid #edf0f3}
.trust-rule-actions label{display:inline-flex;align-items:center;gap:6px;margin:0;color:var(--atext2);font-size:12px;line-height:1.3}
.trust-rule-actions input{flex:0 0 auto}
.risk-admin-guide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.risk-admin-guide>div{min-height:118px;padding:14px 14px 13px;border:1px solid var(--aborder);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm)}
.risk-admin-guide span{display:inline-flex;align-items:center;justify-content:center;height:24px;min-width:34px;margin-bottom:10px;border-radius:999px;background:#f4f4f5;color:#52525b;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.risk-admin-guide b{display:block;margin-bottom:5px;color:var(--atext);font-size:14px}
.risk-admin-guide p{margin:0;color:var(--atext3);font-size:12px;line-height:1.6}
.risk-action-panel{width:min(100%,300px);display:grid;gap:8px;padding:10px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-action-title{font-size:12px;font-weight:700;color:var(--atext3);line-height:1.2}
.admin-action-btn{width:100%;min-height:52px;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:4px;padding:9px 11px;border:1px solid var(--aborder);border-radius:8px;background:#fff;color:var(--atext);font-family:inherit;text-align:left;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}
.admin-action-btn:hover{background:#f8fafc;border-color:#d4d4d8;box-shadow:var(--shadow-sm)}
.admin-action-btn span{font-size:13px;font-weight:700;line-height:1.2}
.admin-action-btn small{display:block;color:var(--atext3);font-size:11px;line-height:1.35;font-weight:400}
.admin-action-btn.primary{background:var(--aprimary);border-color:var(--aprimary);color:var(--aprimary-foreground)}
.admin-action-btn.primary:hover{background:#27272a;border-color:#27272a}
.admin-action-btn.primary small{color:#d4d4d8}
.admin-action-btn.danger{background:#fff;border-color:#fecaca;color:#b91c1c}
.admin-action-btn.danger:hover{background:#fef2f2;border-color:#fca5a5}
.admin-action-btn.danger small{color:#b91c1c}
.admin-action-notice{width:100%;min-height:52px;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:4px;padding:9px 11px;border:1px solid var(--aborder);border-radius:8px;background:#fff;color:var(--atext);text-align:left}
.admin-action-notice span{font-size:13px;font-weight:700;line-height:1.2}
.admin-action-notice small{display:block;color:var(--atext3);font-size:11px;line-height:1.45;font-weight:400}
.admin-action-notice.warning{border-color:#fde68a;background:#fffbeb;color:#92400e}
.admin-action-notice.warning small{color:#92400e}
.risk-growth-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px}
.risk-growth-grid>div{min-height:112px;padding:14px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-growth-grid span,.risk-effect-box span{display:block;margin-bottom:6px;color:var(--atext3);font-size:12px}
.risk-growth-grid b{display:block;margin-bottom:6px;color:var(--atext);font-size:18px;line-height:1.25}
.risk-growth-grid p{margin:0;color:var(--atext3);font-size:12px;line-height:1.6}
.risk-gap-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.risk-gap-list span{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border:1px solid #fde68a;border-radius:999px;background:#fffbeb;color:#92400e;font-size:12px}
.risk-effect-box{margin-top:10px;padding:12px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-effect-box>div:first-child{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.risk-effect-box b{font-size:22px;line-height:1;font-variant-numeric:tabular-nums}
.risk-effect-box p{margin:7px 0 0;color:var(--atext2);font-size:12px;line-height:1.5}
.risk-effect-box em{display:inline-flex;margin:8px 6px 0 0;padding:4px 7px;border-radius:999px;background:#fef2f2;color:#b91c1c;font-size:11px;font-style:normal}
.risk-effect-box.ready{border-color:#bbf7d0;background:#f0fdf4}
.risk-effect-box.ready em{background:#dcfce7;color:#15803d}
.risk-effect-box.watch{border-color:#fde68a;background:#fffbeb}
.risk-effect-box.blocked{border-color:#fecaca;background:#fef2f2}
.risk-confirm-box{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:flex-start;margin-bottom:16px;padding:14px;border:1px solid #fde68a;border-radius:8px;background:#fffbeb}
.risk-confirm-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#f59e0b;color:#fff;font-weight:800}
.risk-confirm-box b{display:block;margin-bottom:5px;color:#78350f;font-size:14px}
.risk-confirm-box p{margin:0;color:#92400e;font-size:12px;line-height:1.6}
.mini-stat{min-width:0;border:1px solid var(--aborder);border-radius:8px;background:var(--asurface);padding:10px 12px}
.mini-stat span{display:block;margin-bottom:4px;color:var(--atext3);font-size:12px;line-height:1.3}
.mini-stat b{display:block;color:var(--atext);font-size:18px;line-height:1.2;font-weight:700;font-variant-numeric:tabular-nums}
.risk-page-head{align-items:center}
.risk-learning-v2{display:grid;gap:14px}
.risk-maturity-center{display:grid;gap:14px;padding:16px;border:1px solid var(--aborder);border-radius:8px;background:var(--acard);box-shadow:var(--shadow-sm)}
.risk-maturity-head{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:14px;align-items:start}
.risk-maturity-head>div:first-child span{display:block;margin-bottom:7px;color:var(--atext3);font-size:12px;font-weight:600}
.risk-maturity-head h3{margin:0 0 7px;color:var(--atext);font-size:22px;line-height:1.2}
.risk-maturity-head p{max-width:760px;margin:0;color:var(--atext2);font-size:13px;line-height:1.65}
.risk-maturity-score{min-height:92px;padding:13px;border:1px solid #dbe7e4;border-radius:8px;background:#f8fcfb;text-align:center}
.risk-maturity-score span,.risk-maturity-score small{display:block;color:var(--atext3);font-size:12px;line-height:1.35}
.risk-maturity-score b{display:block;margin:5px 0;color:#0f766e;font-size:30px;line-height:1;font-variant-numeric:tabular-nums}
.risk-maturity-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.risk-maturity-step{min-height:118px;padding:12px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-maturity-step span{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:9px;border-radius:999px;background:#e5e7eb;color:#52525b;font-size:12px;font-weight:700}
.risk-maturity-step b{display:block;margin-bottom:5px;color:var(--atext);font-size:13px}
.risk-maturity-step p{margin:0;color:var(--atext3);font-size:12px;line-height:1.5}
.risk-maturity-step.done{border-color:#bbf7d0;background:#f7fef9}
.risk-maturity-step.done span{background:#16a34a;color:#fff}
.risk-maturity-step.current{border-color:#99d7cb;background:#f0fdfa}
.risk-maturity-step.current span{background:#0f766e;color:#fff}
.risk-maturity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.risk-maturity-box{min-width:0;padding:13px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-maturity-box h4,.risk-maturity-replay h4{margin:0 0 10px;color:var(--atext);font-size:14px;font-weight:650}
.risk-maturity-issue{padding:9px 10px;border:1px solid var(--aborder);border-radius:7px;background:#fff;color:var(--atext2);font-size:12px;line-height:1.5}
.risk-maturity-issue+.risk-maturity-issue{margin-top:7px}
.risk-maturity-issue.danger{border-color:#fecaca;background:#fef2f2;color:#991b1b}
.risk-maturity-issue.warn{border-color:#fde68a;background:#fffbeb;color:#92400e}
.risk-maturity-issue.info{border-color:#dbeafe;background:#eff6ff;color:#1d4ed8}
.risk-maturity-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px;border:1px solid var(--aborder);border-radius:7px;background:#fff}
.risk-maturity-row+.risk-maturity-row{margin-top:7px}
.risk-maturity-row b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--atext);font-size:13px}
.risk-maturity-row p{margin:4px 0 0;color:var(--atext3);font-size:12px;line-height:1.45}
.risk-maturity-row span{max-width:132px;color:var(--atext3);font-size:12px;line-height:1.4;text-align:right}
.risk-maturity-row.success{border-color:#bbf7d0;background:#f7fef9}
.risk-maturity-row.warn{border-color:#fde68a;background:#fffbeb}
.risk-maturity-row.danger{border-color:#fecaca;background:#fef2f2}
.risk-maturity-empty{padding:12px;border:1px dashed #d4d4d8;border-radius:8px;color:var(--atext3);font-size:12px;line-height:1.5;background:#fff}
.risk-maturity-replay{padding:13px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-replay-summary{display:grid;grid-template-columns:1.3fr repeat(3,minmax(110px,.7fr));gap:8px}
.risk-replay-summary>div{min-width:0;padding:10px;border:1px solid var(--aborder);border-radius:7px;background:#fff}
.risk-replay-summary span{display:block;margin-bottom:5px;color:var(--atext3);font-size:12px}
.risk-replay-summary b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--atext);font-size:14px}
.risk-replay-summary p{grid-column:1/-1;margin:2px 0 0;color:var(--atext3);font-size:12px;line-height:1.55}
.risk-intel-panel{display:grid;gap:14px;padding:16px;border:1px solid var(--aborder);border-radius:8px;background:var(--acard);box-shadow:var(--shadow-sm)}
.risk-intel-head{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:14px;align-items:start}
.risk-intel-head span{display:block;margin-bottom:7px;color:var(--atext3);font-size:12px;font-weight:600}
.risk-intel-head h3{margin:0 0 7px;color:var(--atext);font-size:21px;line-height:1.2}
.risk-intel-head p{margin:0;color:var(--atext2);font-size:13px;line-height:1.65}
.risk-intel-score{min-height:94px;padding:13px;border:1px solid #dbe7e4;border-radius:8px;background:#f8fcfb;text-align:center}
.risk-intel-score b{display:block;margin:5px 0;color:#0f766e;font-size:30px;line-height:1;font-variant-numeric:tabular-nums}
.risk-intel-score small{display:block;color:var(--atext3);font-size:12px;line-height:1.35}
.risk-intel-cap-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.risk-intel-cap{min-height:104px;padding:12px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-intel-cap span{display:block;margin-bottom:7px;color:var(--atext3);font-size:12px}
.risk-intel-cap b{display:block;margin-bottom:6px;color:var(--atext);font-size:14px}
.risk-intel-cap p{margin:0;color:var(--atext3);font-size:12px;line-height:1.5}
.risk-intel-cap.success{border-color:#bbf7d0;background:#f7fef9}
.risk-intel-cap.warn{border-color:#fde68a;background:#fffbeb}
.risk-intel-cap.danger{border-color:#fecaca;background:#fef2f2}
.risk-next-actions{padding:13px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-next-actions h4{margin:0 0 10px;color:var(--atext);font-size:14px;font-weight:650}
.risk-next-actions div{padding:9px 10px;border:1px solid #dbeafe;border-radius:7px;background:#eff6ff;color:#1d4ed8;font-size:12px;line-height:1.5}
.risk-next-actions div+div{margin-top:7px}
.risk-managed-panel{display:grid;gap:14px;padding:16px;border:1px solid #bbf7d0;border-radius:8px;background:#f8fffb;box-shadow:var(--shadow-sm)}
.risk-managed-head{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:16px;align-items:start}
.risk-managed-head span{display:block;margin-bottom:7px;color:#0f766e;font-size:12px;font-weight:700}
.risk-managed-head h3{margin:0 0 7px;color:var(--atext);font-size:21px;line-height:1.2}
.risk-managed-head p{margin:0;color:var(--atext2);font-size:13px;line-height:1.65}
.risk-managed-actions{display:grid;gap:8px;align-content:start}
.risk-managed-actions small{color:var(--atext3);font-size:12px;line-height:1.45}
.risk-managed-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.risk-managed-cap{min-height:92px;padding:11px;border:1px solid var(--aborder);border-radius:8px;background:#fff}
.risk-managed-cap span{display:block;margin-bottom:6px;color:var(--atext3);font-size:12px}
.risk-managed-cap b{display:block;margin-bottom:5px;color:var(--atext);font-size:14px}
.risk-managed-cap p{margin:0;color:var(--atext3);font-size:12px;line-height:1.45}
.risk-managed-cap.success{border-color:#bbf7d0;background:#f7fef9}.risk-managed-cap.warn{border-color:#fde68a;background:#fffbeb}.risk-managed-cap.danger{border-color:#fecaca;background:#fef2f2}
.risk-realtime-decision{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:14px;padding:14px;border:1px solid #cfe7e2;border-radius:8px;background:#f7fcfb}
.risk-realtime-decision span{display:block;color:var(--atext3);font-size:12px}
.risk-realtime-decision h4{margin:6px 0;color:var(--atext);font-size:18px;line-height:1.25}
.risk-realtime-decision p{margin:0;color:var(--atext2);font-size:13px;line-height:1.65}
.risk-realtime-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.risk-realtime-stats div{min-height:72px;padding:10px;border:1px solid var(--aborder);border-radius:8px;background:#fff}
.risk-realtime-stats b{display:block;margin-bottom:5px;color:#0f766e;font-size:20px;font-variant-numeric:tabular-nums}
.risk-realtime-stats span{font-size:12px;color:var(--atext3)}
.risk-managed-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.risk-managed-split h4{margin:0 0 8px;color:var(--atext);font-size:14px;font-weight:650}
.risk-managed-list{display:grid;gap:7px}
.risk-managed-list div{padding:8px 10px;border:1px solid #bbf7d0;border-radius:8px;background:#f7fef9;color:#166534;font-size:12px;line-height:1.45}
.risk-managed-list.guard div{border-color:#fde68a;background:#fffbeb;color:#92400e}
.risk-fallback-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.risk-fallback-list article{padding:12px;border:1px solid var(--aborder);border-radius:8px;background:#fff}
.risk-fallback-list b{display:block;margin-bottom:4px;color:var(--atext);font-size:13px}
.risk-fallback-list span{display:block;margin-bottom:7px;color:#0f766e;font-size:12px;line-height:1.4}
.risk-fallback-list p{margin:0 0 7px;color:var(--atext2);font-size:12px;line-height:1.5}
.risk-fallback-list small{display:block;color:var(--atext3);font-size:12px;line-height:1.45}
.risk-growth-signal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.risk-growth-signal{min-height:112px;padding:12px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-growth-signal b{display:block;margin-bottom:5px;color:var(--atext);font-size:14px}
.risk-growth-signal span{display:block;margin-bottom:7px;color:#0f766e;font-size:18px;font-weight:750;font-variant-numeric:tabular-nums;line-height:1.25}
.risk-growth-signal p{margin:0;color:var(--atext3);font-size:12px;line-height:1.5}
.risk-growth-signal.success{border-color:#bbf7d0;background:#f7fef9}
.risk-growth-signal.warn{border-color:#fde68a;background:#fffbeb}
.risk-growth-signal.danger{border-color:#fecaca;background:#fef2f2}
.risk-overview-panel{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);gap:14px;align-items:stretch}
.risk-overview-main,.risk-flow,.risk-panel,.risk-metric-card{background:var(--acard);border:1px solid var(--aborder);border-radius:8px;box-shadow:var(--shadow-sm)}
.risk-overview-main{padding:20px}
.risk-overview-kicker{margin-bottom:8px;color:var(--atext3);font-size:12px;font-weight:600}
.risk-overview-main h3{margin:0 0 8px;font-size:24px;line-height:1.2;color:var(--atext)}
.risk-overview-main p{max-width:760px;margin:0 0 14px;color:var(--atext2);font-size:13px;line-height:1.7}
.risk-badge-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.risk-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;overflow:hidden}
.risk-flow>div{min-height:118px;padding:16px;border-right:1px solid var(--aborder);border-bottom:1px solid var(--aborder)}
.risk-flow>div:nth-child(2n){border-right:none}
.risk-flow>div:nth-last-child(-n+2){border-bottom:none}
.risk-flow span{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;border-radius:999px;background:#f4f4f5;color:#52525b;font-size:12px;font-weight:700}
.risk-flow b{display:block;margin-bottom:5px;color:var(--atext);font-size:14px}
.risk-flow p{margin:0;color:var(--atext3);font-size:12px;line-height:1.55}
.risk-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.risk-metric-card{min-height:104px;padding:15px}
.risk-metric-card span{display:block;margin-bottom:8px;color:var(--atext3);font-size:12px}
.risk-metric-card b{display:block;color:var(--atext);font-size:24px;line-height:1.15;font-weight:750;font-variant-numeric:tabular-nums}
.risk-metric-card small{display:block;margin-top:8px;color:var(--atext3);font-size:12px;line-height:1.4}
.risk-metric-card.primary b{color:#2563eb}.risk-metric-card.success b{color:#16a34a}.risk-metric-card.warning b{color:#d97706}.risk-metric-card.info b{color:#0f766e}
.risk-panel{min-width:0;padding:16px;margin:0;overflow:hidden}
.risk-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.risk-section-title h3{margin:0;color:var(--atext);font-size:15px;font-weight:650}
.risk-section-title p{margin:4px 0 0;color:var(--atext3);font-size:12px;line-height:1.55}
.risk-layout-main{display:grid;grid-template-columns:minmax(0,1.36fr) minmax(340px,.64fr);gap:14px;align-items:start}
.risk-layout-main>div,.risk-layout-main>aside{display:grid;gap:14px;min-width:0}
.risk-layout-main.bottom{grid-template-columns:minmax(0,1fr) minmax(420px,.72fr)}
.risk-growth-v2{display:grid;grid-template-columns:1.4fr 1fr .8fr;gap:10px}
.risk-growth-v2>div{min-height:104px;padding:14px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-growth-v2 span{display:block;margin-bottom:7px;color:var(--atext3);font-size:12px}
.risk-growth-v2 b{display:block;margin-bottom:7px;color:var(--atext);font-size:17px}
.risk-growth-v2 p{margin:0;color:var(--atext3);font-size:12px;line-height:1.6}
.risk-gap-list.compact{margin-top:10px}
.risk-api-box{display:grid;gap:10px;margin-bottom:12px}
.risk-api-box>div{padding:11px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-api-box span{display:block;margin-bottom:6px;color:var(--atext3);font-size:12px}
.risk-api-box p{margin:0;color:var(--atext2);font-size:12px;line-height:1.6}
.risk-help-steps{display:grid;gap:8px;margin:12px 0}
.risk-help-steps>div{padding:11px;border:1px solid #dbe7e4;border-radius:8px;background:#f8fcfb}
.risk-help-steps b{display:block;margin-bottom:4px;color:var(--atext);font-size:13px}
.risk-help-steps p{margin:0;color:var(--atext2);font-size:12px;line-height:1.6}
.risk-growth-notes{display:grid;gap:7px;margin:10px 0}
.risk-growth-notes>div{padding:9px 10px;border:1px solid #bbf7d0;border-radius:8px;background:#f7fef9;color:#166534;font-size:12px;line-height:1.55}
.risk-label-help{display:grid;gap:7px;margin:10px 0}
.risk-label-help>div{display:grid;grid-template-columns:minmax(130px,.42fr) minmax(0,1fr);gap:9px;align-items:center;padding:8px 10px;border:1px solid var(--aborder);border-radius:8px;background:#fff}
.risk-label-help code{white-space:normal;word-break:break-word}
.risk-label-help span{color:var(--atext2);font-size:12px;line-height:1.45}
.risk-label-guide{display:grid;gap:10px;margin-bottom:12px;padding:13px;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff;color:#1e40af}
.risk-label-guide b{font-size:14px}
.risk-label-guide p{margin:0;font-size:12px;line-height:1.6}
.risk-label-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.risk-label-choice{position:relative;display:block;min-height:132px;padding:12px;border:1px solid var(--aborder);border-radius:8px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.risk-label-choice input{position:absolute;opacity:0;pointer-events:none}
.risk-label-choice strong{display:block;margin-bottom:5px;color:var(--atext);font-size:14px}
.risk-label-choice em{display:block;margin-bottom:7px;color:var(--atext2);font-size:12px;font-style:normal;line-height:1.5}
.risk-label-choice span{display:block;color:var(--atext3);font-size:12px;line-height:1.5}
.risk-label-choice.active{border-color:#0f766e;background:#f0fdfa;box-shadow:0 0 0 2px rgb(15 118 110 / .12)}
.risk-sample-help{margin:0 0 12px;padding:12px;border:1px solid #e4e4e7;border-radius:8px;background:#fafafa;color:#3f3f46;font-size:12px;line-height:1.6}
.risk-label-assist-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #edf2f7}
.risk-label-assist-head h3{margin:0 0 5px;color:var(--atext);font-size:17px;font-weight:700}
.risk-label-assist-head p{margin:0;color:var(--atext3);font-size:12px;line-height:1.55}
.risk-label-assist-stats{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.risk-label-assist-list{display:grid;gap:10px}
.risk-label-assist-card{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:13px;padding:13px;border:1px solid var(--aborder);border-radius:8px;background:#fff}
.risk-label-assist-card.label{border-color:#bbf7d0;background:#f8fffb}
.risk-label-assist-card.investigate{border-color:#fde68a;background:#fffbeb}
.risk-label-assist-card.review{border-color:#dbeafe;background:#eff6ff}
.risk-label-assist-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:7px}
.risk-label-assist-title b{color:var(--atext);font-size:14px}
.risk-label-assist-card p{margin:0 0 8px;color:var(--atext2);font-size:13px;line-height:1.6}
.risk-label-assist-evidence{display:flex;gap:6px;flex-wrap:wrap}
.risk-label-assist-evidence span{display:inline-flex;max-width:100%;padding:5px 8px;border:1px solid var(--aborder);border-radius:999px;background:rgb(255 255 255 / .8);color:var(--atext3);font-size:12px;line-height:1.35}
.risk-label-assist-side{display:grid;gap:8px;align-content:start;justify-items:stretch}
.risk-label-assist-side .risk-assist-score{padding:10px;border:1px solid var(--aborder);border-radius:8px;background:rgb(255 255 255 / .78);text-align:center}
.risk-label-assist-side .risk-assist-score span{display:block;margin-bottom:4px;color:var(--atext3);font-size:12px}
.risk-label-assist-side .risk-assist-score b{display:block;color:#0f766e;font-size:24px;line-height:1;font-variant-numeric:tabular-nums}
.risk-reason-cell{display:grid;gap:6px;min-width:220px}
.risk-reason-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--atext);font-size:13px;font-weight:650}
.risk-reason-title code{font-weight:500;color:var(--atext3);background:#f4f4f5}
.risk-reason-desc{margin:0;color:var(--atext2);font-size:12px;line-height:1.55}
.risk-reason-tags{display:flex;gap:5px;flex-wrap:wrap}
.risk-reason-tags span{display:inline-flex;align-items:center;min-height:22px;padding:0 7px;border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:11px;line-height:1.3}
.risk-trust-panel{display:grid;gap:13px;padding:16px;border:1px solid #99d7cb;border-radius:8px;background:#f8fcfb;box-shadow:var(--shadow-sm)}
.risk-trust-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.risk-trust-head h3{margin:0 0 6px;color:var(--atext);font-size:18px;line-height:1.25}
.risk-trust-head p{margin:0;color:var(--atext2);font-size:13px;line-height:1.6}
.risk-trust-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.risk-trust-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.risk-trust-card{min-height:92px;padding:12px;border:1px solid var(--aborder);border-radius:8px;background:#fff}
.risk-trust-card span{display:block;margin-bottom:7px;color:var(--atext3);font-size:12px}
.risk-trust-card b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0f766e;font-size:22px;line-height:1.15;font-variant-numeric:tabular-nums}
.risk-trust-card p{margin:6px 0 0;color:var(--atext3);font-size:12px;line-height:1.4}
.risk-trust-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:10px}
.risk-trust-list{display:grid;gap:7px}
.risk-trust-list div{padding:9px 10px;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-size:12px;line-height:1.45}
.risk-trust-evidence{overflow:hidden;border:1px solid var(--aborder);border-radius:8px;background:#fff}
.risk-trust-evidence table{width:100%;border-collapse:collapse}
.risk-trust-evidence th,.risk-trust-evidence td{padding:9px 10px;border-bottom:1px solid #edf2f7;text-align:left;font-size:12px;vertical-align:top}
.risk-trust-evidence th{color:var(--atext3);font-weight:650;background:#fafafa}
.risk-trust-evidence td{color:var(--atext2)}
.risk-trust-evidence tr:last-child td{border-bottom:none}
.risk-learning-workbench{display:grid;grid-template-columns:230px minmax(0,1fr);gap:14px;align-items:start}
.risk-learning-sidebar{position:sticky;top:82px;display:grid;gap:10px;padding:12px;border:1px solid var(--aborder);border-radius:8px;background:var(--acard);box-shadow:var(--shadow-sm)}
.risk-learning-sidebar-head{padding:2px 2px 8px;border-bottom:1px solid #edf2f7}
.risk-learning-sidebar-head b{display:block;margin-bottom:4px;color:var(--atext);font-size:14px}
.risk-learning-sidebar-head span{display:block;color:var(--atext3);font-size:12px;line-height:1.45}
.risk-learning-nav{display:grid;gap:7px}
.risk-learning-tab{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--atext2);text-align:left;cursor:pointer}
.risk-learning-tab:hover{background:#fafafa;border-color:#edf2f7}
.risk-learning-tab.active{background:#f0fdfa;border-color:#99d7cb;color:#0f766e}
.risk-learning-tab strong{display:block;margin-bottom:3px;font-size:13px;line-height:1.25}
.risk-learning-tab small{display:block;color:var(--atext3);font-size:11px;line-height:1.35}
.risk-learning-tab.active small{color:#0f766e}
.risk-learning-tab em{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:22px;padding:0 7px;border-radius:999px;background:#f4f4f5;color:var(--atext3);font-size:11px;font-style:normal;font-weight:700}
.risk-learning-tab.active em{background:#ccfbf1;color:#0f766e}
.risk-learning-content{min-width:0}
.risk-learning-section{display:none;gap:14px}
.risk-learning-section.active{display:grid}
.risk-learning-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:15px;border:1px solid var(--aborder);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm)}
.risk-learning-section-head h3{margin:0 0 5px;color:var(--atext);font-size:17px;line-height:1.25}
.risk-learning-section-head p{margin:0;color:var(--atext3);font-size:12px;line-height:1.55}
.risk-learning-section-body{display:grid;gap:14px}
.risk-auto-panel{display:grid;gap:13px;padding:16px;border:1px solid #c7e5dd;border-radius:8px;background:#f8fcfb;box-shadow:var(--shadow-sm)}
.risk-auto-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start}
.risk-auto-head span{display:block;margin-bottom:6px;color:#0f766e;font-size:12px;font-weight:700}
.risk-auto-head h3{margin:0 0 6px;color:var(--atext);font-size:20px;line-height:1.25}
.risk-auto-head p{margin:0;color:var(--atext2);font-size:13px;line-height:1.6}
.risk-auto-current{min-width:150px;padding:11px;border:1px solid #99d7cb;border-radius:8px;background:#fff;text-align:center}
.risk-auto-current b{display:block;margin-bottom:5px;color:#0f766e;font-size:20px;line-height:1.15}
.risk-auto-current small{display:block;color:var(--atext3);font-size:12px;line-height:1.4}
.risk-auto-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.risk-auto-card{display:grid;gap:9px;align-content:start;min-height:190px;padding:13px;border:1px solid var(--aborder);border-radius:8px;background:#fff}
.risk-auto-card.active{border-color:#0f766e;background:#f0fdfa;box-shadow:0 0 0 2px rgb(15 118 110 / .10)}
.risk-auto-card.blocked{background:#fafafa;color:var(--atext3)}
.risk-auto-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.risk-auto-title b{color:var(--atext);font-size:14px}.risk-auto-title span{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:999px;background:#f4f4f5;color:var(--atext3);font-size:12px;font-weight:750}
.risk-auto-card.active .risk-auto-title span{background:#0f766e;color:#fff}
.risk-auto-card p{margin:0;color:var(--atext2);font-size:12px;line-height:1.55}.risk-auto-card small{display:block;color:var(--atext3);font-size:12px;line-height:1.45}
.risk-auto-checks{display:grid;gap:6px}.risk-auto-checks span{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid #edf2f7;border-radius:7px;background:#fafafa;color:var(--atext3);font-size:11px;line-height:1.35}.risk-auto-checks span.ok{border-color:#bbf7d0;background:#f7fef9;color:#166534}.risk-auto-checks span em{font-style:normal;font-weight:700;color:inherit;white-space:nowrap}
.risk-auto-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.risk-auto-actions .form-hint{margin:0;flex:1 1 260px}
.risk-todo-panel{display:grid;gap:12px;padding:16px;border:1px solid #c7e5dd;border-radius:8px;background:#f7fcfb;box-shadow:var(--shadow-sm)}
.risk-todo-head{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:14px;align-items:start}
.risk-todo-head span{display:block;margin-bottom:6px;color:#0f766e;font-size:12px;font-weight:700}
.risk-todo-head h3{margin:0 0 6px;color:var(--atext);font-size:18px;line-height:1.25}
.risk-todo-head p{margin:0;color:var(--atext2);font-size:13px;line-height:1.6}
.risk-todo-count{min-height:72px;padding:11px;border:1px solid #99d7cb;border-radius:8px;background:#fff;text-align:center}
.risk-todo-count b{display:block;color:#0f766e;font-size:26px;line-height:1;font-variant-numeric:tabular-nums}
.risk-todo-count small{display:block;margin-top:6px;color:var(--atext3);font-size:12px}
.risk-todo-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.risk-todo-summary>div{padding:10px;border:1px solid #dbe7e4;border-radius:8px;background:rgb(255 255 255 / .86)}
.risk-todo-summary span{display:block;margin-bottom:5px;color:var(--atext3);font-size:12px}
.risk-todo-summary b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--atext);font-size:17px;line-height:1.2;font-variant-numeric:tabular-nums}
.risk-todo-list{display:grid;gap:9px}
.risk-todo-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px;border:1px solid var(--aborder);border-left-width:4px;border-radius:8px;background:#fff}
.risk-todo-item.high{border-left-color:#ef4444}.risk-todo-item.medium{border-left-color:#f59e0b}.risk-todo-item.low{border-left-color:#3b82f6}.risk-todo-item.ok{border-left-color:#10b981}
.risk-todo-mark span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#f4f4f5;color:var(--atext2);font-size:12px;font-weight:750}
.risk-todo-item.high .risk-todo-mark span{background:#fee2e2;color:#b91c1c}.risk-todo-item.medium .risk-todo-mark span{background:#fef3c7;color:#92400e}.risk-todo-item.low .risk-todo-mark span{background:#dbeafe;color:#1d4ed8}.risk-todo-item.ok .risk-todo-mark span{background:#dcfce7;color:#166534}
.risk-todo-main{min-width:0}.risk-todo-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:5px}.risk-todo-title b{color:var(--atext);font-size:14px;line-height:1.3}.risk-todo-title span{display:inline-flex;padding:3px 7px;border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:11px;line-height:1.2}
.risk-todo-main p{margin:0;color:var(--atext2);font-size:12px;line-height:1.55}.risk-todo-meta{margin-top:6px;color:var(--atext3);font-size:12px;line-height:1.45}
.risk-todo-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;min-width:156px}
.risk-template-grid{display:grid;gap:10px}
.risk-template-card{padding:12px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-template-card>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
.risk-template-card b{font-size:14px;color:var(--atext)}
.risk-template-card span{font-size:12px;color:var(--atext3)}
.risk-template-card code{display:block;margin-bottom:8px;white-space:normal;word-break:break-word}
.risk-template-card p{margin:0;color:var(--atext3);font-size:12px;line-height:1.6}
.risk-compact-list,.risk-card-list,.risk-policy-list{display:grid;gap:10px}
.risk-compact-item,.risk-rec-card,.risk-policy-card{min-width:0;border:1px solid var(--aborder);border-radius:8px;background:#fff}
.risk-compact-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px}
.risk-compact-item b,.risk-rec-head b{font-size:14px;color:var(--atext)}
.risk-compact-item p{margin:4px 0;color:var(--atext2);font-size:13px;line-height:1.55}
.risk-compact-item small,.risk-policy-top small{color:var(--atext3);font-size:12px;line-height:1.5}
.risk-rec-card{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:14px;padding:14px}
.risk-rec-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.risk-rec-main p{margin:0 0 6px;color:var(--atext2);font-size:13px;line-height:1.6}
.risk-rec-main small{display:block;color:var(--atext3);font-size:12px;line-height:1.55}
.risk-inline-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.risk-rec-card>.risk-inline-actions{align-content:flex-start;align-items:flex-start}
.risk-policy-card{padding:15px}
.risk-policy-top{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:14px;align-items:start}
.risk-policy-top p{margin:0 0 8px;color:var(--atext2);font-size:13px;line-height:1.6}
.risk-score{min-height:92px;padding:12px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa;text-align:center}
.risk-score.ready{border-color:#bbf7d0;background:#f0fdf4}.risk-score.watch{border-color:#fde68a;background:#fffbeb}.risk-score.blocked{border-color:#fecaca;background:#fef2f2}
.risk-score span,.risk-score small{display:block;color:var(--atext3);font-size:12px}
.risk-score b{display:block;margin:5px 0;color:var(--atext);font-size:28px;line-height:1;font-variant-numeric:tabular-nums}
.risk-policy-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:13px}
.risk-policy-metrics>div{padding:10px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.risk-policy-metrics span{display:block;margin-bottom:5px;color:var(--atext3);font-size:12px}
.risk-policy-metrics b{font-size:18px;color:var(--atext);font-variant-numeric:tabular-nums}
.risk-policy-note{margin:9px 0 0;color:var(--atext3);font-size:12px;line-height:1.6}
.risk-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:13px;padding-top:12px;border-top:1px solid #f1f5f9}
.risk-card-footer small{color:var(--atext3);font-size:12px}
.risk-action-disabled{max-width:240px;color:#92400e;font-size:12px;line-height:1.45}
.risk-facet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.risk-facet-grid>.card{margin:0;box-shadow:none}
.risk-app-baseline-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.risk-app-baseline{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:12px;padding:14px;border:1px solid var(--aborder);border-radius:8px;background:#fff}
.risk-app-baseline.success{border-color:#bbf7d0;background:#f7fef9}
.risk-app-baseline.warn{border-color:#fde68a;background:#fffbeb}
.risk-app-baseline.info{border-color:#dbeafe;background:#eff6ff}
.risk-app-baseline-main{min-width:0}
.risk-app-baseline-main p{margin:0 0 9px;color:var(--atext2);font-size:13px;line-height:1.6}
.risk-app-pills{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.risk-app-baseline-score{min-height:88px;padding:11px;border:1px solid var(--aborder);border-radius:8px;background:rgb(255 255 255 / .76);text-align:center}
.risk-app-baseline-score span,.risk-app-baseline-score small{display:block;color:var(--atext3);font-size:12px;line-height:1.35}
.risk-app-baseline-score b{display:block;margin:5px 0;color:#0f766e;font-size:26px;line-height:1;font-variant-numeric:tabular-nums}
.risk-app-baseline-metrics{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.risk-app-baseline-metrics>div{padding:9px;border:1px solid var(--aborder);border-radius:7px;background:rgb(255 255 255 / .76)}
.risk-app-baseline-metrics span{display:block;margin-bottom:5px;color:var(--atext3);font-size:12px}
.risk-app-baseline-metrics b{color:var(--atext);font-size:15px;font-variant-numeric:tabular-nums}
.payment-detail-head{display:grid;grid-template-columns:1.4fr .8fr .8fr .8fr;gap:10px;margin-bottom:16px}
.payment-detail-head>div{min-height:72px;padding:13px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.payment-detail-head span{display:block;margin-bottom:8px;color:var(--atext3);font-size:12px}
.payment-detail-head b{display:block;color:var(--atext);font-size:15px;word-break:break-word}
.trace-detail-head{display:grid;grid-template-columns:1.4fr 1fr .7fr .9fr;gap:10px;margin-bottom:14px}
.trace-detail-head>div{min-height:70px;padding:13px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.trace-detail-head span{display:block;margin-bottom:7px;font-size:12px;color:var(--atext3)}
.trace-detail-head b{font-size:14px;color:var(--atext)}
.trace-layer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.trace-layer{position:relative;min-height:164px;padding:14px;border:1px solid var(--aborder);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm)}
.trace-layer:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;border-radius:8px 0 0 8px;background:#d4d4d8}
.trace-layer.pass:before{background:#16a34a}
.trace-layer.warn:before{background:#d97706}
.trace-layer.fail:before{background:#dc2626}
.trace-layer-head{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.trace-layer-head em{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#f4f4f5;color:#52525b;font-style:normal;font-size:12px;font-weight:700}
.trace-layer.pass .trace-layer-head em{background:#f0fdf4;color:#15803d}
.trace-layer.warn .trace-layer-head em{background:#fffbeb;color:#b45309}
.trace-layer.fail .trace-layer-head em{background:#fef2f2;color:#b91c1c}
.trace-layer-head strong{font-size:14px;color:var(--atext)}
.trace-layer p{min-height:42px;margin-bottom:10px;color:var(--atext3);font-size:12px;line-height:1.6}
.trace-layer-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.trace-layer-metrics div{min-width:0;padding:8px;border:1px solid #f1f5f9;border-radius:7px;background:#fafafa}
.trace-layer-metrics span{display:block;margin-bottom:4px;color:var(--atext3);font-size:11px}
.trace-layer-metrics b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--atext);font-size:12px;font-weight:600}
.trace-events{display:grid;gap:9px}
.trace-events>div{padding:10px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa}
.trace-events b{display:inline-flex;margin-right:8px;font-size:13px;color:var(--atext)}
.trace-events span{display:inline-flex;height:22px;align-items:center;padding:0 8px;border-radius:999px;background:#f4f4f5;color:#52525b;font-size:12px}
.trace-events p{margin-top:6px;color:var(--atext3);font-size:12px;line-height:1.5;word-break:break-word}
.code-block{margin-top:10px;padding:12px;border:1px solid var(--aborder);border-radius:8px;background:#0f172a;color:#e2e8f0;font-size:12px;line-height:1.65;white-space:pre-wrap;word-break:break-word;overflow:auto}
.empty-rich{border:1px dashed var(--aborder);border-radius:8px;background:#fafafa}
.empty-title{font-size:15px;font-weight:600;color:var(--atext);margin-bottom:6px}
.empty .btn{margin-top:14px}
.mono-wrap{display:inline-block;max-width:360px;white-space:normal;word-break:break-word;font-size:12px;color:var(--atext2)}
.payment-channel-card{min-height:190px}
.channel-summary{display:grid;gap:9px}
.channel-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #f4f4f5}
.channel-row:last-child{border-bottom:none}
.channel-row span{font-size:12px;color:var(--atext3)}
.channel-row b{font-size:13px;color:var(--atext);font-weight:600;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.modal-overlay{position:fixed;inset:0;z-index:200;background:rgb(0 0 0 / .42);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px}
.modal-overlay.hidden{display:none}
.modal-box,.modal{width:100%;max-width:560px;max-height:86vh;overflow-y:auto;background:var(--asurface);border:1px solid var(--aborder);border-radius:8px;box-shadow:0 24px 80px rgb(0 0 0 / .22);animation:modalIn .16s ease}
@keyframes modalIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--aborder)}
.modal-header h3{font-size:16px;font-weight:600;color:var(--atext)}
.modal-close{width:32px;height:32px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--atext3);font-size:20px;cursor:pointer}
.modal-close:hover{background:var(--aaccent);color:var(--atext)}
.modal-body{padding:18px}
.modal-footer{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid var(--aborder);background:var(--asurface)}

/* Ticket detail workspace */
.ticket-modal{display:flex;flex-direction:column;max-height:min(88vh,840px);overflow:hidden}
.ticket-modal .modal-header{flex:0 0 auto;padding:14px 20px;background:#fff}
.ticket-modal .modal-header h3{font-size:14px;font-weight:650}
.ticket-modal .modal-body{flex:1;min-height:0;overflow-y:auto;padding:0;background:#f8fafc}
.ticket-modal .modal-footer{position:static;flex:0 0 auto;padding:12px 20px;background:#fff}
.ticket-detail{min-width:0}
.ticket-summary{padding:20px 22px 0;border-bottom:1px solid var(--aborder);background:#fff}
.ticket-summary-main{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.ticket-summary-copy{min-width:0}
.ticket-eyebrow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:9px}
.ticket-number{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid #dbe7e4;border-radius:6px;background:#f1f8f6;color:#0f766e;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
.ticket-summary h2{margin:0;max-width:760px;color:var(--atext);font-size:19px;font-weight:700;line-height:1.4;letter-spacing:0;overflow-wrap:anywhere}
.ticket-time{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px;color:var(--atext3);font-size:12px;font-variant-numeric:tabular-nums}
.ticket-time span{position:relative}
.ticket-time span+span:before{content:"";position:absolute;top:50%;left:-9px;width:3px;height:3px;border-radius:50%;background:#a1a1aa;transform:translateY(-50%)}
.ticket-facts{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) minmax(0,.85fr) minmax(90px,.55fr);margin-top:18px;border-top:1px solid #edf1f5}
.ticket-fact{min-width:0;padding:13px 16px 14px 0}
.ticket-fact+.ticket-fact{padding-left:16px;border-left:1px solid #edf1f5}
.ticket-fact span{display:block;margin-bottom:4px;color:var(--atext3);font-size:11px;font-weight:500}
.ticket-fact strong{display:block;overflow:hidden;color:var(--atext2);font-size:13px;font-weight:600;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}
.ticket-thread{padding:18px 22px 24px}
.ticket-thread-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.ticket-thread-head h4{margin:0;color:var(--atext);font-size:14px;font-weight:650}
.ticket-thread-head span{color:var(--atext3);font-size:11px;font-variant-numeric:tabular-nums}
.ticket-thread-list{position:relative;display:grid;gap:14px}
.ticket-thread-list:before{content:"";position:absolute;top:34px;bottom:34px;left:16px;width:1px;background:#e4e9ef}
.ticket-message{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr);gap:11px;align-items:start}
.ticket-avatar{position:relative;z-index:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid #d8e1ea;border-radius:50%;background:#fff;color:#475569;font-size:11px;font-weight:750}
.ticket-message.staff .ticket-avatar{border-color:#b9ddd6;background:#edf8f5;color:#0f766e}
.ticket-message-main{min-width:0;max-width:760px}
.ticket-message-meta{min-height:26px;display:flex;align-items:center;gap:8px;color:var(--atext3);font-size:11px;font-variant-numeric:tabular-nums}
.ticket-message-meta strong{color:var(--atext2);font-size:12px;font-weight:650}
.ticket-message-meta time{color:var(--atext3)}
.ticket-message-body{padding:11px 13px;border:1px solid #dfe5ec;border-radius:2px 8px 8px 8px;background:#fff;color:var(--atext2);font-size:13px;line-height:1.75;white-space:pre-wrap;word-break:break-word;box-shadow:0 1px 1px rgb(15 23 42 / .02)}
.ticket-message.staff .ticket-message-body{border-color:#c5e2dc;background:#f5fbf9;color:#172b2a}
.ticket-attachments{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,260px));gap:8px;margin-top:8px}
.ticket-attachments img{display:block;width:100%;max-height:240px;object-fit:contain;border:1px solid var(--aborder);border-radius:6px;background:#fff}
.ticket-thread-empty{padding:32px 16px;border:1px dashed var(--aborder);border-radius:8px;background:#fff;color:var(--atext3);font-size:13px;text-align:center}

.dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:150;min-width:190px;background:var(--asurface);border:1px solid var(--aborder);border-radius:8px;box-shadow:var(--shadow-md);overflow:hidden}
.dropdown-menu.hidden{display:none}
.dropdown-item{display:flex;align-items:center;gap:9px;padding:10px 12px;color:var(--atext2);font-size:13px;cursor:pointer}
.dropdown-item:hover{background:var(--aaccent);color:var(--atext)}
.dropdown-item svg{width:15px;height:15px}
.dropdown-item.danger{color:var(--danger)}
.dropdown-item.danger:hover{background:#fef2f2;color:#b91c1c}
.dropdown-divider{height:1px;background:var(--aborder);margin:4px 0}
.toast-container{position:fixed;top:18px;right:18px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{pointer-events:auto;padding:11px 14px;border-radius:8px;border:1px solid var(--aborder);background:#18181b;color:#fff;font-size:13px;box-shadow:var(--shadow-md)}
.toast-error{background:#dc2626;border-color:#dc2626}
.toast-info{background:#2563eb;border-color:#2563eb}
.toast-success{background:#18181b}
.loading,.loading-state{min-height:160px;padding:36px 0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--atext3);font-size:13px}
.spinner{width:22px;height:22px;border:2px solid var(--aborder);border-top-color:var(--aprimary);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.empty,.empty-state{text-align:center;padding:40px 20px;color:var(--atext3);font-size:13px}
.skeleton-text{height:14px;background:#e4e4e7;border-radius:6px}

.pricing-mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.pricing-mini-card{background:var(--asurface);border:1px solid var(--aborder);border-radius:8px;padding:18px;text-align:center;box-shadow:var(--shadow-sm)}
.pricing-mini-card:hover{border-color:#d4d4d8}
.pricing-mini-card .plan-name{font-size:15px;font-weight:600;margin-bottom:8px}
.pricing-mini-card .plan-price{font-size:28px;font-weight:700;color:var(--atext);margin-bottom:4px}
.pricing-mini-card .plan-quota{font-size:12px;color:var(--atext3);margin-bottom:14px}
.plan-tag{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;background:#f4f4f5;border:1px solid #e4e4e7;color:#52525b;font-size:12px;font-weight:500}
.user-filter-bar{justify-content:flex-end;margin:0}
.user-filter-bar input{min-width:220px}
.user-filter-bar select{min-width:128px}
.user-table-wrap table{min-width:1120px}
.user-email-cell strong{display:block;color:var(--atext);font-weight:650}
.user-badge-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}
.row-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap;max-width:520px}
.danger-text{color:var(--danger)!important}
.form-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.user-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:2px 0 16px;border-bottom:1px solid var(--aborder)}
.user-detail-head strong{font-size:18px;color:var(--atext)}
.user-detail-head p{margin-top:4px;color:var(--atext3);font-size:13px}
.user-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:16px 0}
.user-kpi{min-height:84px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa;padding:13px}
.user-kpi span{display:block;font-size:12px;color:var(--atext3);margin-bottom:8px}
.user-kpi strong{display:block;font-size:19px;line-height:1.2;color:var(--atext);font-weight:700;word-break:break-word}
.user-kpi em{display:block;margin-top:6px;font-style:normal;font-size:12px;color:var(--atext3)}
.user-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}
.user-info-panel{border:1px solid var(--aborder);border-radius:8px;padding:14px;background:#fff}
.user-info-panel h4,.user-detail-section h4{font-size:14px;font-weight:650;color:var(--atext);margin-bottom:10px}
.user-info-panel dl{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px 12px;margin:0}
.user-info-panel dt{font-size:12px;color:var(--atext3)}
.user-info-panel dd{font-size:13px;color:var(--atext);min-width:0;word-break:break-word}
.user-detail-section{margin-top:16px}
.admin-mini-table{font-size:12px}
.admin-mini-table th,.admin-mini-table td{padding:9px 10px}
.user-secret-box{border:1px solid var(--aborder);border-radius:8px;background:#fafafa;padding:16px}
.user-secret-box span{display:block;font-size:12px;color:var(--atext3);margin-bottom:8px}
.user-secret-box code{display:block;padding:12px;border-radius:8px;background:#fff;color:var(--atext);font-size:18px;font-weight:700;text-align:center;letter-spacing:0}
.app-filter-bar{justify-content:flex-end;margin:0}
.app-filter-bar input{min-width:280px}
.app-filter-bar select{min-width:128px}
.app-table-wrap table{min-width:1280px}
.app-name-cell strong{display:block;color:var(--atext);font-weight:650;margin-bottom:6px}
.app-name-cell code{display:inline-block;max-width:230px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.app-type-tags{display:flex;align-items:center;gap:5px;flex-wrap:wrap;max-width:420px}
.app-health-line{display:flex;align-items:baseline;gap:7px}
.app-health-line strong{font-size:16px;color:var(--atext)}
.app-health-line span{font-size:12px;color:var(--atext3)}
.app-kpi-grid .user-kpi strong{font-size:20px}
.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.check-pill{min-height:36px;display:flex!important;align-items:center;gap:7px;margin:0!important;padding:8px 10px;border:1px solid var(--aborder);border-radius:8px;background:#fafafa;font-size:13px;color:var(--atext2)}
.check-pill:hover{background:#fff;border-color:#d4d4d8}
.prepaid-table-wrap table{min-width:1120px}
.export-card{background:#fafafa;border:1px solid var(--aborder);border-radius:8px;padding:20px;text-align:center;transition:border-color .15s,background .15s}
.export-card:hover{background:#fff;border-color:#d4d4d8}
.export-icon{font-size:28px;line-height:1;margin-bottom:10px}
.theme-toggle{position:fixed;right:22px;bottom:22px;z-index:90;width:42px;height:42px;border-radius:999px;border:1px solid var(--aborder);background:var(--asurface);box-shadow:var(--shadow-md);font-size:18px;cursor:pointer}
.hidden{display:none!important}
.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-40{margin-top:40px}.mt-48{margin-top:48px}
.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.mb-24{margin-bottom:24px}.mb-32{margin-bottom:32px}
.p-16{padding:16px}.p-24{padding:24px}.p-32{padding:32px}
.flex{display:flex}.items-center{align-items:center}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}
.text-center{text-align:center}.text-danger{color:var(--danger)}.text-muted{color:var(--atext3)}
.text-sm{font-size:13px}.text-xs{font-size:12px}.text-lg{font-size:16px}
.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}

@media(max-width:1120px){
  .admin-sidebar{transform:translateX(-100%);transition:transform .18s ease}
  .admin-sidebar.open{transform:translateX(0);box-shadow:var(--shadow-md)}
  .admin-workspace{margin-left:0;width:100%}
  .icon-btn{display:flex}
  .topbar.admin-topbar{padding:0 16px}
  .main-content{padding:18px}
  .user-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .trust-rule-groups{grid-template-columns:repeat(2,minmax(0,1fr))}
  .risk-overview-panel,.risk-layout-main,.risk-layout-main.bottom{grid-template-columns:1fr}
  .risk-maturity-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .risk-maturity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .risk-replay-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .risk-intel-cap-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .risk-auto-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .risk-managed-head{grid-template-columns:1fr}
  .risk-managed-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .risk-fallback-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .risk-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .risk-growth-v2{grid-template-columns:1fr}
  .risk-growth-signal-grid{grid-template-columns:1fr}
  .risk-trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .risk-trust-split{grid-template-columns:1fr}
  .risk-learning-workbench{grid-template-columns:200px minmax(0,1fr)}
  .risk-app-baseline-list{grid-template-columns:1fr}
}
@media(max-width:780px){
  .grid-2,.admin-card-grid,.form-grid-2,.user-info-grid{grid-template-columns:1fr}
  .trust-rule-groups{grid-template-columns:1fr}
  .trust-rule-main{display:block}
  .trust-rule-badges{justify-content:flex-start;margin-top:8px}
  .trust-rule-meta{grid-template-columns:1fr}
  .risk-admin-guide{grid-template-columns:1fr}
  .risk-growth-grid{grid-template-columns:1fr}
  .risk-action-panel{width:100%}
  .risk-maturity-head,.risk-intel-head,.risk-auto-head{grid-template-columns:1fr}
  .risk-maturity-steps,.risk-maturity-grid,.risk-replay-summary{grid-template-columns:1fr}
  .risk-intel-cap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .risk-auto-grid,.risk-managed-grid,.risk-managed-split,.risk-fallback-list,.risk-realtime-decision{grid-template-columns:1fr}
  .risk-realtime-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .risk-maturity-row{grid-template-columns:1fr}
  .risk-maturity-row span{text-align:left;max-width:none}
  .risk-flow,.risk-facet-grid{grid-template-columns:1fr}
  .risk-flow>div{border-right:none!important}
  .risk-flow>div:nth-last-child(2){border-bottom:1px solid var(--aborder)}
  .risk-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .risk-rec-card,.risk-policy-top{grid-template-columns:1fr}
  .risk-label-assist-head,.risk-label-assist-card{grid-template-columns:1fr}
  .risk-label-assist-stats{justify-content:flex-start}
  .risk-trust-head{grid-template-columns:1fr}
  .risk-trust-actions{justify-content:flex-start}
  .risk-todo-head{grid-template-columns:1fr}
  .risk-todo-summary{grid-template-columns:1fr}
  .risk-todo-item{grid-template-columns:30px minmax(0,1fr);align-items:start}
  .risk-todo-actions{grid-column:2;justify-content:flex-start;min-width:0}
  .risk-learning-workbench{grid-template-columns:1fr}
  .risk-learning-sidebar{position:relative;top:auto}
  .risk-learning-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}
  .risk-learning-tab{min-width:154px}
  .risk-learning-section-head{display:block}
  .risk-inline-actions{justify-content:flex-start}
  .risk-policy-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .risk-app-baseline{grid-template-columns:1fr}
  .risk-app-baseline-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .risk-label-help>div{grid-template-columns:1fr}
  .risk-card-footer{align-items:flex-start}
  .main-content{padding:14px 12px}
  .page-head h2,.page-hero-admin h2,.section-title{font-size:21px}
  .stat-grid,.stats{grid-template-columns:1fr}
  .card,.settings-section,.pool-gen-panel{padding:14px}
  .card-header{margin:-14px -14px 14px;padding:13px 14px}
  .sub-nav{overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start}
  .sub-nav a{flex:0 0 auto}
  .settings-grid,.settings-grid.compact{grid-template-columns:1fr}
  .toolbar{align-items:stretch}
  .toolbar input,.toolbar select,.toolbar .btn{width:100%;min-width:0}
  .user-filter-bar{align-items:stretch;width:100%}
  .app-filter-bar{align-items:stretch;width:100%}
  .user-detail-head{flex-direction:column}
  .user-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .payment-detail-head{grid-template-columns:1fr}
  .row-actions{max-width:none}
  .topbar-username{display:none}
  .topbar-right{gap:6px}
  .modal-overlay{padding:12px;align-items:flex-end}
  .modal-box,.modal{max-height:92vh}
  .ticket-modal{max-height:94vh}
  .ticket-summary{padding:17px 16px 0}
  .ticket-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ticket-fact:nth-child(3){border-left:0}
  .ticket-fact:nth-child(n+3){border-top:1px solid #edf1f5}
  .ticket-thread{padding:16px 16px 20px}
}
@media(max-width:520px){
  .admin-topbar-title span{display:none}
  .topbar.admin-topbar{height:56px}
  .btn{height:34px;padding:0 10px}
  .user-kpi-grid{grid-template-columns:1fr}
  .risk-metrics-grid,.risk-policy-metrics{grid-template-columns:1fr}
  .risk-intel-cap-grid,.risk-app-baseline-metrics{grid-template-columns:1fr}
  .risk-managed-grid,.risk-realtime-stats{grid-template-columns:1fr}
  .risk-trust-grid{grid-template-columns:1fr}
  .risk-compact-item{display:block}
  .risk-compact-item .btn{margin-top:10px}
  .user-info-panel dl{grid-template-columns:1fr}
  .theme-toggle{right:14px;bottom:14px}
  .ticket-modal .modal-header,.ticket-modal .modal-footer{padding-left:14px;padding-right:14px}
  .ticket-summary h2{font-size:17px}
  .ticket-time{display:grid;gap:4px}
  .ticket-time span+span:before{display:none}
  .ticket-facts{grid-template-columns:1fr}
  .ticket-fact,.ticket-fact+.ticket-fact{padding:10px 0;border-left:0;border-top:1px solid #edf1f5}
  .ticket-message{grid-template-columns:28px minmax(0,1fr);gap:9px}
  .ticket-avatar{width:28px;height:28px}
  .ticket-thread-list:before{left:14px}
  .ticket-message-body{padding:10px 11px;font-size:12px;line-height:1.7}
}

.risk-center-page{display:grid;gap:16px}
.risk-center-head{margin-bottom:0}
.risk-center-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;padding:8px;border:1px solid var(--aborder);border-radius:8px;background:var(--asurface);box-shadow:var(--shadow-sm)}
.risk-center-nav a{min-height:62px;display:grid;grid-template-columns:22px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;align-items:center;padding:10px;border:1px solid transparent;border-radius:8px;color:var(--atext2);text-decoration:none}
.risk-center-nav a:hover{border-color:#dbeafe;background:#f8fbff;color:var(--atext)}
.risk-center-nav a.active{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}
.risk-center-nav a span{grid-row:1 / span 2;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center}
.risk-center-nav a svg{width:18px;height:18px}
.risk-center-nav b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.2}
.risk-center-nav small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--atext3);font-size:11px;line-height:1.3}
.risk-center-frame-shell{overflow:hidden;border:1px solid var(--aborder);border-radius:8px;background:#f8fafc;box-shadow:var(--shadow-sm)}
.risk-center-frame-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--aborder);background:#fff}
.risk-center-frame-status b{display:block;color:var(--atext);font-size:14px}
.risk-center-frame-status p{margin:4px 0 0;color:var(--atext3);font-size:12px;line-height:1.45}
.risk-center-frame{display:block;width:100%;height:calc(100vh - 248px);min-height:680px;border:0;background:#f8fafc}
.risk-center-local{display:grid;gap:14px}
.risk-center-local-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px;border:1px solid var(--aborder);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm)}
.risk-center-local-hero span{display:block;margin-bottom:7px;color:#2563eb;font-size:12px;font-weight:700}
.risk-center-local-hero h3{margin:0;color:var(--atext);font-size:22px;line-height:1.25}
.risk-center-local-hero p{margin:7px 0 0;max-width:780px;color:var(--atext3);font-size:13px;line-height:1.65}
.risk-rate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:980px){
  .risk-center-nav{display:flex;overflow-x:auto;grid-template-columns:none;padding-bottom:10px}
  .risk-center-nav a{min-width:148px}
  .risk-center-frame{height:calc(100vh - 230px);min-height:620px}
  .risk-rate-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .risk-center-local-hero,.risk-center-frame-status{display:block}
  .risk-center-local-hero .btn,.risk-center-local-hero .toolbar{margin-top:12px;width:100%}
  .risk-center-frame{height:calc(100vh - 214px);min-height:560px}
}
