:root{--ad-primary:#1668dc;--ad-primary-dark:#0d4ea8;--ad-ink:#16233a;--ad-text:#3c4a63;--ad-text-light:#6b7a94;--ad-line:#e3e9f2;--ad-bg:#f5f8fc;--ad-sidebar:#0b1d3a;--ad-radius:8px;--ad-danger:#d54949;--ad-ok:#1a9e6e}*{box-sizing:border-box}body{color:var(--ad-text);background:var(--ad-bg);margin:0;font-family:PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;font-size:14.5px}h1,h2,h3{color:var(--ad-ink)}a{color:var(--ad-primary);text-decoration:none}.ad-layout{min-height:100vh;display:flex}.ad-sidebar{background:var(--ad-sidebar);color:#ffffffbf;flex-direction:column;flex-shrink:0;width:220px;padding:18px 0;display:flex}.ad-sidebar__brand{color:#fff;border-bottom:1px solid #ffffff1a;padding:6px 22px 18px;font-size:17px;font-weight:800;display:block}.ad-sidebar__brand small{color:#ffffff73;letter-spacing:2px;font-size:11px;font-weight:400;display:block}.ad-sidebar__nav{flex:1;padding-top:10px}.ad-nav-link{color:#ffffffbf;border-left:3px solid #0000;align-items:center;gap:10px;padding:11px 22px;font-size:14.5px;display:flex}.ad-nav-link:hover{color:#fff;background:#ffffff0f}.ad-nav-link.router-link-active{color:#fff;background:#1668dc59;border-left-color:#3d8bfd;font-weight:600}.ad-main{flex-direction:column;flex:1;min-width:0;display:flex}.ad-topbar{border-bottom:1px solid var(--ad-line);background:#fff;justify-content:space-between;align-items:center;height:56px;padding:0 24px;display:flex}.ad-topbar__user{align-items:center;gap:12px;display:flex}.ad-content{flex:1;padding:24px}.ad-card{border:1px solid var(--ad-line);border-radius:var(--ad-radius);background:#fff;margin-bottom:18px;padding:20px}.ad-card__title{margin-bottom:14px;font-size:16px}.ad-stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.ad-stat{border:1px solid var(--ad-line);border-radius:var(--ad-radius);background:#fff;padding:18px 20px}.ad-stat strong{color:var(--ad-primary);font-size:28px;display:block}.ad-stat span{color:var(--ad-text-light);font-size:13px}.ad-btn{border:1px solid var(--ad-line);color:var(--ad-text);cursor:pointer;background:#fff;border-radius:6px;align-items:center;gap:6px;padding:7px 14px;font-size:13.5px;transition:all .15s;display:inline-flex}.ad-btn:hover:not(:disabled){border-color:var(--ad-primary);color:var(--ad-primary)}.ad-btn:disabled{opacity:.5;cursor:not-allowed}.ad-btn--primary{background:var(--ad-primary);border-color:var(--ad-primary);color:#fff}.ad-btn--primary:hover:not(:disabled){background:var(--ad-primary-dark);color:#fff}.ad-btn--danger{color:var(--ad-danger);border-color:#f0c4c4}.ad-btn--danger:hover:not(:disabled){border-color:var(--ad-danger);color:var(--ad-danger);background:#fdf0f0}.ad-btn--sm{padding:4px 10px;font-size:12.5px}.ad-table{border-collapse:collapse;width:100%;font-size:13.5px}.ad-table th,.ad-table td{border-bottom:1px solid var(--ad-line);text-align:left;vertical-align:top;padding:10px 12px}.ad-table th{background:var(--ad-bg);color:var(--ad-ink);white-space:nowrap;font-weight:600}.ad-table tr:hover td{background:#fafcff}.ad-badge{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.ad-badge--blue{color:var(--ad-primary);background:#1668dc1a}.ad-badge--green{color:var(--ad-ok);background:#1a9e6e1f}.ad-badge--gray{color:var(--ad-text-light);background:#eef2f7}.ad-badge--orange{color:#b26a00;background:#fff3e0}.ad-badge--red{color:var(--ad-danger);background:#fdecec}.ad-form{max-width:720px}.ad-field{margin-bottom:14px}.ad-field label{color:var(--ad-ink);margin-bottom:5px;font-size:13.5px;font-weight:600;display:block}.ad-input,.ad-select,.ad-textarea{border:1px solid var(--ad-line);width:100%;color:var(--ad-text);border-radius:6px;padding:8px 12px;font-family:inherit;font-size:14px}.ad-input:focus,.ad-select:focus,.ad-textarea:focus{border-color:var(--ad-primary);outline:none}.ad-textarea{resize:vertical}.ad-field__err{color:var(--ad-danger);margin-top:3px;font-size:12.5px}.ad-required{color:var(--ad-danger)}.ad-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.ad-toolbar .ad-input,.ad-toolbar .ad-select{width:auto;min-width:140px}.ad-pager{color:var(--ad-text-light);justify-content:flex-end;align-items:center;gap:6px;margin-top:14px;font-size:13px;display:flex}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ad-primary);outline-offset:1px}
