:root{color-scheme:light;--bg:#eff8f7;--pale:#e6f3f0;--white:#f9fdfc;--text:#203746;--nav:#436273;--muted:#718d94;--mint:#28bdad;--mint2:#86e7d7;--teal:#149b8f;--line:#e0efed;--red:#ec5364;--amber:#e9aa42;--shadow:9px 9px 23px #cbdedb,-9px -9px 23px #fff;--small:5px 5px 12px #d3e3e1,-5px -5px 13px #fff;--inset:inset 4px 4px 9px #d8e5e2,inset -4px -4px 8px #fff;--radius:19px;font-family:Inter,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 58% 4%,#e5f8f4 0,transparent 55%),var(--bg);color:var(--text);font-size:13px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #2ebdad;outline-offset:3px}[hidden]{display:none!important}.app-shell{display:flex;min-height:100vh}.sidebar{width:226px;min-width:226px;padding:28px 17px 18px;display:flex;flex-direction:column;gap:6px;background:linear-gradient(145deg,#f3fbf9,#e8f4f1);border-right:1px solid #e5eeeb;position:sticky;top:0;height:100vh;z-index:15}.brand{display:flex;align-items:center;gap:10px;padding:5px 5px 35px}.brand-mark{width:39px;height:39px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(3px 4px 5px #b0d8d0)}.brand-mark svg{width:37px}.brand strong{display:block;font-size:17px;letter-spacing:-.6px;font-weight:800;color:#203844}.brand small{display:block;font-size:10px;color:#8aa4a4;margin-top:2px}.nav-caption{font-size:9px;font-weight:800;color:#91a9a9;letter-spacing:1.3px;margin:0 10px 13px}.management-caption{margin-top:26px}.side-nav{display:flex;flex-direction:column;gap:7px}.nav-item{border:0;color:var(--nav);background:transparent;width:100%;border-radius:13px;padding:12px 12px;display:flex;align-items:center;gap:12px;font-weight:600;text-align:left;transition:.2s}.nav-item svg{width:17px;height:17px;stroke-width:1.9}.nav-item:hover{background:#e6f4f0}.nav-item.active{background:linear-gradient(115deg,#bff3e6,#d6f7ef);box-shadow:4px 4px 11px #c4dad4,-3px -3px 10px #fff;color:#08796f}.side-end{margin-top:auto;padding:14px 8px 4px;color:#7f999e;font-size:11px;line-height:1.8}.side-rule{width:33px;height:3px;background:var(--mint);border-radius:8px;margin-bottom:15px}.side-foot-text span{font-size:10px}.workspace{flex:1;min-width:0}.topbar{height:92px;padding:0 32px;display:flex;justify-content:space-between;align-items:center;gap:24px}.top-left,.top-right{display:flex;align-items:center;gap:18px}.global-search{width:360px;max-width:38vw;display:flex;align-items:center;gap:11px;padding:0 17px;height:44px;border-radius:20px;background:#f1faf8;box-shadow:var(--small);color:#9aadaf}.global-search svg{width:17px;height:17px;flex:none}.global-search input{border:0;outline:0!important;background:transparent;min-width:0;flex:1;color:var(--text)}.global-search input::placeholder{color:#9cacae}.global-search kbd{font-size:10px;color:#a3b6b4}.date-select-wrap{display:flex;align-items:center;gap:8px;background:#f0f9f7;border-radius:15px;padding:10px 12px;box-shadow:var(--small);font-size:11px;color:#3e6165}.date-select-wrap svg{width:16px;height:16px;color:#408e8c}.date-select-wrap select{max-width:160px;background:transparent;border:0;color:#3c6267;font-weight:700;outline:0}.session-pill{font-size:10px;color:#688f8e}.profile{height:40px;width:40px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#95e9dc,#bbf4e8);color:#145b55;font-weight:800;box-shadow:var(--small)}.mobile-menu{display:none}.main-content{padding:4px 32px 34px;max-width:1780px;margin:auto}.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:25px}.greeting{font-size:12px;color:#7e989c;margin-bottom:7px}.page-title h1{font-size:30px;line-height:1.08;font-weight:800;letter-spacing:-1.3px;margin:0;color:#213c4a}.subtitle{margin:8px 0 0;font-size:12px;color:#7c999d}.btn-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{border:0;border-radius:12px;background:#eaf8f4;color:#1d7e78;box-shadow:var(--small);padding:10px 15px;font-weight:750;font-size:11px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.btn.primary{background:linear-gradient(130deg,#44cdbc,#1eb49f);color:white;box-shadow:4px 5px 13px #b8ded8}.btn svg{width:15px;height:15px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:20px}.card,.kpi{border-radius:var(--radius);background:linear-gradient(150deg,#f9fffd,#ecf8f5);box-shadow:var(--shadow);border:1px solid #fff;padding:22px}.kpi{min-height:137px;position:relative;overflow:hidden;padding:22px 18px;transition:transform .2s,box-shadow .2s}.kpi:hover,.rank-line:hover,.top-item:hover,.user-row:hover{transform:translateY(-2px)}.kpi.clickable{cursor:pointer}.kpi .k-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;box-shadow:var(--small);background:#d9f8ef;color:#119f92;margin-bottom:11px}.k-icon svg{width:21px;height:21px}.kpi .k-label{font-size:11px;font-weight:700;line-height:1.45;max-width:calc(100% - 48px);min-height:31px;color:#5a7980}.kpi .k-value{font-size:27px;line-height:1.1;font-weight:850;letter-spacing:-.7px;color:#203844;margin-top:6px}.kpi .k-note{font-size:10px;color:#8a9fa2;margin-top:9px}.kpi .k-icon{position:absolute;right:19px;top:23px}.soft-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:21px}.card-title h2{margin:0;color:#203c47;font-size:15px;font-weight:800}.card-title p{margin:6px 0 0;color:#8aa0a2;font-size:10px}.chip{display:inline-flex;align-items:center;padding:7px 12px;border-radius:12px;background:#e9f6f3;box-shadow:var(--small);color:#478c84;font-size:10px;white-space:nowrap}.rank-lines{display:grid;gap:12px}.rank-line{display:grid;grid-template-columns:27px minmax(120px,1.2fr) minmax(60px,1.1fr) 40px;align-items:center;gap:11px;border:0;padding:4px;background:none;text-align:left;width:100%;transition:transform .2s}.rank-badge{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;background:#d9f5ed;color:#0a8b7e;font-weight:800}.rank-name{font-size:11px;font-weight:700;line-height:1.5;color:#43626d;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.rank-track{height:12px;background:#dceee8;box-shadow:var(--inset);border-radius:14px;overflow:hidden}.rank-fill{height:100%;display:block;background:linear-gradient(90deg,#a3efdf,#35c6b1);border-radius:14px}.rank-val{font-size:13px;text-align:right;color:#277e77;font-weight:850;font-variant-numeric:tabular-nums}.card.full{margin-bottom:20px}.top-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.top-item{display:flex;align-items:center;gap:12px;border:1px solid #e6f1ed;border-radius:14px;background:#f4fbf8;text-align:left;min-width:0;padding:11px 12px;transition:transform .2s;cursor:pointer}.top-rank{width:30px;height:30px;background:#def5ee;border-radius:10px;display:grid;place-items:center;font-weight:900;color:#189c8e;flex:none}.alert-pulse{display:grid;place-items:center;width:27px;height:27px;flex:none;border-radius:50%;background:#ffedf0;color:#eb445b;font-weight:950;animation:pulse 1.7s ease-in-out infinite}.alert-pulse svg{width:17px;height:17px;stroke-width:3}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 #ef536644;transform:scale(1)}50%{box-shadow:0 0 0 6px #ef536600;transform:scale(1.06)}}@media(prefers-reduced-motion:reduce){.alert-pulse{animation:none}*,*:before,*:after{scroll-behavior:auto!important}}.top-info{flex:1;min-width:0}.top-info strong{display:block;font-size:11px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.top-info small{display:block;color:#8a9ea2;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px}.top-value{text-align:right;flex:none;color:#158d82;font-weight:800;font-size:12px}.top-value small{display:block;color:#8d9f9e;font-size:9px;font-weight:400}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px;align-items:center}.filter{border:0;outline:0;min-height:39px;background:#f4fbf8;border-radius:12px;padding:0 12px;color:#41676d;box-shadow:var(--inset);font-size:11px;min-width:128px;max-width:245px}.filter.search{flex:1;min-width:230px;max-width:none}.toolbar .btn{min-height:39px}.mini-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;color:#7d9b9b;font-size:11px}.table-wrap{overflow-x:auto;max-width:100%;border-radius:11px}.data-table{width:100%;border-collapse:collapse;table-layout:auto}.data-table th{font-size:10px;text-align:left;color:#8ca4a7;white-space:nowrap;font-weight:700;border-bottom:1px solid #dfeee9;padding:12px 11px}.data-table td{padding:13px 11px;border-bottom:1px solid #e9f1ef;color:#4d6c73;font-size:11px;vertical-align:middle}.data-table tbody tr:last-child td{border:0}.user-row{cursor:pointer;transition:transform .16s,background .16s}.user-row:hover{background:#eaf8f5}.id-link{background:none;border:0;color:#078e82;font-weight:850;text-decoration:underline;text-underline-offset:3px}.tag{border-radius:9px;display:inline-block;padding:5px 8px;font-size:10px;font-weight:750;white-space:nowrap}.tag.qty{background:#dff7ef;color:#138f81}.tag.money{background:#fff1df;color:#bd7834}.tag.unused{background:#e9e5fa;color:#7460af}.alert-cell{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.pager{display:flex;justify-content:space-between;align-items:center;gap:13px;margin-top:13px;color:#879ea0;font-size:11px}.pager-controls{display:flex;gap:10px}.empty-box{padding:55px 18px;color:#8ba3a4;text-align:center;line-height:1.75}.muted-box{border:1px dashed #cadfd9;border-radius:14px;padding:18px;color:#6a8686;background:#f2faf8;line-height:1.65}.modal-wrap{position:fixed;inset:0;background:#17343b75;z-index:30;display:flex;justify-content:flex-end}.drawer{width:min(770px,100vw);height:100%;overflow:auto;background:#f0f9f7;padding:30px 28px;box-shadow:-20px 0 60px #173e3b44}.drawer h2{font-size:23px;margin:8px 0 8px;color:#203943}.drawer-close{float:right}.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0}.details-cell{border-radius:13px;background:#f9fffd;box-shadow:var(--small);padding:13px}.details-cell label{display:block;font-size:9px;color:#8da7a7;margin-bottom:7px;text-transform:uppercase;letter-spacing:.4px}.details-cell strong{font-size:12px;overflow-wrap:anywhere;color:#385963}.sku-list{display:grid;gap:10px;margin-top:12px}.sku-item{border-radius:13px;padding:14px;background:#fafffd;box-shadow:var(--small);border-left:4px solid #cfe4dd}.sku-item.exceed{border-color:#f0a55c}.sku-item h4{font-size:12px;color:#31525c;margin:0 0 9px}.sku-meta{display:flex;gap:12px;flex-wrap:wrap;color:#758e94;font-size:11px}.sku-item .excess{color:#c56d2f;font-weight:800}.toast{position:fixed;right:20px;bottom:20px;background:#287a74;color:white;padding:12px 18px;border-radius:12px;box-shadow:var(--shadow);z-index:40}.loading-screen{padding:80px 15px;text-align:center;color:#7f9b98}.footer{font-size:10px;color:#9bb2b1;padding:8px 32px 27px;text-align:right}.intro-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:17px}.upload-grid{display:grid;gap:13px}.file-row{display:grid;grid-template-columns:minmax(0,1fr) 1.5fr;gap:12px;align-items:center}.file-row input{max-width:100%;font-size:11px}.inline-note{font-size:11px;color:#779497;margin:8px 0 0;line-height:1.7}.status-list{display:grid;gap:12px}.status-row{padding:15px;background:#f8fdfb;border-radius:13px;box-shadow:var(--small);display:flex;justify-content:space-between;align-items:center;gap:10px}.owner-field{display:grid;gap:7px;margin-bottom:13px}.owner-field label{font-weight:700;color:#50717a}.owner-field input,.owner-field textarea{border:1px solid #d9e9e4;background:#fafffd;border-radius:12px;padding:10px;color:#345d62}.owner-field textarea{min-height:78px}.workspace-section{margin:18px 0 0}.hint-banner{background:#fff7e9;border:1px solid #f2dfb9;color:#896636;border-radius:13px;padding:12px 15px;line-height:1.6;margin:12px 0}.svg-icon{display:inline-flex;align-items:center;justify-content:center}.svg-icon svg{display:block;width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:1400px){.kpi-grid{gap:12px}.card,.kpi{padding:18px}.sidebar{width:208px;min-width:208px}.main-content{padding-left:23px;padding-right:23px}.topbar{padding:0 23px}.top-grid{grid-template-columns:1fr 1fr}}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-grid{grid-template-columns:1fr}.global-search{width:260px}.soft-grid{gap:12px}.sidebar{width:195px;min-width:195px}.rank-line{grid-template-columns:23px minmax(70px,1.2fr) minmax(45px,.8fr) 35px;gap:7px}}
@media(max-width:850px){.sidebar{position:fixed;left:-245px;width:230px;min-width:230px;transition:left .2s;box-shadow:16px 0 40px #c0d4d1}.sidebar.open{left:0}.mobile-menu{display:grid;border:0;place-items:center;border-radius:10px;height:39px;width:39px;color:#236c68;background:#e5f6f0;box-shadow:var(--small)}.topbar{height:76px}.global-search{max-width:none;min-width:0;width:100%}.top-left{flex:1;min-width:0}.top-right{gap:7px}.session-pill,.global-search kbd{display:none}.date-select-wrap{padding:8px}.main-content{padding:6px 16px 30px}.soft-grid{grid-template-columns:1fr}.top-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-title{align-items:flex-start;flex-direction:column}.card{padding:18px}}
@media(max-width:560px){.topbar{padding:0 12px}.global-search{width:100%;padding:0 10px}.date-select-wrap{max-width:130px}.date-select-wrap select{max-width:90px}.profile{display:none}.main-content{padding:8px 12px 26px}.kpi-grid{gap:11px}.kpi{min-height:125px;padding:15px}.kpi .k-value{font-size:23px}.kpi .k-icon{top:14px;right:11px;width:34px;height:34px}.kpi .k-label{font-size:10px}.top-grid{grid-template-columns:1fr}.page-title h1{font-size:25px}.rank-line{grid-template-columns:24px minmax(100px,1.2fr) 1fr 33px}.details-grid{grid-template-columns:1fr}.drawer{padding:20px 14px}.file-row{grid-template-columns:1fr}.btn-group{width:100%}}
/* Bảng danh sách di chuyển ngang trên điện thoại, không ép chữ ra khỏi ô. */
.data-table{min-width:760px}
.data-table th:nth-child(5),.data-table td:nth-child(5){min-width:180px;max-width:290px}
.data-table th:last-child,.data-table td:last-child{min-width:155px}
.table-wrap{overscroll-behavior-x:contain}
@media(max-width:560px){.data-table{min-width:790px}.data-table td,.data-table th{padding:11px 10px;line-height:1.5}}

/* Gói dùng riêng: quản trị, import snapshot và lọc SKU. */
.sku-item[hidden]{display:none!important}
.status-row .btn-group{display:flex;flex-wrap:wrap;gap:7px}
#snapshotImportForm{margin-top:16px}
#snapshotImportForm input[type="file"]{max-width:100%}
@media(min-width:1050px){.soft-grid > .card{min-height:270px}}

.map-editor-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 16px;}#mappingEditor{padding:15px;border:1px solid #cae8de;border-radius:16px;background:#eaf9f4;margin:0 0 20px;}#mappingEditor[hidden]{display:none}#mappingEditor input{width:100%;box-sizing:border-box;}

/* THỢ ĐMX - CẢNH BÁO · THEME XANH BIỂN/NAVY THEO BẢNG MÀU DUYỆT */
:root{
  --bg:#DCEAF3;--pale:#D9EAF4;--white:#F7FBFF;
  --text:#001D39;--nav:#BDD8E9;--muted:#577991;
  --mint:#4E8EA2;--mint2:#7BBDE8;--teal:#0A4174;
  --line:#C9DEEC;--red:#D94756;--amber:#D59B38;
  --shadow:7px 9px 24px #A9C5D644,-7px -7px 20px #FFFFFFB8;
  --small:3px 5px 12px #B4CCDB72,-3px -3px 10px #FFFFFFD9;
  --inset:inset 3px 4px 9px #B4CADA7A,inset -3px -3px 9px #fff;
  --radius:21px;
  --gold:#FFD978;--deep:#001D39;--blue:#0A4174;--slate:#49769F;
}
body{background:radial-gradient(ellipse at 52% 0%,#F3FAFD 0%,#E2EFF7 38%,#C8DCEB 100%);color:var(--text);font-size:13px}
.sidebar{background:linear-gradient(164deg,#001D39,#0A4174 59%,#1F5680);border-right:1px solid #2F6389;box-shadow:9px 0 23px #0A417424}
.brand{align-items:center;padding:5px 3px 31px;min-height:81px}
.brand strong{color:#F5FBFF;font-weight:800;letter-spacing:-.2px;font-size:16px;line-height:1.4}
.brand-mark{filter:drop-shadow(0 4px 7px #001D3970)}
.brand-mark svg rect{fill:#7BBDE8}.brand-mark svg path{fill:#BDD8E9}
.nav-caption{color:#8FBBDD;letter-spacing:1.35px}
.nav-item{color:#BDD8E9}
.nav-item:hover{background:#49769F66;color:white}
.nav-item.active{background:linear-gradient(100deg,#7BBDE8,#BDD8E9);color:#001D39;box-shadow:3px 4px 13px #001D3960,-2px -2px 10px #49769F66;font-weight:800}
.side-end{color:#B8D3E7}.side-rule{background:var(--gold)}
.topbar{height:77px;margin:18px 28px 25px;padding:0 22px;border-radius:19px;background:linear-gradient(125deg,#0A4174,#49769F);box-shadow:8px 11px 23px #17487230;gap:15px}
.global-search{background:#F1F8FC;box-shadow:var(--small);color:#49769F;max-width:42vw}
.global-search input{color:#001D39}.global-search input::placeholder{color:#66839A}
.date-select-wrap{background:#EDF6FB;color:#001D39;box-shadow:var(--small)}.date-select-wrap select{color:#0A4174}
.profile{background:linear-gradient(140deg,#BDD8E9,#7BBDE8);box-shadow:none;color:#001D39}
.main-content{padding:0px 30px 40px}
.page-title{padding:22px 26px;border-radius:20px;background:linear-gradient(110deg,#001D39 0%,#0A4174 68%,#49769F 100%);box-shadow:7px 10px 24px #17487233;align-items:center;margin-bottom:22px;min-height:124px}
.page-title h1{font-size:clamp(19px,1.75vw,27px);color:var(--gold);line-height:1.3;letter-spacing:.1px;font-weight:850;max-width:1000px;overflow-wrap:anywhere;text-transform:uppercase}
.page-title .greeting{color:#BDD8E9}.page-title .subtitle{color:#CFE4F0;font-size:12px;margin-top:8px}
.btn{background:#EAF4FC;color:#0A4174;box-shadow:var(--small);border:1px solid #D5E5EF}
.btn.primary{background:linear-gradient(120deg,#49769F,#0A4174);color:#fff;border-color:#4E8EA2;box-shadow:3px 5px 13px #0A41743D}
.btn:focus-visible,.nav-item:focus-visible,.rank-line:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.page-title .btn{background:#BDD8E9;color:#001D39;border:1px solid #d9edf9}
.card,.kpi{background:linear-gradient(155deg,#F8FCFF 3%,#E8F3FA 100%);border:1px solid #EDF6FC;box-shadow:var(--shadow)}
.kpi-grid{gap:18px;margin-bottom:24px}
.kpi{min-height:164px;background:linear-gradient(143deg,#0A4174,#245F8E 63%,#49769F);border:1px solid #49769F;box-shadow:5px 8px 17px #0A41743A;display:flex;flex-direction:column;justify-content:flex-end;position:relative;padding:21px!important}
.kpi .k-label{max-width:calc(100% - 31px);font-size:11px;min-height:43px;color:var(--gold);font-weight:850;line-height:1.45;letter-spacing:.18px;text-transform:uppercase}
.kpi .k-value{font-size:29px;margin-top:8px;color:white;font-variant-numeric:tabular-nums}
.kpi .k-note{font-size:10px;color:#BDD8E9;margin-top:8px}
.kpi .k-icon{background:#BDD8E92D;box-shadow:0 0 0 1px #BDD8E943;color:#BEDDF4;right:17px;top:19px}
.soft-grid{gap:20px;margin-bottom:22px}
.card{overflow:hidden;padding:21px}
.card-title{background:linear-gradient(112deg,#001D39,#0A4174 75%,#49769F);padding:15px 20px;margin:-21px -21px 21px;min-height:60px;align-items:center;gap:12px}
.card-title h2{color:var(--gold);font-size:14px;font-weight:850;line-height:1.4;text-transform:uppercase;letter-spacing:.15px}
.card-title p{color:#BED8E7;font-size:11px;margin:5px 0 0}
.chip{background:#BDD8E9;color:#001D39;box-shadow:none;border-radius:9px;font-weight:850;letter-spacing:.4px}
.rank-line{grid-template-columns:29px minmax(125px,1.45fr) minmax(75px,1fr) 39px;gap:9px;padding:8px 4px;border-bottom:1px solid #DAE8F0}
.rank-line:hover{background:#E9F4FA;border-radius:10px}
.rank-badge{background:#D9EAF4;color:#0A4174}
.rank-name{color:#0A4174;font-size:11px;font-weight:850;line-height:1.55}
.rank-track{background:#CADDEB;box-shadow:var(--inset)}
.rank-fill{background:linear-gradient(90deg,#7BBDE8,#49769F 65%,#0A4174)}
.rank-val{color:#0A4174}
.top-item{background:#EFF7FC;border:1px solid #D7E6F0}
.top-item:hover{background:#DCEFFB}
.top-rank{background:#BDD8E9;color:#0A4174}
.top-info strong{color:#001D39;font-weight:800}
.top-info small{color:#527A93}
.top-value{font-size:14px;color:#0A4174;white-space:nowrap;font-variant-numeric:tabular-nums}
.top-value small{color:#527A93;font-size:9px;margin-top:3px}
.alert-pulse{color:#E54357;background:#FFE8ED}
.filter{background:#EFF6FB;color:#0A4174;border:1px solid #CFE0EB;box-shadow:var(--inset);min-width:145px}
.filter.search{min-width:180px}
.filter:focus{outline:2px solid #49769F}
.mini-head,.pager{color:#527A93}
.data-table th{color:#0A4174;background:#DCECF6;font-weight:850;border-color:#CBDFEB}
.data-table td{color:#183C59;border-color:#DAE8F0}
.user-row:hover{background:#EAF5FC}
.id-link{color:#0A4174}
.tag.qty{background:#DFEEF9;color:#0A4174}.tag.money{background:#FFF0D6;color:#915910}.tag.unused{background:#E8E4FA;color:#6D57A8}
.drawer{background:#DDECF6;box-shadow:-25px 0 66px #001D3977}
.drawer h2{color:#001D39}.details-cell,.sku-item{background:#F6FAFD;box-shadow:var(--small)}
.details-cell label{color:#5F8196}.details-cell strong{color:#143C58}.sku-item h4{color:#0A4174}
.sku-item.exceed{border-color:#D7A04B}.sku-item .excess{color:#9C5A10}
.status-row{background:#EEF6FB}.hint-banner{background:#FFFAE9;color:#654D18;border-color:#EED69A}
.toast{background:#001D39;color:#FFD978}
.footer{color:#577991}
@media(max-width:1400px){.topbar{margin:14px 20px 22px}.main-content{padding:0 20px 30px}.kpi .k-label{font-size:10px}.kpi .k-value{font-size:26px}}
@media(max-width:1100px){.kpi{min-height:149px}.rank-line{grid-template-columns:25px minmax(90px,1.3fr) minmax(50px,1fr) 32px}}
@media(max-width:850px){.topbar{margin:10px 13px 18px;padding:0 14px}.main-content{padding:0 13px 25px}.sidebar{box-shadow:15px 0 45px #001D3970}.mobile-menu{background:#BDD8E9;color:#0A4174}.page-title{padding:19px 20px;min-height:auto}.page-title h1{font-size:21px}.page-title .btn-group{width:auto}}
@media(max-width:560px){.topbar{margin:8px 9px 16px;padding:0 11px;height:67px}.main-content{padding:0 10px 25px}.page-title{padding:16px}.page-title h1{font-size:19px}.kpi{min-height:152px;padding:14px!important}.kpi .k-label{font-size:10px;max-width:calc(100% - 25px)}.kpi .k-value{font-size:25px}.card-title{margin:-18px -18px 18px;padding:14px 16px}.rank-line{grid-template-columns:24px minmax(98px,1.2fr) 1fr 30px}}
/* Mobile: reserve a full icon row so long uppercase KPI labels never collide with icons. */
@media(max-width:560px){
  .kpi{min-height:196px;padding:51px 14px 16px!important;justify-content:flex-end}
  .kpi .k-label{max-width:100%;min-height:0;font-size:10px;line-height:1.4}
  .kpi .k-icon{top:12px;right:13px;width:33px;height:33px}
  .kpi .k-value{font-size:24px;margin-top:8px}
  .kpi .k-note{font-size:10px;line-height:1.45}
}

/* V7: owner-only JSON publisher; preserves V6 theme */
.owner-link{background:linear-gradient(135deg,#0A4174,#49769F);color:#FFCF6B!important;border:1px solid #7BBDE8;border-radius:14px;padding:10px 14px;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.owner-link:hover{filter:brightness(1.13)}
.owner-identity{font-size:12px;font-weight:750;color:#FFD277;background:#001D39;padding:8px 12px;border-radius:14px}
.import-single{max-width:900px;margin:0 auto}.import-single .card{width:100%}.import-progress{background:#DBEAF4;padding:15px 18px;border:1px solid #B8D8E9;border-radius:15px;color:#0A4174;font-weight:700;min-height:52px;margin-top:14px;white-space:pre-line}.owner-warning{border:1px solid #f1d18d;background:#fff5d9;border-radius:13px;padding:15px;color:#75500d}.owner-status{padding:14px 18px;color:#0A4174;background:#E8F5FC;border:1px solid #9BCDE4;border-radius:16px;margin:16px 0}.file-single{padding:20px 12px!important;border:1px dashed #8bb4d8!important;background:#EAF6FA!important}.file-single input{display:block;width:100%;margin-top:10px}.locked-banner{padding:26px;background:#eff7fb;border-radius:16px;color:#0A4174}
@media(max-width:730px){.owner-link{font-size:11px;padding:8px}.owner-identity{display:none}.import-single{margin:0}}
