.portal .sidebar .nav-item{border:0;background:transparent;width:100%;text-align:left;font-family:inherit;cursor:pointer}.portal .sidebar .nav-item.active{background:#eef2ff}.portal-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.portal-metrics article{padding:24px;background:#fff;border:1px solid var(--line);border-radius:12px}.portal-metrics span{font-size:13px;color:#768399}.portal-metrics strong{display:block;font-size:29px;margin-top:12px;overflow-wrap:anywhere}.portal-welcome p{color:#768399;line-height:1.9;margin:18px 0}.portal-shortcuts{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.portal-filters{display:flex;gap:12px;margin:18px 0;flex-wrap:wrap}.portal-filters input{flex:1;min-width:180px}.portal-filters input,.portal-filters select{height:42px;margin:0}.portal-filters select{width:auto;min-width:130px}.portal-filters button{white-space:nowrap}.portal-pager{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:20px;color:#768399;font-size:12px}.portal td{vertical-align:middle}.portal td small{display:block;color:#8490a3;font-size:11px;margin-top:6px;overflow-wrap:anywhere}.portal td .portal-actions{display:flex;gap:10px;flex-wrap:wrap;min-width:150px}.portal td button{border:0;background:transparent;color:#335fea;padding:5px 0;font-size:12px}.portal td.mono{font-variant-numeric:tabular-nums}.portal-confirm{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.7}.portal-confirm input{width:16px;height:16px;margin:3px 0 0;flex-shrink:0}.portal-history{width:min(1050px,calc(100vw - 30px))}.portal-history .table-wrap{max-height:55vh}.portal .form-error{white-space:pre-wrap}.portal #admin-error{margin-bottom:20px}.portal .panel-heading{gap:16px}.portal .panel-heading .button{white-space:nowrap}.portal .hint{line-height:1.8}@media(max-width:1100px){.portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.portal .sidebar{padding:16px}.portal .sidebar nav{display:flex;gap:6px;overflow-x:auto;margin-top:14px}.portal .sidebar .nav-item{display:block;white-space:nowrap;width:auto;padding:10px;flex-shrink:0;margin:0}.portal .header-actions{font-size:12px;gap:10px}.portal .panel-heading{flex-wrap:wrap}.portal-metrics{gap:10px}.portal-metrics article{padding:18px}.portal-metrics strong{font-size:23px}.portal .portal-pager{justify-content:center}.portal .table-wrap{overflow-x:auto}.portal .table-wrap table{min-width:700px}}

.position-owner-filter{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;background:#eef2ff;border:1px solid #dce4ff;border-radius:8px;font-size:13px;color:#335fea}.position-owner-filter .button{flex-shrink:0}.position-user-group th{background:#eef2ff;text-align:left;padding:16px!important;border-top:16px solid #fff;color:#263f68}.position-user-group strong{font-size:14px}.position-user-group span{margin-left:20px;font-weight:400;font-size:12px;color:#647895}.position-user-group small{display:block;margin-top:7px;font-weight:400;color:#718099;font-size:11px}.position-holding-row td:first-child{padding-left:24px}@media(max-width:760px){.position-owner-filter{align-items:flex-start;flex-direction:column}.position-user-group span{display:block;margin:8px 0 0}}
.sim-ui.portal { background: #fff; min-height: 100vh; }
.sim-ui.portal .workspace > header { height: 56px; min-height: 56px; padding: 0 20px; gap: 16px; font-size: 13px; }
.sim-ui.portal .breadcrumb { display: flex; align-items: center; gap: 12px; white-space: nowrap; font-size: 12px; }
.sim-ui.portal .breadcrumb-home { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); }
.sim-ui.portal .breadcrumb > span { margin: 0; }
.sim-ui.portal .breadcrumb b { color: #253149; font-weight: 600; }
.sim-ui.portal .header-actions { gap: 10px; min-width: 0; }
.sim-ui.portal #admin-name { display: inline-flex; align-items: center; gap: 8px; color: #253149; font-size: 12px; font-weight: 600; }
.sim-ui.portal header .quiet { height: 36px; padding: 0 12px; border: 1px solid var(--line); border-radius: 7px; white-space: nowrap; background: #fff; }
.sim-ui.portal header .quiet:hover { background: #f0f5ff; color: var(--blue); border-color: #d6e4ff; }
.sim-ui.portal main { max-width: 1600px; margin-inline: auto; padding: 16px 32px 28px; }
.sim-ui.portal .page-heading { margin-bottom: 24px; }
.sim-ui.portal #admin-title { position: relative; margin: 0; padding-left: 16px; font-size: 24px; line-height: 36px; }
.sim-ui.portal #admin-title::before { content: ''; position: absolute; left: 0; top: 4px; width: 4px; height: 48px; border-radius: 2px; background: linear-gradient(180deg,#1677ff,#258fff 45%,#36d5ed); }
.sim-ui.portal #admin-subtitle { margin: 3px 0 0 16px; color: var(--muted); font-size: 12px; line-height: 20px; }
.sim-ui.portal #workspace-sidebar .nav-item { display: flex; }
.sim-ui.portal .portal-metrics article { padding: 20px; background: var(--section); border-radius: 10px; }
.sim-ui.portal .portal-metrics strong { margin: 8px 0 0; font-size: clamp(22px,2.1vw,28px); }
.sim-ui.portal .portal-metrics article:first-child strong { color: var(--blue); }
.sim-ui.portal main .panel { padding: 20px; background: var(--section); border-radius: 10px; }
.sim-ui.portal .portal-welcome h2 { padding-left: 10px; border-left: 3px solid var(--blue); }
.sim-ui.portal .portal-welcome p { margin: 16px 0; }
.sim-ui.portal .portal-shortcuts { margin-bottom: 0; }
.sim-ui.portal .table-wrap { border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.sim-ui.portal th { background: #fff; }
.sim-ui.portal tbody tr:hover td { background: #f7faff; }
.sim-ui.portal .position-user-group th { background: #eef4fc; border-top: 8px solid var(--section); }
.sim-ui.portal .portal-pager { flex-wrap: wrap; }
@media(max-width:760px) {
  .sim-ui.portal .workspace > header { height: auto; padding: 10px 12px; flex-wrap: wrap; gap: 10px; }
  .sim-ui.portal .workspace-header-left { flex-shrink: 0; }
  .sim-ui.portal .breadcrumb { display: none; }
  .sim-ui.portal .header-actions { width: auto; flex: 1; justify-content: flex-end; flex-wrap: wrap; gap: 6px; }
  .sim-ui.portal #admin-name { max-width: 150px; overflow-wrap: anywhere; }
  .sim-ui.portal header .quiet { padding-inline: 8px; }
  .sim-ui.portal main { padding: 14px 16px 28px; }
  .sim-ui.portal .portal-metrics article,.sim-ui.portal main .panel { padding: 16px; }
  .sim-ui.portal #workspace-sidebar .nav-item { display: inline-flex; }

}

/* Administration workbench: compact queries and clearly separated data surfaces. */
.sim-ui.portal .user-detail-dialog { width: min(1200px,calc(100vw - 48px)); }
.sim-ui.portal .user-detail-dialog .dialog-heading p { margin-top: 6px; overflow-wrap: anywhere; }
.sim-ui.portal .user-detail-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.sim-ui.portal .account-management-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.sim-ui.portal .portal-actions button.danger-link { color: var(--red); }
.sim-ui.portal .danger-button { background: var(--red); }
.sim-ui.portal #account-manage-target { overflow-wrap: anywhere; }
.sim-ui.portal .user-detail-tabs { display: flex; gap: 4px; padding: 3px; background: #f3f5f9; border-radius: 5px; }
.sim-ui.portal .user-detail-tabs button { border: 0; border-radius: 4px; padding: 8px 12px; background: transparent; color: #78869a; font-size: 12px; }
.sim-ui.portal .user-detail-tabs button[aria-pressed="true"] { background: #fff; color: var(--blue); box-shadow: 0 1px 4px #26344912; }
.sim-ui.portal #user-detail-status { margin-bottom: 10px; }
.sim-ui.portal #user-detail-error:empty { display: none; }
.sim-ui.portal { background: #f4f7fb; color: #253149; }
.sim-ui.portal .workspace { min-height: 100vh; }
.sim-ui.portal main { max-width: none; padding: 18px 20px 28px; }
.sim-ui.portal .page-heading { margin: 0 0 16px; gap: 16px; align-items: center; }
.sim-ui.portal #admin-title { padding: 0; font-size: 24px; line-height: 36px; letter-spacing: 0; }
.sim-ui.portal #admin-title::before { content: none; }
.sim-ui.portal #admin-subtitle { margin: 4px 0 0; font-size: 12px; }
.sim-ui.portal .button { height: var(--control-height); min-height: var(--control-height); padding: 0 16px; border-radius: var(--radius-control); font-size: 13px; font-weight: 500; }

.sim-ui.portal.sidebar-collapsed .workspace { margin-left: 0; }

.sim-ui.portal main > .panel { padding: 0; background: transparent; border: 0; border-radius: 0; }
.sim-ui.portal .admin-query-card, .sim-ui.portal .admin-data-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-card); }
.sim-ui.portal .admin-query-card { margin-bottom: 16px; padding: 20px; }
.sim-ui.portal .admin-query-card .panel-heading { margin: 0 0 14px; gap: 16px; }
.sim-ui.portal .admin-query-card h2 { font-size: 14px; padding: 0 0 0 10px; border-left: 3px solid var(--blue); line-height: 20px; }
.sim-ui.portal .admin-query-card .panel-heading p { margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 18px; }
.sim-ui.portal .query-panel { margin: 0; padding: 0; border: 0; gap: 16px; }
.sim-ui.portal .query-panel input, .sim-ui.portal .query-panel select { height: var(--control-height); border-radius: var(--radius-control); font-size: 13px; margin-top: 8px; }
.sim-ui.portal .query-panel .button, .sim-ui.portal .query-toggle { height: var(--control-height); }
.sim-ui.portal .admin-data-card { padding: 0 20px; }
.sim-ui.portal .admin-table-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; min-height: 52px; font-size: 13px; }
.sim-ui.portal .admin-table-toolbar strong { font-weight: 600; }
.sim-ui.portal .admin-table-toolbar span { color: var(--muted); font-size: 11px; font-weight: 400; }
.sim-ui.portal .table-wrap { border-radius: var(--radius-table); border-color: var(--line); max-height: calc(100vh - 360px); min-height: 100px; scrollbar-width: thin; }
.sim-ui.portal table { font-size: 13px; white-space: nowrap; }
.sim-ui.portal th { position: sticky; top: 0; z-index: 1; background: var(--section); color: #596579; font-size: 12px; font-weight: 500; padding: 12px; text-align: center; border-bottom: 1px solid var(--line); }
.sim-ui.portal td { padding: 14px 12px; text-align: center; font-size: 13px; line-height: 20px; border-color: #edf1f6; }
.sim-ui.portal td:last-child { border-right: 0; }
.sim-ui.portal td b { font-weight: 500; }
.sim-ui.portal td small { margin-top: 4px; font-size: 12px; line-height: 18px; color: var(--muted); }
.sim-ui.portal tbody tr:last-child td { border-bottom: 0; }
.sim-ui.portal tbody tr:hover td { background: #f7faff; }
.sim-ui.portal #user-rows td:first-child { color: #25354e; font-weight: 500; min-width: 155px; }
.sim-ui.portal #user-rows td:first-child small { font-weight: 400; }
.sim-ui.portal .tag { display: inline-block; border: 1px solid #d6e4ff; border-radius: 5px; padding: 2px 8px; font-size: 12px; line-height: 18px; background: #f0f5ff; color: var(--blue); }
.sim-ui.portal .role-TEACHER { color: #6042c5; border-color: #ded5fa; background: #f0ecff; }
.sim-ui.portal .role-USER { color: #08798e; border-color: #c5e9ef; background: #e4f8fb; }
.sim-ui.portal .tag.role-unknown { color: #6b7280; border-color: #e5e7eb; background: #f8fafc; }
.sim-ui.portal .login-state { display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px; border: 1px solid #e5e7eb; border-radius: 5px; font-size: 12px; line-height: 18px; color: #6b7280; background: #f8fafc; }
.sim-ui.portal .login-state::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #a8b1bf; }
.sim-ui.portal .login-state.enabled { color: #389e0d; background: #f6ffed; border-color: #d9f7be; }
.sim-ui.portal .login-state.enabled::before { background: currentColor; }
.sim-ui.portal .login-state.disabled { color: #cf1322; background: #fff1f0; border-color: #ffccc7; }
.sim-ui.portal .login-state.disabled::before { background: currentColor; }
.sim-ui.portal td .portal-actions { justify-content: center; align-items: center; flex-wrap: nowrap; gap: 12px; min-width: 175px; }
.sim-ui.portal .portal-actions button { font-size: 12px; white-space: nowrap; padding: 0; line-height: 24px; }
.sim-ui.portal .portal-actions button[data-password] { color: var(--red); }
.sim-ui.portal .portal-pager { margin: 0; min-height: 64px; gap: 12px; font-size: 12px; }
.sim-ui.portal .portal-pager .button { height: 30px; min-height: 30px; padding-inline: 10px; }
.sim-ui.portal .position-owner-filter { padding: 8px 12px; margin-bottom: 14px; font-size: 12px; border-radius: 5px; }
.sim-ui.portal .position-owner-filter .button { border: 0; background: transparent; height: 28px; min-height: 28px; color: var(--blue); }
.sim-ui.portal .position-user-group th { position: static; padding: 10px 14px !important; border-top: 0; border-bottom: 1px solid #e3ebf7; background: #f0f5fc; text-align: left; }
.sim-ui.portal .position-user-group strong { font-size: 12px; font-weight: 600; }
.sim-ui.portal .position-user-group small { display: inline; margin-left: 12px; color: #8b98aa; }
.sim-ui.portal .position-user-group span { margin-left: 16px; font-size: 11px; }
.sim-ui.portal .position-holding-row td:first-child { padding-left: 14px; }
.sim-ui.portal .position-holding-row td { text-align: center; }
.sim-ui.portal .position-holding-row td.position-number { text-align: center; }
.sim-ui.portal .position-account-group:not(:first-child) td { border-top: 2px solid #dce6f3; }
.sim-ui.portal .position-holding-row td.position-account-cell { background: #f7faff; vertical-align: middle; text-align: center !important; min-width: 155px; border-bottom: 1px solid var(--line); }
.sim-ui.portal .position-account-cell small { white-space: normal; overflow-wrap: anywhere; max-width: 230px; margin-inline: auto; }
.sim-ui.portal .pnl-positive, .sim-ui.portal .pnl-positive small { color: var(--red); }
.sim-ui.portal .pnl-negative, .sim-ui.portal .pnl-negative small { color: var(--green); }
.sim-ui.portal .portal-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-bottom: 16px; }
.sim-ui.portal .portal-metrics article { background: var(--surface); padding: 20px; border-radius: var(--radius-card); }
.sim-ui.portal .portal-metrics article strong { font-size: 26px; font-weight: 600; margin-top: 12px; }
.sim-ui.portal .portal-metrics article span { font-size: 12px; }
.sim-ui.portal main .portal-welcome { background: var(--surface); border: 1px solid var(--line); padding: 20px; border-radius: var(--radius-card); }
.sim-ui.portal .admin-workflows { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-top: 18px; }
.sim-ui.portal .admin-workflows a { display: block; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-table); transition: border-color .15s; }
.sim-ui.portal .admin-workflows a:hover { border-color: #91b9ff; background: #fafcff; }
.sim-ui.portal .admin-workflows small { color: #9caabd; font-size: 11px; }
.sim-ui.portal .admin-workflows strong { display: block; margin: 10px 0 6px; font-size: 14px; font-weight: 600; }
.sim-ui.portal .admin-workflows p { font-size: 12px; line-height: 1.8; }
.sim-ui.portal .admin-workflows span { display: block; margin-top: 14px; font-size: 12px; color: var(--blue); }
.sim-ui.portal dialog { border-radius: var(--radius-card); padding: 24px; }
.sim-ui.portal dialog .dialog-heading h2 { font-size: 16px; }
.sim-ui.portal dialog .table-wrap { max-height: 55vh; }
.sim-ui.portal .admin-query-card .panel-heading { flex-wrap: nowrap; }
.sim-ui.portal .content-page-heading { flex: 1; min-width: 0; margin: 0; }
.sim-ui.portal .content-page-heading > div { flex: 1; min-width: 0; }
.sim-ui.portal .content-page-heading > .button { flex-shrink: 0; }
.sim-ui.portal .admin-overview-heading .panel-heading,
.sim-ui.portal .admin-query-card:not(:has(form)) > .panel-heading { margin-bottom: 0; }
.sim-ui.portal .admin-table-toolbar { justify-content: flex-end; min-height: 40px; }
@media(min-width:1800px) { .sim-ui.portal .portal-metrics { grid-template-columns: repeat(6,minmax(0,1fr)); } }
@media(max-width:1000px) { .sim-ui.portal .admin-workflows { grid-template-columns: 1fr; } }
@media(max-width:760px) {
  .sim-ui.portal #workspace-sidebar { width: auto; }

  .sim-ui.portal .workspace { margin-left: 0; }
  .sim-ui.portal main { padding: 14px 12px 24px; }
  .sim-ui.portal #admin-title { font-size: 21px; }
  .sim-ui.portal .workspace > header { height: auto; }
  .sim-ui.portal .admin-query-card { padding: 14px; }
  .sim-ui.portal .admin-data-card { padding: 0 10px; }
  .sim-ui.portal .admin-query-card .panel-heading { flex-wrap: wrap; }
  .sim-ui.portal .admin-query-card .panel-heading > .content-page-heading { flex-basis: 100%; }
  .sim-ui.portal .admin-query-card .panel-heading > .button { margin-left: auto; }
  .sim-ui.portal .table-wrap { max-height: 65vh; }
  .sim-ui.portal .portal-pager { justify-content: flex-end; }
  .sim-ui.portal .portal-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sim-ui.portal .portal-metrics article { padding: 14px; }
  .sim-ui.portal .portal-metrics article strong { font-size: 21px; }
  .sim-ui.portal .position-user-group small { display: block; margin-left: 0; }
  .sim-ui.portal .position-user-group span { display: block; margin: 4px 0; }
}
