    :root {
      --primary-color: #4a5dff;
      --primary-hover: #3b4df0;
      --primary-soft: #edefff;
      --page-bg: #f5f6fb;
      --panel-bg: #ffffff;
      --line: #e6e9f2;
      --line-soft: #eef1f7;
      --text: #172033;
      --muted: #687386;
      --side-bg: #ffffff;
      --side-text: #333333;
      --side-muted: #8b94a6;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: var(--text);
      background: var(--page-bg);
    }
    * { box-sizing: border-box; }
    body { margin: 0; min-height: 100vh; background: var(--page-bg); }
    h1, h2, h3, p { margin: 0; }
    h1 { font-size: 20px; font-weight: 700; letter-spacing: 0; color: #111827; }
    h2 { margin: 0 0 14px; font-size: 16px; font-weight: 650; color: #111827; }
    h3 { font-size: 14px; font-weight: 650; color: #111827; }
    a { color: var(--primary-color); text-decoration: none; }
    label { display: block; font-size: 13px; color: #5d6678; margin: 12px 0 6px; }
    input, textarea, select { width: 100%; border: 1px solid #d9deea; border-radius: 4px; padding: 9px 10px; font: inherit; background: #fff; color: #172033; outline: none; transition: border-color .18s, box-shadow .18s, background-color .18s; }
    input:focus, textarea:focus, select:focus { border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(74, 93, 255, .12); }
    input[type="color"] { height: 40px; padding: 4px; }
    textarea { min-height: 86px; resize: vertical; }
    button { border: 1px solid var(--primary-color); background: var(--primary-color); color: #fff; border-radius: 4px; padding: 8px 14px; cursor: pointer; font: inherit; white-space: nowrap; box-shadow: none; transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
    button:hover:not(:disabled) { background: var(--primary-hover); border-color: var(--primary-hover); }
    button.secondary { background: #fff; color: #334155; border-color: #d7dce7; }
    button.secondary:hover:not(:disabled) { background: #f7f8fc; color: var(--primary-color); border-color: #c9d0ff; }
    button.ghost { background: transparent; color: #64748b; border-color: transparent; box-shadow: none; }
    button.ghost:hover:not(:disabled) { background: var(--primary-soft); color: var(--primary-color); border-color: transparent; }
    button:disabled { opacity: .55; cursor: not-allowed; }
    table { width: 100%; border-collapse: collapse; }
    th, td { text-align: left; border-bottom: 1px solid #edf1f7; padding: 12px 10px; font-size: 13px; vertical-align: top; }
    th { color: #667085; font-weight: 600; background: #fafbff; }
    tr:hover td { background: #f7f8ff; }
    pre { white-space: pre-wrap; max-height: 280px; overflow: auto; background: #0f172a; color: #d1e7ff; padding: 12px; border-radius: 6px; font-size: 12px; }
    .build-log-backdrop { position: fixed; inset: 0; background: rgba(15,23,42,.28); z-index: 40; }
    .build-log-drawer { position: fixed; top: 0; right: 0; width: min(760px, calc(100vw - 238px)); height: 100vh; background: #fff; border-left: 1px solid #dbe3ef; box-shadow: -18px 0 46px rgba(15,23,42,.18); z-index: 41; display: flex; flex-direction: column; }
    .build-log-head { min-height: 64px; padding: 14px 16px; border-bottom: 1px solid #e8edf4; display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
    .build-log-title { min-width: 0; }
    .build-log-title h2 { margin-bottom: 4px; }
    .build-log-actions { display: flex; gap: 8px; align-items: center; }
    .build-log-body { flex: 1; min-height: 0; padding: 14px; background: #f8fafc; }
    .build-log-body pre { height: 100%; max-height: none; margin: 0; border-radius: 8px; }
    .source-history-drawer { inset: 0; width: 100vw; height: 100dvh; border-left: 0; }
    .source-history-body { overflow-y: auto; overscroll-behavior: contain; }
    .update-reminder-backdrop { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 20px; background: rgba(15, 23, 42, .46); backdrop-filter: blur(2px); }
    .update-reminder-dialog { width: min(560px, 100%); max-height: min(680px, calc(100vh - 40px)); overflow: auto; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-bg); box-shadow: 0 28px 80px rgba(15, 23, 42, .28); }
    .update-reminder-head { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; padding: 22px 22px 18px; border-bottom: 1px solid var(--line-soft); }
    .update-reminder-head h2 { margin: 8px 0 6px; font-size: 20px; }
    .update-reminder-kicker { display: inline-flex; border-radius: 999px; padding: 4px 9px; background: var(--primary-soft); color: var(--primary-color); font-size: 12px; font-weight: 650; }
    .update-reminder-close { width: 34px; height: 34px; flex: 0 0 34px; padding: 0; display: grid; place-items: center; font-size: 24px; line-height: 1; }
    .update-reminder-version { margin: 18px 22px 0; display: grid; grid-template-columns: 1fr auto 1fr; gap: 14px; align-items: center; padding: 14px; border: 1px solid #dfe4f0; border-radius: 8px; background: #f8f9ff; }
    .update-reminder-version > div { min-width: 0; }
    .update-reminder-version span { display: block; color: var(--muted); font-size: 12px; }
    .update-reminder-version strong { display: block; margin-top: 5px; color: var(--text); font-size: 18px; overflow-wrap: anywhere; }
    .update-reminder-version .update-reminder-arrow { color: var(--primary-color); font-size: 20px; }
    .update-reminder-content { margin: 16px 22px 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
    .update-reminder-content-head { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; padding: 11px 13px; background: #fafbff; border-bottom: 1px solid var(--line-soft); }
    .update-reminder-notes { max-height: 260px; overflow: auto; padding: 14px; color: #334155; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
    .forced-update-message { min-height: 20px; margin: 14px 22px 0; }
    .update-reminder-actions { display: flex; justify-content: flex-end; padding: 18px 22px 22px; }
    .transfer-progress { width: 100%; min-width: 0; max-width: 320px; margin-top: 8px; }
    .transfer-progress .progress-meta { display: flex; justify-content: space-between; gap: 8px; color: #64748b; font-size: 12px; line-height: 1.4; }
    .progress-track { height: 8px; margin-top: 5px; overflow: hidden; border-radius: 999px; background: #e2e8f0; }
    .progress-fill { height: 100%; width: 0; border-radius: inherit; background: var(--primary-color); transition: width .24s ease; }
    .builds-table { min-width: 1080px; table-layout: fixed; }
    .builds-table th, .builds-table td { overflow-wrap: anywhere; }
    .builds-table .build-col-project { width: 18%; }
    .builds-table .build-col-source { width: 17%; }
    .builds-table .build-col-version { width: 7%; }
    .builds-table .build-col-status { width: 22%; }
    .builds-table .build-col-address { width: 17%; }
    .builds-table .build-col-time { width: 10%; }
    .builds-table .build-col-actions { width: 9%; }
    .shell { min-height: 100vh; display: grid; grid-template-columns: 202px 1fr; transition: grid-template-columns .22s ease; background: var(--page-bg); }
    .shell.side-collapsed { grid-template-columns: 68px 1fr; }
    .side { position: sticky; top: 0; height: 100vh; overflow: auto; background: var(--side-bg); color: var(--side-text); padding: 0; border-right: 1px solid var(--line); box-shadow: 2px 0 10px rgba(18, 30, 54, .03); }
    .side::-webkit-scrollbar { width: 6px; }
    .side::-webkit-scrollbar-thumb { background: #d9deeb; border-radius: 999px; }
    .brand { min-height: 58px; display: flex; align-items: center; gap: 10px; padding: 0 16px; border-bottom: 1px solid var(--line); margin-bottom: 10px; }
    .brand-mark { width: 30px; height: 30px; border-radius: 6px; display: grid; place-items: center; color: #fff; background: var(--primary-color); font-weight: 800; box-shadow: 0 8px 18px rgba(74, 93, 255, .20); }
    .brand h1 { color: #111827; font-size: 15px; }
    .side .brand .small { color: var(--side-muted) !important; }
    .menu-section { margin: 13px 0 5px; padding: 0 16px; color: #9aa3b5; font-size: 12px; line-height: 20px; }
    .tab { position: relative; width: 100%; min-height: 46px; display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 0; background: transparent; color: var(--side-text); border: 0; border-radius: 0; text-align: left; box-shadow: none; padding: 0 16px; }
    .tab:hover:not(:disabled) { background: var(--primary-soft); color: var(--primary-color); border-color: transparent; }
    .tab .label { display: flex; align-items: center; gap: 10px; min-width: 0; }
    .tab .icon {
      width: 18px;
      height: 18px;
      flex: 0 0 18px;
      color: #8b94a6;
      display: inline-grid;
      place-items: center;
      font-size: 0;
      line-height: 0;
      --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M12 8v4l3 2'/%3E%3C/svg%3E");
      transition: color .18s ease, background-color .18s ease;
    }
    .tab .icon::before {
      content: "";
      width: 17px;
      height: 17px;
      display: block;
      background: currentColor;
      -webkit-mask: var(--menu-icon) center / contain no-repeat;
      mask: var(--menu-icon) center / contain no-repeat;
    }
    .tab[data-tab="dashboard"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='8' rx='1.5'/%3E%3Crect x='14' y='3' width='7' height='5' rx='1.5'/%3E%3Crect x='14' y='12' width='7' height='9' rx='1.5'/%3E%3Crect x='3' y='15' width='7' height='6' rx='1.5'/%3E%3C/svg%3E"); }
    .tab[data-group="projects"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16'/%3E%3Cpath d='M4 12h16'/%3E%3Cpath d='M4 17h16'/%3E%3Cpath d='M8 4v16'/%3E%3Cpath d='M16 4v16'/%3E%3C/svg%3E"); }
    .tab[data-tab="builds"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12'/%3E%3Cpath d='m7 8 5-5 5 5'/%3E%3Cpath d='M5 14v4a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3v-4'/%3E%3C/svg%3E"); }
    .tab[data-tab="licenses"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 5 6v5c0 4.5 2.8 8 7 10 4.2-2 7-5.5 7-10V6l-7-3Z'/%3E%3Cpath d='m9 12 2 2 4-5'/%3E%3C/svg%3E"); }
    .tab[data-group="userCenter"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9.5' cy='7' r='4'/%3E%3Cpath d='M20 8v6'/%3E%3Cpath d='M23 11h-6'/%3E%3C/svg%3E"); }
    .tab[data-tab="endUsers"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M5 21a7 7 0 0 1 14 0'/%3E%3C/svg%3E"); }
    .tab[data-tab="memberships"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='3'/%3E%3Cpath d='M7 10h5'/%3E%3Cpath d='M7 14h3'/%3E%3Cpath d='m16 9 1 2 2 .3-1.5 1.4.4 2.1-1.9-1-1.9 1 .4-2.1L13 11.3l2-.3 1-2Z'/%3E%3C/svg%3E"); }
    .tab[data-tab="payments"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='5' width='19' height='14' rx='3'/%3E%3Cpath d='M2.5 10h19'/%3E%3Cpath d='M7 15h3'/%3E%3C/svg%3E"); }
    .tab[data-tab="keys"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16'/%3E%3Cpath d='M7 11h10'/%3E%3Cpath d='M9 15h6'/%3E%3Crect x='3' y='4' width='18' height='16' rx='3'/%3E%3C/svg%3E"); }
    .tab[data-tab="redeemCodes"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2a2 2 0 0 0 0-4V9Z'/%3E%3Cpath d='M13 8 9 16'/%3E%3Cpath d='M9 9h.01'/%3E%3Cpath d='M13 15h.01'/%3E%3C/svg%3E"); }
    .tab[data-group="modelService"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='3'/%3E%3Cpath d='M9 9h6v6H9z'/%3E%3Cpath d='M9 1v3'/%3E%3Cpath d='M15 1v3'/%3E%3Cpath d='M9 20v3'/%3E%3Cpath d='M15 20v3'/%3E%3Cpath d='M20 9h3'/%3E%3Cpath d='M20 15h3'/%3E%3Cpath d='M1 9h3'/%3E%3Cpath d='M1 15h3'/%3E%3C/svg%3E"); }
    .tab[data-tab="mcp"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='6' r='3'/%3E%3Ccircle cx='18' cy='18' r='3'/%3E%3Cpath d='m8.8 10.8 6.4-3.6'/%3E%3Cpath d='m8.8 13.2 6.4 3.6'/%3E%3C/svg%3E"); }
    .tab[data-tab="skills"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v4'/%3E%3Cpath d='M12 18v4'/%3E%3Cpath d='m4.9 4.9 2.8 2.8'/%3E%3Cpath d='m16.3 16.3 2.8 2.8'/%3E%3Cpath d='M2 12h4'/%3E%3Cpath d='M18 12h4'/%3E%3Cpath d='m4.9 19.1 2.8-2.8'/%3E%3Cpath d='m16.3 7.7 2.8-2.8'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
    .tab[data-group="platformSettings"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15.5A3.5 3.5 0 1 0 12 8a3.5 3.5 0 0 0 0 7.5Z'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.6V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1-1.6 1.7 1.7 0 0 0-1.9.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.9 1.7 1.7 0 0 0-1.6-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.6-1 1.7 1.7 0 0 0-.3-1.9l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.9.3 1.7 1.7 0 0 0 1-1.6V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.6 1.7 1.7 0 0 0 1.9-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.9 1.7 1.7 0 0 0 1.6 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1Z'/%3E%3C/svg%3E"); }
    .tab[data-tab="updates"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 0 1-15.5 6.2'/%3E%3Cpath d='M3 12A9 9 0 0 1 18.5 5.8'/%3E%3Cpath d='M18 2v4h-4'/%3E%3Cpath d='M6 22v-4h4'/%3E%3C/svg%3E"); }
    .tab[data-tab="diagnostics"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19V5'/%3E%3Cpath d='M4 19h16'/%3E%3Cpath d='m7 15 3-4 3 2 4-6'/%3E%3Cpath d='M17 7h3v3'/%3E%3C/svg%3E"); }
    .tab[data-tab="security"] .icon { --menu-icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='10' width='14' height='10' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3Cpath d='M12 14v2'/%3E%3C/svg%3E"); }
    .tab .count { min-width: 18px; height: 18px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; padding: 0 6px; background: #f0f2f7; color: #7a8498; font-size: 12px; }
    .tab.parent-tab::after { content: "⌄"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%) rotate(-90deg); color: #a1a9ba; font-size: 13px; transition: transform .2s ease, color .18s ease; }
    .tab.parent-tab.active::after { transform: translateY(-50%) rotate(0); color: var(--primary-color); }
    .tab.parent-tab .count { margin-right: 18px; }
    .tab.active { background: var(--primary-soft); color: var(--primary-color); border-color: transparent; font-weight: 500; }
    .tab.active::before { content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius: 0 999px 999px 0; background: var(--primary-color); }
    .tab.active .icon { color: var(--primary-color); }
    .tab.active .count { color: var(--primary-color); background: #dfe3ff; }
    .tab.planned { color: #929bad; }
    .tab.planned .count { background: #f4f5f8; color: #9aa3b5; }
    .shell.side-collapsed .brand { justify-content: center; padding-left: 0; padding-right: 0; margin-bottom: 8px; }
    .shell.side-collapsed .brand > div:not(.brand-mark), .shell.side-collapsed .menu-section, .shell.side-collapsed .tab .label span:not(.icon), .shell.side-collapsed .tab .count, .shell.side-collapsed .subnav { display: none !important; }
    .shell.side-collapsed .tab { width: 100%; min-height: 46px; justify-content: center; padding: 0; margin: 2px 0; }
    .shell.side-collapsed .tab .label { font-size: 0; }
    .shell.side-collapsed .tab .icon { width: 40px; height: 40px; flex-basis: 40px; border-radius: 4px; font-size: 0; }
    .shell.side-collapsed .tab .icon::before { width: 18px; height: 18px; }
    .shell.side-collapsed .tab:hover:not(:disabled) { background: transparent; }
    .shell.side-collapsed .tab:hover:not(:disabled) .icon { background: var(--primary-soft); color: var(--primary-color); }
    .shell.side-collapsed .tab.active { background: transparent; }
    .shell.side-collapsed .tab.active .icon { background: var(--primary-soft); color: var(--primary-color); }
    .shell.side-collapsed .tab.active::before { top: 9px; bottom: 9px; }
    .shell.side-collapsed .tab.parent-tab::after { display: none; }
    .subnav { display: grid; gap: 0; margin: 0; padding: 0; overflow: hidden; max-height: 360px; background: #fbfcff; border: 0; transition: max-height .22s ease, opacity .18s ease; }
    .subnav:not(.open) { max-height: 0; opacity: 0; pointer-events: none; }
    .subtab { width: 100%; min-height: 42px; padding: 0 16px 0 42px; border-radius: 0; border: 0; background: transparent; color: #515b6f; box-shadow: none; text-align: left; font-size: 13px; }
    .subtab:hover:not(:disabled) { background: var(--primary-soft); color: var(--primary-color); border-color: transparent; }
    .subtab.active { background: var(--primary-soft); color: var(--primary-color); border-color: transparent; font-weight: 500; }
    .project-list-layout { display: grid; gap: 16px; }
    .project-table-card { overflow-x: auto; }
    .project-table-card table { min-width: 920px; }
    .project-editor { width: 100%; max-width: none; }
    .project-editor h2 { padding-top: 4px; border-top: 1px solid #eef2f7; }
    .project-editor h2:first-child { padding-top: 0; border-top: 0; }
    .project-editor .form-grid { grid-template-columns: repeat(2, minmax(260px, 1fr)); }
    .main { min-width: 0; }
    .topbar { height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 10; box-shadow: 0 1px 8px rgba(18, 30, 54, .035); }
    .topbar-title { display: flex; align-items: center; gap: 14px; min-width: 0; }
    .side-toggle { width: 32px; height: 32px; padding: 0; display: inline-grid; place-items: center; background: #fff; color: #475569; border-color: #dfe3ed; box-shadow: none; font-size: 18px; }
    .page { padding: 18px; max-width: 1480px; }
    .page-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 16px; }
    .page-subtitle { margin-top: 5px; color: #667085; font-size: 13px; }
    .muted { color: var(--muted); font-size: 13px; }
    .small { font-size: 12px; }
    .hidden { display: none !important; }
    .content { min-width: 0; display: grid; gap: 16px; }
    .grid { display: grid; grid-template-columns: minmax(560px, 640px) 1fr; gap: 18px; align-items: start; }
    .dashboard-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 18px; align-items: start; }
    .plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
    .stack { display: grid; gap: 18px; }
    .card { background: var(--panel-bg); border: 1px solid var(--line); border-radius: 4px; padding: 16px; box-shadow: 0 2px 8px rgba(18, 30, 54, .035); }
    .management-page { gap: 18px; }
    .management-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
    .management-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
    .filter-bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; padding-bottom: 12px; border-bottom: 1px solid #e8edf4; }
    .filter-bar input, .filter-bar select { width: auto; min-width: 190px; height: 34px; padding: 6px 10px; }
    .filter-bar button { height: 34px; padding: 6px 13px; }
    .table-card { padding: 0; overflow: hidden; }
    .table-tools { padding: 14px 16px 0; }
    .table-scroll { overflow: auto; }
    .table-scroll table { min-width: 980px; }
    .table-scroll th, .table-scroll td { border-right: 1px solid #edf1f7; }
    .table-scroll th:last-child, .table-scroll td:last-child { border-right: 0; }
    .table-footer { min-height: 44px; padding: 10px 16px; display: flex; justify-content: flex-end; align-items: center; color: #64748b; border-top: 1px solid #edf1f7; font-size: 13px; }
    .table-footer.pagination-footer { justify-content: space-between; gap: 12px; flex-wrap: wrap; }
    .pagination-footer select { width: auto; min-width: 96px; }
    .table-action { background: transparent; border: 0; box-shadow: none; padding: 0 6px; color: var(--primary-color); }
    .table-action.warning { color: #d97706; }
    .table-action.danger { color: #dc2626; }
    .tag { display: inline-flex; align-items: center; border-radius: 4px; padding: 2px 7px; font-size: 12px; background: #eff1ff; color: var(--primary-color); border: 1px solid #d7dcff; }
    .tag.warn { background: #fff7ed; color: #c2410c; border-color: #fed7aa; }
    .tag.neutral { background: #f8fafc; color: #64748b; border-color: #e2e8f0; }
    .form-drawer-backdrop { position: fixed; inset: 0; background: rgba(15,23,42,.28); z-index: 45; }
    .form-drawer { position: fixed; top: 0; right: 0; width: min(520px, 100vw); height: 100vh; background: #fff; border-left: 1px solid #dbe3ef; box-shadow: -18px 0 46px rgba(15,23,42,.18); z-index: 46; display: flex; flex-direction: column; }
    .form-drawer-head { min-height: 62px; padding: 14px 16px; border-bottom: 1px solid #e8edf4; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
    .form-drawer-body { flex: 1; overflow: auto; padding: 16px; }
    .form-drawer-body .toolbar { position: sticky; bottom: -16px; background: #fff; padding: 12px 0 0; border-top: 1px solid #edf1f7; }
    .model-access-list { display: grid; gap: 8px; margin-top: 12px; }
    .model-access-item { display: grid; grid-template-columns: 24px 1fr; gap: 8px; align-items: flex-start; padding: 10px; border: 1px solid #e8edf4; border-radius: 8px; background: #fff; }
    .model-access-item input { width: auto; margin-top: 3px; }
    .model-access-item.disabled { background: #f8fafc; opacity: .72; }
    .model-access-meta { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
    .membership-drawer { width: min(680px, 100vw); }
    .membership-tabs { margin-bottom: 14px; }
    .membership-panel { display: grid; gap: 10px; }
    .membership-module-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; padding: 10px; }
    .membership-module-grid label { margin: 0; display: flex; gap: 8px; align-items: center; color: #334155; }
    .membership-module-grid input, .membership-package-row input[type="checkbox"] { width: auto; }
    .membership-package-list { display: grid; gap: 12px; }
    .membership-package-row { border: 1px solid #e8edf4; border-radius: 8px; padding: 12px; background: #fbfcff; }
    .membership-package-summary { border: 1px solid #e8edf4; border-radius: 8px; padding: 10px 12px; background: #fbfcff; line-height: 1.6; }
    .membership-description { min-height: 360px; }
    .membership-preview { width: 128px; height: 72px; }
    .membership-card-cell { display: grid; grid-template-columns: 86px 1fr; gap: 10px; align-items: center; min-width: 220px; }
    .membership-table-bg { width: 86px; height: 40px; border: 1px solid #d7dde8; border-radius: 6px; object-fit: cover; background: linear-gradient(135deg, #f8fafc, #e2e8f0); }
    .membership-table-bg.empty { display: block; }
    .payment-config-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
    .payment-provider-card { display: grid; gap: 10px; margin: 0; }
    .payment-provider-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid #e8edf4; }
    .payment-provider-head h2 { margin: 0 0 4px; font-size: 18px; }
    .payment-provider-head p { margin: 0; }
    .payment-secret { min-height: 108px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; line-height: 1.5; }
    .payment-mode-row { display: flex; flex-wrap: wrap; gap: 10px 18px; padding: 10px 12px; border: 1px solid #e8edf4; border-radius: 8px; background: #fbfcff; }
    .checkbox-line { display: flex; align-items: center; gap: 8px; min-height: 38px; margin: 0; color: #334155; }
    .checkbox-line input { width: auto; }
    .payment-order-table { min-width: 1080px; }
    .payment-provider-card .toolbar { margin-top: 4px; }
    .summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
    .metric { background: #fff; border: 1px solid var(--line); border-radius: 4px; padding: 14px; position: relative; overflow: hidden; box-shadow: 0 2px 8px rgba(18, 30, 54, .03); }
    .metric::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--primary-color); opacity: .78; }
    .metric strong { display: block; margin-top: 6px; font-size: 20px; }
    .toolbar { display: flex; gap: 8px; align-items: center; justify-content: flex-end; margin-top: 14px; flex-wrap: wrap; }
    .inline-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
    .build-inline { display: grid; gap: 5px; margin-top: 7px; }
    .build-inline .inline-actions { gap: 6px; }
    .status { display: inline-flex; border-radius: 999px; padding: 3px 9px; font-size: 12px; background: #eef2ff; color: #3845b8; }
    .failed { background: #fee2e2; color: #991b1b; }
    .succeeded { background: #dcfce7; color: #166534; }
    .running { background: #e6eaff; color: var(--primary-color); }
    .queued { background: #fef3c7; color: #92400e; }
    .notice { border: 1px solid #bfdbfe; background: #eff6ff; color: #1e3a8a; border-radius: 8px; padding: 12px 14px; display: flex; justify-content: space-between; gap: 12px; align-items: center; }
    .asset-row { display: grid; grid-template-columns: 72px 1fr; gap: 12px; align-items: center; }
    .preview { width: 72px; height: 72px; border: 1px solid #d7dde8; border-radius: 8px; background: #f8fafc; object-fit: contain; padding: 4px; }
    .menu-editor { border: 1px solid #e8edf4; border-radius: 8px; overflow-x: auto; overflow-y: hidden; background: #fbfcff; }
    .menu-editor table { min-width: 860px; width: 100%; background: #fff; table-layout: fixed; }
    .menu-editor th, .menu-editor td { padding: 8px; }
    .menu-editor th:nth-child(1), .menu-editor td:nth-child(1) { width: 48px; text-align: center; }
    .menu-editor th:nth-child(2), .menu-editor td:nth-child(2) { width: 150px; }
    .menu-editor th:nth-child(3), .menu-editor td:nth-child(3) { width: 76px; white-space: nowrap; }
    .menu-editor th:nth-child(4), .menu-editor td:nth-child(4) { width: 108px; }
    .menu-editor th:nth-child(5), .menu-editor td:nth-child(5) { width: 126px; }
    .menu-editor th:nth-child(6), .menu-editor td:nth-child(6) { width: 92px; }
    .menu-editor th:nth-child(7), .menu-editor td:nth-child(7) { width: auto; }
    .menu-editor th:nth-child(8), .menu-editor td:nth-child(8) { width: 82px; }
    .menu-editor input[type="checkbox"] { width: auto; }
    .menu-editor input[type="number"] { width: 76px; }
    .capability-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; padding: 10px; }
    .capability-editor label { margin: 0; display: flex; align-items: center; gap: 8px; color: #334155; }
    .menu-label, .menu-url { min-width: 0; }
    .menu-row-dragging { opacity: .45; }
    .drag-menu-handle { width: 30px; height: 30px; padding: 0; display: inline-grid; place-items: center; color: #64748b; cursor: grab; }
    .drag-menu-handle:active { cursor: grabbing; }
    .menu-order-wrap { display: flex; align-items: center; gap: 6px; }
    .login-wrap { min-height: 100vh; display: grid; place-items: center; padding: 28px; background: linear-gradient(135deg, #f8fafc 0%, #eef4ff 48%, #f6f8fb 100%) !important; }
    .login-shell { width: min(980px, 100%); display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 0; border: 1px solid rgba(203,213,225,.82); border-radius: 8px; overflow: hidden; background: #fff; box-shadow: 0 24px 70px rgba(15, 23, 42, .14); }
    .login-intro { min-height: 520px; padding: 42px; display: flex; flex-direction: column; justify-content: space-between; background: linear-gradient(135deg, #102033 0%, #214a72 58%, #2f7ab8 100%); color: #e5eefc; }
    .login-intro h2 { color: #fff; font-size: 26px; line-height: 1.28; max-width: 420px; margin: 18px 0 12px; }
    .login-intro p { color: #d2deee; line-height: 1.7; max-width: 460px; }
    .login-kicker { display: inline-flex; width: fit-content; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; padding: 5px 10px; color: #e0f2fe; font-size: 12px; }
    .login-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
    .login-metric { border: 1px solid rgba(255,255,255,.16); border-radius: 8px; padding: 12px; background: rgba(255,255,255,.08); }
    .login-metric strong { display: block; color: #fff; font-size: 18px; margin-bottom: 3px; }
    .login-metric span { color: #cbd5e1; font-size: 12px; }
    .login { width: 100%; min-height: 520px; border: 0; border-radius: 0; box-shadow: none; padding: 34px; display: flex; flex-direction: column; justify-content: center; background: #ffffff !important; }
    .login .brand { border: 0; margin: 0 0 22px; padding: 0; align-items: flex-start; }
    .login .brand-mark { width: 42px; height: 42px; border-radius: 8px; box-shadow: 0 10px 24px rgba(74,93,255,.20); background: var(--primary-color) !important; }
    .login .brand h1 { color: #111827; font-size: 20px; }
    .login label { color: #475569; font-weight: 600; }
    .login input { height: 42px; background: #f8fafc; }
    .login .toolbar { justify-content: stretch; margin-top: 18px; }
    .login .toolbar button { width: 100%; height: 42px; background: var(--primary-color) !important; border-color: var(--primary-color) !important; }
    .login-footnote { margin-top: 16px; color: #94a3b8; font-size: 12px; text-align: center; }
    .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
    .mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
    .empty { min-height: 210px; display: grid; place-items: center; color: #64748b; border: 1px dashed #d7dde8; border-radius: 8px; background: #fbfcff; text-align: center; padding: 22px; }
    .roadmap { display: inline-flex; align-items: center; border-radius: 999px; padding: 3px 9px; background: #fff7ed; color: #9a3412; font-size: 12px; margin-bottom: 10px; }
    .update-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
    .update-log { min-height: 180px; max-height: 420px; }
    .release-history { display: grid; gap: 12px; }
    .release-history-item { border: 1px solid #e8edf4; border-radius: 8px; padding: 12px; background: #f8fafc; }
    .release-history-head { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; margin-bottom: 8px; }
    .release-history-notes { white-space: pre-wrap; line-height: 1.7; color: #334155; }
    .model-update-reminder-list { display: grid; gap: 10px; margin: 16px 22px 0; }
    .model-update-reminder-item { display: grid; grid-template-columns: minmax(120px, .4fr) minmax(0, 1fr); gap: 12px; align-items: start; border: 1px solid #e8edf4; border-radius: 8px; padding: 12px; background: #f8fafc; }
    .model-update-reminder-item strong { color: #172033; }
    .model-update-reminder-names { color: #475569; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
    .model-update-reminder-message { min-height: 20px; margin: 12px 22px 0; }
    .model-update-reminder-actions { justify-content: flex-end; gap: 8px; }
    .curated-sync-progress { margin: 12px 22px 0; padding: 13px 14px; border: 1px solid var(--line); border-radius: 8px; background: #f8fafc; }
    .curated-sync-progress-head, .curated-sync-progress-detail { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
    .curated-sync-progress-head { color: var(--text); font-size: 13px; }
    .curated-sync-progress-head span { color: var(--primary-color); font-variant-numeric: tabular-nums; }
    .curated-sync-progress-detail { margin-top: 8px; color: var(--muted); font-size: 12px; line-height: 1.5; }
    .curated-sync-progress-detail span:first-child { min-width: 0; overflow-wrap: anywhere; }
    .curated-sync-progress-detail span:last-child { flex: 0 0 auto; font-variant-numeric: tabular-nums; }
    .curated-sync-progress.completed { border-color: #bbf7d0; background: #f0fdf4; }
    .curated-sync-progress.failed { border-color: #fecaca; background: #fef2f2; }
    .source-release-notes { margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(74,93,255,.16); white-space: pre-wrap; line-height: 1.7; color: #334155; }
    .permission-workspace { display: grid; gap: 14px; }
    .permission-tabs { display: flex; gap: 6px; align-items: center; border-bottom: 1px solid #e8edf4; overflow-x: auto; }
    .permission-tab-btn { border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; color: #64748b; box-shadow: none; padding: 11px 12px; }
    .permission-tab-btn.active { color: var(--primary-color); border-bottom-color: var(--primary-color); font-weight: 650; }
    .permission-panel { display: grid; gap: 14px; }
    .role-template-workspace { display: grid; gap: 14px; }
    .role-template-selector { display: grid; grid-template-columns: minmax(280px, 420px) 1fr; gap: 12px; align-items: end; }
    .permission-bottom-actions { position: sticky; bottom: 0; display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; padding: 12px 0 0; background: #fff; border-top: 1px solid #edf1f7; }
    .permission-shell { display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 14px; align-items: start; }
    .permission-side, .permission-main { background: #fff; border: 1px solid #e8edf4; border-radius: 8px; padding: 16px; box-shadow: 0 6px 18px rgba(15, 23, 42, .035); }
    .permission-side { position: sticky; top: 76px; }
    .permission-side h2, .permission-main h2 { margin-bottom: 6px; }
    .permission-side-note { margin-bottom: 12px; line-height: 1.6; }
    .permission-table { border: 1px solid #e8edf4; border-radius: 8px; overflow: hidden; background: #fff; }
    .permission-row { display: grid; grid-template-columns: 56px minmax(180px, 1fr) minmax(260px, 1.25fr) minmax(230px, .9fr); gap: 12px; align-items: center; min-height: 56px; padding: 10px 12px; border-top: 1px solid #edf1f7; color: #172033; }
    .permission-row:first-child { border-top: 0; }
    .permission-row.header { min-height: 38px; background: #f8fafc; color: #64748b; font-size: 12px; font-weight: 650; }
    .permission-row input[type="checkbox"] { width: 16px; height: 16px; margin: 0; }
    .permission-row.disabled { background: #f8fafc; color: #94a3b8; }
    .permission-row.disabled .permission-desc, .permission-row.disabled .muted { color: #94a3b8; }
    .permission-section-row { padding: 9px 12px; background: #fbfcff; border-top: 1px solid #e8edf4; color: #334155; font-size: 13px; font-weight: 700; }
    .permission-name strong { display: block; margin-bottom: 3px; }
    .permission-desc { color: #475569; font-size: 13px; line-height: 1.5; }
    .permission-tags { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
    .permission-actions { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; margin-top: 14px; }
    .permission-empty { min-height: 140px; display: grid; place-items: center; color: #64748b; border: 1px dashed #d7dde8; border-radius: 8px; background: #fbfcff; }
    .permission-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
    .notice-actions { display: flex; gap: 8px; align-items: flex-start; }
    @media (max-width: 1100px) { .shell { grid-template-columns: 1fr; } .side { position: static; height: auto; } .dashboard-grid, .grid, .summary, .plan-grid, .login-shell, .permission-shell, .permission-summary, .role-template-selector { grid-template-columns: 1fr; } .permission-side { position: static; } .login-intro { min-height: auto; gap: 28px; } .build-log-drawer { width: 100vw; } }
    @media (max-width: 760px) { .permission-row { grid-template-columns: 36px 1fr; align-items: start; } .permission-row.header { display: none; } .permission-desc, .permission-tags { grid-column: 2; } }
    @media (max-width: 1100px) { .payment-config-grid { grid-template-columns: 1fr; } }
    @media (max-width: 640px) { .login-wrap { padding: 14px; } .login-intro { display: none; } .login { min-height: auto; padding: 24px; } .form-grid, .update-grid { grid-template-columns: 1fr; } .update-reminder-backdrop { padding: 12px; } .update-reminder-head { padding: 18px 18px 15px; } .update-reminder-version { margin: 14px 18px 0; gap: 9px; } .update-reminder-content { margin: 14px 18px 0; } .update-reminder-content-head { align-items: flex-start; flex-direction: column; } .update-reminder-actions { padding: 16px 18px 18px; } .update-reminder-actions button { width: 100%; } .curated-sync-progress { margin: 12px 18px 0; } .curated-sync-progress-detail { align-items: flex-start; flex-direction: column; gap: 3px; } }
