:root{
      --bg:#f6f7f9;
      --panel:#ffffff;
      --line:#dfe3ea;
      --line-soft:#eef0f4;
      --text:#1f2d42;
      --muted:#7d8798;
      --muted-2:#a3abb9;
      --primary:#36b8c8;
      --primary-dark:#1d97a9;
      --green:#32c982;
      --green-soft:#eafaf2;
      --yellow:#f5b93c;
      --yellow-soft:#fff6df;
      --red:#ee5d64;
      --red-soft:#fff0f1;
      --blue:#3f8cff;
      --blue-soft:#eef5ff;
      --shadow:none;
      --radius:16px;
      --sidebar:300px;
      --icon:#111827;
    }

    *{box-sizing:border-box}
    body{
      margin:0;
      font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
      color:var(--text);
      background:var(--bg);
    }

    .app{
      min-height:100vh;
      display:grid;
      grid-template-columns:var(--sidebar) 1fr;
      transition:grid-template-columns .25s ease;
    }
    .app.sidebar-collapsed{--sidebar:86px}

    .ico{
      width:20px;
      height:20px;
      stroke:currentColor;
      stroke-width:1.9;
      stroke-linecap:round;
      stroke-linejoin:round;
      fill:none;
      display:block;
      flex:0 0 auto;
    }
    .ico-sm{width:16px;height:16px;stroke-width:2}
    .ico-lg{width:23px;height:23px;stroke-width:1.8}
    .icon-black{color:var(--icon)}

    .sidebar{
      position:sticky;
      top:0;
      height:100vh;
      background:#ffffff;
      border-right:1px solid var(--line);
      display:flex;
      flex-direction:column;
      z-index:10;
    }

    .brand{
      height:112px;
      padding:26px 26px 18px;
      display:flex;
      align-items:center;
      gap:13px;
      border-bottom:1px solid var(--line-soft);
      position:relative;
    }
    .collapse-btn{
      position:absolute;
      right:-16px;
      top:22px;
      width:34px;
      height:34px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      color:#111827;
      display:grid;
      place-items:center;
      cursor:pointer;
      box-shadow:0 10px 24px rgba(20,32,51,.08);
      z-index:15;
      transition:.2s ease;
    }
    .collapse-btn:hover{background:#f7f8fb}
    .app.sidebar-collapsed .collapse-btn svg{transform:rotate(180deg)}

    .logo{
      width:46px;
      height:46px;
      border-radius:15px;
      background:#fff;
      border:1.5px solid #111827;
      display:grid;
      place-items:center;
      color:#111827;
      box-shadow:0 10px 20px rgba(20,32,51,.05);
      flex:0 0 auto;
    }

    .brand-title{font-weight:700;font-size:18px;line-height:1.15;margin:0}
    .brand-sub{font-size:12px;color:var(--muted);margin-top:4px}

    .nav-wrap{
      padding:22px 16px;
      overflow:auto;
      flex:1;
    }

    .nav-label{
      font-size:10px;
      letter-spacing:.16em;
      text-transform:uppercase;
      color:#c3c9d4;
      margin:0 14px 12px;
      font-weight:700;
    }

    .nav-item{
      height:46px;
      display:flex;
      align-items:center;
      gap:13px;
      padding:0 14px;
      border-radius:15px;
      color:#5d6778;
      font-size:14px;
      font-weight:600;
      margin-bottom:7px;
      cursor:pointer;
      transition:.2s ease;
    }
    .nav-item:hover{background:#f7f8fb;color:#111827}
    .nav-item.active{
      background:#f2f4f8;
      color:#111827;
    }
    .nav-item-compact{height:40px;font-size:13px;margin-bottom:4px}
    .nav-search-trigger{
      width:100%;
      height:44px;
      border:1px solid var(--line);
      background:#fff;
      border-radius:14px;
      display:flex;
      align-items:center;
      gap:11px;
      padding:0 12px;
      margin:0 0 18px;
      color:#111827;
      font-weight:700;
      cursor:pointer;
      transition:.2s ease;
    }
    .nav-search-trigger:hover{background:#f7f8fb}
    .nav-search-trigger kbd{
      margin-left:auto;
      border:1px solid #dfe4ec;
      background:#f3f6fb;
      color:#7b8495;
      border-radius:7px;
      padding:2px 6px;
      font-size:10px;
      font-weight:800;
    }
    .nav-icon{
      width:26px;
      height:26px;
      display:grid;
      place-items:center;
      flex:0 0 auto;
      color:#111827;
    }
    .nav-spacer{height:14px}
    .nav-quick-tabs{
      border:1px solid var(--line);
      background:#fff;
      border-radius:14px;
      padding:7px;
      margin:0 0 8px;
    }
    .nav-tab-buttons{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:4px;
      padding:3px;
      border-radius:11px;
      background:#f5f7fa;
      margin-bottom:7px;
    }
    .nav-tab-button{
      height:30px;
      border:0;
      border-radius:9px;
      background:transparent;
      color:#7b8495;
      font-size:11px;
      font-weight:800;
      cursor:pointer;
      transition:.16s ease;
    }
    .nav-tab-button.active{
      background:#fff;
      color:#111827;
      box-shadow:0 1px 4px rgba(15,23,42,.08);
    }
    .nav-tab-panel{display:none}
    .nav-tab-panel.active{display:block}
    .nav-tab-panel .nav-item-compact:last-child{margin-bottom:0}
    .nav-tab-empty{
      min-height:40px;
      display:grid;
      place-items:center;
      border:1px dashed var(--line);
      border-radius:11px;
      color:#8d96a6;
      font-size:12px;
      font-weight:700;
    }

    .nav-group{margin-bottom:8px}
    .nav-parent{
      height:46px;
      display:flex;
      align-items:center;
      gap:13px;
      padding:0 14px;
      border-radius:15px;
      color:#5d6778;
      font-size:14px;
      font-weight:700;
      cursor:pointer;
      transition:.2s ease;
    }
    .nav-parent:hover{background:#f7f8fb;color:#111827}
    .nav-parent.active{
      background:#f2f4f8;
      color:#111827;
    }
    .nav-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .nav-chevron{
      width:18px;
      height:18px;
      display:grid;
      place-items:center;
      color:#6b7280;
      margin-left:auto;
    }
    .submenu{
      margin:6px 0 10px 27px;
      padding:3px 0 3px 18px;
      border-left:1px solid #e3e7ef;
    }
    .sub-item{
      height:36px;
      display:flex;
      align-items:center;
      gap:10px;
      padding:0 12px;
      margin:3px 0;
      border-radius:13px;
      color:#7a8496;
      font-size:13px;
      font-weight:600;
      cursor:pointer;
      transition:.2s ease;
    }
    .sub-item:hover{background:#f7f8fb;color:#111827}
    .sub-item.active{
      background:#f2f4f8;
      color:#111827;
      font-weight:700;
    }
    .sub-heading{
      min-height:32px;
      display:flex;
      align-items:center;
      gap:9px;
      padding:8px 10px 5px;
      color:#202b3d;
      font-size:12px;
      font-weight:800;
      letter-spacing:.01em;
      margin-top:6px;
    }
    .sub-heading:first-child{margin-top:0}
    .sub-heading .sub-icon{opacity:1}
    .sub-item.sub-child{
      height:34px;
      margin-left:14px;
      padding-left:10px;
      font-size:12px;
      color:#818a9a;
    }
    .sub-item.sub-child.active{color:#111827}
    .sub-divider{
      height:1px;
      background:#eef1f6;
      margin:8px 10px;
    }
    .sub-icon{
      width:18px;
      height:18px;
      display:grid;
      place-items:center;
      color:#111827;
      flex:0 0 auto;
      opacity:.9;
    }

    .app.sidebar-collapsed .brand{justify-content:center;padding:20px 0;height:92px}
    .app.sidebar-collapsed .brand-text,
    .app.sidebar-collapsed .nav-label,
    .app.sidebar-collapsed .nav-text,
    .app.sidebar-collapsed .nav-chevron,
    .app.sidebar-collapsed .nav-search-trigger kbd,
    .app.sidebar-collapsed .submenu,
    .app.sidebar-collapsed .user-card .user-info,
    .app.sidebar-collapsed .logout{display:none}
    .app.sidebar-collapsed .nav-item,
    .app.sidebar-collapsed .nav-parent,
    .app.sidebar-collapsed .nav-search-trigger{justify-content:center;padding:0;margin-bottom:8px}
    .app.sidebar-collapsed .user-card{justify-content:center;padding:10px;margin:14px}

    .user-card{
      margin:18px 16px;
      padding:14px;
      border:1px solid var(--line);
      border-radius:21px;
      background:#fff;
      display:flex;
      align-items:center;
      gap:12px;
      box-shadow:0 10px 28px rgba(20,32,51,.04);
    }
    .avatar{
      width:44px;height:44px;border-radius:50%;
      display:grid;place-items:center;
      background:#f3f5f8;
      color:#111827;
      border:1px solid #dde2ea;
      font-weight:700;
      font-size:14px;
    }
    .user-name{font-weight:700;font-size:14px;margin-bottom:2px}
    .user-meta{font-size:12px;color:var(--muted)}
    .logout{
      margin-left:auto;
      width:38px;height:38px;border-radius:13px;
      border:1px solid var(--line);
      background:#fff;
      display:grid;place-items:center;
      color:#111827;
    }

    .main{
      min-width:0;
      padding:22px 26px 36px;
    }

    .topbar{
      background:#fff;
      border:1px solid var(--line);
      border-radius:18px;
      min-height:58px;
      padding:10px 18px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
      box-shadow:0 12px 34px rgba(20,32,51,.04);
    }
    .topbar-spacer{flex:1;min-width:0}
    .top-title{font-size:28px;font-weight:700;line-height:1.12;margin:0 0 6px}
    .top-sub{color:#7a8496;font-size:14px;margin:0}

    .top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
    .pill-btn,.search-box{
      height:42px;
      border:1px solid var(--line);
      background:#fff;
      border-radius:13px;
      display:flex;align-items:center;
      gap:9px;
      padding:0 14px;
      font-weight:600;
      color:#111827;
      font-size:13px;
    }
    .search-box{width:205px;justify-content:flex-start;color:#4b5563}
    .search-box kbd{
      font-size:10px;
      background:#f3f6fb;
      border:1px solid #dfe4ec;
      color:#7b8495;
      border-radius:6px;
      padding:2px 6px;
      margin-left:auto;
    }
    .primary-btn{
      height:48px;
      border:0;
      border-radius:15px;
      background:var(--primary);
      color:#fff;
      padding:0 18px;
      font-size:14px;
      font-weight:700;
      cursor:pointer;
      box-shadow:0 12px 24px rgba(54,184,200,.22);
    }
    .outline-btn{
      height:48px;
      border:1px solid var(--line);
      background:#fff;
      border-radius:15px;
      padding:0 18px;
      color:#111827;
      font-size:14px;
      font-weight:700;
      cursor:pointer;
      display:inline-flex;
      align-items:center;
      gap:9px;
    }

    .page-head{
      margin:34px auto 18px;
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap:20px;
    }
    .page-title{font-size:30px;letter-spacing:-.02em;margin:0 0 7px;font-weight:700}
    .page-desc{font-size:14px;color:var(--muted);margin:0;max-width:760px;line-height:1.65}
    .page-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}

    .stat-grid{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:16px;
      margin-bottom:18px;
    }
    .stat-card{
      background:#fff;
      border:1px solid var(--line);
      border-radius:var(--radius);
      padding:18px;
      box-shadow:var(--shadow);
      min-height:142px;
    }
    .stat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
    .stat-icon{
      width:43px;
      height:43px;
      border-radius:15px;
      display:grid;
      place-items:center;
      background:#fff;
      border:1px solid #e0e5ee;
      color:#111827;
    }
    .badge{
      font-size:11px;
      font-weight:700;
      border-radius:999px;
      padding:6px 9px;
      display:inline-flex;
      align-items:center;
      gap:5px;
    }
    .badge.green{background:var(--green-soft);color:#16a467}
    .badge.yellow{background:var(--yellow-soft);color:#a76e00}
    .badge.red{background:var(--red-soft);color:#d94b52}
    .badge.blue{background:var(--blue-soft);color:#2c74d9}
    .dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}
    .stat-label{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.09em;margin-bottom:5px}
    .stat-value{font-size:27px;font-weight:700;margin:0;letter-spacing:-.02em}
    .stat-note{font-size:12px;color:var(--muted);margin:8px 0 0;line-height:1.5}

    .content-grid{
      display:grid;
      grid-template-columns:minmax(0,1.55fr) minmax(320px,.8fr);
      gap:18px;
      align-items:start;
    }

    .panel{
      background:#fff;
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
    }
    .panel-head{
      padding:20px 22px 14px;
      border-bottom:1px solid var(--line-soft);
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
    }
    .panel-title{font-size:17px;font-weight:700;margin:0}
    .panel-sub{font-size:12px;color:var(--muted);margin-top:4px}
    .panel-body{padding:18px 22px 22px}

    .tabs{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      margin-bottom:15px;
    }
    .tab{
      border:1px solid var(--line);
      background:#fff;
      border-radius:12px;
      padding:9px 13px;
      color:#687386;
      font-weight:700;
      font-size:12px;
      cursor:pointer;
    }
    .tab.active{background:#f2f4f8;border-color:#dfe4ec;color:#111827}

    .module-shell{display:grid;gap:18px}
    .module-hero{
      background:#fff;
      border:1px solid var(--line);
      border-radius:var(--radius);
      padding:18px;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:18px;
      align-items:center;
    }
    .module-hero-title{font-size:22px;font-weight:800;color:#111827;margin:0}
    .module-hero-copy{font-size:13px;color:var(--muted);line-height:1.6;margin:6px 0 0;max-width:760px}
    .module-quick-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
    .module-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:14px;
    }
    .module-card{
      background:#fff;
      border:1px solid var(--line);
      border-radius:var(--radius);
      padding:16px;
      min-width:0;
    }
    .module-card.wide{grid-column:span 2}
    .module-card-head{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      margin-bottom:12px;
    }
    .module-card-title{font-size:15px;font-weight:800;color:#111827;margin:0}
    .module-card-sub{font-size:12px;color:var(--muted);line-height:1.5;margin-top:4px}
    .module-link-list{display:grid;gap:7px}
    .module-link{
      min-height:38px;
      width:100%;
      border:1px solid var(--line-soft);
      background:#fbfcfe;
      border-radius:12px;
      padding:9px 11px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      text-align:left;
      color:#526078;
      font-size:13px;
      font-weight:700;
      cursor:pointer;
    }
    .module-link:hover{background:#f7f8fb;color:#111827}
    .module-link small{font-size:10px;color:#9aa4b5;font-weight:800;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
    .module-link.is-draft{opacity:.76}
    .module-link.is-draft small{color:#c08a14}
    .module-tabs{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      position:sticky;
      top:0;
      z-index:4;
      padding:4px 0;
      background:var(--bg);
    }
    .module-tab{
      border:1px solid var(--line);
      background:#fff;
      color:#657085;
      border-radius:12px;
      min-height:38px;
      padding:0 13px;
      font-size:12px;
      font-weight:800;
      cursor:pointer;
    }
    .module-tab.active{background:#eefaFC;color:#119bab;border-color:#cfeff4}
    .module-section{scroll-margin-top:18px}
    .module-section.hidden{display:none}

    .command-overlay{
      position:fixed;
      inset:0;
      background:rgba(15,23,42,.22);
      z-index:60;
      display:none;
      align-items:flex-start;
      justify-content:center;
      padding:7vh 16px 16px;
    }
    .command-overlay.open{display:flex}
    .command-panel{
      width:min(680px,100%);
      background:#fff;
      border:1px solid var(--line);
      border-radius:18px;
      box-shadow:0 24px 70px rgba(15,23,42,.18);
      overflow:hidden;
    }
    .command-search{
      display:grid;
      grid-template-columns:auto minmax(0,1fr) auto;
      gap:12px;
      align-items:center;
      padding:14px 16px;
      border-bottom:1px solid var(--line-soft);
    }
    .command-search input{
      border:0;
      outline:0;
      min-width:0;
      height:34px;
      color:#111827;
      font-size:15px;
      font-weight:700;
    }
    .command-search button{
      width:30px;
      height:30px;
      border:1px solid var(--line);
      border-radius:10px;
      background:#fff;
      color:#6b7280;
      cursor:pointer;
    }
    .command-results{padding:8px;max-height:420px;overflow:auto}
    .command-result{
      width:100%;
      border:0;
      background:#fff;
      border-radius:12px;
      padding:11px 12px;
      display:flex;
      justify-content:space-between;
      gap:12px;
      align-items:center;
      text-align:left;
      cursor:pointer;
    }
    .command-result:hover,.command-result.active{background:#f6f8fb}
    .command-result strong{display:block;font-size:13px;color:#111827}
    .command-result small{display:block;font-size:11px;color:#8490a3;margin-top:3px}
    .command-result em{font-style:normal;font-size:11px;font-weight:800;color:#9aa4b5;text-transform:uppercase;letter-spacing:.06em}
    .command-empty{padding:28px;text-align:center;color:#7d8798;font-weight:700}

    .dev-shell{gap:16px}
    .dev-filter{
      display:grid;
      grid-template-columns:minmax(240px,1fr) 180px;
      gap:8px;
      min-width:min(480px,100%);
    }
    .dev-filter input,
    .dev-filter select{
      height:42px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      padding:0 12px;
      color:#111827;
      font-family:inherit;
      font-size:13px;
      font-weight:700;
      outline:0;
    }
    .dev-module-grid{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:10px;
    }
    .dev-view-tabs{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
    }
    .dev-view-tab{
      min-height:38px;
      border:1px solid var(--line);
      background:#fff;
      color:#657085;
      border-radius:12px;
      padding:0 13px;
      font-size:12px;
      font-weight:900;
      cursor:pointer;
    }
    .dev-view-tab.active{background:#eefaFC;color:#119bab;border-color:#cfeff4}
    .dev-view-section.hidden{display:none}
    .dev-module-card{
      min-height:76px;
      border:1px solid var(--line);
      border-radius:14px;
      background:#fff;
      padding:13px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      text-align:left;
      cursor:pointer;
    }
    .dev-module-card:hover,.dev-module-card.active{background:#f7fbfc;border-color:#cfeff4}
    .dev-module-card strong{display:block;color:#111827;font-size:13px}
    .dev-module-card small{display:block;color:#7d8798;font-size:11px;margin-top:4px}
    .dev-module-card em{
      font-style:normal;
      font-size:19px;
      font-weight:900;
      color:#119bab;
    }
    .dev-table-wrap{overflow:auto}
    .dev-table{width:100%;border-collapse:separate;border-spacing:0 8px;min-width:720px}
    .dev-table th{
      text-align:left;
      font-size:10px;
      letter-spacing:.1em;
      color:#9aa4b5;
      text-transform:uppercase;
      padding:0 10px;
    }
    .dev-table td{
      background:#fbfcfe;
      border-top:1px solid var(--line-soft);
      border-bottom:1px solid var(--line-soft);
      padding:12px 10px;
      vertical-align:top;
      font-size:12px;
    }
    .dev-table td:first-child{border-left:1px solid var(--line-soft);border-radius:12px 0 0 12px;min-width:260px}
    .dev-table td:last-child{border-right:1px solid var(--line-soft);border-radius:0 12px 12px 0;width:90px;text-align:right}
    .dev-table tbody tr{cursor:pointer}
    .dev-table tbody tr:hover td{background:#f7fbfc}
    .dev-page-title{font-size:13px;font-weight:900;color:#111827}
    .dev-page-meta{font-size:11px;color:#7d8798;margin-top:4px;line-height:1.4}
    .dev-status{
      display:inline-flex;
      align-items:center;
      border-radius:8px;
      padding:6px 8px;
      font-size:11px;
      font-weight:900;
      white-space:nowrap;
    }
    .dev-status.final{background:var(--green-soft);color:#13945d}
    .dev-status.near{background:var(--blue-soft);color:#2c74d9}
    .dev-status.review{background:var(--yellow-soft);color:#a76e00}
    .dev-status.draft{background:#f2f4f8;color:#647084}
    .dev-status.missing{background:var(--red-soft);color:#d94b52}
    .dev-version-pill,
    .dev-roadmap-chip{
      display:inline-flex;
      align-items:center;
      min-height:27px;
      border-radius:8px;
      padding:5px 8px;
      font-size:11px;
      font-weight:900;
      white-space:nowrap;
    }
    .dev-version-pill{background:#f2f4f8;color:#111827}
    .dev-roadmap-chip{background:#eefaFC;color:#119bab}
    .dev-component-grid{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:6px;
      min-width:520px;
    }
    .dev-component{
      min-height:26px;
      border:1px solid var(--line-soft);
      border-radius:8px;
      background:#fff;
      color:#8792a4;
      padding:5px 7px;
      display:flex;
      align-items:center;
      gap:6px;
      font-size:10px;
      font-weight:800;
      white-space:nowrap;
    }
    .dev-component i{
      width:7px;
      height:7px;
      border-radius:50%;
      background:#c7ced9;
      flex:0 0 auto;
    }
    .dev-component.ok{color:#1f7f58;background:#f8fffb;border-color:#dcefe6}
    .dev-component.ok i{background:#2fbd77}
    .drawer-component-grid{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}
    .dev-progress-line{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      min-width:150px;
      margin-bottom:7px;
    }
    .dev-progress-line strong{font-size:13px;color:#111827}
    .dev-progress-line span{font-size:11px;color:#7d8798;font-weight:800}
    .dev-progress-bar{
      height:7px;
      border-radius:999px;
      background:#edf1f6;
      overflow:hidden;
      min-width:150px;
    }
    .dev-progress-bar i{
      display:block;
      height:100%;
      border-radius:999px;
      background:#36b8c8;
    }
    .dev-file-link{
      color:#111827;
      text-decoration:none;
      font-weight:800;
      word-break:break-word;
    }
    .dev-file-link:hover{text-decoration:underline}
    .dev-file-meta,.dev-file-missing{display:block;color:#8a94a6;font-size:11px;margin-top:5px}
    .dev-file-missing{color:#d94b52;font-weight:800}
    .dev-history-count{
      display:inline-flex;
      align-items:center;
      min-height:27px;
      border-radius:8px;
      background:#eef5ff;
      color:#2c74d9;
      padding:5px 8px;
      font-size:11px;
      font-weight:900;
      white-space:nowrap;
    }
    .dev-history-empty{
      min-height:88px;
      display:grid;
      place-items:center;
      border:1px dashed var(--line);
      border-radius:14px;
      color:#7d8798;
      font-weight:800;
      background:#fbfcfe;
    }
    .dev-history-list{display:grid;gap:12px}
    .dev-history-item{
      border:1px solid var(--line-soft);
      border-radius:14px;
      background:#fbfcfe;
      padding:14px;
    }
    .dev-view-section[data-dev-view-section="history"] .dev-history-list{gap:8px}
    .dev-view-section[data-dev-view-section="history"] .dev-history-item{
      cursor:pointer;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
      gap:12px;
      padding:12px 14px;
    }
    .dev-view-section[data-dev-view-section="history"] .dev-history-item:hover{
      background:#f7fbfc;
      border-color:#cfeff4;
    }
    .dev-view-section[data-dev-view-section="history"] .dev-history-summary,
    .dev-view-section[data-dev-view-section="history"] .dev-history-note,
    .dev-view-section[data-dev-view-section="history"] .dev-history-meta-grid,
    .dev-view-section[data-dev-view-section="history"] .dev-history-notes{
      display:none;
    }
    .dev-view-section[data-dev-view-section="history"] .dev-history-top{
      display:contents;
      margin:0;
    }
    .dev-view-section[data-dev-view-section="history"] .dev-history-top h4{
      font-size:13px;
      margin:0;
    }
    .dev-view-section[data-dev-view-section="history"] .dev-history-top p{
      font-size:11px;
      margin:3px 0 0;
      line-height:1.45;
    }
    .dev-view-section[data-dev-view-section="history"] .dev-history-top .dev-status{
      justify-self:end;
    }
    .dev-history-top{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      margin-bottom:10px;
    }
    .dev-history-top h4{font-size:14px;font-weight:900;color:#111827;margin:0}
    .dev-history-top p{font-size:11px;color:#7d8798;margin:4px 0 0}
    .dev-history-summary{font-size:13px;color:#334155;line-height:1.55;font-weight:650}
    .dev-feedback-list{display:grid;gap:10px}
    .dev-feedback-item{
      border:1px solid var(--line-soft);
      border-radius:14px;
      background:#fbfcfe;
      padding:14px;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:start;
      gap:14px;
    }
    .dev-feedback-top{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      margin-bottom:8px;
    }
    .dev-feedback-top h4{font-size:14px;font-weight:900;color:#111827;margin:0}
    .dev-feedback-top p{font-size:11px;color:#7d8798;margin:4px 0 0;line-height:1.45}
    .dev-feedback-message{
      color:#334155;
      font-size:13px;
      line-height:1.55;
      font-weight:650;
      margin-bottom:10px;
    }
    .dev-feedback-meta{display:flex;gap:8px;flex-wrap:wrap}
    .dev-feedback-meta span{
      border:1px solid var(--line-soft);
      border-radius:999px;
      background:#fff;
      color:#69758a;
      padding:5px 8px;
      font-size:10px;
      font-weight:900;
      max-width:100%;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .dev-history-note{
      margin-top:10px;
      border-left:3px solid #cfeff4;
      padding-left:10px;
      color:#526078;
      font-size:12px;
      line-height:1.55;
    }
    .dev-history-meta-grid{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:8px;
      margin-top:12px;
    }
    .dev-history-meta-grid div{
      border:1px solid var(--line-soft);
      border-radius:10px;
      background:#fff;
      padding:9px;
      min-width:0;
    }
    .dev-history-meta-grid strong{display:block;color:#111827;font-size:11px;margin-bottom:4px}
    .dev-history-meta-grid span{display:block;color:#7d8798;font-size:11px;line-height:1.45;word-break:break-word}
    .dev-history-notes{
      margin-top:10px;
      display:grid;
      gap:6px;
    }
    .dev-history-notes p{
      margin:0;
      color:#526078;
      font-size:12px;
      line-height:1.55;
    }
    .dev-detail-drawer{width:min(640px,100vw);max-width:640px}
    .dev-drawer-list{display:grid;gap:8px}
    .dev-drawer-list-item{
      border:1px solid var(--line-soft);
      border-radius:10px;
      background:#fbfcfe;
      padding:10px;
      color:#526078;
      font-size:12px;
      font-weight:750;
      overflow-wrap:anywhere;
    }
    .dev-drawer-history{display:grid;gap:10px}
    .dev-history-item.compact{padding:12px}
    .dev-history-item.compact .dev-history-meta-grid{grid-template-columns:1fr}
    .drawer-history-detail{
      cursor:default;
      display:block;
    }
    .drawer-history-detail .dev-history-summary,
    .drawer-history-detail .dev-history-note,
    .drawer-history-detail .dev-history-meta-grid,
    .drawer-history-detail .dev-history-notes{
      display:grid;
    }
    .dev-roadmap-detail{display:grid;gap:12px}
    .dev-roadmap-summary{
      border:1px solid var(--line-soft);
      border-radius:12px;
      background:#fbfcfe;
      padding:12px;
      color:#526078;
      font-size:12px;
      font-weight:700;
      line-height:1.6;
    }
    .dev-roadmap-steps{
      border:1px solid var(--line-soft);
      border-radius:12px;
      background:#fff;
      padding:12px;
    }
    .dev-roadmap-steps strong{display:block;font-size:12px;color:#111827;margin-bottom:8px}
    .dev-roadmap-steps ol{margin:0;padding-left:18px;color:#526078;font-size:12px;line-height:1.65}

    .stock-table{width:100%;border-collapse:separate;border-spacing:0 10px}
    .stock-table th{
      text-align:left;
      font-size:11px;
      letter-spacing:.11em;
      color:#a0a8b6;
      text-transform:uppercase;
      font-weight:700;
      padding:0 12px;
    }
    .stock-table td{
      background:#fbfcfe;
      border-top:1px solid var(--line-soft);
      border-bottom:1px solid var(--line-soft);
      padding:13px 12px;
      font-size:13px;
      vertical-align:middle;
    }
    .stock-table td:first-child{border-left:1px solid var(--line-soft);border-radius:15px 0 0 15px}
    .stock-table td:last-child{border-right:1px solid var(--line-soft);border-radius:0 15px 15px 0;text-align:right}
    .item-name{font-weight:700;color:#243047;margin-bottom:3px}
    .item-code{font-size:11px;color:var(--muted)}
    .progress-wrap{min-width:130px}
    .progress-info{display:flex;justify-content:space-between;color:#7d8797;font-size:11px;font-weight:700;margin-bottom:6px}
    .progress{
      height:8px;
      background:#edf1f6;
      border-radius:999px;
      overflow:hidden;
    }
    .progress span{display:block;height:100%;border-radius:999px;background:var(--primary)}
    .progress.green span{background:var(--green)}
    .progress.yellow span{background:var(--yellow)}
    .progress.red span{background:var(--red)}
    .small-action{
      width:34px;height:34px;border-radius:11px;
      border:1px solid var(--line);
      background:#fff;
      cursor:pointer;
      color:#111827;
      display:inline-grid;
      place-items:center;
    }

    .summary-row{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:12px;
      margin-bottom:16px;
    }
    .mini-card{
      border:1px solid var(--line-soft);
      background:#fbfcfe;
      border-radius:18px;
      padding:14px;
    }
    .mini-label{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
    .mini-value{font-size:20px;font-weight:700}
    .mini-note{font-size:11px;color:var(--muted);margin-top:5px}

    .movement-list{display:flex;flex-direction:column;gap:12px}
    .movement{
      display:flex;
      gap:12px;
      padding:13px;
      border:1px solid var(--line-soft);
      border-radius:17px;
      background:#fbfcfe;
    }
    .move-icon{
      width:38px;height:38px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;
      background:#fff;
      border:1px solid #e0e5ee;
      color:#111827;
    }
    .move-title{font-size:13px;font-weight:700;margin-bottom:3px;line-height:1.35}
    .move-meta{font-size:11px;color:var(--muted);line-height:1.5}
    .move-qty{margin-left:auto;font-weight:700;font-size:13px;white-space:nowrap;padding-top:3px}
    .plus{color:#18a86d}.minus{color:#e0525a}

    .alert-card{
      border-radius:18px;
      padding:15px;
      margin-top:14px;
      border:1px solid #ffe2a8;
      background:#fffaf0;
      display:flex;
      gap:12px;
      align-items:flex-start;
    }
    .alert-icon{
      width:38px;height:38px;border-radius:14px;background:#fff; border:1px solid #edd7a0;color:#111827;display:grid;place-items:center;flex:0 0 auto;
    }
    .alert-title{font-weight:700;font-size:13px;margin-bottom:3px}
    .alert-text{font-size:12px;color:#8a6b28;line-height:1.6;margin:0}

    .chart-box{
      display:flex;
      align-items:end;
      justify-content:space-between;
      gap:12px;
      height:172px;
      padding:14px 6px 0;
      border-bottom:1px solid var(--line-soft);
      margin-bottom:10px;
    }
    .bar-group{text-align:center;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:end;height:100%}
    .bar{
      width:100%;
      max-width:42px;
      background:#111827;
      opacity:.78;
      border-radius:12px 12px 5px 5px;
      min-height:30px;
    }
    .bar-label{font-size:11px;color:var(--muted);font-weight:600;margin-top:9px}

    .quick-grid{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:12px;
      margin-top:14px;
    }
    .quick-btn{
      min-height:82px;
      border:1px solid var(--line-soft);
      background:#fbfcfe;
      border-radius:18px;
      padding:14px;
      text-align:left;
      cursor:pointer;
      transition:.2s ease;
    }
    .quick-btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(20,32,51,.06)}
    .quick-icon{
      width:28px;
      height:28px;
      display:grid;
      place-items:center;
      color:#111827;
      margin-bottom:8px;
    }
    .quick-title{font-size:13px;font-weight:700;margin-bottom:3px}
    .quick-desc{font-size:11px;color:var(--muted);line-height:1.5}

    .material-section{margin-top:28px;scroll-margin-top:22px}
    .section-kicker{
      display:inline-flex;
      align-items:center;
      gap:8px;
      height:32px;
      padding:0 12px;
      border:1px solid var(--line);
      border-radius:999px;
      background:#fff;
      color:#566176;
      font-size:12px;
      font-weight:700;
      margin-bottom:12px;
    }
    .toolbar-card{
      background:#fff;
      border:1px solid var(--line);
      border-radius:24px;
      box-shadow:var(--shadow);
      padding:20px;
      margin-bottom:16px;
    }
    .toolbar-main{
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      align-items:center;
    }
    .field-lite{
      height:52px;
      border:1px solid var(--line);
      border-radius:15px;
      background:#fbfcfe;
      padding:0 16px;
      display:flex;
      align-items:center;
      gap:12px;
      color:#596579;
      font-size:13px;
      font-weight:600;
      min-width:0;
      flex:1 1 168px;
    }
    .toolbar-search{min-width:0;flex:2 1 360px}
    .field-lite span{
      min-width:max-content;
      color:#7b8798;
      font-size:12px;
      font-weight:800;
      white-space:nowrap;
    }
    .field-lite select,
    .field-lite input{
      width:100%;
      min-width:0;
      border:0;
      outline:0;
      background:transparent;
      color:#263247;
      font:inherit;
    }
    .filter-btn{
      height:52px;
      border:1px solid var(--line);
      border-radius:15px;
      background:#fff;
      color:#111827;
      font-size:13px;
      font-weight:700;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:9px;
      cursor:pointer;
      padding:0 18px;
      white-space:nowrap;
      flex:0 0 auto;
    }
    .advanced-filter{
      display:none;
      grid-template-columns:repeat(5,minmax(0,1fr));
      gap:10px;
      padding-top:14px;
      margin-top:14px;
      border-top:1px solid var(--line-soft);
    }
    .advanced-filter.open{display:grid}
    .view-toggle{
      display:flex;
      gap:8px;
      background:#f4f6fa;
      border:1px solid var(--line-soft);
      padding:5px;
      border-radius:15px;
    }
    .view-toggle button{
      height:36px;
      min-width:42px;
      border:0;
      border-radius:11px;
      background:transparent;
      color:#6b7280;
      display:grid;
      place-items:center;
      cursor:pointer;
    }
    .view-toggle button.active{background:#fff;color:#111827;box-shadow:0 8px 18px rgba(20,32,51,.06)}
    .material-headline{
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap:18px;
      margin-bottom:16px;
    }
    .material-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
    .ghost-btn{
      height:42px;
      border:1px solid var(--line);
      background:#fff;
      border-radius:14px;
      color:#111827;
      padding:0 14px;
      font-size:13px;
      font-weight:700;
      cursor:pointer;
      display:inline-flex;
      align-items:center;
      gap:8px;
    }
    .material-layout{
      display:grid;
      grid-template-columns:minmax(0,1fr);
      gap:18px;
      align-items:start;
    }
    .material-table-wrap{overflow:auto}
    .material-table{width:100%;border-collapse:separate;border-spacing:0 10px;min-width:980px}
    .material-table th{
      text-align:left;
      font-size:11px;
      letter-spacing:.1em;
      text-transform:uppercase;
      color:#a0a8b6;
      font-weight:700;
      padding:0 12px;
    }
    .material-table td{
      background:#fbfcfe;
      border-top:1px solid var(--line-soft);
      border-bottom:1px solid var(--line-soft);
      padding:13px 12px;
      font-size:13px;
      vertical-align:middle;
    }
    .material-table td:first-child{border-left:1px solid var(--line-soft);border-radius:15px 0 0 15px}
    .material-table td:last-child{border-right:1px solid var(--line-soft);border-radius:0 15px 15px 0;text-align:right}
    .po-item-list{display:grid;gap:10px;width:100%;overflow:hidden}
    .po-item-row{min-width:0}
    .po-item-summary{
      display:grid;
      grid-template-columns:minmax(0,1fr) auto auto;
      align-items:center;
      gap:12px;
      width:100%;
      min-width:0;
      padding:14px 16px;
      border:1px solid var(--line-soft);
      border-radius:12px;
      background:#fff;
    }
    .po-item-summary-main{min-width:0}
    .po-item-summary-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .po-item-summary-meta{display:block;margin-top:4px;color:var(--muted);font-size:13px}
    .po-item-summary-total{
      color:var(--text);
      font-weight:800;
      white-space:nowrap;
      padding:8px 12px;
      border-radius:10px;
      background:#f7fbfc;
      border:1px solid var(--line-soft);
    }
    .po-item-summary-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
    .po-item-total-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin-top:14px;
      padding:14px 18px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#f8fbfc;
    }
    .po-item-total-row span{color:var(--muted);font-weight:700}
    .po-item-total-row strong{font-size:20px;color:var(--text);white-space:nowrap}
    .po-grand-total-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin-top:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#f8fbfc;
    }
    .po-grand-total-row span{color:var(--muted);font-weight:800;font-size:18px}
    .po-grand-total-row strong{font-size:24px;color:var(--text);white-space:nowrap}
    .po-item-dialog-overlay[hidden]{display:none}
    .po-item-dialog-overlay.open{display:flex}
    .po-item-dialog-card{max-width:560px;width:min(560px, calc(100vw - 32px));text-align:left}
    .po-item-dialog-card .settings-form-grid{gap:12px}
    .po-item-dialog-card .form-field.full{position:relative}
    .po-item-dialog-card #poDialogItemSuggestionBox{
      position:absolute;
      z-index:20;
      left:0;
      right:0;
      top:74px;
      margin-top:0;
      box-shadow:0 18px 38px rgba(15,23,42,.16);
    }
    .po-item-dialog-card #poDialogItemSuggestionBox.open{max-height:310px;overflow:auto}
    .po-dialog-unit{min-height:42px;max-width:96px;padding:10px 14px;justify-content:center}
    .po-dialog-unit strong{font-size:18px}
    .po-dialog-total{margin-top:0;text-align:left}
    .company-logo-upload{
      display:grid;
      grid-template-columns:72px minmax(0,1fr);
      gap:12px;
      align-items:stretch;
    }
    .company-logo-preview{
      width:72px;
      height:72px;
      border:1px solid var(--line);
      border-radius:14px;
      background:#f8fbfc;
      display:grid;
      place-items:center;
      overflow:hidden;
      color:#12a8b6;
    }
    .company-logo-preview img{width:100%;height:100%;object-fit:contain;padding:8px}
    .company-logo-preview strong{font-size:22px;letter-spacing:.04em}
    .company-logo-drop{
      min-height:72px;
      border:1px dashed #b8d7de;
      border-radius:14px;
      background:#f9fdfe;
      display:flex;
      align-items:center;
      gap:12px;
      padding:12px;
      cursor:pointer;
      transition:.16s ease;
    }
    .company-logo-drop:hover{border-color:#28b8c7;background:#eefcfd}
    .company-logo-drop input{display:none}
    .company-logo-drop-icon{
      width:38px;
      height:38px;
      border-radius:12px;
      background:#e9fbfd;
      color:#159baa;
      display:grid;
      place-items:center;
      flex:0 0 auto;
    }
    .company-logo-drop-copy{display:grid;gap:3px;min-width:0}
    .company-logo-drop-copy strong{color:var(--text)}
    .company-logo-drop-copy small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .company-doc-upload{
      min-height:54px;
      border:1px dashed #b8d7de;
      border-radius:12px;
      background:#f9fdfe;
      display:flex;
      align-items:center;
      gap:12px;
      padding:10px 12px;
      cursor:pointer;
      transition:.16s ease;
    }
    .company-doc-upload:hover{border-color:#28b8c7;background:#eefcfd}
    .company-doc-upload input{display:none}
    .company-doc-upload-icon{
      width:36px;
      height:36px;
      border-radius:11px;
      background:#e9fbfd;
      color:#159baa;
      display:grid;
      place-items:center;
      flex:0 0 auto;
    }
    .company-doc-upload-copy{display:grid;gap:2px;min-width:0}
    .company-doc-upload-copy strong{color:var(--text)}
    .company-doc-upload-copy small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .company-doc-submit{justify-content:center;width:100%}
    @media (max-width:720px){
      .po-item-summary{grid-template-columns:minmax(0,1fr) auto}
      .po-item-summary-total{grid-column:1 / -1;justify-self:start}
    }
    .material-name{display:flex;align-items:center;gap:11px;min-width:250px}
    .material-avatar{
      width:42px;height:42px;border-radius:15px;
      border:1px solid #e1e6ee;
      background:#fff;
      color:#111827;
      display:grid;place-items:center;
      font-size:12px;font-weight:800;
      flex:0 0 auto;
    }
    .material-title{font-size:13px;font-weight:800;color:#243047;margin-bottom:3px}
    .material-code{font-size:11px;color:var(--muted)}
    .risk-pill,.storage-pill,.status-pill{
      display:inline-flex;
      align-items:center;
      gap:6px;
      padding:6px 9px;
      border-radius:999px;
      font-size:11px;
      font-weight:800;
      white-space:nowrap;
    }
    .risk-low{background:#f0fbf5;color:#15a264}
    .risk-med{background:#fff7e5;color:#a76e00}
    .risk-high{background:#fff0f1;color:#d94b52}
    .storage-pill{background:#f3f5f8;color:#354054;border:1px solid #e6eaf1}
    .status-active{background:#eafaf2;color:#16a467}
    .status-hold{background:#fff6df;color:#a76e00}
    .status-draft{background:#eef4ff;color:#3867d6}
    .status-reject{background:#ffecec;color:#ca2f3b}
    .table-actions{display:inline-flex;align-items:center;gap:8px}
    .detail-btn{
      height:34px;
      border:1px solid var(--line);
      background:#fff;
      border-radius:11px;
      color:#111827;
      font-size:12px;
      font-weight:800;
      padding:0 12px;
      cursor:pointer;
    }
    .card-view{display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
    .card-view.active{display:grid}
    .table-view.hidden{display:none}
    .material-card{
      border:1px solid var(--line-soft);
      background:#fbfcfe;
      border-radius:20px;
      padding:16px;
    }
    .material-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
    .material-card-title{display:flex;align-items:center;gap:10px}
    .card-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
    .card-metric{border:1px solid var(--line-soft);background:#fff;border-radius:15px;padding:10px}
    .metric-label{font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}
    .metric-value{font-size:14px;font-weight:800;color:#1f2937}
    .insight-panel{position:sticky;top:22px}
    .insight-list{display:flex;flex-direction:column;gap:11px}
    .insight-item{
      border:1px solid var(--line-soft);
      background:#fbfcfe;
      border-radius:17px;
      padding:13px;
      display:flex;
      gap:11px;
      align-items:flex-start;
    }
    .insight-icon{
      width:36px;height:36px;border-radius:13px;
      border:1px solid #e1e6ee;background:#fff;color:#111827;
      display:grid;place-items:center;flex:0 0 auto;
    }
    .insight-title{font-size:13px;font-weight:800;margin-bottom:3px}
    .insight-text{font-size:11px;color:var(--muted);line-height:1.55}
    .drawer{
      position:fixed;
      top:0;
      right:-520px;
      width:500px;
      max-width:calc(100vw - 22px);
      height:100vh;
      background:#fff;
      border-left:1px solid var(--line);
      box-shadow:-18px 0 42px rgba(20,32,51,.12);
      z-index:50;
      transition:.25s ease;
      display:flex;
      flex-direction:column;
    }
    .drawer.open{right:0}
    .drawer-head{padding:24px 24px 18px;border-bottom:1px solid var(--line-soft);display:flex;align-items:flex-start;justify-content:space-between;gap:16px;background:#fff}
    .drawer-title{font-size:21px;font-weight:850;margin:0 0 6px;letter-spacing:-.015em;color:#0f172a;line-height:1.2}
    .drawer-sub{font-size:12px;color:#7f899a;font-weight:650;line-height:1.45}
    .drawer-close{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#fff;color:#111827;display:grid;place-items:center;cursor:pointer;flex:0 0 auto}
    .drawer-close:hover{background:#f8fafc}
    .drawer-body{padding:20px 24px;overflow:auto;flex:1;background:#fff}
    .drawer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}
    .drawer-info{border:1px solid var(--line);background:#fbfcfe;border-radius:12px;padding:12px 13px;min-width:0}
    .drawer-info label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8e97a7;font-weight:850;margin-bottom:5px}
    .drawer-info div{font-size:13px;font-weight:800;color:#253148;line-height:1.35;overflow-wrap:anywhere}
    .drawer-tabs{display:flex;gap:4px;flex-wrap:nowrap;margin:4px 0 16px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;overflow:auto}
    .drawer-tab{border:0;background:transparent;border-radius:9px;padding:8px 11px;font-size:11px;font-weight:800;color:#687386;cursor:pointer;white-space:nowrap;flex:0 0 auto}
    .drawer-tab.active{background:#fff;color:#0f172a;border-color:transparent;box-shadow:0 1px 2px rgba(15,23,42,.06)}
    .drawer-panel{display:none}
    .drawer-panel.active{display:block}
    .drawer-section-title{font-size:13px;font-weight:850;color:#111827;margin:0 0 10px}
    .drawer-mini-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
    .drawer-mini-table th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#9aa3b2;text-align:left;border-bottom:1px solid var(--line);padding:10px 11px;background:#fbfcfe}
    .drawer-mini-table td{border-bottom:1px solid var(--line-soft);padding:11px;color:#253148;vertical-align:top;line-height:1.45}
    .drawer-mini-table tr:last-child td{border-bottom:0}
    .drawer-note{border:1px solid var(--line);border-radius:12px;background:#fbfcfe;padding:13px 14px;font-size:12px;color:#687386;line-height:1.65}
    .column-option-list{display:grid;gap:10px;margin-top:16px}
    .column-option{
      min-height:46px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      padding:11px 12px;
      display:flex;
      align-items:center;
      gap:10px;
      color:#253148;
      font-size:13px;
      font-weight:800;
      cursor:pointer;
    }
    .column-option:hover{background:#f7fcfd;border-color:#cfeff3}
    .column-option input{width:17px;height:17px;accent-color:#28b8c7}
    .column-option input:disabled{opacity:.6}
    .material-table [data-column-key].is-hidden{display:none}
    .drawer-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
    .drawer-photo-thumb{min-height:96px;border:1px dashed #cfd5df;border-radius:12px;background:#fbfcfe;display:flex;align-items:center;justify-content:center;text-align:center;color:#687386;font-size:12px;font-weight:700;padding:12px}
    .receive-detail-list{display:flex;flex-direction:column;gap:10px}
    .receive-detail-row{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px}
    .receive-detail-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#9aa3b2;font-weight:800;margin-bottom:5px}
    .receive-detail-value{font-size:13px;color:#253148;font-weight:800;line-height:1.45}
    .lot-preview-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
    .lot-preview-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px}
    .lot-preview-code{font-size:12px;font-weight:900;color:#111827;margin-bottom:5px;line-height:1.35}
    .lot-preview-meta{font-size:11px;color:#8792a3;line-height:1.5}
    .lot-preview-status{margin-top:8px;display:inline-flex;align-items:center;gap:5px;border-radius:8px;background:#fff6df;color:#a76e00;padding:5px 8px;font-size:11px;font-weight:800}
    .drawer-footer{padding:16px 24px;border-top:1px solid var(--line-soft);display:flex;gap:10px;background:#fff}
    .drawer-footer button{flex:1;justify-content:center}
    .drawer-footer.danger-actions{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      align-items:center;
    }
    .drawer-footer.danger-actions form{margin:0;width:100%;display:block}
    .drawer-footer.danger-actions .ghost-btn,
    .drawer-footer.danger-actions .primary-btn,
    .drawer-footer.danger-actions .danger-btn{
      width:100%;
      min-width:0;
      height:54px;
      justify-content:center;
      white-space:nowrap;
    }
    .drawer-footer .danger-btn{
      border:1px solid #ffd6da;
      background:#fffafa;
      color:#d94b52;
      border-radius:14px;
      font-weight:800;
      font-family:inherit;
      cursor:pointer;
    }
    .drawer-footer .danger-btn:hover{background:#fff0f1}
    .page-feedback-widget{
      position:fixed;
      right:24px;
      bottom:24px;
      z-index:80;
    }
    .page-feedback-trigger{
      width:58px;
      height:58px;
      border:1px solid #bcecf1;
      border-radius:18px;
      background:linear-gradient(135deg,#2dbdca,#18aebd);
      color:#fff;
      box-shadow:0 18px 46px rgba(25,174,189,.26);
      display:grid;
      place-items:center;
      cursor:pointer;
      position:relative;
    }
    .page-feedback-trigger svg{width:25px;height:25px}
    .page-feedback-trigger span{
      position:absolute;
      right:-6px;
      top:-6px;
      min-width:22px;
      height:22px;
      border-radius:999px;
      background:#2563eb;
      color:#fff;
      border:2px solid #fff;
      display:grid;
      place-items:center;
      font-size:11px;
      font-weight:900;
      padding:0 5px;
    }
    .page-feedback-panel{
      position:absolute;
      right:0;
      bottom:72px;
      width:min(430px,calc(100vw - 32px));
      max-height:min(720px,calc(100vh - 112px));
      border:1px solid var(--line);
      border-radius:22px;
      background:#fff;
      box-shadow:0 24px 70px rgba(20,32,51,.22);
      overflow:hidden;
      display:none;
    }
    .page-feedback-panel.open{display:block}
    .page-feedback-head{
      padding:18px 20px;
      display:flex;
      justify-content:space-between;
      gap:12px;
      border-bottom:1px solid var(--line-soft);
    }
    .page-feedback-head h3{margin:0;color:#071328;font-size:18px;line-height:1.25}
    .page-feedback-head p{margin:4px 0 0;color:#7d8798;font-size:12px;font-weight:800;line-height:1.45}
    .page-feedback-close{
      width:36px;
      height:36px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      color:#111827;
      cursor:pointer;
      font-size:18px;
      line-height:1;
    }
    .page-feedback-body{
      max-height:calc(min(720px,calc(100vh - 112px)) - 74px);
      overflow:auto;
      padding:16px 18px 18px;
      display:grid;
      gap:14px;
    }
    .page-feedback-note{
      border:1px solid #d8eef1;
      background:#f3fcfd;
      border-radius:14px;
      color:#526078;
      font-size:12px;
      line-height:1.65;
      padding:12px;
      font-weight:700;
    }
    .page-feedback-form{display:grid;gap:12px}
    .page-feedback-form label{display:grid;gap:7px}
    .page-feedback-form span{color:#111827;font-size:12px;font-weight:900}
    .page-feedback-form select,
    .page-feedback-form textarea{
      width:100%;
      border:1px solid var(--line);
      border-radius:14px;
      background:#fbfcfe;
      color:#111827;
      font:inherit;
      font-size:13px;
      outline:0;
    }
    .page-feedback-form select{height:46px;padding:0 12px}
    .page-feedback-form textarea{
      min-height:112px;
      resize:vertical;
      padding:12px;
      line-height:1.55;
    }
    .page-feedback-history{border-top:1px solid var(--line-soft);padding-top:14px}
    .page-feedback-history-title{color:#111827;font-size:13px;font-weight:900;margin-bottom:10px}
    .page-feedback-list{display:grid;gap:9px}
    .page-feedback-item{
      border:1px solid var(--line-soft);
      background:#fbfcfe;
      border-radius:14px;
      padding:11px 12px;
    }
    .page-feedback-item-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}
    .page-feedback-item strong{font-size:12px;color:#111827}
    .page-feedback-item em{
      font-style:normal;
      color:#8a94a5;
      font-size:11px;
      font-weight:800;
      white-space:nowrap;
    }
    .page-feedback-item p{margin:0;color:#526078;font-size:12px;line-height:1.55}
    .page-feedback-status{
      margin-top:8px;
      display:inline-flex;
      border-radius:999px;
      padding:5px 9px;
      background:#eef7ff;
      color:#2563eb;
      font-size:10px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.04em;
    }
    .page-feedback-empty{
      border:1px dashed #d7deea;
      border-radius:14px;
      padding:14px;
      color:#7d8798;
      font-size:12px;
      text-align:center;
      font-weight:700;
    }
    .overlay{position:fixed;inset:0;background:rgba(15,23,42,.18);z-index:40;display:none}
    .overlay.open{display:block}
    .modal-overlay{
      position:fixed;
      inset:0;
      background:rgba(15,23,42,.28);
      z-index:80;
      display:none;
      align-items:center;
      justify-content:center;
      padding:20px;
    }
    .modal-overlay.open{display:flex}
    .po-modal{
      width:760px;
      max-width:100%;
      max-height:88vh;
      background:#fff;
      border:1px solid var(--line);
      border-radius:18px;
      overflow:hidden;
      display:flex;
      flex-direction:column;
    }
    .po-modal-head{
      padding:18px 20px;
      border-bottom:1px solid var(--line);
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:14px;
    }
    .po-modal-title{font-size:18px;font-weight:800;color:#0f172a;margin:0 0 4px}
    .po-modal-sub{font-size:12px;color:#8792a3;line-height:1.5}
    .po-modal-close{width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;display:grid;place-items:center;cursor:pointer;color:#111827;flex:0 0 auto}
    .po-modal-body{padding:18px 20px;overflow:auto}
    .po-search-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:10px;margin-bottom:14px}
    .po-list{display:flex;flex-direction:column;gap:10px;max-height:336px;overflow:auto;padding-right:4px}
    .po-list::-webkit-scrollbar{width:8px}
    .po-list::-webkit-scrollbar-thumb{background:#cfd5df;border-radius:999px}
    .po-empty{display:none;border:1px dashed var(--line);border-radius:12px;padding:16px;text-align:center;color:#8792a3;font-size:13px;background:#fbfcfe}
    .po-empty.show{display:block}
    .po-card{
      border:1px solid var(--line);
      border-radius:14px;
      background:#fff;
      padding:14px;
      display:grid;
      grid-template-columns:minmax(0,1.25fr) .8fr .75fr auto;
      gap:12px;
      align-items:center;
      cursor:pointer;
      transition:.16s ease;
    }
    .po-card:hover{background:#f7fcfd;border-color:#cfeff3}
    .po-code{font-size:13px;font-weight:900;color:#111827;margin-bottom:4px}
    .po-meta{font-size:12px;color:#8792a3;line-height:1.45}
    .po-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#9aa3b2;font-weight:800;margin-bottom:4px}
    .po-value{font-size:13px;font-weight:800;color:#253148}

    .view-hidden{display:none!important}
    .form-section{margin-top:0;scroll-margin-top:22px}
    .form-headline{
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap:18px;
      margin-bottom:16px;
    }
    .form-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
    .form-shell{
      display:grid;
      grid-template-columns:270px minmax(0,1fr) 315px;
      gap:18px;
      align-items:start;
    }
    .material-form-shell{grid-template-columns:270px minmax(0,1fr)}
    .supplier-form-shell{grid-template-columns:270px minmax(0,1fr)}
    .form-step-panel,.form-main-card,.form-summary-card{
      background:#fff;
      border:1px solid var(--line);
      border-radius:24px;
      box-shadow:var(--shadow);
    }
    .form-step-panel{position:sticky;top:22px;padding:16px}
    .form-step-title{font-size:13px;font-weight:800;color:#1f2937;margin:2px 0 13px;padding:0 4px}
    .form-step-list{display:flex;flex-direction:column;gap:7px}
    .form-step{
      min-height:48px;
      display:flex;
      align-items:center;
      gap:11px;
      padding:9px 10px;
      border-radius:16px;
      border:1px solid transparent;
      color:#687386;
      font-size:13px;
      font-weight:700;
      cursor:pointer;
      width:100%;
      text-align:left;
      background:transparent;
      font-family:inherit;
    }
    .form-step:hover{background:#f8fafc;color:#111827}
    .form-step.active{background:#f7fcfd;border-color:#c9edf2;color:#0f172a}
    .form-step.active .step-dot{background:#28b8c7;border-color:#28b8c7;color:#fff}
    .form-step.done .step-dot{background:#111827;color:#fff;border-color:#111827}
    .step-dot{
      width:26px;height:26px;border-radius:10px;
      border:1px solid #dfe4ec;
      background:#fff;
      color:#111827;
      display:grid;place-items:center;
      font-size:11px;font-weight:900;
      flex:0 0 auto;
    }
    .step-copy{min-width:0}
    .step-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .step-status{font-size:10px;color:#9aa3b2;font-weight:700;margin-top:2px}
    .form-main{display:flex;flex-direction:column;gap:16px;min-width:0}
    .form-main-card{overflow:hidden;scroll-margin-top:24px}
    .save-bar{scroll-margin-top:24px}
    .form-card-head{
      padding:18px 20px 14px;
      border-bottom:1px solid var(--line-soft);
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:14px;
    }
    .form-card-title{font-size:17px;font-weight:800;margin:0 0 4px;color:#1f2937}
    .form-card-sub{font-size:12px;color:var(--muted);line-height:1.55}
    .form-card-body{padding:20px}
    .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
    .form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
    #form-satuan .form-card-body{padding:24px 28px 28px}
    #form-satuan .form-grid.three{
      grid-template-columns:repeat(2,minmax(220px,1fr));
      gap:22px 20px;
      align-items:start;
    }
    #form-satuan .form-field{gap:9px}
    #form-satuan .form-field label{
      min-height:18px;
      color:#111827;
    }
    #form-satuan .compound-field{
      grid-template-columns:minmax(0,1fr) 96px;
      gap:10px;
    }
    #form-satuan .input,
    #form-satuan .select{
      height:52px;
      border-radius:12px;
    }
    #form-satuan .select{
      padding-right:34px;
      text-overflow:ellipsis;
    }
    #form-satuan .form-field small{
      max-width:260px;
      font-size:12px;
      line-height:1.45;
    }
    .form-field{display:flex;flex-direction:column;gap:7px;min-width:0}
    .form-field.full{grid-column:1/-1}
    .form-field label{font-size:12px;font-weight:800;color:#344054}
    .form-card-note{
      display:inline-flex;
      align-items:center;
      min-height:28px;
      padding:0 10px;
      border:1px solid var(--line);
      border-radius:9px;
      background:#fff;
      color:#667085;
      font-size:12px;
      font-weight:800;
      white-space:nowrap;
    }
    .required-mark{
      display:inline-flex;
      align-items:center;
      min-height:20px;
      margin-left:6px;
      padding:0 7px;
      border-radius:999px;
      background:#fff0f1;
      color:#d94b52;
      font-size:10px;
      font-weight:900;
      vertical-align:middle;
    }
    .form-field small{font-size:11px;color:#8c95a5;line-height:1.45}
    .wide-input{width:100%}
    .field-with-action{
      display:grid;
      grid-template-columns:minmax(0,1fr) 42px;
      gap:8px;
      align-items:center;
    }
    .lookup-field{
      display:grid;
      grid-template-columns:minmax(0,1fr) 42px;
      gap:8px;
      align-items:center;
    }
    .lookup-search-btn{
      width:42px;
      height:42px;
      border:1px solid var(--line);
      border-radius:8px;
      background:#fff;
      color:#111827;
      display:grid;
      place-items:center;
      cursor:pointer;
      transition:.16s ease;
    }
    .lookup-search-btn:hover{background:#eefafa;border-color:#cfeff3;color:#1faebd}
    .suggestion-box{
      display:none;
      margin-top:8px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      overflow:hidden;
    }
    .suggestion-box.open{display:block}
    .suggestion-item{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      padding:11px 12px;
      border-bottom:1px solid var(--line-soft);
      cursor:pointer;
      transition:.16s ease;
    }
    .suggestion-item:last-child{border-bottom:0}
    .suggestion-item:hover{background:#f7fcfd}
    .suggestion-title{font-size:12px;font-weight:800;color:#111827;margin-bottom:3px}
    .suggestion-meta{font-size:11px;color:#8792a3;line-height:1.45}
    .suggestion-badge{font-size:10px;font-weight:800;color:#1faebd;background:#eefafa;border-radius:8px;padding:4px 7px;white-space:nowrap}
    .po-selected-summary{
      display:none;
      margin-top:10px;
      border:1px solid var(--line);
      background:#fff;
      border-radius:12px;
      padding:11px 12px 11px 14px;
      position:relative;
      overflow:hidden;
    }
    .po-selected-summary.show{display:block}
    .po-selected-head{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:10px;
      margin-bottom:8px;
    }
    .po-selected-title{font-size:13px;font-weight:900;color:#111827;margin-bottom:3px;line-height:1.25}
    .po-selected-meta{font-size:12px;color:#687386;line-height:1.4}
    .po-selected-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 8px;background:#fff6df;color:#a76e00;font-size:11px;font-weight:900;white-space:nowrap}
    .po-selected-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:0;font-size:12px;color:#687386;font-weight:700;line-height:1.45}
    .po-selected-box{border:0;background:transparent;border-radius:0;padding:0;min-height:0;display:inline-flex;align-items:center;gap:4px}
    .po-selected-box:not(:last-child):after{content:"&middot;";color:#a9b0bd;margin-left:4px;font-weight:700}
    .po-selected-box label{display:none}
    .po-selected-box div{font-size:12px;font-weight:800;color:#253148;line-height:1.2}
    .po-selected-items{margin-top:7px;padding-top:7px;border-top:1px solid #eef0f4;display:flex;flex-wrap:wrap;gap:6px}
    .po-item-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #dfe5ec;background:#fff;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800;color:#27364d}
    .po-item-chip span{color:#8792a3;font-weight:700}
    .linked-picker-box{
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      display:flex;
      flex-direction:column;
      gap:10px;
      padding:10px;
    }
    .linked-picker-box .ghost-btn{
      width:100%;
      justify-content:center;
      min-height:44px;
    }
    .linked-select-trigger{
      width:100%;
      min-height:52px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      border:1px solid var(--line);
      border-radius:8px;
      background:#fff;
      color:#243047;
      padding:0 14px;
      font:inherit;
      font-size:15px;
      text-align:left;
      cursor:pointer;
    }
    .linked-select-trigger span{
      min-width:0;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .linked-select-trigger:hover{border-color:#bfc9d8;background:#fbfdff}
    .supplier-bank-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      margin-bottom:12px;
    }
    .supplier-bank-head strong{display:block;font-size:15px;color:#0f172a}
    .supplier-bank-head span{display:block;margin-top:3px;font-size:13px;color:#7b8798;line-height:1.45}
    .supplier-bank-list{display:grid;grid-template-columns:1fr;gap:12px}
    .supplier-bank-card{
      border:1px solid #d8f1f4;
      background:linear-gradient(180deg,#f4fcfd 0%,#ffffff 72%);
      border-radius:12px;
      padding:12px;
      box-shadow:0 8px 22px rgba(31,174,189,.08);
      overflow:hidden;
    }
    .supplier-bank-card-top{
      display:flex;
      align-items:center;
      gap:10px;
      margin-bottom:10px;
      min-width:0;
    }
    .supplier-bank-badge{
      width:44px;
      height:36px;
      border-radius:10px;
      display:grid;
      place-items:center;
      background:#25b8c6;
      color:#fff;
      font-size:13px;
      font-weight:900;
      flex:0 0 auto;
    }
    .supplier-bank-title{min-width:0;flex:1}
    .supplier-bank-title strong{
      display:block;
      color:#102033;
      font-size:14px;
      line-height:1.35;
    }
    .supplier-bank-title span{
      display:block;
      color:#6f7c90;
      font-size:12px;
      margin-top:2px;
    }
    .supplier-bank-actions{
      display:flex;
      align-items:center;
      gap:8px;
      flex:0 0 auto;
    }
    .bank-icon-btn{
      width:40px;
      height:40px;
      border:1px solid var(--line);
      border-radius:12px;
      display:grid;
      place-items:center;
      background:#fff;
      color:#159cab;
      cursor:pointer;
      transition:.18s ease;
    }
    .bank-icon-btn:hover{border-color:#25b8c6;background:#effafb}
    .bank-icon-btn.danger{color:#d94b52}
    .bank-icon-btn.danger:hover{border-color:#ffc8ce;background:#fff5f6}
    .supplier-bank-fields{
      display:grid;
      grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr);
      gap:10px;
      align-items:center;
      min-width:0;
    }
    .supplier-bank-default{
      margin-top:8px;
      display:inline-flex;
      align-items:center;
      gap:8px;
      color:#536074;
      font-size:13px;
      font-weight:800;
    }
    .supplier-bank-default input{accent-color:#25b8c6}
    .supplier-doc-builder{
      display:grid;
      gap:12px;
    }
    .supplier-doc-type-field{
      position:relative;
      z-index:3;
    }
    .supplier-doc-combobox{
      display:grid;
      grid-template-columns:minmax(0,1fr) 44px;
      gap:8px;
      align-items:center;
    }
    .supplier-doc-options{
      display:none;
      position:absolute;
      left:0;
      right:0;
      top:calc(100% + 8px);
      max-height:320px;
      overflow:auto;
      padding:8px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      box-shadow:0 18px 46px rgba(15,23,42,.14);
    }
    .supplier-doc-options.open{display:grid;gap:7px}
    .supplier-doc-option{
      width:100%;
      border:1px solid #e1e7ef;
      border-radius:10px;
      background:#fff;
      padding:10px 12px;
      text-align:left;
      cursor:pointer;
    }
    .supplier-doc-option:hover{border-color:#25b8c6;background:#f2fbfc}
    .supplier-doc-option strong{display:block;font-size:13px;color:#102033}
    .supplier-doc-option span{display:block;margin-top:3px;font-size:12px;color:#7b8798;line-height:1.4}
    .supplier-doc-option.create{border-style:dashed;background:#fbfdff}
    .supplier-doc-selected{
      display:flex;
      align-items:center;
      gap:12px;
      border:1px solid #d8f1f4;
      background:#f4fcfd;
      border-radius:12px;
      padding:12px;
    }
    .supplier-doc-selected[hidden]{display:none}
    .supplier-doc-selected strong{display:block;color:#102033}
    .supplier-doc-selected span{display:block;margin-top:2px;color:#7b8798;font-size:12px}
    .supplier-dropzone{
      min-height:132px;
      display:grid;
      place-items:center;
      gap:6px;
      border:1px dashed #a9dce3;
      border-radius:14px;
      background:#f8fdfe;
      color:#102033;
      text-align:center;
      cursor:pointer;
      padding:18px;
    }
    .supplier-dropzone svg{color:#1faebd}
    .supplier-dropzone strong{font-size:15px}
    .supplier-dropzone span{font-size:13px;color:#7b8798}
    .supplier-dropzone.disabled{
      cursor:not-allowed;
      background:#f8fafc;
      border-color:#d8dee8;
      color:#8792a3;
    }
    .supplier-dropzone.dragging{background:#effafb;border-color:#25b8c6}
    .supplier-contact-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      margin-bottom:12px;
      padding:14px;
      border:1px solid #dff4f6;
      border-radius:12px;
      background:linear-gradient(135deg,#f2fcfd 0%,#ffffff 72%);
    }
    .supplier-contact-head strong{display:block;color:#102033;font-size:15px}
    .supplier-contact-head span{display:block;margin-top:3px;color:#7b8798;font-size:13px;line-height:1.45}
    .supplier-contact-list{display:grid;gap:14px}
    .supplier-contact-card{
      border:1px solid #dce7f2;
      border-radius:12px;
      background:#fff;
      padding:14px;
      box-shadow:0 10px 26px rgba(15,23,42,.045);
    }
    .supplier-contact-card-head{
      display:flex;
      align-items:center;
      gap:10px;
      margin-bottom:14px;
      padding-bottom:12px;
      border-bottom:1px solid #edf2f7;
    }
    .supplier-contact-avatar{
      width:40px;
      height:40px;
      border-radius:12px;
      display:grid;
      place-items:center;
      background:#25b8c6;
      color:#fff;
      font-weight:900;
      font-size:13px;
      flex:0 0 auto;
    }
    .supplier-contact-avatar.alt{background:#6f8ee8}
    .supplier-contact-card-head > div:nth-child(2){min-width:0;flex:1}
    .supplier-contact-card-head strong{display:block;color:#102033;font-size:14px;line-height:1.35}
    .supplier-contact-card-head span{display:block;color:#7b8798;font-size:12px;margin-top:2px}
    .supplier-contact-grid{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:12px;
    }
    .supplier-contact-grid label,
    .supplier-contact-address{
      display:flex;
      flex-direction:column;
      gap:7px;
      min-width:0;
    }
    .supplier-contact-grid label span,
    .supplier-contact-address label{
      color:#0d1b2f;
      font-size:12px;
      font-weight:900;
      line-height:1.2;
    }
    .supplier-contact-grid .wide{grid-column:1/-1}
    .supplier-contact-grid input,
    .supplier-contact-grid textarea{width:100%}
    .supplier-contact-grid textarea{min-height:88px;resize:vertical}
    .supplier-contact-primary{
      display:inline-flex;
      align-items:center;
      gap:8px;
      width:max-content;
      margin-top:12px;
      color:#0d1b2f;
      font-size:13px;
      font-weight:900;
      cursor:pointer;
    }
    .supplier-contact-primary input{
      width:16px;
      height:16px;
      accent-color:#22b8c5;
    }
    .supplier-contact-address{
      margin-top:14px;
      padding:14px;
      border:1px solid #e0e8f1;
      border-radius:12px;
      background:#fbfdff;
    }
    .linked-picker-preview{
      display:flex;
      flex-direction:column;
      gap:6px;
      min-width:0;
      max-height:178px;
      overflow:auto;
      padding-right:2px;
    }
    .linked-chip{
      display:inline-flex;
      align-items:center;
      max-width:100%;
      border:1px solid #e2e8f0;
      background:#f8fafc;
      color:#223048;
      border-radius:9px;
      padding:7px 9px;
      font-size:12px;
      font-weight:800;
      line-height:1.3;
      overflow-wrap:anywhere;
    }
    .linked-empty{color:#8792a3;font-size:13px;font-weight:700;padding-left:4px}
    .readonly-input{
      display:flex;
      align-items:center;
      min-height:52px;
      border:1px solid var(--line);
      border-radius:10px;
      background:#f8fafc;
      color:#64748b;
      padding:0 16px;
      font-size:16px;
      font-weight:800;
    }
    .multi-select{
      min-height:156px;
      padding:10px;
      line-height:1.45;
    }
    .multi-select option{
      padding:8px 10px;
      border-radius:8px;
      margin-bottom:4px;
      font-weight:800;
    }
    .inline-check-list{
      display:flex;
      flex-direction:column;
      gap:8px;
      max-height:260px;
      overflow:auto;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      padding:10px;
    }
    .inline-check-row{
      display:grid;
      grid-template-columns:22px minmax(0,1fr);
      align-items:flex-start;
      gap:10px;
      border:1px solid var(--line);
      border-radius:10px;
      padding:10px;
      cursor:pointer;
      background:#f8fafc;
    }
    .inline-check-row:hover{border-color:#b9eef3;background:#f5feff}
    .inline-check-row.is-checked{
      border-color:#8ee4ec;
      background:#eefeff;
    }
    .inline-check-row input{position:absolute;opacity:0;pointer-events:none}
    .inline-check-box{
      width:20px;
      height:20px;
      border:1px solid #cbd5e1;
      border-radius:6px;
      background:#fff;
      margin-top:1px;
      display:grid;
      place-items:center;
    }
    .inline-check-row input:checked + .inline-check-box{
      background:var(--teal);
      border-color:var(--teal);
    }
    .inline-check-row input:checked + .inline-check-box:after{
      content:'';
      width:10px;
      height:6px;
      border-left:2px solid #fff;
      border-bottom:2px solid #fff;
      transform:rotate(-45deg);
      margin-top:-2px;
    }
    .inline-check-row strong{
      display:block;
      color:#0f172a;
      font-size:14px;
      line-height:1.25;
    }
    .inline-check-row small{
      display:block;
      color:#7b8798;
      font-size:12px;
      line-height:1.45;
      margin-top:3px;
    }
    .embedded-picker{
      margin-top:8px;
    }
    .embedded-picker summary{
      list-style:none;
      width:100%;
      min-height:44px;
      border:1px solid var(--line);
      border-radius:10px;
      background:#fff;
      display:flex;
      align-items:center;
      justify-content:center;
      color:#233044;
      font-weight:900;
      cursor:pointer;
    }
    .embedded-picker summary::-webkit-details-marker{display:none}
    .embedded-picker[open] summary{
      border-color:#8ee4ec;
      background:#f5feff;
      margin-bottom:10px;
    }
    .embedded-picker-panel{
      max-height:320px;
      overflow:auto;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      padding:12px;
    }
    .embedded-picker-section + .embedded-picker-section{
      margin-top:12px;
      padding-top:12px;
      border-top:1px solid var(--line);
    }
    .approval-card{
      cursor:pointer;
      align-items:flex-start;
    }
    .approval-meta{
      display:flex;
      flex-wrap:wrap;
      gap:6px;
      margin-top:10px;
    }
    .approval-meta span{
      border:1px solid var(--line);
      border-radius:999px;
      background:#fff;
      color:#64748b;
      font-size:11px;
      font-weight:800;
      padding:5px 9px;
    }
    .approval-switch{
      width:54px;
      height:30px;
      border-radius:999px;
      background:#d8e0ea;
      position:relative;
      flex:0 0 auto;
      margin-top:2px;
      transition:.18s ease;
    }
    .approval-switch input{
      position:absolute;
      inset:0;
      opacity:0;
      cursor:pointer;
      z-index:2;
    }
    .approval-switch span{
      position:absolute;
      width:24px;
      height:24px;
      border-radius:50%;
      background:#fff;
      top:3px;
      left:3px;
      box-shadow:0 4px 12px rgba(15,23,42,.16);
      transition:.18s ease;
    }
    .approval-switch.is-on{background:#28b8c7}
    .approval-switch.is-on span{left:27px}
    .approval-switch.is-saving{opacity:.65}
    .category-storage-modal{
      position:fixed;
      inset:0;
      display:none;
      align-items:center;
      justify-content:center;
      padding:24px;
      background:rgba(15,23,42,.34);
      backdrop-filter:blur(4px);
      z-index:80;
    }
    .category-storage-modal.open{display:flex}
    .category-storage-card{
      width:min(1040px,100%);
      max-height:94vh;
      overflow:hidden;
      background:#fff;
      border:1px solid var(--line);
      border-radius:18px;
      box-shadow:0 24px 70px rgba(15,23,42,.18);
      display:grid;
      grid-template-rows:auto auto minmax(0,1fr) auto;
    }
    .category-storage-head,.category-storage-foot{
      padding:18px 20px;
      border-bottom:1px solid var(--line);
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
    }
    .category-storage-foot{border-top:1px solid var(--line);border-bottom:0}
    .category-storage-head h3{margin:0 0 4px;font-size:20px;color:#07152b}
    .category-storage-head p,.category-storage-foot span{margin:0;color:#7b8798;font-size:13px;line-height:1.5}
    .category-storage-toolbar{
      padding:14px 20px;
      border-bottom:1px solid var(--line-soft);
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:10px;
    }
    .category-storage-toolbar .searchbox{
      min-height:52px;
      border:1px solid var(--line);
      border-radius:14px;
      background:#fff;
      display:flex;
      align-items:center;
      gap:10px;
      padding:0 14px;
      color:#6b778a;
    }
    .category-storage-toolbar .searchbox input{
      width:100%;
      min-width:0;
      border:0;
      outline:0;
      background:transparent;
      font:inherit;
      color:#172033;
    }
    .category-storage-toolbar .searchbox input::placeholder{color:#9aa3b2}
    .category-storage-body{
      overflow:auto;
      padding:18px 20px 20px;
      max-height:calc(94vh - 236px);
      display:flex;
      flex-direction:column;
      gap:14px;
    }
    .category-storage-group{
      border:1px solid var(--line);
      border-radius:14px;
      overflow:hidden;
      background:#fff;
    }
    .category-storage-group-title{
      min-height:48px;
      padding:12px 14px;
      background:#f7f9fc;
      border-bottom:1px solid var(--line);
      color:#0f172a;
      font-size:13px;
      font-weight:900;
      display:flex;
      align-items:center;
      justify-content:space-between;
      letter-spacing:.01em;
    }
    .category-storage-group-title span{color:#7b8798;font-size:12px}
    .category-storage-option-list{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:8px;
      padding:10px;
    }
    .category-storage-option{
      display:grid;
      grid-template-columns:24px minmax(0,1fr);
      gap:10px;
      align-items:start;
      min-height:66px;
      padding:11px 12px;
      border:1px solid #e4eaf1;
      border-radius:12px;
      background:#fff;
      cursor:pointer;
      position:relative;
      transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
    }
    .category-storage-option:hover{background:#f7fcfd;border-color:#bfeff4}
    .category-storage-option:has(input:checked){background:#eefcfd;border-color:#83dbe5;box-shadow:0 0 0 1px rgba(40,184,199,.12)}
    .category-storage-option input{
      position:absolute;
      width:1px;
      height:1px;
      overflow:hidden;
      clip:rect(0,0,0,0);
      opacity:0;
      pointer-events:none;
    }
    .category-storage-check{
      width:22px;
      height:22px;
      border:1px solid #d8e0ea;
      border-radius:7px;
      background:#fff;
      margin-top:1px;
      position:relative;
    }
    .category-storage-option input:checked + .category-storage-check{
      background:#28b8c7;
      border-color:#28b8c7;
    }
    .category-storage-option input:checked + .category-storage-check:after{
      content:'';
      position:absolute;
      left:6px;
      top:3px;
      width:7px;
      height:12px;
      border:solid #fff;
      border-width:0 3px 3px 0;
      transform:rotate(45deg);
    }
    .category-storage-option strong{display:block;color:#0f172a;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
    .category-storage-option small{
      display:-webkit-box;
      -webkit-line-clamp:2;
      -webkit-box-orient:vertical;
      overflow:hidden;
      color:#7b8798;
      font-size:12px;
      line-height:1.45;
      margin-top:3px;
    }
    .storage-choice-body{
      overflow:auto;
      padding:18px 20px 20px;
      max-height:calc(94vh - 236px);
      display:flex;
      flex-direction:column;
      gap:18px;
      background:#fff;
    }
    .storage-choice-section{
      display:flex;
      flex-direction:column;
      gap:10px;
      min-height:auto;
    }
    .storage-choice-heading{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      color:#0f172a;
      font-size:13px;
      font-weight:900;
      padding:0 2px;
    }
    .storage-choice-heading span{
      color:#7b8798;
      font-size:12px;
      font-weight:800;
    }
    .storage-choice-list{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:10px;
    }
    .storage-choice-row{
      display:grid;
      grid-template-columns:24px minmax(0,1fr);
      gap:10px;
      align-items:start;
      min-height:78px;
      padding:12px;
      border:1px solid #dde5ee;
      border-radius:13px;
      background:#fff;
      cursor:pointer;
      position:relative;
      transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
    }
    .storage-choice-row:hover{background:#f7fcfd;border-color:#bfeff4}
    .storage-choice-row:has(input:checked){background:#eefcfd;border-color:#74d7e2;box-shadow:0 0 0 1px rgba(40,184,199,.12)}
    .storage-choice-row input{
      position:absolute;
      width:1px;
      height:1px;
      overflow:hidden;
      clip:rect(0,0,0,0);
      opacity:0;
      pointer-events:none;
    }
    .storage-choice-check{
      width:22px;
      height:22px;
      border:1px solid #d8e0ea;
      border-radius:7px;
      background:#fff;
      margin-top:1px;
      position:relative;
    }
    .storage-choice-row input:checked + .storage-choice-check{
      background:#28b8c7;
      border-color:#28b8c7;
    }
    .storage-choice-row input:checked + .storage-choice-check:after{
      content:'';
      position:absolute;
      left:6px;
      top:3px;
      width:7px;
      height:12px;
      border:solid #fff;
      border-width:0 3px 3px 0;
      transform:rotate(45deg);
    }
    .storage-choice-row strong{
      display:block;
      color:#0f172a;
      font-size:13px;
      line-height:1.35;
      overflow-wrap:anywhere;
    }
    .storage-choice-row small{
      display:-webkit-box;
      -webkit-line-clamp:2;
      -webkit-box-orient:vertical;
      overflow:hidden;
      color:#7b8798;
      font-size:12px;
      line-height:1.45;
      margin-top:3px;
    }
    .add-item-row td{padding:16px!important;background:#fff!important;text-align:center!important}
    .add-inline-btn{
      width:100%;
      min-height:44px;
      border:1px dashed #c8d2dd;
      border-radius:10px;
      background:#fbfcfe;
      color:#27364d;
      font-family:inherit;
      font-size:13px;
      font-weight:800;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      cursor:pointer;
      transition:.16s ease;
    }
    .add-inline-btn:hover{background:#eefafa;border-color:#cfeff3;color:#1faebd}
    .compound-field{
      display:grid;
      grid-template-columns:minmax(0,1fr) 78px;
      gap:8px;
      align-items:center;
    }
    .compound-field .input,
    .compound-field .select{width:100%}
    .compound-field.lead-time-field{grid-template-columns:minmax(0,1fr) 112px}
    .compound-field.moq-field{grid-template-columns:minmax(0,1fr) 92px}
    .price-field{
      display:grid;
      grid-template-columns:88px minmax(0,1fr) 92px;
      gap:8px;
      align-items:center;
    }
    .price-field .input,
    .price-field .select{width:100%}
    .inline-icon-btn{
      width:42px;
      height:42px;
      border:1px solid var(--line);
      border-radius:8px;
      background:#fff;
      color:#111827;
      display:grid;
      place-items:center;
      cursor:pointer;
      transition:.16s ease;
    }
    .inline-icon-btn:hover{
      background:#eefafa;
      border-color:#cfeff3;
      color:#1faebd;
    }
    .input,
    .select,
    .textarea{
      width:100%;
      border:1px solid var(--line);
      background:#fbfcfe;
      border-radius:15px;
      color:#243047;
      font:inherit;
      font-weight:600;
      outline:none;
      transition:.2s ease;
    }
    .input::placeholder,
    .textarea::placeholder,
    .field-lite input::placeholder,
    .command-search input::placeholder,
    .page-feedback-form textarea::placeholder{
      color:#9aa3b2;
      font-weight:500;
      opacity:1;
    }
    .input,.select{height:46px;padding:0 14px}
    .textarea{min-height:98px;padding:13px 14px;resize:vertical;line-height:1.6}
    .input:focus,.select:focus,.textarea:focus{border-color:#b9dfe5;background:#fff;box-shadow:0 0 0 4px rgba(54,184,200,.08)}
    .code-preview{
      height:46px;
      border:1px dashed #cfd6e2;
      background:#f7f9fc;
      border-radius:15px;
      display:flex;align-items:center;justify-content:space-between;gap:10px;
      padding:0 13px;
      color:#111827;
      font-size:13px;
      font-weight:800;
    }
    .code-preview span:last-child{font-size:10px;color:#8d96a6;text-transform:uppercase;letter-spacing:.08em}
    .choice-row{display:flex;flex-wrap:wrap;gap:9px}
    .choice-pill{
      min-height:38px;
      border:1px solid var(--line);
      border-radius:13px;
      background:#fff;
      padding:0 12px;
      display:inline-flex;
      align-items:center;
      gap:8px;
      color:#4b5563;
      font-size:12px;
      font-weight:800;
    }
    .choice-pill.active{background:#f2f4f8;color:#111827;border-color:#dfe4ec}
    .toggle-line{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      border:1px solid var(--line-soft);
      background:#fbfcfe;
      border-radius:17px;
      padding:13px;
    }
    .toggle-line strong{font-size:13px;color:#253148}
    .toggle-line p{font-size:11px;color:var(--muted);line-height:1.5;margin:4px 0 0}
    .switch{
      width:44px;height:26px;border-radius:999px;background:#111827;position:relative;flex:0 0 auto;margin-top:2px;
    }
    .switch:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:3px;right:3px}
    .rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
    .rule-box{
      border:1px solid var(--line-soft);
      background:#fbfcfe;
      border-radius:18px;
      padding:14px;
    }
    .rule-box-title{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:800;color:#253148;margin-bottom:10px}
    .rule-box-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin-bottom:10px;
    }
    .rule-box-head .rule-box-title{margin-bottom:0}
    .rule-add-btn{
      width:34px;
      height:34px;
      border:1px solid var(--line);
      border-radius:8px;
      background:#fff;
      color:#111827;
      display:grid;
      place-items:center;
      cursor:pointer;
      transition:.16s ease;
      flex:0 0 auto;
    }
    .rule-add-btn:hover{background:#eefafa;border-color:#cfeff3;color:#1faebd}
    .qc-chip-preview .choice-pill{
      cursor:default;
      user-select:none;
    }
    .material-picker-preview{
      display:flex;
      align-items:flex-start;
      flex-wrap:wrap;
      gap:6px;
      width:100%;
      min-height:52px;
      padding:8px;
      overflow:visible;
    }
    .supplier-row{
      display:grid;
      grid-template-columns:1.2fr .8fr .7fr .7fr auto;
      gap:10px;
      align-items:center;
      border:1px solid var(--line-soft);
      background:#fbfcfe;
      border-radius:17px;
      padding:12px;
      margin-bottom:10px;
    }
    .supplier-list{display:flex;flex-direction:column;gap:10px}
    #form-supplier .form-card-body{display:flex;flex-direction:column}
    #form-supplier .supplier-list{order:1}
    #form-supplier .supplier-add-form{order:2;margin:14px 0 0}
    .supplier-add-form{
      display:none;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      padding:16px;
      margin-bottom:14px;
    }
    .supplier-add-form.open{display:block}
    .supplier-entry-grid{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:16px;
    }
    .supplier-entry-grid .supplier-field-wide{grid-column:1/-1}
    .supplier-price-field{
      grid-template-columns:96px minmax(220px,1fr) 118px;
      align-items:stretch;
    }
    .supplier-note-input{
      min-height:86px;
    }
    .item-add-form{
      display:none;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      padding:16px;
      margin:14px 0;
    }
    .item-add-form.open{display:block}
    .item-form-title{font-size:15px;font-weight:800;color:#0f172a;margin:0 0 4px}
    .item-form-sub{font-size:12px;color:#8792a3;line-height:1.55;margin:0 0 14px}
    .item-form-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}
    .check-row{
      display:flex;
      align-items:center;
      gap:9px;
      min-height:34px;
      font-size:12px;
      font-weight:700;
      color:#27364d;
      cursor:pointer;
      user-select:none;
    }
    .check-row input{
      width:16px;
      height:16px;
      accent-color:#28b8c7;
      flex:0 0 auto;
    }
    .input[disabled]{
      background:#f5f7fa;
      color:#9aa3b2;
      cursor:not-allowed;
    }
    .supplier-form-actions{
      display:flex;
      justify-content:flex-end;
      gap:10px;
      margin-top:14px;
      flex-wrap:wrap;
    }
    .supplier-list-item{
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      padding:14px 16px;
    }
    .supplier-row-main{
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      grid-template-areas:
        "identity side"
        "metrics metrics";
      gap:12px 14px;
      align-items:start;
    }
    .supplier-identity{grid-area:identity;min-width:0;padding-top:4px}
    .supplier-row-metrics{
      grid-area:metrics;
      display:grid;
      grid-template-columns:repeat(3,minmax(128px,1fr));
      gap:8px;
      min-width:0;
    }
    .supplier-metric{
      min-height:58px;
      border:1px solid #e8edf4;
      border-radius:10px;
      background:#f8fafc;
      padding:9px 10px;
    }
    .supplier-row-side{
      grid-area:side;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      gap:10px;
      min-width:0;
    }
    .supplier-row-side .status-pill,
    .supplier-row-side .storage-pill{
      min-width:92px;
      justify-content:center;
    }
    .rating-score{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:900;color:#111827}
    .rating-score small{font-size:11px;color:#8792a3;font-weight:700}
    .category-chips{display:flex;flex-wrap:wrap;gap:8px}
    .supplier-name{font-size:14px;font-weight:800;color:#111827;margin-bottom:3px}
    .supplier-code{font-size:12px;color:#8792a3}
    .supplier-row-note{
      margin-top:5px;
      font-size:12px;
      line-height:1.45;
      color:#6f7a8c;
      display:-webkit-box;
      -webkit-line-clamp:2;
      -webkit-box-orient:vertical;
      overflow:hidden;
    }
    .supplier-meta-label{font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.08em;color:#9aa3b2;font-weight:800;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .supplier-meta-value{font-size:14px;line-height:1.25;font-weight:800;color:#243047}

    .document-upload-form{
      background:#fbfcfe;
      border-color:#dfe7f1;
      box-shadow:0 10px 24px rgba(15,23,42,.04);
    }
    .document-upload-grid{
      display:grid;
      grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
      gap:18px;
      align-items:start;
    }
    .document-upload-grid > .form-field{min-width:0}
    .document-file-field{min-width:0}
    .document-file-input{
      position:absolute;
      width:1px;
      height:1px;
      opacity:0;
      pointer-events:none;
    }
    .document-dropzone{
      min-height:88px;
      border:1px dashed #bfd4df;
      border-radius:14px;
      background:#fff;
      display:grid;
      grid-template-columns:42px minmax(0,1fr);
      align-items:start;
      gap:10px 12px;
      padding:14px;
      width:100%;
      max-width:100%;
      box-sizing:border-box;
      overflow:hidden;
      cursor:pointer;
      transition:.16s ease;
    }
    .document-dropzone:hover,
    .document-dropzone.drag-over{
      border-color:#28b8c7;
      background:#f3fcfd;
      box-shadow:0 0 0 4px rgba(40,184,199,.08);
    }
    .document-dropzone.has-file{
      border-style:solid;
      border-color:#bde9ee;
      background:#f3fcfd;
    }
    .document-drop-icon{
      width:42px;
      height:42px;
      border:1px solid #dfe7f1;
      border-radius:12px;
      background:#fff;
      display:grid;
      place-items:center;
      color:#111827;
    }
    .document-dropzone.has-file .document-drop-icon{
      color:#1faebd;
      border-color:#bde9ee;
    }
    .document-drop-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
    .document-drop-copy strong{
      font-size:13px;
      line-height:1.3;
      color:#111827;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .document-drop-copy span{
      font-size:12px;
      line-height:1.35;
      color:#8792a3;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .document-drop-action{
      grid-column:2;
      justify-self:start;
      height:34px;
      border:1px solid var(--line);
      border-radius:9px;
      background:#fff;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:0 12px;
      font-size:12px;
      font-weight:800;
      color:#27364d;
      white-space:nowrap;
    }
    .document-dropzone:hover .document-drop-action,
    .document-dropzone.drag-over .document-drop-action{
      border-color:#bde9ee;
      color:#1faebd;
    }
    .document-file-field small{
      display:block;
      max-width:100%;
      overflow-wrap:anywhere;
    }
    .document-save-hint{
      margin-top:10px;
      border:1px solid #f0d99c;
      border-radius:12px;
      background:#fff9e8;
      color:#7b5a12;
      padding:10px 12px;
      font-size:12px;
      font-weight:700;
      line-height:1.45;
    }
    .document-save-hint-large{
      margin-top:0;
      padding:14px 16px;
      min-height:72px;
      display:flex;
      align-items:center;
    }
    .upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
    .upload-card{
      min-height:116px;
      border:1px dashed #ccd4df;
      border-radius:18px;
      background:#fbfcfe;
      display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;
      padding:13px;
      color:#111827;
    }
    .upload-card strong{font-size:13px}.upload-card span{font-size:11px;color:var(--muted);line-height:1.4}
    .upload-card.uploaded{
      align-items:stretch;
      justify-content:flex-start;
      text-align:left;
      border-style:solid;
      background:#fff;
      gap:12px;
    }
    .doc-file-head{display:flex;align-items:flex-start;gap:11px}
    .doc-file-icon{
      width:40px;height:40px;border:1px solid var(--line);border-radius:10px;
      display:grid;place-items:center;background:#fff;color:#111827;flex:0 0 auto;
    }
    .doc-file-title{font-size:13px;font-weight:800;color:#111827;margin-bottom:3px}
    .doc-file-name{font-size:12px;color:#5f6b7c;line-height:1.45;word-break:break-word}
    .doc-file-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:#8792a3}
    .doc-file-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
    .doc-mini-btn{
      height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#27364d;
      padding:0 10px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:6px;cursor:pointer;
    }
    .doc-mini-btn.danger{color:#d94b52;border-color:#ffc8ce;background:#fffafa}
    .doc-mini-btn.danger:hover{background:#fff0f1}
    .doc-status{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:8px;background:#eafaf2;color:#16a467;font-size:11px;font-weight:800}
    .upload-grid:has(.doc-type-card){
      grid-template-columns:1fr;
      gap:10px;
      align-items:stretch;
    }
    .doc-type-card{
      min-height:auto;
      display:flex;
      flex-direction:column;
      align-items:stretch;
      text-align:left;
      border-style:solid;
      background:#fff;
      gap:12px;
      padding:14px 16px;
      border-radius:14px;
    }
    .doc-type-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding-bottom:12px;
      border-bottom:1px solid var(--line-soft);
    }
    .doc-type-title{display:flex;align-items:center;gap:12px;min-width:0;flex:1}
    .doc-type-card .doc-file-icon{width:38px;height:38px;border-radius:10px}
    .doc-type-copy{min-width:0}
    .doc-type-copy strong{display:block;font-size:14px;color:#111827;margin-bottom:3px;line-height:1.25}
    .doc-type-copy span{display:block;font-size:12px;color:#8792a3;line-height:1.45;max-width:none}
    .doc-add-btn{
      height:32px;
      min-width:32px;
      border:1px solid var(--line);
      border-radius:8px;
      background:#fff;
      color:#111827;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:6px;
      padding:0 9px;
      font-size:12px;
      font-weight:800;
      cursor:pointer;
      flex:0 0 auto;
    }
    .doc-add-btn:hover{background:#eefafa;border-color:#cfeff3;color:#1faebd}
    .doc-list{display:flex;flex-direction:column;gap:8px;min-width:0}
    .doc-row{
      border:1px solid var(--line-soft);
      border-radius:12px;
      background:#fbfcfe;
      padding:10px 12px;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
      gap:12px;
    }
    .doc-row-main{min-width:0;display:flex;gap:10px;align-items:center}
    .doc-row-icon{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:#fff;display:grid;place-items:center;flex:0 0 auto;color:#111827}
    .doc-row-name{font-size:12px;font-weight:800;color:#111827;white-space:normal;overflow-wrap:anywhere;margin-bottom:3px;max-width:100%}
    .doc-row-meta{font-size:11px;color:#8792a3;line-height:1.45}
    .doc-row-actions{
      display:flex;
      gap:6px;
      flex-wrap:wrap;
      justify-content:flex-end;
      margin-top:0;
      padding-top:0;
      border-top:0;
    }
    .doc-row-actions form{display:inline-flex;margin:0}
    .doc-mini-btn:disabled{opacity:.55;cursor:not-allowed}
    .doc-empty{
      border:1px dashed #ccd4df;
      border-radius:12px;
      padding:12px;
      display:flex;
      align-items:center;
      justify-content:center;
      min-height:70px;
      color:#8792a3;
      font-size:12px;
      text-align:center;
      background:#fbfcfe;
    }
    .doc-count-badge{display:inline-flex;align-items:center;justify-content:center;height:24px;min-width:24px;padding:0 8px;border-radius:999px;background:#eefafa;color:#1faebd;font-size:11px;font-weight:900}

    .form-summary-card{position:sticky;top:22px;overflow:hidden}
    .summary-head{padding:18px 20px;border-bottom:1px solid var(--line-soft)}
    .summary-title{font-size:16px;font-weight:800;margin:0 0 4px}
    .summary-sub{font-size:12px;color:var(--muted)}
    .summary-body{padding:18px 20px;display:flex;flex-direction:column;gap:12px}
    .completion-ring{
      width:112px;height:112px;border-radius:50%;
      background:conic-gradient(#111827 0 var(--progress,68%),#eef1f6 var(--progress,68%) 100%);
      display:grid;place-items:center;margin:4px auto 10px;
      position:relative;
    }
    .completion-ring:after{content:"";position:absolute;inset:10px;background:#fff;border-radius:50%}
    .completion-ring strong{position:relative;z-index:1;font-size:24px;color:#111827}
    .summary-check{
      display:flex;align-items:center;gap:10px;
      border:1px solid var(--line-soft);background:#fbfcfe;border-radius:15px;padding:11px;
      font-size:12px;font-weight:800;color:#4b5563;
    }
    .summary-check .check-dot{width:20px;height:20px;border-radius:8px;background:#111827;color:#fff;display:grid;place-items:center;font-size:10px;flex:0 0 auto}
    .summary-check.pending .check-dot{background:#fff;border:1px solid #dfe4ec;color:#9aa3b2}
    .material-review-drawer{width:460px;right:-480px}
    .material-review-list{display:grid;gap:10px;margin-top:14px}
    .material-review-note{font-size:13px}
    .material-review-alert{margin-top:16px}
    .material-review-drawer .summary-check{
      padding:12px;
      align-items:flex-start;
      line-height:1.45;
    }
    .save-bar{
      margin-top:16px;
      background:#fff;
      border:1px solid var(--line);
      border-radius:22px;
      box-shadow:var(--shadow);
      padding:14px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
    }
    .save-bar-note{font-size:12px;color:var(--muted);line-height:1.5}
    .save-bar-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
    #receive-review{
      display:grid;
      grid-template-columns:minmax(0,1fr);
      align-items:stretch !important;
      gap:14px;
    }
    #receive-review .save-bar-note{
      width:100%;
      min-width:0;
    }
    #receive-review .save-bar-actions{
      width:100%;
      justify-content:flex-end;
    }
    #receive-review .lot-preview-list{
      grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    }
    #receive-review .lot-preview-code{
      overflow-wrap:normal;
      word-break:normal;
    }

    .settings-section{margin-top:0;scroll-margin-top:22px}
    .settings-layout{
      display:grid;
      grid-template-columns:260px minmax(0,1fr);
      gap:18px;
      align-items:start;
    }
    .settings-tab-panel{
      position:sticky;
      top:22px;
      background:#fff;
      border:1px solid var(--line);
      border-radius:16px;
      padding:14px;
    }
    .settings-tab-title{
      font-size:11px;
      letter-spacing:.14em;
      text-transform:uppercase;
      color:#a9b0bd;
      font-weight:800;
      margin:0 0 12px;
      padding:0 4px;
    }
    .settings-tabs{display:flex;flex-direction:column;gap:7px}
    .settings-tab{
      min-height:42px;
      border:1px solid transparent;
      background:transparent;
      border-radius:11px;
      padding:8px 10px;
      display:flex;
      align-items:center;
      gap:10px;
      color:#637083;
      font-family:inherit;
      font-size:13px;
      font-weight:700;
      text-align:left;
      cursor:pointer;
    }
    .settings-tab:hover{background:#f8fafc;color:#111827}
    .settings-tab.active{background:#eefafa;color:#1faebd;border-color:#d8f1f4}
    .settings-tab svg{color:#111827}
    .settings-content{display:flex;flex-direction:column;gap:16px;min-width:0}
    .settings-page{display:none}
    .settings-page.active{display:block}
    .settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
    .settings-card{
      border:1px solid var(--line);
      border-radius:16px;
      background:#fff;
      padding:16px;
      min-height:132px;
    }
    .settings-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
    .settings-card-icon{
      width:38px;height:38px;border-radius:10px;border:1px solid var(--line);display:grid;place-items:center;background:#fff;color:#111827;
    }
    .settings-card-title{font-size:14px;font-weight:800;color:#0f172a;margin:0 0 5px}
    .settings-card-desc{font-size:12px;color:#8792a3;line-height:1.55;margin:0}
    .settings-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
    .location-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}
    .location-card{
      border:1px solid var(--line);
      border-radius:16px;
      background:#fff;
      padding:16px;
      min-width:0;
    }
    .location-card.quarantine{background:linear-gradient(180deg,#fff,#fffaf0)}
    .location-card.approved{background:linear-gradient(180deg,#fff,#f4fbf7)}
    .location-card.cold{background:linear-gradient(180deg,#fff,#f5fbff)}
    .location-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
    .location-card h4{font-size:15px;font-weight:800;color:#0f172a;margin:0 0 5px}
    .location-card p{font-size:12px;color:#7f899a;line-height:1.55;margin:0}
    .location-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
    .location-meta span{
      height:26px;
      display:inline-flex;
      align-items:center;
      border:1px solid var(--line);
      border-radius:999px;
      background:#fff;
      color:#617087;
      font-size:11px;
      font-weight:800;
      padding:0 9px;
    }
    .location-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .slot-cell{
      min-height:36px;
      border:1px solid var(--line);
      border-radius:10px;
      display:grid;
      place-items:center;
      font-size:11px;
      font-weight:800;
      color:#516074;
      background:#fff;
    }
    .slot-cell.used{background:#eef9f1;border-color:#ccebd5;color:#167142}
    .slot-cell.free{background:#f8fafc;border-style:dashed;color:#64748b}
    .slot-cell.hold{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
    .slot-cell.alert{background:#fff1f2;border-color:#fecdd3;color:#be123c}
    .location-tree{display:grid;gap:8px}
    .tree-row{
      min-height:34px;
      border:1px solid var(--line);
      border-radius:10px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      padding:7px 10px;
      color:#334155;
      font-size:12px;
      font-weight:700;
      background:#fff;
    }
    .tree-row span{font-size:11px;color:#64748b;font-weight:800;white-space:nowrap}
    .tree-row.level-2{margin-left:14px}
    .tree-row.level-3{margin-left:28px}
    .tree-row.level-4{margin-left:42px;background:#f8fafc}
    .level-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
    .level-step{
      border:1px solid var(--line);
      border-radius:14px;
      background:#fff;
      min-height:72px;
      padding:11px;
      display:flex;
      align-items:flex-start;
      gap:10px;
      text-align:left;
      color:#334155;
      cursor:pointer;
    }
    .level-step.active{border-color:#9edfe8;background:#f0fbfc}
    .level-number{
      width:28px;
      height:28px;
      border-radius:999px;
      display:grid;
      place-items:center;
      background:#eef2f7;
      color:#334155;
      font-size:12px;
      font-weight:900;
      flex:0 0 auto;
    }
    .level-step.active .level-number{background:#2bb8c8;color:#fff}
    .level-step strong{display:block;font-size:13px;font-weight:900;color:#0f172a;margin-bottom:4px}
    .level-step small{display:block;font-size:11px;line-height:1.35;color:#7b8797;font-weight:700}
    .location-path-card{
      border:1px solid var(--line);
      border-radius:14px;
      background:#f8fafc;
      padding:12px;
      color:#253148;
      font-size:13px;
      font-weight:900;
      line-height:1.55;
    }
    .drawer-link-btn{
      border:0;
      background:transparent;
      color:#159baa;
      font:inherit;
      font-weight:900;
      padding:0;
      cursor:pointer;
      text-align:left;
    }
    .drawer-link-btn:hover{text-decoration:underline}
    .qr-history-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;align-items:start}
    .qr-preview-box{
      border:1px solid var(--line);
      border-radius:16px;
      background:#fff;
      padding:16px;
      display:grid;
      gap:7px;
      color:#475569;
      font-size:12px;
      font-weight:700;
    }
    .qr-preview-box strong{font-size:13px;color:#0f172a;line-height:1.35}
    .qr-mock{
      width:128px;
      aspect-ratio:1;
      border:1px solid #cbd5e1;
      border-radius:10px;
      background:
        linear-gradient(90deg,#0f172a 12px,transparent 12px) 12px 12px/28px 28px,
        linear-gradient(#0f172a 12px,transparent 12px) 12px 12px/28px 28px,
        #fff;
      display:grid;
      place-items:center;
      color:#fff;
      font-size:18px;
      font-weight:900;
      letter-spacing:.08em;
      margin-bottom:6px;
    }
    .setting-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      padding:14px;
    }
    .setting-row strong{font-size:13px;color:#111827}
    .setting-row p{font-size:12px;color:#8792a3;line-height:1.55;margin:4px 0 0}
    .alert-setting-card{
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      padding:14px;
    }
    .alert-setting-card p{
      margin:8px 0 0;
      color:#7b8798;
      font-size:13px;
      line-height:1.5;
    }
    .prefix-preview{
      border:1px dashed #cfd5df;
      border-radius:12px;
      padding:14px;
      background:#fff;
      color:#0f172a;
      font-size:13px;
      line-height:1.8;
    }
    .prefix-preview code{font-weight:800;color:#1faebd;background:#eefafa;border-radius:6px;padding:3px 6px}

    /* Reference-style refinement: cleaner borders, flatter cards, tighter typography */
    .main{padding:24px 28px 34px}
    .topbar{
      border-radius:18px;
      min-height:58px;
      padding:10px 18px;
      box-shadow:none;
    }
    .top-title{font-size:26px;font-weight:800;letter-spacing:-.025em;color:#26364d;margin-bottom:6px}
    .top-sub{font-size:14px;color:#8190a5;font-weight:500}
    .page-head{margin:18px 0 18px;align-items:flex-start}
    .page-title{font-size:24px;font-weight:800;letter-spacing:-.025em;color:#0f172a}
    .page-desc{font-size:14px;color:#7f899a;line-height:1.65}
    .panel,.toolbar-card,.form-step-panel,.form-main-card,.form-summary-card,.save-bar,.stat-card{
      border:1px solid var(--line);
      border-radius:16px;
      box-shadow:none;
      background:#fff;
    }
    .panel-head,.form-card-head,.summary-head{
      padding:18px 22px;
      border-bottom:1px solid var(--line);
      background:#fff;
    }
    .panel-body,.form-card-body{padding:22px}
    .panel-title,.form-card-title,.summary-title{font-size:16px;font-weight:800;color:#0f172a;letter-spacing:-.01em}
    .panel-sub,.form-card-sub,.summary-sub{font-size:13px;color:#838da0;font-weight:500}
    .section-kicker{display:none}
    .form-headline,.material-headline{margin:18px 0 18px}
    .ghost-btn,.outline-btn,.filter-btn,.detail-btn,.small-action,.pill-btn,.search-box{
      border:1px solid var(--line);
      border-radius:10px;
      box-shadow:none;
      background:#fff;
      color:#27364d;
      font-weight:600;
    }
    .primary-btn{
      height:44px;
      border-radius:10px;
      box-shadow:none;
      background:#28b8c7;
      font-weight:700;
    }
    .ghost-btn{height:44px;font-size:14px;padding:0 16px}
    .input,.select,.textarea,.field-lite{
      border:1px solid var(--line);
      border-radius:8px;
      background:#fff;
      font-size:14px;
      color:#1f2937;
    }
    .input,.select,.field-lite{height:42px}
    .textarea{min-height:86px}
    .form-field{gap:7px}
    .form-field label{
      font-size:13px;
      font-weight:700;
      color:#111827;
    }
    .form-field small{font-size:12px;color:#8792a3}
    .form-grid{gap:18px 16px}
    .form-main{gap:16px}
    .form-shell{gap:18px}
    .code-preview{
      height:42px;
      border-radius:8px;
      background:#fff;
      border:1px dashed #cfd5df;
      font-size:14px;
    }
    .choice-pill{
      min-height:34px;
      border-radius:8px;
      font-size:12px;
      font-weight:700;
      background:#fff;
    }
    .choice-pill.active,.form-step.active,.tab.active,.nav-parent.active,.sub-item.active{
      background:#eefafa;
      color:#1faebd;
      border-color:#d8f1f4;
    }
    .form-step-panel{padding:14px}
    .form-step-title{
      font-size:11px;
      letter-spacing:.14em;
      text-transform:uppercase;
      color:#a9b0bd;
      margin:0 0 12px;
    }
    .form-step{
      min-height:44px;
      border-radius:11px;
      padding:8px 10px;
      font-size:13px;
      font-weight:700;
    }
    .step-dot{border-radius:8px;width:24px;height:24px;font-size:10px}
    .form-step.active .step-dot{background:#28b8c7;border-color:#28b8c7;color:#fff}
    .step-status{font-size:10px;color:#a0a8b5}
    .rule-box,.toggle-line,.supplier-row,.upload-card,.drawer-info,.insight-item,.summary-check,.mini-card,.movement,.quick-btn,.material-card,.card-metric{
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
    }
    .toggle-line{padding:14px}
    .toggle-line strong,.rule-box-title,.insight-title{font-size:13px;font-weight:800;color:#111827}
    .toggle-line p,.insight-text{font-size:12px;color:#8792a3}
    .switch{background:#28b8c7}
    .upload-card{min-height:104px;border-style:dashed;background:#fff}
    .doc-type-card{min-height:auto;border-style:solid;background:#fff;align-items:stretch;text-align:left}
    .save-bar{border-radius:16px;margin-top:0;padding:16px 18px}
    .summary-body{padding:18px 20px}
    .completion-ring{background:conic-gradient(#28b8c7 0 var(--progress,68%),#eef0f4 var(--progress,68%) 100%)}
    .completion-ring strong{color:#0f172a;font-weight:800}
    .summary-check .check-dot{background:#28b8c7;border-color:#28b8c7}
    .material-table,.stock-table{border-spacing:0}
    .material-table th,.stock-table th{
      padding:14px 12px;
      background:#fff;
      border-bottom:1px solid var(--line);
      font-size:11px;
      color:#9aa3b2;
    }
    .material-table td,.stock-table td{
      background:#fff;
      border-top:0;
      border-bottom:1px solid var(--line-soft);
      padding:14px 12px;
      font-size:13px;
    }
    .material-table td:first-child,.stock-table td:first-child{border-left:0;border-radius:0}
    .material-table td:last-child,.stock-table td:last-child{border-right:0;border-radius:0}
    .material-table tbody tr{cursor:pointer;transition:.16s ease}
    .material-table tbody tr:hover td{background:#f7fcfd}
    .material-table tbody tr:nth-child(2n):hover td{background:#f8fbff}
    .material-table tbody tr:hover .material-title{color:#159baa}
    .action-wrap{position:relative;display:inline-flex;align-items:center;gap:8px}
    .action-menu{
      position:absolute;
      right:0;
      top:40px;
      min-width:148px;
      padding:6px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      box-shadow:0 16px 36px rgba(15,23,42,.12);
      display:none;
      z-index:35;
      text-align:left;
    }
    .action-menu[style*="position: fixed"]{z-index:1200}
    .action-menu.open{display:block}
    .action-menu form{margin:0}
    .action-menu button{
      width:100%;
      height:36px;
      border:0;
      background:transparent;
      border-radius:9px;
      display:flex;
      align-items:center;
      gap:9px;
      padding:0 10px;
      font-family:inherit;
      font-size:13px;
      font-weight:700;
      color:#27364d;
      cursor:pointer;
      text-align:left;
    }
    .action-menu button:hover{background:#f5f8fb;color:#111827}
    .action-menu button.danger{color:#d94b52}
    .action-menu button.danger:hover{background:#fff0f1;color:#d94b52}
    .modal-open{overflow:hidden}
    .factory-confirm-overlay{
      position:fixed;
      inset:0;
      z-index:1800;
      display:none;
      align-items:center;
      justify-content:center;
      padding:24px;
      background:rgba(15,23,42,.22);
      backdrop-filter:blur(2px);
    }
    .factory-confirm-overlay.open{display:flex}
    .factory-confirm-card{
      position:relative;
      width:min(360px,100%);
      min-height:520px;
      overflow:hidden;
      border:1px solid #e2e8f0;
      border-radius:14px;
      background:#fff;
      box-shadow:0 24px 70px rgba(15,23,42,.22);
      padding:44px 36px 24px;
      display:flex;
      flex-direction:column;
      align-items:center;
      text-align:center;
    }
    .factory-confirm-close{
      position:absolute;
      top:14px;
      right:14px;
      width:34px;
      height:34px;
      border:0;
      border-radius:10px;
      background:#fff;
      color:#7a8699;
      font-size:18px;
      font-weight:800;
      cursor:pointer;
    }
    .factory-confirm-close:hover{background:#f7f8fb;color:#111827}
    .factory-confirm-title{
      margin:0;
      color:#435065;
      font-size:26px;
      line-height:1.1;
      font-weight:800;
      letter-spacing:0;
    }
    .factory-confirm-icon{
      position:relative;
      width:132px;
      height:132px;
      margin:76px auto 72px;
      border-radius:50%;
      background:#ff2e55;
      box-shadow:0 0 0 20px rgba(255,46,85,.13);
      display:grid;
      place-items:center;
    }
    .factory-confirm-icon:before,
    .factory-confirm-icon:after{
      content:"";
      position:absolute;
      width:56px;
      height:10px;
      border-radius:999px;
      background:#fff;
    }
    .factory-confirm-icon:before{transform:rotate(45deg)}
    .factory-confirm-icon:after{transform:rotate(-45deg)}
    .factory-confirm-message{
      min-height:48px;
      margin:0 auto;
      color:#8a94a6;
      font-size:14px;
      line-height:1.45;
      max-width:260px;
    }
    .factory-confirm-actions{
      width:100%;
      margin-top:auto;
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
    }
    .factory-confirm-primary,
    .factory-confirm-secondary{
      height:48px;
      border-radius:10px;
      font-family:inherit;
      font-size:13px;
      font-weight:800;
      text-transform:uppercase;
      cursor:pointer;
    }
    .factory-confirm-primary{
      border:0;
      background:#ff2e55;
      color:#fff;
      box-shadow:0 10px 20px rgba(255,46,85,.22);
    }
    .factory-confirm-primary:hover{background:#ef244b}
    .factory-confirm-secondary{
      border:1px solid #dbe3ef;
      background:#fff;
      color:#536173;
    }
    .factory-confirm-secondary:hover{background:#f7f9fc;color:#111827}
    .factory-confirm-pattern span{
      position:absolute;
      width:9px;
      height:9px;
      border:2px solid #ff2e55;
      border-radius:50%;
      opacity:.72;
    }
    .factory-confirm-pattern span:nth-child(1){top:16px;left:28px;border-radius:0;transform:rotate(45deg)}
    .factory-confirm-pattern span:nth-child(2){top:58px;left:74px;border-color:#3d4b5e;border-radius:0;transform:rotate(45deg)}
    .factory-confirm-pattern span:nth-child(3){top:28px;right:74px}
    .factory-confirm-pattern span:nth-child(4){top:82px;right:36px;border-radius:0;transform:rotate(45deg)}
    .factory-confirm-pattern span:nth-child(5){top:176px;left:42px;border-radius:0;transform:rotate(45deg)}
    .factory-confirm-pattern span:nth-child(6){top:154px;right:50px}
    .factory-confirm-pattern span:nth-child(7){bottom:166px;left:62px;border-color:#3d4b5e;border-radius:0;transform:rotate(45deg)}
    .factory-confirm-pattern span:nth-child(8){bottom:136px;right:76px;border-color:#d0d6de;border-radius:0;transform:rotate(45deg)}
    .factory-toast-host{
      position:fixed;
      right:24px;
      bottom:24px;
      z-index:1900;
      display:grid;
      gap:12px;
      pointer-events:none;
    }
    .factory-toast{
      width:min(380px,calc(100vw - 48px));
      min-height:76px;
      border:1px solid #dbe8ee;
      border-radius:16px;
      background:#fff;
      box-shadow:0 18px 46px rgba(15,23,42,.16);
      display:grid;
      grid-template-columns:42px minmax(0,1fr) 28px;
      align-items:center;
      gap:12px;
      padding:14px 14px 14px 16px;
      opacity:0;
      transform:translateY(14px);
      transition:.22s ease;
      pointer-events:auto;
    }
    .factory-toast.show{opacity:1;transform:translateY(0)}
    .factory-toast.leaving{opacity:0;transform:translateY(10px)}
    .factory-toast-icon{
      width:42px;
      height:42px;
      border-radius:50%;
      display:grid;
      place-items:center;
      background:#dff8ec;
      color:#21b66f;
      box-shadow:0 0 0 8px rgba(33,182,111,.08);
    }
    .factory-toast-icon:before{
      content:"";
      width:16px;
      height:9px;
      border-left:4px solid currentColor;
      border-bottom:4px solid currentColor;
      transform:rotate(-45deg) translate(1px,-1px);
    }
    .factory-toast.error .factory-toast-icon{
      background:#ffe3e8;
      color:#ff2e55;
      box-shadow:0 0 0 8px rgba(255,46,85,.08);
    }
    .factory-toast.error .factory-toast-icon:before,
    .factory-toast.error .factory-toast-icon:after{
      content:"";
      position:absolute;
      width:18px;
      height:4px;
      border:0;
      border-radius:999px;
      background:currentColor;
      transform:rotate(45deg);
    }
    .factory-toast.error .factory-toast-icon:after{transform:rotate(-45deg)}
    .factory-toast.warning .factory-toast-icon{
      background:#fff4da;
      color:#bf7b00;
      box-shadow:0 0 0 8px rgba(191,123,0,.08);
    }
    .factory-toast.warning .factory-toast-icon:before{
      width:5px;
      height:18px;
      border:0;
      border-radius:999px;
      background:currentColor;
      transform:none;
    }
    .factory-toast-copy{min-width:0;text-align:left}
    .factory-toast-copy strong{
      display:block;
      color:#111827;
      font-size:14px;
      font-weight:800;
      margin-bottom:3px;
    }
    .factory-toast-copy span{
      display:block;
      color:#718096;
      font-size:13px;
      line-height:1.35;
    }
    .factory-toast-close{
      width:28px;
      height:28px;
      border:0;
      border-radius:9px;
      background:#fff;
      color:#8a94a6;
      font-size:16px;
      font-weight:800;
      cursor:pointer;
    }
    .factory-toast-close:hover{background:#f5f7fa;color:#111827}
    .material-title,.item-name{font-size:13px;font-weight:800;color:#111827}
    .material-code,.item-code{font-size:12px;color:#8993a4}
    .material-avatar,.stat-icon,.move-icon,.insight-icon,.alert-icon{
      border-radius:10px;
      box-shadow:none;
      background:#fff;
      border:1px solid var(--line);
    }
    .badge,.risk-pill,.storage-pill,.status-pill{
      border-radius:8px;
      font-weight:700;
      font-size:11px;
      padding:5px 8px;
    }
    .alert-card{border-radius:12px;background:#fffbf1;border-color:#f3dfad}
    .drawer{box-shadow:-10px 0 28px rgba(15,23,42,.08)}
    .drawer-head{border-bottom:1px solid var(--line)}

    @media (max-width:1180px){
      .form-shell{grid-template-columns:260px minmax(0,1fr)}
      .form-step-panel{position:sticky;top:22px;align-self:start;z-index:2}
      .form-summary-card{grid-column:2/3;position:static}
      .supplier-row{grid-template-columns:1fr 1fr}
      .supplier-row-main{
        grid-template-columns:1fr;
        grid-template-areas:
          "identity"
          "metrics"
          "side";
      }
      .supplier-row-side{justify-content:space-between;min-width:0}
      .supplier-bank-fields{grid-template-columns:1fr 1fr}
      .upload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
      .module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
      .module-card.wide{grid-column:span 1}
    }

    @media (max-width:1320px){
      .supplier-bank-fields{grid-template-columns:1fr}
    }

    @media (max-width:760px){
      .page-feedback-widget{right:16px;bottom:16px}
      .page-feedback-panel{right:-2px;bottom:68px;width:calc(100vw - 28px)}
      .dev-feedback-item{grid-template-columns:1fr}
      .dev-feedback-item .detail-btn{width:100%;justify-content:center}
      .price-history-meta{grid-template-columns:1fr}
      .price-history-meta div.full{grid-column:auto}
      .supplier-contact-head{align-items:flex-start;flex-direction:column}
      .supplier-contact-grid{grid-template-columns:1fr}
      .supplier-bank-head{align-items:flex-start;flex-direction:column}
      .supplier-bank-fields{grid-template-columns:1fr}
      .supplier-bank-card-top{align-items:flex-start}
      .doc-type-card{grid-template-columns:1fr}
      .doc-type-head{align-items:flex-start}
      .doc-row{grid-template-columns:1fr}
      .doc-row-actions{justify-content:flex-start}
    }

    .mobile-menu{
      display:none;
      border:1px solid var(--line);
      background:#fff;
      border-radius:13px;
      width:44px;
      height:44px;
      color:#111827;
    }

    @media (max-width:920px){
      .app{display:block;--sidebar:300px}
      .app.sidebar-collapsed{--sidebar:300px}
      .sidebar{
        position:fixed;
        left:-310px;
        top:0;
        width:300px;
        transition:.25s ease;
      }
      .collapse-btn{display:none}
      .sidebar.open{left:0}
      .brand-text,.nav-label,.nav-text,.nav-chevron,.submenu,.user-card .user-info,.logout{display:block}
      .nav-item,.nav-parent{justify-content:flex-start;padding:0 14px}
      .user-card{justify-content:flex-start}
      .mobile-menu{display:grid;place-items:center;flex:0 0 auto}
      .main{padding:14px 14px 28px}
      .topbar{border-radius:18px;padding:10px 14px;align-items:center}
      .top-title{font-size:23px}
      .page-head{align-items:flex-start;flex-direction:column;margin-top:26px}
      .page-title{font-size:26px}
      .content-grid{grid-template-columns:1fr}
      .module-hero{grid-template-columns:1fr}
      .module-quick-actions{justify-content:flex-start}
      .module-grid{grid-template-columns:1fr}
      .dev-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
      .dev-filter{grid-template-columns:1fr}
      .dev-history-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
      .material-layout{grid-template-columns:1fr}
      .toolbar-main{display:grid;grid-template-columns:1fr 1fr}
      .toolbar-search{grid-column:1 / -1}
      .advanced-filter{grid-template-columns:1fr 1fr}
      .card-view.active{grid-template-columns:1fr 1fr}
      .insight-panel{position:static}
      .material-headline{align-items:flex-start;flex-direction:column}
      .material-actions{width:100%;justify-content:flex-start}
      .form-headline{align-items:flex-start;flex-direction:column}
      .form-actions{width:100%;justify-content:flex-start}
      .form-shell{grid-template-columns:1fr}
      .form-step-panel,.form-summary-card,.settings-tab-panel{position:static;grid-column:auto}
      .settings-layout{grid-template-columns:1fr}
      .settings-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
      .settings-grid{grid-template-columns:1fr 1fr}
      .location-overview{grid-template-columns:1fr}
      .level-flow{grid-template-columns:repeat(2,minmax(0,1fr))}
      .qr-history-layout{grid-template-columns:1fr}
      .form-step-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
      .form-grid,.form-grid.three,.rule-grid{grid-template-columns:1fr 1fr}
      .search-box{display:none}
    }

    @media (max-width:640px){
      .topbar{flex-direction:row}
      .top-actions{width:100%;justify-content:space-between}
      .pill-btn{flex:1;justify-content:center}
      .page-actions{width:100%}
      .page-actions button{flex:1;justify-content:center}
      .stat-grid{grid-template-columns:1fr}
      .summary-row{grid-template-columns:1fr}
      .stock-table{display:block;overflow:auto;white-space:nowrap}
      .module-tabs{position:static}
      .dev-module-grid{grid-template-columns:1fr}
      .dev-history-top{flex-direction:column}
      .dev-history-meta-grid{grid-template-columns:1fr}
      .quick-grid{grid-template-columns:1fr}
      .toolbar-main{display:grid;grid-template-columns:1fr}
      .advanced-filter{grid-template-columns:1fr}
      .card-view.active{grid-template-columns:1fr}
      .material-actions{width:100%}
      .material-actions .primary-btn,.material-actions .ghost-btn{flex:1;justify-content:center}
      .drawer{width:100%;max-width:100%;right:-100%}
      .po-search-row,.po-card,.po-selected-grid,.lot-preview-list{grid-template-columns:1fr}
      .form-actions .primary-btn,.form-actions .ghost-btn{flex:1;justify-content:center}
      .form-step-list{grid-template-columns:1fr}
      .settings-tabs{grid-template-columns:1fr}
      .settings-grid,.settings-form-grid{grid-template-columns:1fr}
      .location-overview{grid-template-columns:1fr}
      .level-flow{grid-template-columns:1fr}
      .qr-history-layout{grid-template-columns:1fr}
      .location-card-top{flex-direction:column}
      .form-grid,.form-grid.three,.rule-grid{grid-template-columns:1fr}
      #form-satuan .form-grid.three{grid-template-columns:1fr}
      #form-satuan .form-card-body{padding:20px}
      .compound-field{grid-template-columns:minmax(0,1fr) 78px}
      .compound-field.lead-time-field,.compound-field.moq-field,.price-field{grid-template-columns:1fr}
      .supplier-entry-grid{grid-template-columns:1fr}
      .document-upload-grid{grid-template-columns:1fr}
      .document-dropzone{
        grid-template-columns:40px minmax(0,1fr);
        align-items:start;
      }
      .supplier-row{grid-template-columns:1fr}
      .supplier-row-metrics{grid-template-columns:1fr}
      .supplier-row-side{align-items:stretch}
      .supplier-row-side .status-pill,
      .supplier-row-side .storage-pill{flex:1}
      .upload-grid{grid-template-columns:1fr}
      .save-bar{flex-direction:column;align-items:stretch}
      .save-bar-actions .primary-btn,.save-bar-actions .ghost-btn{flex:1;justify-content:center}
    }
