:root {   --bg: #0b1220;   --card: rgba(16, 26, 46, 0.78);   --card-strong: rgba(20, 32, 58, 0.9);   --text: #e6edf7;   --muted: #9fb0c7;   --primary: #00b8d9;   --primary-2: #2a7bff;   --danger: #ff4d6d;   --line: rgba(125, 178, 255, 0.28);   --chip: rgba(18, 36, 66, 0.85);   --input-bg: rgba(10, 22, 42, 0.75);   --card-shadow: 0 16px 34px rgba(0, 0, 0, 0.32); }  * { box-sizing: border-box; } body {   margin: 0;   font-family: "Noto Sans SC", "Microsoft YaHei", sans-serif;   color: var(--text);   background:     radial-gradient(1300px 760px at -10% -22%, rgba(0, 184, 217, 0.22), transparent 60%),     radial-gradient(1000px 680px at 110% -10%, rgba(80, 120, 255, 0.24), transparent 62%),     linear-gradient(150deg, #070d18 0%, #0b1220 46%, #0b1428 100%);   transition: background .25s ease, color .25s ease, filter .25s ease; }  .container {   max-width: 1280px;   margin: 0 auto;   padding: 22px 24px 28px; }  .login-card {   max-width: 560px;   width: 100%;   text-align: left; }  .login-fields {   display: grid;   gap: 10px; }  .brand-art {   font-size: 40px;   line-height: 1.08;   font-weight: 900;   letter-spacing: 2px;   margin-bottom: 10px;   background: linear-gradient(135deg, #9be7ff 0%, #5de0ff 30%, #7a9bff 62%, #d9e2ff 100%);   -webkit-background-clip: text;   background-clip: text;   color: transparent;   text-shadow: 0 0 28px rgba(93, 224, 255, 0.24); }  body.login-mode .container {   min-height: 100vh;   max-width: none;   display: flex;   align-items: center;   justify-content: center;   padding: 24px; }  body.app-mode .container {   max-width: 1280px;   display: block;   min-height: 0; }  body.light-mode {   --bg: #f3f8ff;   --card: rgba(255, 255, 255, 0.9);   --card-strong: rgba(255, 255, 255, 0.98);   --text: #0f1c33;   --muted: #52627a;   --primary: #0aa8c6;   --primary-2: #2965ff;   --danger: #d72649;   --line: rgba(98, 137, 206, 0.3);   --chip: rgba(224, 236, 255, 0.9);   --input-bg: rgba(255, 255, 255, 0.95);   --card-shadow: 0 14px 30px rgba(39, 76, 128, 0.14); }  body.light-mode {   background:     radial-gradient(1200px 600px at -8% -10%, rgba(0, 184, 217, 0.14), transparent 60%),     radial-gradient(900px 560px at 105% -12%, rgba(80, 120, 255, 0.12), transparent 60%),     linear-gradient(140deg, #edf4ff 0%, #f3f8ff 45%, #f6f9ff 100%); }  body.light-mode .card {   background: rgba(255, 255, 255, 0.96);   border-color: rgba(151, 178, 224, 0.5);   box-shadow: var(--card-shadow); }  body.light-mode button {   color: #ffffff;   background: linear-gradient(135deg, #0f9fd8, #2965ff); }  body.light-mode button.secondary {   color: #ffffff;   background: linear-gradient(135deg, #5b6f93, #48608a); }  body.light-mode button.danger {   background: #d72649; }  body.light-mode input, body.light-mode textarea, body.light-mode select {   color: #172b47;   border-color: rgba(138, 168, 214, 0.55);   background: #ffffff; }  body.light-mode .tab-btn {   background: #dce9fb;   color: #2e4773;   border-color: #bfd3f3; }  body.light-mode .tab-btn.active {   color: #ffffff;   background: linear-gradient(135deg, #0f9fd8, #2965ff);   box-shadow: 0 8px 16px rgba(52, 109, 215, 0.3); }  body.light-mode .country-chip {   background: #e6eefc;   color: #304a77;   border-color: #c3d4f2; }  body.light-mode .country-chip.active {   color: #ffffff;   background: linear-gradient(135deg, #0f9fd8, #2965ff); }  body.light-mode .cover-square-wrap {   background: #f7fbff;   border-color: rgba(138, 168, 214, 0.55); }  body.light-mode .desc-box {   background: #f2f7ff;   border-color: rgba(138, 168, 214, 0.55); }  body.light-mode .desc-title {   color: #4b638a; }  body.light-mode .desc-content {   color: #1d3356; }  body.light-mode .table th, body.light-mode .table td {   color: #182c4b;   border-bottom-color: rgba(163, 186, 222, 0.55); }  body.light-mode .table th {   background: rgba(216, 230, 252, 0.72); }  body.light-mode .product-card .table tbody tr:nth-child(odd) {   background: rgba(125, 160, 222, 0.2); }  body.light-mode .product-card .table tbody tr:nth-child(even) {   background: rgba(125, 160, 222, 0.38); }  body.light-mode .product-sticky-tools {   background: rgba(243, 248, 255, 0.96);   border-color: rgba(151, 178, 224, 0.6); }  body.light-mode .topbar {   background: linear-gradient(135deg, rgba(233, 242, 255, 0.95), rgba(246, 250, 255, 0.96)); }  body.light-mode .country-block {   background: #f6faff;   border-color: rgba(151, 178, 224, 0.6); }  body.light-mode .badge {   background: #def7ef;   color: #116149; }  body.light-mode .risk-none {   background: #d9dde5;   color: #3a4557; }  body.light-mode .brand-art {   background: linear-gradient(135deg, #1f5fc6 0%, #0f9fd8 45%, #36b2ff 100%);   -webkit-background-clip: text;   background-clip: text;   color: transparent;   text-shadow: 0 3px 10px rgba(79, 150, 255, 0.2); }  .card {   background: var(--card);   border: 1px solid var(--line);   border-radius: 16px;   padding: 18px;   backdrop-filter: blur(8px);   box-shadow: var(--card-shadow), inset 0 1px 0 rgba(184, 225, 255, 0.08);   transition: box-shadow .25s ease, border-color .25s ease, transform .2s ease; }  h1, h2, h3, h4 { margin: 0 0 12px; } small, .muted { color: var(--muted); }  input, textarea, select, button { font: inherit; }  input, textarea, select {   width: 100%;   padding: 11px 13px;   border: 1px solid var(--line);   border-radius: 12px;   background: var(--input-bg);   color: var(--text);   transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }  input::placeholder, textarea::placeholder {   color: #7f95b5; }  input:focus, textarea:focus, select:focus {   outline: none;   border-color: rgba(0, 229, 255, 0.7);   box-shadow: 0 0 0 3px rgba(0, 229, 255, 0.15); }  button {   border: none;   border-radius: 12px;   padding: 10px 14px;   cursor: pointer;   background: linear-gradient(135deg, var(--primary), var(--primary-2));   color: #001220;   font-weight: 700;   transition: transform .15s ease, box-shadow .2s ease, filter .2s ease, opacity .2s ease; }  button:hover {   transform: translateY(-1px);   box-shadow: 0 8px 18px rgba(0, 184, 217, 0.28);   filter: brightness(1.05); }  button.secondary { background: linear-gradient(135deg, #5f7598, #4f6282); color: #eaf3ff; } button.danger { background: var(--danger); color: #fff; } button.inline { padding: 6px 10px; font-size: 13px; }  .grid { display: grid; gap: 14px; } .grid.products { grid-template-columns: 1fr; } .admin-grid { grid-template-columns: 1fr; }  .topbar {   display: flex;   justify-content: space-between;   align-items: center;   gap: 12px;   margin-bottom: 14px;   background: linear-gradient(135deg, rgba(10, 26, 50, 0.74), rgba(12, 22, 42, 0.74)); }  .hidden { display: none !important; }  .row {   display: flex;   gap: 10px;   align-items: center; } .row > * { flex: 1; }  .country-tabs {   display: flex;   flex-wrap: wrap;   gap: 6px;   margin: 4px 0 6px; }  .list-toolbar {   display: flex;   gap: 6px;   margin-bottom: 4px;   align-items: center; }  .product-sticky-tools {   position: sticky;   top: 44px;   z-index: 30;   padding: 6px 10px;   border-radius: 12px;   background: rgba(11, 20, 38, 0.96);   border: 1px solid var(--line);   backdrop-filter: blur(10px);   box-shadow: 0 10px 24px rgba(2, 8, 18, 0.35);   margin-bottom: 12px; }  .list-toolbar select {   max-width: 180px; }  .tab-btn {   background: var(--chip);   color: #cfe1ff;   border: 1px solid var(--line); }  .tab-btn.active {   background: linear-gradient(135deg, var(--primary), var(--primary-2));   color: #021327;   border-color: transparent;   box-shadow: 0 8px 18px rgba(0, 184, 217, 0.32); }  .country-chip-wrap {   display: flex;   flex-wrap: wrap;   gap: 8px;   margin: 8px 0 10px; }  .country-chip {   border: 1px solid var(--line);   background: var(--chip);   color: #d5e6ff;   border-radius: 999px;   padding: 6px 12px;   cursor: pointer; }  .country-chip.active {   background: linear-gradient(135deg, var(--primary), var(--primary-2));   color: #03152b;   border-color: transparent; }  .product-card {   padding: 14px;   background: linear-gradient(180deg, var(--card-strong), var(--card)); }  .product-card:hover {   border-color: rgba(120, 186, 255, 0.46);   box-shadow: 0 20px 38px rgba(5, 16, 36, 0.36), inset 0 1px 0 rgba(184, 225, 255, 0.08); } .product-head {   display: flex;   gap: 14px;   align-items: flex-start; }  .cover-square-wrap {   width: 120px;   height: 120px;   border-radius: 12px;   border: 1px solid var(--line);   background: rgba(7, 19, 37, 0.75);   overflow: hidden;   flex-shrink: 0; }  .cover-square {   width: 100%;   height: 100%;   object-fit: contain;   display: block; }  .cover-empty {   display: flex;   align-items: center;   justify-content: center;   color: var(--muted);   font-size: 12px; }  .product-meta {   min-width: 0;   width: auto;   flex: 0 1 auto; } .product-meta-grid {   display: grid;   grid-template-columns: minmax(460px, 620px) 190px;   gap: 14px;   align-items: flex-start; }  .product-main-info { min-width: 0; }  .product-main-info h3 {   margin-bottom: 10px;   line-height: 1.3; }  .product-main-info p {   margin: 8px 0;   line-height: 1.35; }  .cert-text {   display: inline-block;   max-width: 100%;   white-space: pre-wrap;   overflow-wrap: anywhere; }  .copy-line {   display: flex;   align-items: center;   gap: 8px;   margin: 8px 0;   line-height: 1.3; } .price-line {   display: flex;   gap: 16px;   margin: 6px 0; }  .desc-box {   border: 1px solid var(--line);   background: linear-gradient(180deg, rgba(15, 30, 56, 0.76), rgba(8, 20, 40, 0.72));   border-radius: 10px;   padding: 10px;   height: 100%;   min-height: 240px;   display: flex;   flex-direction: column; }  .desc-title {   font-size: 13px;   color: var(--muted);   margin-bottom: 6px; }  .desc-content {   flex: 1;   overflow-y: auto;   white-space: pre-wrap;   overflow-wrap: anywhere;   word-break: break-all;   line-height: 1.3;   font-size: 14px; }  .sku-dropdown { margin-top: 8px; } .sku-dropdown summary {   cursor: pointer;   font-weight: 600;   margin-bottom: 8px; }  .sku-image-large {   width: 84px;   height: 84px;   object-fit: contain;   border-radius: 8px;   border: 1px solid var(--line);   background: rgba(4, 16, 34, 0.82); }  .sku-image-empty {   display: flex;   align-items: center;   justify-content: center;   color: var(--muted);   font-size: 12px;   background: rgba(8, 20, 40, 0.72); }  .table {   width: 100%;   border-collapse: collapse; }  .batch-col {   width: 36px;   text-align: center; }  .batch-checkbox {   width: 18px;   height: 18px;   cursor: pointer; }  .batch-toolbar {   display: flex;   gap: 8px;   align-items: center;   flex-wrap: wrap; }  #batchCount {   color: var(--muted);   font-size: 13px; }  .table th, .table td {   border-bottom: 1px solid var(--line);   text-align: left;   padding: 10px 12px;   font-size: 14px;   vertical-align: middle; }  .table th {   font-size: 15px;   letter-spacing: 0.2px;   font-weight: 800;   background: rgba(11, 26, 48, 0.5); }  .product-card .table tbody tr:nth-child(odd) {   background: rgba(16, 36, 66, 0.45); }  .product-card .table tbody tr:nth-child(even) {   background: rgba(3, 15, 32, 0.9); }  .pagination {   margin-top: 12px;   display: flex;   align-items: center;   gap: 8px;   flex-wrap: wrap; }  .page-info {   color: var(--muted);   margin-right: 4px; }  button:disabled {   opacity: 0.45;   cursor: not-allowed;   transform: none !important;   box-shadow: none !important; }  .badge {   display: inline-block;   padding: 2px 8px;   border-radius: 999px;   font-size: 12px;   background: #0f2f2a;   color: #8fffe2; }  .risk-dot {   display: inline-flex;   align-items: center;   justify-content: center;   min-width: 36px;   padding: 4px 8px;   border-radius: 999px;   font-size: 12px;   color: #111827; } .risk-high { background: #d1fae5; color: #065f46; } .risk-medium { background: #fef3c7; color: #92400e; } .risk-low { background: #fee2e2; color: #991b1b; } .risk-none { background: #e5e7eb; color: #374151; }  .country-editor-head {   margin-top: 10px;   display: flex;   justify-content: space-between;   align-items: center; }  .country-editor {   display: grid;   gap: 10px;   margin-top: 8px; }  .country-block {   border: 1px solid var(--line);   border-radius: 10px;   padding: 12px;   background: rgba(9, 21, 42, 0.72); }  .country-block-head {   display: grid;   grid-template-columns: 1fr auto auto;   gap: 8px;   align-items: center;   margin-bottom: 8px; }  .sku-edit-card {   border: 1px solid var(--line);   border-radius: 12px;   padding: 12px;   margin-top: 10px;   background: rgba(255, 255, 255, 0.03); }  .sku-edit-card-title {   font-size: 14px;   font-weight: 700;   margin-bottom: 8px; }  .sku-field-row {   display: grid;   grid-template-columns: 170px 1fr;   align-items: center;   gap: 10px;   margin-top: 8px; }  .sku-field-label {   font-size: 14px;   color: var(--muted); }  .sku-field-input {   width: 100%; }  .sku-actions-row {   display: flex;   justify-content: flex-end;   gap: 8px;   margin-top: 10px; }  .admin-product-thumb {   width: 56px;   height: 56px;   object-fit: cover;   border-radius: 10px;   border: 1px solid var(--line);   background: rgba(8, 20, 40, 0.72); }  .admin-product-thumb-empty {   display: inline-flex;   align-items: center;   justify-content: center;   color: var(--muted);   font-size: 12px; }  .listing-price-group {   display: grid;   grid-template-columns: 0.9fr 1.1fr;   gap: 6px; }  .field-lg {   min-height: 50px;   padding: 12px 14px;   font-size: 16px; }  .price-input {   min-height: 56px;   font-size: 22px;   font-weight: 700;   letter-spacing: 0.5px; }  .money-input {   text-align: right; }  #pDesc, #pCert {   min-height: 88px; }  .footer-tip {   margin-top: 16px;   color: var(--muted);   font-size: 13px; }  /* Uiverse-Galaxy inspired layer: search, card glow, pill actions */ #userSearch, #adminSearch {   padding-left: 36px;   border-radius: 12px;   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%238fa6cb'%3E%3Cpath d='M21.53 20.47l-3.66-3.66C19.2 15.24 20 13.21 20 11a9 9 0 10-9 9c2.21 0 4.24-.8 5.81-2.13l3.66 3.66a.75.75 0 101.06-1.06zM3.5 11A7.5 7.5 0 1111 18.5 7.5 7.5 0 013.5 11z'/%3E%3C/svg%3E");   background-repeat: no-repeat;   background-position: 14px center;   background-size: 16px 16px; }  #userSearch:hover, #adminSearch:hover {   border-color: rgba(115, 174, 255, 0.75); }  #userSearch:focus, #adminSearch:focus {   box-shadow: 0 0 0 4px rgba(82, 146, 255, 0.2); }  .tab-btn, .country-chip {   position: relative;   overflow: hidden;   border-radius: 999px;   padding: 3px 10px;   font-size: 12px;   min-height: 26px;   transition: transform 0.2s ease, box-shadow 0.25s ease, border-color 0.25s ease; }  .tab-btn::before, .country-chip::before {   content: "";   position: absolute;   inset: 0;   transform: translateX(-120%);   background: linear-gradient(120deg, transparent 0%, rgba(255, 255, 255, 0.26) 48%, transparent 100%);   transition: transform 0.5s ease; }  .tab-btn:hover::before, .country-chip:hover::before {   transform: translateX(120%); }  .tab-btn:hover, .country-chip:hover {   transform: translateY(-1px);   box-shadow: 0 10px 20px rgba(21, 97, 210, 0.24); }  .product-card {   position: relative;   isolation: isolate;   overflow: hidden; }  .product-card::after {   content: "";   position: absolute;   inset: 0;   pointer-events: none;   z-index: 0;   background: radial-gradient(520px 120px at -10% -8%, rgba(94, 155, 255, 0.2), transparent 55%); }  .product-card > * {   position: relative;   z-index: 1; }  .product-card {   animation: galaxy-rise 0.45s ease both; }  .products .product-card:nth-child(2) { animation-delay: 0.06s; } .products .product-card:nth-child(3) { animation-delay: 0.12s; } .products .product-card:nth-child(4) { animation-delay: 0.18s; } .products .product-card:nth-child(5) { animation-delay: 0.24s; }  @keyframes galaxy-rise {   from {     opacity: 0;     transform: translateY(8px);   }   to {     opacity: 1;     transform: translateY(0);   } }  body.light-mode .tab-btn:hover, body.light-mode .country-chip:hover {   box-shadow: 0 10px 18px rgba(63, 108, 191, 0.24); }  @media (max-width: 900px) {   .grid { grid-template-columns: 1fr !important; }   .product-head { flex-direction: column; }   .cover-square-wrap { width: 100px; height: 100px; }   .product-meta-grid { grid-template-columns: 1fr; }   .sku-field-row { grid-template-columns: 1fr; }   .sku-actions-row { justify-content: flex-start; }   .list-toolbar { flex-direction: column; }   .list-toolbar select { max-width: none; } }  @media (max-width: 720px) {   .row { flex-direction: column; } }  /* Galaxy v2 redesign overrides */ body.app-mode {   background:     radial-gradient(1400px 820px at -18% -25%, rgba(42, 151, 255, 0.2), transparent 60%),     radial-gradient(1200px 700px at 110% -15%, rgba(0, 210, 255, 0.18), transparent 60%),     linear-gradient(155deg, #060b16 0%, #0b152a 48%, #0d1b34 100%); }  body.app-mode::before {   content: "";   position: fixed;   inset: 0;   pointer-events: none;   z-index: 0;   background-image:     linear-gradient(rgba(170, 210, 255, 0.04) 1px, transparent 1px),     linear-gradient(90deg, rgba(170, 210, 255, 0.04) 1px, transparent 1px);   background-size: 34px 34px;   mask-image: radial-gradient(80% 60% at 50% 20%, #000 55%, transparent 100%); }  body.app-mode .container {   position: relative;   z-index: 1; }  body.app-mode .topbar {   position: sticky;   top: 10px;   z-index: 40;   border-radius: 18px;   border-color: rgba(137, 190, 255, 0.34);   background: linear-gradient(145deg, rgba(14, 34, 62, 0.92), rgba(10, 24, 46, 0.88));   box-shadow: 0 18px 35px rgba(0, 0, 0, 0.34);   margin-bottom: 16px; }  body.light-mode.app-mode {   background:     radial-gradient(1300px 800px at -10% -20%, rgba(45, 146, 255, 0.17), transparent 58%),     radial-gradient(1200px 700px at 110% -20%, rgba(42, 190, 255, 0.14), transparent 58%),     linear-gradient(150deg, #edf3ff 0%, #f5f9ff 52%, #eef5ff 100%); }  body.light-mode.app-mode::before {   background-image:     linear-gradient(rgba(100, 144, 220, 0.08) 1px, transparent 1px),     linear-gradient(90deg, rgba(100, 144, 220, 0.08) 1px, transparent 1px); }  body.light-mode .topbar {   border-color: rgba(145, 179, 228, 0.5);   box-shadow: 0 16px 28px rgba(71, 107, 168, 0.2); }  .catalog-card {   border-radius: 20px;   padding: 20px;   border-color: rgba(125, 178, 255, 0.36);   background:     linear-gradient(180deg, rgba(17, 34, 61, 0.78), rgba(12, 26, 49, 0.84)),     radial-gradient(900px 280px at 12% -8%, rgba(65, 148, 255, 0.14), transparent 70%); }  body.light-mode .catalog-card {   background:     linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(248, 252, 255, 0.96)),     radial-gradient(900px 280px at 12% -8%, rgba(65, 148, 255, 0.08), transparent 70%); }  .catalog-title {   font-size: 22px;   letter-spacing: 0.3px;   margin-bottom: 14px; }  .product-sticky-tools {   top: 44px;   border-radius: 16px;   padding: 12px;   background:     linear-gradient(140deg, rgba(16, 38, 69, 0.93), rgba(10, 24, 45, 0.95));   border: 1px solid rgba(128, 183, 255, 0.3);   box-shadow: 0 14px 26px rgba(7, 16, 34, 0.35); }  body.light-mode .product-sticky-tools {   background: linear-gradient(140deg, rgba(245, 250, 255, 0.96), rgba(239, 246, 255, 0.96));   border-color: rgba(153, 183, 231, 0.58); }  .list-toolbar {   gap: 10px; }  .list-toolbar select {   border-radius: 12px;   min-height: 48px;   border-color: rgba(139, 191, 255, 0.34);   background: rgba(5, 18, 36, 0.6); }  body.light-mode .list-toolbar select {   background: rgba(255, 255, 255, 0.92);   border-color: rgba(156, 186, 232, 0.6); }  .country-tabs {   margin: 12px 0 6px; }  .products {   gap: 16px; }  .product-card {   border-radius: 18px;   border-color: rgba(132, 188, 255, 0.34);   background:     linear-gradient(180deg, rgba(20, 40, 70, 0.8), rgba(10, 24, 45, 0.86));   box-shadow: 0 18px 34px rgba(2, 10, 22, 0.36); }  body.light-mode .product-card {   border-color: rgba(150, 181, 226, 0.56);   background: linear-gradient(180deg, rgba(255, 255, 255, 0.97), rgba(246, 251, 255, 0.97));   box-shadow: 0 14px 26px rgba(62, 96, 152, 0.16); }  .product-head {   gap: 16px; }  .cover-square-wrap {   width: 132px;   height: 132px;   border-radius: 14px; }  .product-meta-grid {   grid-template-columns: minmax(440px, 600px) 220px;   gap: 16px; }  .product-main-info h3 {   font-size: 26px;   line-height: 1.28;   margin-bottom: 12px; }  .product-main-info p, .copy-line {   font-size: 15px; }  .desc-box {   border-radius: 12px;   padding: 12px;   min-height: 230px;   border-color: rgba(142, 196, 255, 0.28); }  .desc-title {   font-size: 14px;   font-weight: 700;   margin-bottom: 8px; }  .desc-content {   font-size: 15px; }  .sku-dropdown {   margin-top: 10px;   border: 1px solid rgba(129, 182, 250, 0.22);   border-radius: 12px;   padding: 10px;   background: rgba(10, 21, 40, 0.45); }  body.light-mode .sku-dropdown {   background: rgba(246, 251, 255, 0.78);   border-color: rgba(151, 182, 229, 0.5); }  .sku-dropdown summary {   padding: 4px 0 10px;   font-size: 16px; }  .table {   border-radius: 10px;   overflow: hidden; }  .table th {   padding-top: 12px;   padding-bottom: 12px;   background: rgba(14, 30, 54, 0.84);   border-bottom-color: rgba(142, 191, 255, 0.26); }  .product-card .table tbody tr:nth-child(odd) {   background: rgba(37, 76, 129, 0.4); }  .product-card .table tbody tr:nth-child(even) {   background: rgba(8, 21, 42, 0.92); }  body.light-mode .table th {   background: rgba(207, 226, 252, 0.78); }  body.light-mode .product-card .table tbody tr:nth-child(odd) {   background: rgba(157, 189, 234, 0.34); }  body.light-mode .product-card .table tbody tr:nth-child(even) {   background: rgba(239, 246, 255, 0.95); }  .pagination {   margin-top: 14px;   padding-top: 6px; }  @media (max-width: 1100px) {   .product-meta-grid {     grid-template-columns: minmax(380px, 1fr) 200px;   } }  @media (max-width: 900px) {   .catalog-card {     padding: 14px;   }    .product-sticky-tools {     top: 44px;   }    .cover-square-wrap {     width: 108px;     height: 108px;   }    .product-main-info h3 {     font-size: 20px;   } }  /* Designer V3 full reskin */ body.designer-v3 {   --v3-bg-0: #f2f6ff;   --v3-bg-1: #eaf1ff;   --v3-ink: #0e2340;   --v3-ink-soft: #4d6488;   --v3-card: rgba(255, 255, 255, 0.96);   --v3-line: rgba(134, 166, 220, 0.45);   --v3-brand: #0c8fd6;   --v3-brand-2: #2362ec;   --v3-shadow: 0 14px 34px rgba(32, 65, 121, 0.16); }  body.designer-v3.app-mode {   background:     radial-gradient(1200px 700px at -15% -20%, rgba(59, 153, 255, 0.2), transparent 62%),     radial-gradient(900px 600px at 115% -10%, rgba(0, 184, 217, 0.17), transparent 62%),     linear-gradient(145deg, var(--v3-bg-0) 0%, var(--v3-bg-1) 45%, #edf4ff 100%) !important;   color: var(--v3-ink) !important; }  body.designer-v3.app-mode::before {   content: "";   position: fixed;   inset: 0;   pointer-events: none;   z-index: 0;   background-image:     linear-gradient(rgba(113, 149, 212, 0.08) 1px, transparent 1px),     linear-gradient(90deg, rgba(113, 149, 212, 0.08) 1px, transparent 1px);   background-size: 38px 38px;   mask-image: radial-gradient(90% 70% at 50% 25%, #000 60%, transparent 100%); }  body.designer-v3.app-mode .container {   max-width: 1480px !important;   padding: 22px 24px 34px !important;   position: relative;   z-index: 1; }  body.designer-v3 .card {   background: var(--v3-card) !important;   border: 1px solid var(--v3-line) !important;   border-radius: 20px !important;   box-shadow: var(--v3-shadow) !important;   backdrop-filter: blur(6px) !important; }  body.designer-v3 .topbar {   position: relative !important;   top: auto !important;   z-index: 10 !important;   padding: 16px 18px !important;   border-radius: 20px !important;   margin-bottom: 16px !important;   background:     linear-gradient(130deg, rgba(10, 120, 202, 0.14), rgba(35, 98, 236, 0.08)),     rgba(255, 255, 255, 0.96) !important; }  body.designer-v3 .topbar h2 {   font-size: 24px !important;   margin: 0 0 4px !important;   color: #16335c !important; }  body.designer-v3 .topbar small, body.designer-v3 .muted {   color: var(--v3-ink-soft) !important; }  body.designer-v3 .catalog-card {   border-radius: 24px !important;   padding: 22px !important;   background:     linear-gradient(170deg, rgba(255, 255, 255, 0.98), rgba(250, 253, 255, 0.98)),     radial-gradient(800px 240px at 12% -8%, rgba(40, 148, 255, 0.1), transparent 72%) !important; }  body.designer-v3 .catalog-title {   font-size: 24px !important;   line-height: 1.2 !important;   margin-bottom: 14px !important;   color: #17365f !important; }  body.designer-v3 .product-sticky-tools {   position: sticky !important;   top: 44px !important;   z-index: 45 !important;   padding: 6px 10px !important;   border-radius: 18px !important;   border: 1px solid rgba(129, 171, 233, 0.52) !important;   background:     linear-gradient(150deg, rgba(255, 255, 255, 0.96), rgba(241, 248, 255, 0.98)) !important;   box-shadow: 0 16px 30px rgba(40, 83, 148, 0.16) !important; }  body.designer-v3 #userSearch {   min-height: 34px !important;   font-size: 14px !important;   border-radius: 8px !important;   border-color: rgba(119, 165, 236, 0.62) !important;   background-color: rgba(255, 255, 255, 0.97) !important; }  body.designer-v3 .list-toolbar {   display: flex !important;   gap: 6px !important;   margin-bottom: 0 !important;   align-items: center !important;   flex-wrap: wrap !important; }  body.designer-v3 .list-toolbar select {   min-height: 34px !important;   border-radius: 8px !important;   font-size: 13px !important;   color: #163257 !important;   border-color: rgba(129, 171, 233, 0.55) !important;   background: rgba(255, 255, 255, 0.98) !important; }  body.designer-v3 .country-tabs {   margin: 4px 0 0 !important;   gap: 6px !important; }  body.designer-v3 .tab-btn, body.designer-v3 .country-chip {   color: #26497a !important;   background: rgba(229, 239, 255, 0.96) !important;   border: 1px solid rgba(153, 181, 226, 0.72) !important;   border-radius: 999px !important;   font-weight: 700 !important; }  body.designer-v3 .tab-btn.active, body.designer-v3 .country-chip.active {   color: #ffffff !important;   background: linear-gradient(135deg, var(--v3-brand), var(--v3-brand-2)) !important;   border-color: transparent !important;   box-shadow: 0 10px 22px rgba(22, 104, 219, 0.32) !important; }  body.designer-v3 .products {   gap: 18px !important; }  body.designer-v3 .product-card {   padding: 16px !important;   border-radius: 20px !important;   border: 1px solid rgba(141, 178, 233, 0.56) !important;   background:     linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(246, 251, 255, 0.98)) !important;   box-shadow: 0 18px 36px rgba(40, 74, 129, 0.16) !important; }  body.designer-v3 .product-card:hover {   transform: translateY(-2px) !important;   box-shadow: 0 24px 40px rgba(31, 64, 118, 0.2) !important; }  body.designer-v3 .product-head {   gap: 18px !important; }  body.designer-v3 .cover-square-wrap {   width: 140px !important;   height: 140px !important;   border-radius: 16px !important;   border: 1px solid rgba(141, 178, 233, 0.56) !important;   background: #f7fbff !important; }  body.designer-v3 .product-meta-grid {   grid-template-columns: minmax(420px, 620px) minmax(320px, 420px) !important;   gap: 18px !important; }  body.designer-v3 .product-main-info h3 {   font-size: 28px !important;   line-height: 1.32 !important;   color: #122e56 !important;   margin-bottom: 12px !important; }  body.designer-v3 .product-main-info p, body.designer-v3 .copy-line {   color: #1a3a66 !important;   font-size: 16px !important;   line-height: 1.45 !important; }  body.designer-v3 .desc-box {   border-radius: 14px !important;   border: 1px solid rgba(143, 182, 234, 0.58) !important;   background: linear-gradient(180deg, #f7fbff, #edf5ff) !important;   min-height: 170px !important;   max-height: 220px !important;   width: 100% !important; }  body.designer-v3 .desc-title {   color: #3b5f93 !important;   font-size: 14px !important;   font-weight: 700 !important; }  body.designer-v3 .desc-content {   color: #183862 !important;   line-height: 1.45 !important;   font-size: 15px !important; }  body.designer-v3 .sku-dropdown {   margin-top: 12px !important;   padding: 10px 12px !important;   border-radius: 14px !important;   border: 1px solid rgba(140, 180, 234, 0.5) !important;   background: rgba(244, 250, 255, 0.84) !important; }  body.designer-v3 .sku-dropdown summary {   font-size: 18px !important;   font-weight: 800 !important;   color: #16375f !important; }  body.designer-v3 .table {   border-radius: 12px !important;   overflow: hidden !important; }  body.designer-v3 .table th {   color: #0f2b51 !important;   background: rgba(210, 228, 251, 0.88) !important;   border-bottom: 1px solid rgba(147, 182, 231, 0.65) !important;   font-size: 15px !important; }  body.designer-v3 .table td {   color: #1b3d69 !important;   border-bottom: 1px solid rgba(171, 199, 238, 0.5) !important; }  body.designer-v3 .table .sku-name-col {   min-width: 210px !important;   max-width: 320px !important;   font-weight: 700 !important;   color: #17365f !important;   white-space: normal !important;   overflow-wrap: anywhere !important; }  body.designer-v3 .product-card .table tbody tr:nth-child(odd) {   background: rgba(223, 237, 255, 0.75) !important; }  body.designer-v3 .product-card .table tbody tr:nth-child(even) {   background: rgba(243, 249, 255, 0.96) !important; }  body.designer-v3 .product-card .table tbody tr:hover {   background: rgba(193, 221, 255, 0.74) !important; }  body.designer-v3 button {   border-radius: 12px !important;   background: linear-gradient(135deg, var(--v3-brand), var(--v3-brand-2)) !important;   color: #ffffff !important;   box-shadow: 0 8px 18px rgba(22, 104, 219, 0.24) !important; }  body.designer-v3 button.secondary {   background: linear-gradient(135deg, #60779d, #4c6286) !important;   color: #ffffff !important; }  body.designer-v3 button.inline {   border-radius: 10px !important; }  body.designer-v3 input, body.designer-v3 select, body.designer-v3 textarea {   border-radius: 12px !important;   border-color: rgba(137, 175, 232, 0.6) !important;   color: #183660 !important;   background: rgba(255, 255, 255, 0.98) !important; }  body.designer-v3 input:focus, body.designer-v3 select:focus, body.designer-v3 textarea:focus {   box-shadow: 0 0 0 4px rgba(79, 149, 255, 0.2) !important;   border-color: rgba(79, 149, 255, 0.84) !important; }  @media (max-width: 980px) {   body.designer-v3 .list-toolbar {     grid-template-columns: 1fr 1fr !important;   }    body.designer-v3 .product-meta-grid {     grid-template-columns: 1fr !important;   }    body.designer-v3 .cover-square-wrap {     width: 116px !important;     height: 116px !important;   } }  @media (max-width: 720px) {   body.designer-v3 .list-toolbar {     flex-wrap: wrap !important;     gap: 4px !important;   }   body.designer-v3 .list-toolbar #userSearch {     flex: 1 1 100% !important;     max-width: none !important;   }   body.designer-v3 .list-toolbar select {     flex: 1 1 auto !important;   } }    body.designer-v3 .product-sticky-tools {     top: 44px !important;   } }  /* Designer V3 dark mode */ body.designer-v3:not(.light-mode) {   --v3-bg-0: #070d1a;   --v3-bg-1: #0b1630;   --v3-ink: #e5efff;   --v3-ink-soft: #9cb2d3;   --v3-card: rgba(12, 24, 44, 0.86);   --v3-line: rgba(118, 166, 233, 0.3);   --v3-brand: #0fb0e5;   --v3-brand-2: #2c6dff;   --v3-shadow: 0 18px 36px rgba(0, 0, 0, 0.42); }  body.designer-v3:not(.light-mode).app-mode {   background:     radial-gradient(1300px 760px at -16% -20%, rgba(24, 132, 255, 0.22), transparent 62%),     radial-gradient(980px 640px at 112% -12%, rgba(9, 196, 233, 0.18), transparent 62%),     linear-gradient(150deg, var(--v3-bg-0) 0%, var(--v3-bg-1) 46%, #0d1b35 100%) !important;   color: var(--v3-ink) !important; }  body.designer-v3:not(.light-mode).app-mode::before {   background-image:     linear-gradient(rgba(125, 174, 241, 0.08) 1px, transparent 1px),     linear-gradient(90deg, rgba(125, 174, 241, 0.08) 1px, transparent 1px); }  body.designer-v3:not(.light-mode) .topbar {   background:     linear-gradient(130deg, rgba(20, 113, 215, 0.2), rgba(17, 66, 159, 0.14)),     rgba(10, 23, 44, 0.9) !important; }  body.designer-v3:not(.light-mode) .topbar h2 {   color: #e4efff !important; }  body.designer-v3:not(.light-mode) .catalog-card {   background:     linear-gradient(170deg, rgba(13, 27, 49, 0.92), rgba(10, 22, 42, 0.92)),     radial-gradient(820px 260px at 12% -8%, rgba(30, 132, 240, 0.2), transparent 72%) !important; }  body.designer-v3:not(.light-mode) .catalog-title {   color: #dbeaff !important; }  body.designer-v3:not(.light-mode) .product-sticky-tools {   border-color: rgba(95, 148, 220, 0.55) !important;   background: linear-gradient(150deg, rgba(13, 28, 52, 0.96), rgba(9, 22, 42, 0.98)) !important;   box-shadow: 0 20px 32px rgba(2, 8, 20, 0.5) !important; }  body.designer-v3:not(.light-mode) #userSearch, body.designer-v3:not(.light-mode) .list-toolbar select, body.designer-v3:not(.light-mode) input, body.designer-v3:not(.light-mode) select, body.designer-v3:not(.light-mode) textarea {   color: #d9e9ff !important;   border-color: rgba(96, 146, 214, 0.62) !important;   background: rgba(8, 19, 37, 0.86) !important; }  body.designer-v3:not(.light-mode) .tab-btn, body.designer-v3:not(.light-mode) .country-chip {   color: #c7dcff !important;   background: rgba(16, 35, 64, 0.9) !important;   border-color: rgba(87, 139, 212, 0.56) !important; }  body.designer-v3:not(.light-mode) .tab-btn.active, body.designer-v3:not(.light-mode) .country-chip.active {   color: #ffffff !important;   background: linear-gradient(135deg, #0ec5ff, #2d6fff) !important;   border-color: rgba(193, 226, 255, 0.92) !important;   box-shadow:     0 0 0 2px rgba(179, 220, 255, 0.4),     0 12px 24px rgba(12, 99, 228, 0.42) !important; }  body.designer-v3:not(.light-mode) .product-card {   border-color: rgba(96, 147, 217, 0.44) !important;   background:     linear-gradient(180deg, rgba(15, 31, 57, 0.94), rgba(10, 24, 45, 0.94)) !important;   box-shadow: 0 20px 38px rgba(0, 0, 0, 0.45) !important; }  body.designer-v3:not(.light-mode) .product-main-info h3, body.designer-v3:not(.light-mode) .product-main-info p, body.designer-v3:not(.light-mode) .copy-line {   color: #dbe9ff !important; }  body.designer-v3:not(.light-mode) .desc-box {   border-color: rgba(93, 144, 214, 0.52) !important;   background: linear-gradient(180deg, rgba(12, 28, 54, 0.92), rgba(10, 22, 44, 0.94)) !important; }  body.designer-v3:not(.light-mode) .desc-title {   color: #9db7dd !important; }  body.designer-v3:not(.light-mode) .desc-content {   color: #d6e6ff !important; }  body.designer-v3:not(.light-mode) .sku-dropdown {   border-color: rgba(89, 140, 212, 0.56) !important;   background: rgba(8, 20, 38, 0.74) !important; }  body.designer-v3:not(.light-mode) .sku-dropdown summary {   color: #deecff !important; }  body.designer-v3:not(.light-mode) .table th {   color: #d7e8ff !important;   background: rgba(19, 40, 73, 0.92) !important;   border-bottom-color: rgba(92, 142, 213, 0.64) !important; }  body.designer-v3:not(.light-mode) .table td {   color: #d4e5ff !important;   border-bottom-color: rgba(85, 128, 191, 0.54) !important; }  body.designer-v3:not(.light-mode) .table .sku-name-col {   color: #e0ecff !important; }  body.designer-v3:not(.light-mode) .product-card .table tbody tr:nth-child(odd) {   background: rgba(29, 57, 100, 0.62) !important; }  body.designer-v3:not(.light-mode) .product-card .table tbody tr:nth-child(even) {   background: rgba(11, 26, 49, 0.95) !important; }  body.designer-v3:not(.light-mode) .product-card .table tbody tr:hover {   background: rgba(43, 76, 126, 0.8) !important; }  body.designer-v3 .admin-product-thumb {   border-color: rgba(132, 176, 236, 0.56);   background: rgba(238, 246, 255, 0.9); }  body.designer-v3:not(.light-mode) .admin-product-thumb {   border-color: rgba(93, 141, 206, 0.66);   background: rgba(9, 21, 40, 0.92); }  /* Designer V3 premium login */ body.designer-v3.login-mode {   background:     radial-gradient(920px 520px at 8% 12%, rgba(68, 154, 255, 0.32), transparent 62%),     radial-gradient(920px 520px at 92% 86%, rgba(21, 187, 255, 0.24), transparent 62%),     linear-gradient(145deg, #060d1d 0%, #0a1730 52%, #102248 100%) !important; }  body.designer-v3.login-mode::before {   content: "";   position: fixed;   inset: 0;   pointer-events: none;   z-index: 0;   background-image:     linear-gradient(rgba(165, 196, 255, 0.08) 1px, transparent 1px),     linear-gradient(90deg, rgba(165, 196, 255, 0.08) 1px, transparent 1px);   background-size: 44px 44px;   mask-image: radial-gradient(80% 70% at 50% 40%, #000 58%, transparent 100%); }  body.designer-v3.login-mode .container {   position: relative;   z-index: 1; }  body.designer-v3 .login-bg-title {   display: none; }  body.designer-v3.login-mode .login-card {   max-width: 640px;   padding: 32px 34px 24px;   border-radius: 26px;   border: 1px solid rgba(129, 174, 247, 0.5);   background:     linear-gradient(155deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04)),     rgba(9, 22, 44, 0.72);   box-shadow:     0 26px 60px rgba(0, 0, 0, 0.48),     inset 0 1px 0 rgba(186, 216, 255, 0.22);   backdrop-filter: blur(14px); }  body.designer-v3.login-mode .login-bg-title {   display: block;   position: fixed;   left: 50%;   top: 8%;   transform: translateX(-50%);   z-index: 0;   width: min(92vw, 1600px);   text-align: center;   font-size: clamp(56px, 6.5vw, 118px);   line-height: 1.02;   letter-spacing: 3px;   font-weight: 900;   background: linear-gradient(120deg, #f6fbff 0%, #a9dcff 30%, #89a9ff 62%, #e3eeff 100%);   -webkit-background-clip: text;   background-clip: text;   color: transparent;   opacity: 0.96;   text-shadow:     0 14px 42px rgba(41, 126, 255, 0.35),     0 2px 0 rgba(255, 255, 255, 0.2);   pointer-events: none; }  body.designer-v3.login-mode .login-card-title {   font-size: 24px;   font-weight: 800;   margin-bottom: 16px;   letter-spacing: 0.8px;   color: #eef6ff; }  body.designer-v3.app-mode .login-bg-title {   display: none !important; }  body.designer-v3.login-mode .login-fields {   gap: 14px; }  body.designer-v3.login-mode .login-card label {   display: block;   margin-bottom: 8px;   color: #edf5ff;   font-size: 14px;   letter-spacing: 0.3px; }  body.designer-v3.login-mode .login-card input {   min-height: 54px;   border-radius: 14px;   border: 1px solid rgba(136, 182, 248, 0.62);   background: rgba(7, 16, 34, 0.86);   color: #f5f9ff;   font-size: 17px; }  body.designer-v3.login-mode .login-card input::placeholder {   color: rgba(195, 214, 242, 0.86); }  body.designer-v3.login-mode .login-card input:focus {   border-color: rgba(123, 184, 255, 0.96);   box-shadow: 0 0 0 4px rgba(78, 153, 255, 0.28); }  .password-field-wrap {   position: relative; }  .password-field-wrap input {   width: 100%;   padding-right: 48px; }  body.designer-v3.login-mode .password-toggle-btn {   position: absolute;   right: 10px;   top: 50%;   transform: translateY(-50%);   background: transparent !important;   border: none !important;   outline: none !important;   cursor: pointer;   font-size: 18px;   padding: 4px 8px;   opacity: 0.7;   pointer-events: auto;   box-shadow: none !important;   filter: none !important;   border-radius: 0 !important;   color: inherit !important;   font-weight: normal !important; }  body.designer-v3.login-mode .password-toggle-btn:hover {   opacity: 1;   background: transparent !important;   border: none !important;   outline: none !important;   transform: translateY(-50%) !important;   box-shadow: none !important;   filter: none !important; }  body.designer-v3.login-mode .password-toggle-btn:focus {   outline: none !important;   box-shadow: none !important; }  body.designer-v3.login-mode .password-toggle-btn:active {   transform: translateY(-50%) !important;   background: transparent !important;   border: none !important;   outline: none !important;   box-shadow: none !important;   filter: none !important; }  .theme-toggle, #previewModeToggle {   position: fixed;   right: 16px;   z-index: 1000;   border-radius: 999px;   padding: 5px 10px;   font-size: 12px; }  .theme-toggle {   top: 48px; }  #previewModeToggle {   top: 82px; }  /* Announcement Bar */ .announcement-bar {   position: fixed;   top: 0;   left: 0;   right: 0;   z-index: 999;   background: #1a4fc4;   padding: 8px 0;   overflow: hidden;   height: 36px; }  body.app-mode .announcement-bar { top: 0; }  .announcement-bar:not(.hidden) { display: block; }  .announcement-content {   display: inline-block;   white-space: nowrap;   padding-left: 100%;   font-size: 17px;   font-weight: bold;   color: #ffffff;   animation: annScroll 60s linear infinite; }  @keyframes annScroll {   0% { transform: translateX(0); }   100% { transform: translateX(-100%); } }  /* Announcement Admin Form */ .announce-form { display: flex; flex-direction: column; gap: 8px; } .announce-form textarea { width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 8px; font-size: 14px; resize: vertical; } .checkbox-label { display: flex; align-items: center; gap: 6px; font-size: 14px; cursor: pointer; } .checkbox-label input[type="checkbox"] { width: 16px; height: 16px; }  body.designer-v3.login-mode #loginBtn {   min-height: 54px;   font-size: 19px;   font-weight: 800;   border-radius: 14px;   background: linear-gradient(135deg, #13b2ec, #2a69ff);   box-shadow: 0 14px 28px rgba(21, 109, 244, 0.34); }  body.designer-v3.login-mode #loginMsg {   color: #d7e9ff !important;   margin-top: 10px; }  /* 登录页在日间模式下提升文字/占位符对比度 */ body.designer-v3.light-mode.login-mode .login-card {   background:     linear-gradient(155deg, rgba(255, 255, 255, 0.96), rgba(246, 251, 255, 0.96)),     rgba(255, 255, 255, 0.94) !important;   border-color: rgba(148, 180, 228, 0.62) !important; }  body.designer-v3.light-mode.login-mode .login-card-title {   color: #15355f !important; }  body.designer-v3.light-mode.login-mode .login-card label {   color: #2f4f7f !important;   font-weight: 700; }  body.designer-v3.light-mode.login-mode .login-card input {   color: #12345f !important;   border-color: rgba(130, 170, 228, 0.68) !important;   background: rgba(255, 255, 255, 0.98) !important; }  body.designer-v3.light-mode.login-mode .login-card input::placeholder {   color: rgba(74, 112, 167, 0.75) !important; }  body.designer-v3.light-mode.login-mode #loginMsg {   color: #345887 !important; }  /* Admin tabs */ .admin-tabs {   display: flex;   gap: 6px;   margin-bottom: 14px;   flex-wrap: wrap; }  .admin-tab-btn {   padding: 10px 20px !important;   border-radius: 12px 12px 0 0 !important;   font-size: 15px !important;   font-weight: 700 !important;   background: linear-gradient(135deg, #4f6282, #3d516a) !important;   color: #c8ddf5 !important;   border: 1px solid rgba(100, 140, 200, 0.4) !important;   border-bottom: none !important;   position: relative;   top: 1px; }  .admin-tab-btn.active {   background: linear-gradient(135deg, var(--v3-brand, #0c8fd6), var(--v3-brand-2, #2362ec)) !important;   color: #ffffff !important;   border-color: transparent !important;   box-shadow: 0 6px 16px rgba(22, 104, 219, 0.3) !important; }  .admin-tab-content {   display: block; }  .admin-tab-content.hidden {   display: none; }  /* SKU Tool styles */ .input-row {   display: flex;   gap: 12px;   margin-bottom: 12px;   flex-wrap: wrap; }  .input-group {   flex: 1;   min-width: 160px; }  .input-group label {   display: block;   margin-bottom: 4px;   font-size: 13px;   font-weight: 600;   color: var(--muted); }  .btn-tool-add {   width: 100%;   padding: 12px !important;   font-size: 16px !important;   margin-bottom: 4px; }  #toolTableWrap {   overflow-x: auto; }  #toolTableWrap .table {   min-width: 400px; }  .empty-msg {   text-align: center;   color: var(--muted);   padding: 24px;   font-size: 14px; }  .tool-actions {   display: flex;   gap: 10px;   margin-top: 14px;   justify-content: center; }  .tool-actions button {   flex: 1;   max-width: 200px; }  body.designer-v3.light-mode .admin-tab-btn:not(.active) {   background: linear-gradient(135deg, #dce9fb, #c8ddf5) !important;   color: #2e4773 !important;   border-color: rgba(153, 181, 226, 0.72) !important; }  body.designer-v3.light-mode #toolTableWrap .table th {   background: rgba(207, 226, 252, 0.88) !important; }  /* Tools grid */ .tools-grid {   display: grid;   grid-template-columns: 1fr 1fr;   gap: 16px; }  .tool-card {   height: fit-content; }  /* FX styles */ .fx-input-row {   display: flex;   gap: 12px;   align-items: flex-end;   margin-bottom: 12px; }  .fx-input-row .input-group {   flex: 1; }  .fx-actions {   display: flex;   gap: 8px; }  .fx-rate-info {   font-size: 13px;   color: var(--muted);   margin-bottom: 12px;   padding: 8px 12px;   background: rgba(0,0,0,0.1);   border-radius: 8px; }  .fx-results {   display: grid;   grid-template-columns: repeat(2, 1fr);   gap: 10px; }  .fx-item {   display: grid;   grid-template-columns: 1fr auto auto;   align-items: center;   gap: 8px;   padding: 12px 14px;   background: rgba(0,0,0,0.15);   border-radius: 10px;   font-size: 14px; }  .fx-item .currency {   font-weight: 700;   color: var(--v3-ink-soft, #9cb2d3); }  .fx-item .amount {   font-weight: 700;   font-size: 16px;   text-align: right;   min-width: 100px; }  .fx-copy-btn {   padding: 4px 8px !important;   font-size: 12px !important;   min-width: 50px; }  body.designer-v3.light-mode .fx-item {   background: rgba(0,0,0,0.06); }  body.designer-v3.light-mode .fx-item .currency {   color: var(--v3-ink-soft, #4d6488); }  @media (max-width: 900px) {   .tools-grid {     grid-template-columns: 1fr;   } }  /* FX public card */ .fx-card {   margin-top: 16px;   border-radius: 20px !important; }  /* Tool section */ .tool-section {   margin-bottom: 16px;   padding-bottom: 12px;   border-bottom: 1px solid var(--line); }  .tool-section:last-of-type {   border-bottom: none; }  .tool-section h4 {   font-size: 14px;   color: var(--v3-ink-soft, #9cb2d3);   margin-bottom: 8px; }  /* File input */ .file-input {   width: 100%;   padding: 10px !important;   border: 2px dashed var(--line) !important;   background: transparent !important;   border-radius: 12px !important;   cursor: pointer; }  .file-input:hover {   border-color: var(--v3-brand, #0c8fd6) !important; }  /* Merged list */ .merged-list {   display: flex;   flex-direction: column;   gap: 8px;   max-height: 200px;   overflow-y: auto; }  .merged-item {   display: flex;   justify-content: space-between;   align-items: center;   padding: 8px 12px;   background: rgba(0,0,0,0.1);   border-radius: 8px;   font-size: 13px; }  .merged-item-name {   flex: 1;   overflow: hidden;   text-overflow: ellipsis;   white-space: nowrap; }  .merged-item-count {   color: var(--muted);   margin-right: 8px; }  /* File list */ .file-list {   display: flex;   flex-direction: column;   gap: 8px;   max-height: 160px;   overflow-y: auto;   margin-top: 8px; }  .file-item {   display: flex;   justify-content: space-between;   align-items: center;   padding: 8px 12px;   background: rgba(0,0,0,0.1);   border-radius: 8px;   font-size: 13px; }  .file-item-name {   flex: 1;   overflow: hidden;   text-overflow: ellipsis;   white-space: nowrap; }  .file-item-remove {   background: var(--danger, #dc3545);   color: #fff;   border: none;   padding: 4px 10px;   border-radius: 4px;   cursor: pointer;   font-size: 12px;   margin-left: 8px; }  .file-item-remove:hover {   opacity: 0.85; }  .merged-item-remove {   background: var(--danger) !important;   padding: 4px 8px !important;   font-size: 12px !important;   min-width: auto !important; }  body.designer-v3.light-mode .tool-section {   border-color: rgba(134, 166, 220, 0.45); }  body.designer-v3.light-mode .merged-item {   background: rgba(0,0,0,0.06); }  /* ===== 日历浮窗组件 ===== */ #calWidget {   position: fixed;   bottom: 20px;   right: 16px;   z-index: 200;   font-family: 'Noto Sans SC', 'Microsoft YaHei', sans-serif; }  #calTrigger {   display: flex;   align-items: center;   gap: 6px;   background: linear-gradient(135deg, #1a4fc4, #2563eb);   color: #fff;   border: none;   border-radius: 40px;   padding: 8px 14px;   cursor: pointer;   box-shadow: 0 6px 20px rgba(26, 79, 196, 0.4), 0 2px 6px rgba(0,0,0,0.2);   font-size: 12px;   font-weight: 600;   letter-spacing: 0.3px;   transition: all .2s ease;   backdrop-filter: blur(10px); } #calTrigger:hover {   transform: translateY(-2px);   box-shadow: 0 10px 26px rgba(26, 79, 196, 0.5), 0 3px 10px rgba(0,0,0,0.22); } #calTrigger svg {   width: 13px;   height: 13px;   opacity: 0.8;   flex-shrink: 0; }  #calPanel {   position: absolute;   bottom: 52px;   right: 0;   width: 300px;   background: rgba(11, 22, 44, 0.96);   border: 1px solid rgba(100, 160, 255, 0.25);   border-radius: 20px;   padding: 18px 16px 14px;   box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 4px 16px rgba(26, 79, 196, 0.2), inset 0 1px 0 rgba(255,255,255,0.08);   backdrop-filter: blur(20px);   animation: calSlideUp .22s cubic-bezier(.34,1.56,.64,1); }  @keyframes calSlideUp {   from { opacity: 0; transform: translateY(12px) scale(.97); }   to { opacity: 1; transform: translateY(0) scale(1); } }  #calPanelHead {   display: flex;   align-items: center;   justify-content: space-between;   margin-bottom: 14px; } #calTitle {   font-size: 14px;   font-weight: 700;   color: #e6edf7;   letter-spacing: 0.5px; } .cal-nav-btn {   background: rgba(37, 99, 235, 0.2);   border:1px solid rgba(37, 99, 235, 0.3);   color: #7ba4f7;   border-radius: 8px;   width: 28px;   height: 28px;   cursor: pointer;   font-size: 16px;   display: flex;   align-items: center;   justify-content: center;   transition: all .15s ease;   padding: 0; } .cal-nav-btn:hover {   background: rgba(37, 99, 235, 0.45);   color: #fff; }  #calWeekdays {   display: grid;   grid-template-columns: repeat(7, 1fr);   margin-bottom: 6px; } #calWeekdays > span {   text-align: center;   font-size: 11px;   font-weight: 600;   color: #4a5a7a;   padding: 2px 0;   letter-spacing: 0.3px; }  #calGrid {   display: grid;   grid-template-columns: repeat(7, 1fr);   gap: 3px; } #calGrid > span {   text-align: center;   padding: 5px 2px;   font-size: 12.5px;   border-radius: 50%;   color: #c8d8f0;   cursor: default;   transition: background .12s ease; } #calGrid > span.empty { visibility: hidden; } #calGrid > span.weekend { color: #4a5a7a; } #calGrid > span.today {   background: linear-gradient(135deg, #1a4fc4, #2563eb);   color: #fff;   font-weight: 700;   box-shadow: 0 4px 12px rgba(26, 79, 196, 0.5); } #calGrid > span.off-day {   background: rgba(34, 197, 94, 0.22);   color: #6ee7a0;   font-weight: 600; } #calGrid > span.off-day.today {   background: linear-gradient(135deg, #1a4fc4, #2563eb);   color: #fff; } #calGrid > span.off-day:hover {   background: rgba(34, 197, 94, 0.38); }  #calLegend {   display: flex;   gap: 14px;   margin-top: 12px;   padding-top: 10px;   border-top: 1px solid rgba(100, 160, 255, 0.12); } .cal-legend-item {   display: flex;   align-items: center;   gap: 5px;   font-size: 11px;   color: #5a7090; } .cal-dot {   width: 8px;   height: 8px;   border-radius: 50%;   display: inline-block;   flex-shrink: 0; }  /*休息日悬浮提示 */ .cal-tooltip {   position: fixed;   background: rgba(11, 22, 44, 0.95);   border: 1px solid rgba(34, 197, 94, 0.4);   border-radius: 8px;   padding: 6px 10px;   font-size: 12px;   color: #e6edf7;   pointer-events: none;   z-index: 9999;   max-width: 200px;   box-shadow: 0 8px 20px rgba(0,0,0,0.4);   backdrop-filter: blur(10px); } body.light-mode .cal-tooltip {   background: rgba(255, 255, 255, 0.97);   border-color: rgba(34, 197, 94, 0.4);   color: #1a2e55; }  /* 日间模式 */ body.light-mode #calPanel {   background: rgba(255, 255, 255, 0.96);   border-color: rgba(151, 178, 224, 0.4);   box-shadow: 0 20px 60px rgba(39, 76, 128, 0.18), 0 4px 16px rgba(39, 76, 128, 0.1); } body.light-mode #calTitle { color: #1a2e55; } body.light-mode #calGrid > span { color: #2e4773; } body.light-mode #calGrid > span.weekend { color: #8099c4; } body.light-mode .cal-nav-btn {   background: rgba(37, 99, 235, 0.1);   border-color: rgba(37, 99, 235, 0.2);   color: #3b6fd4; } body.light-mode .cal-legend-item { color: #52627a; } body.light-mode #calTrigger {   box-shadow: 0 8px 24px rgba(37, 99, 235, 0.3), 0 2px 8px rgba(0,0,0,0.12); }  /* 排班管理完整日历 */ /* 排班管理 - 日历选择器 */ .cal-admin-layout {   display: grid;   grid-template-columns: 280px 1fr;   gap: 20px; } .cal-selector {   background: rgba(255,255,255,0.04);   border-radius: 12px;   padding: 14px;   border: 1px solid rgba(100,160,255,0.12); } .cal-sel-header {   display: flex;   justify-content: space-between;   align-items: center;   margin-bottom: 10px; } #calSelTitle {   font-size: 14px;   font-weight: 600;   color: #c8daf0; } .cal-sel-weekdays {   display: grid;   grid-template-columns: repeat(7, 1fr);   gap: 2px;   margin-bottom: 4px; } .cal-sel-weekdays span {   text-align: center;   font-size: 11px;   color: #5a7090;   padding: 3px 0; } .cal-sel-grid {   display: grid;   grid-template-columns: repeat(7, 1fr);   gap: 3px; } .cal-sel-grid span {   text-align: center;   font-size: 13px;   color: #a8bdd4;   padding: 7px 2px;   border-radius: 6px;   cursor: pointer;   transition: all 0.15s; } .cal-sel-grid span:hover {   background: rgba(37, 99, 235, 0.3);   color: #fff; } .cal-sel-grid span.selected {   background: linear-gradient(135deg, #2563eb, #1d4ed8);   color: #fff;   box-shadow: 0 2px 8px rgba(37, 99, 235, 0.4); } .cal-sel-grid span.off-selected {   background: linear-gradient(135deg, #22c55e, #16a34a);   color: #fff;   box-shadow: 0 2px 8px rgba(34, 197, 94, 0.4); } .cal-sel-grid span.is-off {   background: rgba(34, 197, 94, 0.25);   color: #4ade80;   border: 1px solid rgba(34, 197, 94, 0.4); } .cal-sel-grid span.is-off.selected {   background: linear-gradient(135deg, #22c55e, #16a34a);   color: #fff;   border: none; } .cal-sel-grid span.today:not(.selected):not(.off-selected):not(.is-off) {   background: rgba(26, 79, 196, 0.3);   color: #5ba3ff;   font-weight: 600; } .cal-sel-info {   margin-top: 8px;   font-size: 12px;   color: #5a7090;   text-align: center; } .cal-list-area {   min-width: 0; } .cal-list-header {   display: flex;   justify-content: space-between;   align-items: center;   margin-bottom: 10px; } body.light-mode .cal-selector {   background: rgba(255,255,255,0.6);   border-color: rgba(151,178,224,0.3); } body.light-mode #calSelTitle { color: #1a2e55; } body.light-mode .cal-sel-weekdays span { color: #5a7090; } body.light-mode .cal-sel-grid span { color: #2e4773; } body.light-mode .cal-sel-grid span:hover { background: rgba(37, 99, 235, 0.15); color: #1a2e55; } body.light-mode .cal-sel-grid span.today:not(.selected):not(.off-selected):not(.is-off) { background: rgba(26, 79, 196, 0.12); color: #2563eb; } body.light-mode .cal-sel-grid span.is-off { background: rgba(34, 197, 94, 0.15); color: #166534; border-color: rgba(34, 197, 94, 0.3); }  /* 旧的复杂日历样式 - 保留但隐藏 */ .cal-admin-full-layout { display: none; } .cal-full-area {   background: rgba(255,255,255,0.04);   border-radius: 14px;   padding: 16px;   border: 1px solid rgba(100,160,255,0.12); } .cal-full-header {   display: flex;   align-items: center;   justify-content: space-between;   margin-bottom: 12px; } #calFullTitle {   font-size: 15px;   font-weight: 600;   color: #c8daf0; } .cal-full-nav {   background: rgba(37, 99, 235, 0.15);   border: 1px solid rgba(37, 99, 235, 0.25);   color: #5ba3ff;   border-radius: 6px;   font-size: 18px;   padding: 4px 12px;   cursor: pointer;   transition: all 0.15s; } .cal-full-nav:hover { background: rgba(37, 99, 235, 0.35); } .cal-full-today {   background: rgba(34, 197, 94, 0.15);   border: 1px solid rgba(34, 197, 94, 0.3);   color: #4ade80;   border-radius: 6px;   font-size: 12px;   padding: 4px 10px;   cursor: pointer;   margin-left: 8px; } .cal-full-today:hover { background: rgba(34, 197, 94, 0.3); } .cal-full-weekdays {   display: grid;   grid-template-columns: repeat(7, 1fr);   gap: 3px;   margin-bottom: 6px; } .cal-full-weekdays span {   text-align: center;   font-size: 12px;   font-weight: 500;   color: #5a7090;   padding: 4px 0; } .cal-full-weekdays span.weekend { color: #7a9ab8; } .cal-full-grid {   display: grid;   grid-template-columns: repeat(7, 1fr);   gap: 3px; } .cal-full-grid .cal-empty {   /* Empty grid cells - invisible but takes space */ } .cal-full-grid .cal-day, .cal-full-grid span {   text-align: center;   font-size: 14px;   color: #a8bdd4;   padding: 10px 4px;   border-radius: 8px;   cursor: pointer;   transition: all 0.15s;   position: relative; } .cal-full-grid span:hover { background: rgba(37, 99, 235, 0.25); color: #fff; } .cal-full-grid span.today {   background: linear-gradient(135deg, #1a4fc4, #2563eb);   color: #fff;   font-weight: 600;   box-shadow: 0 4px 12px rgba(37, 99, 235, 0.4); } .cal-full-grid span.off-day-cell {   background: rgba(34, 197, 94, 0.22);   color: #4ade80;   border: 1px solid rgba(34, 197, 94, 0.35); } .cal-full-grid span.off-day-cell:hover { background: rgba(34, 197, 94, 0.4); } .cal-full-grid span.today.off-day-cell {   background: linear-gradient(135deg, #1a4fc4, #2563eb);   border-color: transparent;   box-shadow: 0 4px 12px rgba(37, 99, 235, 0.4); } .cal-full-legend {   display: flex;   gap: 12px;   margin-top: 10px;   padding-top: 10px;   border-top: 1px solid rgba(100,160,255,0.1); } .cal-full-legend .cal-legend-item { font-size: 11px; }  /* 编辑面板 */ .cal-edit-panel {   background: rgba(255,255,255,0.04);   border-radius: 14px;   padding: 16px;   border: 1px solid rgba(100,160,255,0.12);   min-height: 200px; } .cal-edit-placeholder {   display: flex;   flex-direction: column;   align-items: center;   justify-content: center;   height: 100%;   min-height: 180px;   color: #5a7090;   text-align: center; } .cal-edit-active {   display: flex;   flex-direction: column;   gap: 10px; } .cal-edit-date {   font-size: 14px;   font-weight: 600;   color: #c8daf0;   padding-bottom: 10px;   border-bottom: 1px solid rgba(100,160,255,0.12); } .cal-edit-status {   display: flex;   align-items: center;   gap: 6px;   font-size: 12px;   color: #4ade80; } .cal-edit-status .status-dot {   width: 8px;   height: 8px;   border-radius: 50%;   background: #22c55e; } .cal-edit-status.is-empty .status-dot { background: #5a7090; } .cal-edit-status.is-empty { color: #5a7090; } .cal-edit-panel textarea {   background: rgba(255,255,255,0.06);   border: 1px solid rgba(100,160,255,0.2);   border-radius: 8px;   color: #c8daf0;   padding: 8px;   font-size: 13px;   resize: vertical;   min-height: 60px;   font-family: inherit; } .cal-edit-panel textarea:focus {   outline: none;   border-color: rgba(37, 99, 235, 0.5); } .cal-edit-actions {   display: flex;   gap: 8px; } .cal-edit-actions button { flex: 1; font-size: 13px; } .cal-list-header {   display: flex;   justify-content: space-between;   align-items: center;   margin-bottom: 10px; } body.light-mode .cal-full-area, body.light-mode .cal-edit-panel {   background: rgba(255,255,255,0.6);   border-color: rgba(151,178,224,0.3); } body.light-mode #calFullTitle { color: #1a2e55; } body.light-mode .cal-full-weekdays span { color: #5a7090; } body.light-mode .cal-full-weekdays span.weekend { color: #8099c4; } body.light-mode .cal-full-grid span { color: #2e4773; } body.light-mode .cal-full-grid span:hover { background: rgba(37, 99, 235, 0.15); color: #1a2e55; } body.light-mode .cal-full-grid span.today { color: #fff; } body.light-mode .cal-full-grid span.off-day-cell {   background: rgba(34, 197, 94, 0.15);   border-color: rgba(34, 197, 94, 0.3);   color: #166534; } body.light-mode .cal-full-grid span.off-day-cell:hover { background: rgba(34, 197, 94, 0.25); } body.light-mode .cal-edit-panel { color: #1a2e55; } body.light-mode .cal-edit-placeholder { color: #5a7090; } body.light-mode .cal-edit-date { color: #1a2e55; border-color: rgba(151,178,224,0.3); } body.light-mode .cal-edit-panel textarea {   background: rgba(255,255,255,0.8);   border-color: rgba(151,178,224,0.4);   color: #1a2e55; } body.light-mode .cal-edit-panel textarea:focus { border-color: rgba(37,99,235,0.5); }  /* ===== AI Chat Widget ===== */ #aiChatWrapper{position:fixed;bottom:80px;right:24px;z-index:10000;font-family:-apple-system,BlinkMacSystemFont,sans-serif} #aiChatToggle{width:56px;height:56px;border-radius:50%;border:none;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:white;font-size:26px;cursor:pointer;box-shadow:0 4px 16px rgba(99,102,241,.4);display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s} #aiChatToggle:hover{transform:scale(1.08);box-shadow:0 6px 24px rgba(99,102,241,.5)} #aiChatPanel{display:none;flex-direction:column;position:absolute;bottom:124px;right:0;width:400px;height:520px;border-radius:16px;background:#fff;box-shadow:0 8px 32px rgba(0,0,0,.15);overflow:hidden} #aiChatPanel.open{display:flex} #aiChatHeader{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:white;font-size:15px;font-weight:600} #aiChatClose{background:none;border:none;color:white;font-size:18px;cursor:pointer;padding:2px 6px;border-radius:4px} #aiChatClose:hover{background:rgba(255,255,255,.2)} #deepChatElement{flex:1;min-height:0;border:none !important;background:transparent !important} @media(max-width:480px){#aiChatPanel{width:calc(100vw-32px);right:-8px;bottom:120px;max-height:70vh}}  /* ===== AI Chat Widget (Custom) ===== */ #aiChatWrapper{position:fixed;bottom:80px;right:24px;z-index:10000;font-family:-apple-system,BlinkMacSystemFont,sans-serif} #aiChatToggle{width:56px;height:56px;border-radius:50%;border:none;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:white;font-size:26px;cursor:pointer;box-shadow:0 4px 16px rgba(99,102,241,.4);display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s} #aiChatToggle:hover{transform:scale(1.08);box-shadow:0 6px 24px rgba(99,102,241,.5)} #aiChatPanel{display:none;flex-direction:column;position:absolute;bottom:124px;right:0;width:400px;height:520px;border-radius:16px;background:#fff;box-shadow:0 8px 32px rgba(0,0,0,.15);overflow:hidden} #aiChatPanel.open{display:flex} #aiChatHeader{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:white;font-size:15px;font-weight:600} #aiChatClose{background:none;border:none;color:white;font-size:18px;cursor:pointer;padding:2px 6px;border-radius:4px} #aiChatClose:hover{background:rgba(255,255,255,.2)} #aiChatMessages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px} #aiChatMessages .msg{margin:0;padding:8px 12px;border-radius:12px;max-width:80%;line-height:1.4;font-size:14px} #aiChatMessages .msg-user{align-self:flex-end;background:#6366f1;color:white} #aiChatMessages .msg-ai{align-self:flex-start;background:#f1f5f9;color:#1e293b} #aiChatMessages .msg-error{align-self:flex-start;background:#fee2e2;color:#dc2626;font-size:13px} #aiChatMessages .msg-welcome{align-self:flex-start;background:#f1f5f9;color:#6366f1;font-size:13px;font-style:italic;padding:10px 14px} #aiChatTyping{flex-shrink:0;padding:4px 14px;display:flex;align-items:center;gap:4px} #aiChatTyping span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#94a3b8;animation:aiChatBounce 1.2s infinite} #aiChatTyping span:nth-child(2){animation-delay:.15s} #aiChatTyping span:nth-child(3){animation-delay:.3s} @keyframes aiChatBounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}} #aiChatError{flex-shrink:0;padding:6px 14px;background:#fee2e2;color:#dc2626;font-size:12px;display:none} #aiChatInput{flex-shrink:0;display:flex;gap:8px;padding:10px 12px;border-top:1px solid #e2e8f0} #aiChatText{flex:1;padding:8px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;outline:none} #aiChatText:focus{border-color:#6366f1} #aiChatSend{width:38px;height:38px;border-radius:8px;border:none;background:#6366f1;color:white;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s} #aiChatSend:hover{background:#4f46e5} #aiChatSend:disabled{background:#94a3b8;cursor:not-allowed} @media(max-width:480px){#aiChatPanel{width:calc(100vw-32px);right:-8px;bottom:120px;max-height:70vh}}  /* === 回款汇总工具 === */ .hk-tool-card { max-width: 100%; } .hk-file-drop { border: 2px dashed #c0c0c0; border-radius: 8px; padding: 24px 12px; text-align: center; cursor: pointer; transition: border-color .2s, background .2s; color: #888; font-size: 14px; } .hk-file-drop:hover, .hk-file-drop.hk-drag-over { border-color: #1a4fc4; background: #f0f4ff; color: #1a4fc4; } .hk-file-drop a { color: #1a4fc4; text-decoration: underline; cursor: pointer; } .hk-file-list { max-height: 160px; overflow-y: auto; margin-top: 8px; } .hk-file-item { display: flex; align-items: center; gap: 8px; padding: 4px 8px; border-bottom: 1px solid #eee; font-size: 13px; } .hk-file-cat { background: #1a4fc4; color: #fff; padding: 2px 8px; border-radius: 4px; font-size: 11px; white-space: nowrap; } .hk-file-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .hk-file-remove { background: none; border: none; color: #ef4444; cursor: pointer; font-size: 14px; padding: 2px 6px; } .hk-file-remove:hover { background: #fee2e2; border-radius: 4px; } .hk-people-list { max-height: 200px; overflow-y: auto; } .hk-person-item { display: flex; align-items: center; gap: 8px; padding: 4px 0; border-bottom: 1px solid #f3f3f3; } .hk-person-name { font-weight: 600; min-width: 60px; } .hk-person-label { font-size: 12px; color: #888; } .hk-person-stores { width: 70px; padding: 3px 6px; font-size: 13px; } .hk-person-remove { background: none; border: none; color: #ef4444; cursor: pointer; font-size: 14px; } .hk-add-person { display: flex; gap: 6px; margin-top: 8px; align-items: center; } .hk-add-person input { padding: 5px 8px; font-size: 13px; } .hk-actions { display: flex; gap: 8px; flex-wrap: wrap; } .hk-actions .btn-tool-add { flex: 1; min-width: 140px; } .hk-team { margin-bottom: 12px; padding: 8px; background: #fafafa; border-radius: 6px; } .hk-team h5 { margin: 0 0 6px 0; } .hk-team .input-row { gap: 4px; } .hk-team .input-row input { padding: 4px 8px; font-size: 13px; } .hk-members { width: 100%; padding: 6px; font-size: 13px; margin-top: 6px; border: 1px solid #ddd; border-radius: 4px; resize: vertical; font-family: inherit; } .hk-member-list { margin-top: 6px; } .hk-member-item { display: flex; align-items: center; gap: 6px; padding: 4px 0; border-bottom: 1px solid #eee; } .hk-member-item input { padding: 4px 8px; font-size: 13px; } .hk-member-item .hk-member-name { flex: 2; min-width: 80px; } .hk-member-item .hk-member-pct { flex: 1; min-width: 60px; } .hk-member-item .hk-member-sal { flex: 1; min-width: 80px; } .hk-member-item .hk-member-remove { background: none; border: none; color: #ef4444; cursor: pointer; font-size: 16px; padding: 2px 6px; } .hk-member-item .hk-member-remove:hover { color: #dc2626; } .hk-add-member-row { display: flex; gap: 6px; margin-top: 8px; align-items: center; } .hk-add-member-row input { padding: 5px 8px; font-size: 13px; } .hk-add-member-row .hk-new-member-name { flex: 2; min-width: 80px; } .hk-add-member-row .hk-new-member-pct { flex: 1; min-width: 60px; } .hk-add-member-row .hk-new-member-sal { flex: 1; min-width: 80px; }  .hk-results { background: #fafafa; border-radius: 8px; padding: 12px; } .hk-result-tabs { display: flex; gap: 0; margin-bottom: 10px; } .hk-result-tab { padding: 6px 16px; border: 1px solid #ddd; background: #fff; cursor: pointer; font-size: 13px; } .hk-result-tab:first-child { border-radius: 6px 0 0 6px; } .hk-result-tab:last-child { border-radius: 0 6px 6px 0; } .hk-result-tab.active { background: #1a4fc4; color: #fff; border-color: #1a4fc4; } .hk-result-content { overflow-x: auto; } .hk-table-wrap { overflow-x: auto; } .hk-result-table th { position: sticky; top: 0; background: #f0f4ff; z-index: 1; white-space: nowrap; font-size: 12px; } .hk-result-table td { white-space: nowrap; font-size: 13px; } .hk-result-table td.hk-num { text-align: right; font-variant-numeric: tabular-nums; } .hk-total-row { font-weight: 700; background: #f0f4ff; } .hk-chart-controls { display: flex; gap: 8px; margin-bottom: 10px; } .hk-chart-controls select { padding: 4px 8px; font-size: 13px; border: 1px solid #ddd; border-radius: 4px; } .hk-log { max-height: 120px; overflow-y: auto; background: #1e293b; color: #94a3b8; padding: 8px 12px; border-radius: 6px; font-family: 'Consolas', monospace; font-size: 12px; } .hk-log-entry { padding: 2px 0; border-bottom: 1px solid #334155; } .hk-empty { text-align: center; padding: 16px; color: #aaa; font-size: 13px; }  body.designer-v3.light-mode .hk-file-drop { border-color: #aaa; } body.designer-v3.light-mode .hk-file-drop:hover, body.designer-v3.light-mode .hk-file-drop.hk-drag-over { border-color: #1a4fc4; background: #e8eeff; } body.designer-v3.light-mode .hk-log { background: #f8f8f8; color: #555; } body.designer-v3.light-mode .hk-log-entry { border-bottom-color: #e0e0e0; } body.designer-v3.light-mode .hk-team { background: #fff; } body.designer-v3:not(.light-mode) .hk-team { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); } body.designer-v3:not(.light-mode) .hk-team h5 { color: #e2e8f0; } body.designer-v3:not(.light-mode) .hk-team input { background: rgba(255,255,255,0.08); color: #e2e8f0; border-color: rgba(255,255,255,0.15); } body.designer-v3:not(.light-mode) .hk-team input::placeholder { color: rgba(255,255,255,0.35); } body.designer-v3:not(.light-mode) .hk-member-item { border-bottom-color: rgba(255,255,255,0.08); } body.designer-v3:not(.light-mode) .hk-add-member-row input { background: rgba(255,255,255,0.08); color: #e2e8f0; border-color: rgba(255,255,255,0.15); } body.designer-v3:not(.light-mode) .hk-file-drop { border-color: rgba(255,255,255,0.15); background: rgba(255,255,255,0.04); } body.designer-v3:not(.light-mode) .hk-file-drop:hover { border-color: rgba(255,255,255,0.25); } body.designer-v3:not(.light-mode) .hk-results { background: rgba(255,255,255,0.04); } body.designer-v3:not(.light-mode) .hk-log { background: rgba(0,0,0,0.2); color: #94a3b8; } body.designer-v3:not(.light-mode) .hk-log-entry { border-bottom-color: rgba(255,255,255,0.06); } body.designer-v3:not(.light-mode) .hk-person-item { border-bottom-color: rgba(255,255,255,0.08); } body.designer-v3:not(.light-mode) .hk-person-name { color: #e2e8f0; } body.designer-v3:not(.light-mode) .hk-person-stores { background: rgba(255,255,255,0.08); color: #e2e8f0; border-color: rgba(255,255,255,0.15); } body.designer-v3:not(.light-mode) .hk-tool-card { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); } body.designer-v3:not(.light-mode) .hk-total-row { background: rgba(255,255,255,0.06); } body.designer-v3:not(.light-mode) .hk-file-drop { color: #94a3b8; } body.designer-v3:not(.light-mode) .hk-file-drop:hover, body.designer-v3:not(.light-mode) .hk-file-drop.hk-drag-over { border-color: #60a5fa; background: rgba(59,130,246,0.1); color: #60a5fa; } body.designer-v3:not(.light-mode) .hk-file-drop a { color: #60a5fa; } body.designer-v3:not(.light-mode) .hk-file-item { border-bottom-color: rgba(255,255,255,0.08); color: #e2e8f0; } body.designer-v3:not(.light-mode) .hk-file-remove:hover { background: rgba(239,68,68,0.15); } body.designer-v3:not(.light-mode) .hk-person-label { color: #94a3b8; } body.designer-v3:not(.light-mode) .hk-member-item .hk-member-remove { color: #f87171; } body.designer-v3:not(.light-mode) .hk-member-item .hk-member-remove:hover { color: #ef4444; } body.designer-v3:not(.light-mode) .hk-result-tab { background: rgba(255,255,255,0.06); color: #e2e8f0; border-color: rgba(255,255,255,0.12); } body.designer-v3:not(.light-mode) .hk-result-tab:hover { background: rgba(255,255,255,0.1); } body.designer-v3:not(.light-mode) .hk-result-tab.active { background: #1a4fc4; color: #fff; border-color: #1a4fc4; } body.designer-v3:not(.light-mode) .hk-result-table th { background: rgba(30,41,59,0.95); color: #e2e8f0; } body.designer-v3:not(.light-mode) .hk-result-table td { color: #cbd5e1; } body.designer-v3:not(.light-mode) .hk-result-table tr:hover td { background: rgba(255,255,255,0.04); } body.designer-v3:not(.light-mode) .hk-empty { color: #64748b; } body.designer-v3:not(.light-mode) .hk-add-member-btn { background: rgba(59,130,246,0.2); color: #60a5fa; border: 1px solid rgba(59,130,246,0.3); } body.designer-v3:not(.light-mode) .hk-add-member-btn:hover { background: rgba(59,130,246,0.3); } body.designer-v3:not(.light-mode) .hk-person-remove { color: #f87171; } body.designer-v3:not(.light-mode) .hk-person-remove:hover { color: #ef4444; } /* 仓库管理 - 新交互 */ .wh-add-bar {   margin: 12px 0; } .wh-add-bar .btn-tool-add {   background: linear-gradient(135deg, var(--primary), var(--primary-2));   color: #001220;   border: none;   border-radius: 12px;   padding: 10px 20px;   font-weight: 700;   cursor: pointer;   transition: transform .15s ease, box-shadow .2s ease; } .wh-add-bar .btn-tool-add:hover {   transform: translateY(-1px);   box-shadow: 0 6px 16px rgba(0, 184, 217, 0.3); } .wh-form {   background: rgba(255,255,255,0.04);   border: 1px solid var(--line);   border-radius: 12px;   padding: 16px;   margin-bottom: 12px; } .wh-form-row {   display: grid;   grid-template-columns: 1fr 1fr;   gap: 12px;   margin-bottom: 10px; } .wh-form-row .input-group {   display: flex;   flex-direction: column;   gap: 4px; } .wh-form-row label {   font-size: 13px;   color: var(--muted);   font-weight: 600; } .wh-list {   margin-top: 4px; } .wh-card {   border: 1px solid var(--line);   border-radius: 12px;   padding: 14px;   margin-bottom: 10px;   background: rgba(255,255,255,0.03);   transition: border-color .2s; } .wh-card:hover {   border-color: rgba(120, 186, 255, 0.46); } .wh-card-header {   display: flex;   justify-content: space-between;   align-items: center;   margin-bottom: 10px; } .wh-card-name {   font-size: 16px;   font-weight: 700; } .wh-card-actions {   display: flex;   gap: 6px; } .wh-card-body {   display: grid;   grid-template-columns: 1fr 1fr;   gap: 10px; } .wh-info-item {   display: flex;   align-items: center;   gap: 8px;   padding: 8px 10px;   border-radius: 8px;   background: rgba(255,255,255,0.04);   border: 1px solid rgba(100,160,255,0.1); } .wh-info-label {   font-size: 12px;   color: var(--muted);   white-space: nowrap;   flex-shrink: 0; } .wh-info-value {   flex: 1;   font-size: 14px;   word-break: break-all;   min-width: 0; } .wh-copy-btn {   flex-shrink: 0;   padding: 4px 10px;   font-size: 12px;   background: linear-gradient(135deg, #4f6282, #3d5270);   color: #eaf3ff;   border: none;   border-radius: 6px;   cursor: pointer;   transition: all .15s; } .wh-copy-btn:hover {   filter: brightness(1.15);   transform: translateY(-1px); }.wh-form {   background: rgba(255,255,255,0.6);   border-color: rgba(151,178,224,0.4); } body.light-mode .wh-info-item {   background: rgba(240,245,255,0.5);   border-color: rgba(151,178,224,0.3); } body.light-mode .wh-card {   background: rgba(248,252,255,0.5); } body.light-mode .wh-copy-btn {   background: linear-gradient(135deg, #5b6f93, #48608a);   color: #fff; } body.light-mode .wh-add-bar .btn-tool-add {   color: #fff; } @media (max-width: 720px) {   .wh-form-row {     grid-template-columns: 1fr;   }   .wh-card-body {     grid-template-columns: 1fr;   } }    /* === 仓库管理 === */ .wh-form {   background: rgba(255,255,255,0.04);   border: 1px solid var(--line);   border-radius: 14px;   padding: 16px 18px;   margin-bottom: 16px; } .wh-form-title {   font-size: 14px;   font-weight: 700;   color: var(--muted);   margin-bottom: 12px;   padding-bottom: 8px;   border-bottom: 1px solid var(--line); } .wh-form-grid {   display: grid;   grid-template-columns: 1fr 1fr;   gap: 12px;   margin-bottom: 12px; } .wh-field {   display: flex;   flex-direction: column;   gap: 4px; } .wh-field label {   font-size: 12px;   color: var(--muted);   font-weight: 600; } .wh-field-full {   grid-column: 1 / -1; } .wh-field textarea {   resize: vertical;   min-height: 56px;   font: inherit;   padding: 8px 10px;   border-radius: 8px;   border: 1px solid var(--line);   background: var(--bg);   color: var(--fg); } .wh-field textarea:focus {   outline: 1px solid var(--accent, #0c8fd6); } .wh-dropdown {   position: relative;   width: 100%; } .wh-dropdown-btn {   width: 100%;   height: 40px;   padding: 0 36px 0 12px;   border: 1px solid var(--line, #1f2a44);   border-radius: 8px;   background: var(--bg, #0f172a);   color: var(--fg, #e2e8f0);   font: inherit;   cursor: pointer;   display: flex;   align-items: center;   justify-content: space-between;   text-align: left; } .wh-dropdown-btn:focus {   outline: 2px solid var(--accent, #0c8fd6);   outline-offset: 1px; } .wh-dropdown-arrow {   position: absolute;   right: 12px;   top: 50%;   transform: translateY(-50%);   pointer-events: none;   color: #94a3b8;   font-size: 14px; } .wh-dropdown-menu {   position: absolute;   top: calc(100% + 4px);   left: 0;   right: 0;   max-height: 240px;   overflow-y: auto;   margin: 0;   padding: 4px 0;   list-style: none;   background: var(--bg, #0f172a);   border: 1px solid var(--line, #1f2a44);   border-radius: 8px;   box-shadow: 0 8px 18px rgba(0,0,0,0.35);   z-index: 50; } .wh-dropdown-menu li {   padding: 8px 12px;   cursor: pointer;   font-size: 14px;   color: var(--fg, #e2e8f0); } .wh-dropdown-menu li:hover, .wh-dropdown-menu li.active {   background: var(--accent, #0c8fd6);   color: #fff; } .wh-dropdown-menu li[aria-disabled="true"] {   color: #64748b;   cursor: not-allowed; } .wh-card-note {   display: flex;   align-items: flex-start;   gap: 8px;   font-size: 13px;   color: var(--muted);   padding: 6px 0;   white-space: pre-wrap;   word-break: break-word; } .wh-card-note .wh-info-icon {   flex-shrink: 0; } .wh-form-btns {   display: flex;   gap: 8px;   align-items: center; } .wh-list-header {   font-size: 13px;   font-weight: 700;   color: var(--muted);   margin-bottom: 10px;   padding-bottom: 8px;   border-bottom: 1px solid var(--line); } .wh-list-area {} .wh-card {   border: 1px solid var(--line);   border-radius: 12px;   padding: 12px 14px;   margin-bottom: 10px;   background: rgba(255,255,255,0.03);   transition: border-color 0.2s, box-shadow 0.2s; } .wh-card:hover {   border-color: rgba(120,186,255,0.5);   box-shadow: 0 4px 16px rgba(0,0,0,0.15); } .wh-card-top {   display: flex;   align-items: center;   gap: 10px;   margin-bottom: 10px;   padding-bottom: 8px;   border-bottom: 1px solid rgba(100,160,255,0.1); } .wh-card-name {   font-size: 15px;   font-weight: 700;   flex: 1; } .wh-card-country {   font-size: 11px;   background: var(--chip);   color: var(--muted);   padding: 2px 8px;   border-radius: 999px;   border: 1px solid var(--line); } .wh-card-actions {   display: flex;   gap: 6px; } .wh-info-row {   display: flex;   align-items: center;   gap: 8px;   padding: 6px 0;   font-size: 13px; } .wh-info-row + .wh-info-row {   border-top: 1px solid rgba(100,160,255,0.06); } .wh-info-icon {   font-size: 14px;   flex-shrink: 0;   width: 20px;   text-align: center; } .wh-info-val {   flex: 1;   word-break: break-all;   color: var(--text); } .wh-copy-btn {   padding: 3px 10px;   font-size: 12px;   background: linear-gradient(135deg, #4f6282, #3d5270);   color: #eaf3ff;   border: none;   border-radius: 6px;   cursor: pointer;   flex-shrink: 0;   transition: filter 0.15s, transform 0.15s; } .wh-copy-btn:hover {   filter: brightness(1.15);   transform: translateY(-1px); }  /* 日间模式 */ body.light-mode .wh-form {   background: rgba(255,255,255,0.6);   border-color: rgba(151,178,224,0.4); } body.light-mode .wh-card {   background: rgba(248,252,255,0.5);   border-color: rgba(151,178,224,0.3); } body.light-mode .wh-card-top {   border-color: rgba(151,178,224,0.25); } body.light-mode .wh-info-row + .wh-info-row {   border-color: rgba(151,178,224,0.15); } body.light-mode .wh-copy-btn {   background: linear-gradient(135deg, #5b6f93, #48608a);   color: #fff; } body.light-mode .wh-list-header {   border-color: rgba(151,178,224,0.3); }  @media (max-width: 700px) {   .wh-form-grid { grid-template-columns: 1fr; }   .wh-card-top { flex-wrap: wrap; } }    /* ===== Compact one-row search bar ===== */ body.designer-v3 .product-sticky-tools {   display: flex !important;   flex-direction: column !important;   gap: 4px !important;   padding: 6px 10px !important; }  body.designer-v3 .list-toolbar {   display: flex !important;   flex-wrap: wrap !important;   gap: 6px !important;   margin-bottom: 0 !important;   align-items: center !important; }  body.designer-v3 .list-toolbar #userSearch {   min-height: 34px !important;   font-size: 14px !important;   border-radius: 8px !important;   flex: 1 1 200px !important;   max-width: 320px !important;   margin-bottom: 0 !important; }  body.designer-v3 .list-toolbar select {   min-height: 34px !important;   font-size: 13px !important;   border-radius: 8px !important;   flex: 0 1 auto !important;   min-width: 80px !important; }  body.designer-v3 .country-tabs {   margin: 2px 0 0 !important;   gap: 6px !important; }  body.designer-v3 .country-tabs .tab-btn, body.designer-v3 .country-tabs .country-chip {   font-size: 12px !important;   padding: 3px 10px !important;   min-height: 26px !important; }  /* Compact search bar - dark mode color fix */ body.designer-v3:not(.light-mode) .product-sticky-tools {   border-color: rgba(95, 148, 220, 0.55) !important;   background: linear-gradient(150deg, rgba(13, 28, 52, 0.96), rgba(9, 22, 42, 0.98)) !important;   box-shadow: 0 20px 32px rgba(2, 8, 20, 0.5) !important; }  body.designer-v3:not(.light-mode) .list-toolbar #userSearch {   color: #d9e9ff !important;   border-color: rgba(96, 146, 214, 0.62) !important;   background: rgba(8, 19, 37, 0.86) !important; }  body.designer-v3:not(.light-mode) .list-toolbar select {   color: #d9e9ff !important;   border-color: rgba(96, 146, 214, 0.62) !important;   background: rgba(8, 19, 37, 0.86) !important; }  body.designer-v3:not(.light-mode) .country-tabs .tab-btn, body.designer-v3:not(.light-mode) .country-tabs .country-chip {   color: #c7dcff !important;   background: rgba(16, 35, 64, 0.9) !important;   border-color: rgba(87, 139, 212, 0.56) !important; }   /* ===== Comprehensive dark mode card/input fixes ===== */ body.designer-v3:not(.light-mode) .card:not(.topbar):not(.catalog-card):not(.login-card):not(.tool-card):not(.wh-card):not(.product-card) {   background: linear-gradient(170deg, rgba(13, 27, 49, 0.92), rgba(10, 22, 42, 0.92)) !important;   border-color: rgba(95, 148, 220, 0.4) !important;   color: var(--v3-ink, #e5efff) !important; }  body.designer-v3:not(.light-mode) .fx-card {   background: linear-gradient(170deg, rgba(13, 27, 49, 0.92), rgba(10, 22, 42, 0.92)) !important;   border-color: rgba(95, 148, 220, 0.4) !important;   color: var(--v3-ink, #e5efff) !important; }  body.designer-v3:not(.light-mode) .fx-card h3, body.designer-v3:not(.light-mode) .fx-card label, body.designer-v3:not(.light-mode) .fx-card p {   color: var(--v3-ink, #e5efff) !important; }  body.designer-v3:not(.light-mode) input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]), body.designer-v3:not(.light-mode) select, body.designer-v3:not(.light-mode) textarea {   background: rgba(8, 19, 37, 0.86) !important;   color: #d9e9ff !important;   border-color: rgba(96, 146, 214, 0.62) !important; }  body.designer-v3:not(.light-mode) input::placeholder, body.designer-v3:not(.light-mode) textarea::placeholder {   color: rgba(156, 178, 211, 0.6) !important; } 
/* === 排班日历 - 新增/覆盖样式 === */
.cal-admin-layout { display: block !important; }
.cal-selector { padding: 22px 28px !important; border-radius: 16px !important; max-width: none !important; margin: 0 !important; }
.cal-sel-header { margin-bottom: 14px !important; }
.cal-sel-header span { font-size: 20px !important; font-weight: 700 !important; }
.cal-sel-weekdays span { font-size: 14px !important; font-weight: 600 !important; padding: 6px 2px !important; }
.cal-sel-grid span { font-size: 16px !important; padding: 14px 4px !important; border-radius: 10px !important; min-height: 52px !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; position: relative !important; gap: 2px !important; }
.cal-sel-grid span .cell-note { font-size: 10px; color: #4ade80; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 1.1; margin-top: 2px; }
.cal-sel-grid span.is-off .cell-note { color: #4ade80; }
#calGrid > span { display: flex !important; flex-direction: column !important; align-items: center !important; border-radius: 8px !important; min-height: 28px !important; }
#calTodayBtn { background: rgba(34, 197, 94, 0.15); border: 1px solid rgba(34, 197, 94, 0.3); color: #4ade80; border-radius: 6px; font-size: 12px; padding: 4px 10px; cursor: pointer; transition: all 0.15s; }
body.light-mode #calTodayBtn { background: rgba(34, 197, 94, 0.12); color: #166534; border-color: rgba(34, 197, 94, 0.3); }
.cal-note-area { margin-top: 12px; display: flex; gap: 8px; align-items: center; }
.cal-note-area input { flex: 1; }
.cal-sel-info { font-size: 13px !important; margin-top: 10px !important; }
