:root{--bg:#f3f6fb;--panel:#fff;--ink:#142033;--muted:#758198;--line:#e4e9f1;--nav:#0e213b;--nav2:#163456;--accent:#1677ff;--accent2:#0b61d8;--green:#0aa56e;--red:#dc3f4f;--amber:#e59615;--shadow:0 12px 35px rgba(31,52,82,.08)}
*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:"Segoe UI",Inter,Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;background:linear-gradient(180deg,var(--nav),#091a30);color:#fff;position:fixed;inset:0 auto 0 0;padding:22px 14px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:4px 10px 24px}.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#24a3ff,#5be0cb);display:grid;place-items:center;font-weight:900;color:#fff;box-shadow:0 8px 20px rgba(36,163,255,.3)}.brand b{display:block;font-size:19px}.brand span{display:block;font-size:12px;color:#98abc2;margin-top:3px}.nav,.nav-link{width:100%;border:0;background:transparent;color:#aebdd0;text-decoration:none;text-align:left;padding:12px 14px;margin:3px 0;border-radius:11px;display:flex;align-items:center;gap:12px;cursor:pointer;font-weight:600}.nav:hover,.nav-link:hover{background:rgba(255,255,255,.07);color:#fff}.nav.active{background:linear-gradient(90deg,#1a5799,#176cca);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.sidebar-bottom{margin-top:auto}.version{font-size:11px;color:#61758e;padding:12px 14px}.main{margin-left:248px;width:calc(100% - 248px);padding:0 26px 36px}.topbar{height:92px;display:flex;align-items:center;justify-content:space-between}.topbar h1{margin:0;font-size:27px;letter-spacing:-.4px}.topbar p{margin:6px 0 0;color:var(--muted);font-size:14px}.top-actions{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:13px}.live-dot{width:9px;height:9px;border-radius:50%;background:#25c982;box-shadow:0 0 0 4px rgba(37,201,130,.12)}.grid-kpi{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.kpi{padding:20px;position:relative;overflow:hidden}.kpi .label{color:var(--muted);font-size:13px;font-weight:600}.kpi .value{font-size:31px;font-weight:800;margin-top:7px;letter-spacing:-.6px}.kpi .hint{font-size:12px;color:var(--muted);margin-top:6px}.kpi .bubble{position:absolute;right:-14px;top:-18px;width:86px;height:86px;border-radius:50%;background:linear-gradient(145deg,rgba(22,119,255,.14),rgba(91,224,203,.06))}.section{margin-top:18px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}.section-title h2{font-size:17px;margin:0}.toolbar{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:12px;box-shadow:0 5px 20px rgba(30,50,80,.04)}.search{min-width:280px;flex:1;position:relative}.search input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px 10px 36px;outline:none;background:#f9fbfd}.search:before{content:'⌕';position:absolute;left:12px;top:8px;color:#8b96a8;font-size:19px}.input,.select,.textarea{border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:#fff;outline:none}.input:focus,.select:focus,.textarea:focus,.search input:focus{border-color:#8dbdff;box-shadow:0 0 0 3px rgba(22,119,255,.08)}.btn{border:0;border-radius:10px;padding:9px 13px;font-weight:700;cursor:pointer;display:inline-flex;gap:7px;align-items:center;justify-content:center;white-space:nowrap}.btn.primary{background:linear-gradient(180deg,var(--accent),var(--accent2));color:#fff}.btn.secondary{background:#edf3fb;color:#32506f}.btn.success{background:#e6f8f1;color:#087f57}.btn.danger{background:#fff0f1;color:#b93442}.btn.warn{background:#fff6e5;color:#a46a08}.btn.small{padding:6px 9px;border-radius:8px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.table-card{overflow:hidden}.table-wrap{overflow:auto;max-height:calc(100vh - 235px)}table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}th{position:sticky;top:0;z-index:3;background:#f5f8fc;color:#536176;font-size:11px;text-transform:uppercase;letter-spacing:.35px;text-align:left;padding:11px 10px;border-bottom:1px solid var(--line)}td{padding:9px 10px;border-bottom:1px solid #edf0f5;vertical-align:middle}tbody tr:hover{background:#f8fbff}.thumb{width:48px;height:48px;border-radius:10px;object-fit:contain;background:#fff;border:1px solid #e4e8ef}.sku{font-weight:800;color:#17243a}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.qty-good{font-weight:800;color:var(--green)}.qty-low{font-weight:800;color:var(--red)}.pill{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700}.pill.green{background:#e5f8f0;color:#078258}.pill.red{background:#ffecee;color:#bd3544}.pill.blue{background:#eaf3ff;color:#196bce}.pill.gray{background:#eef1f5;color:#667184}.boxes{max-width:330px;color:#4e5f74;line-height:1.45}.pagination{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#fff;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.pagination .pages{display:flex;gap:6px}.empty{padding:50px;text-align:center;color:var(--muted)}.supply-row input[type=number]{width:78px}.supply-row select{width:136px}.check{width:17px;height:17px}.channel-tabs{display:flex;gap:8px;flex-wrap:wrap}.channel-tab{padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;color:#526075;cursor:pointer;font-weight:700}.channel-tab.active{background:#173f70;color:#fff;border-color:#173f70}.modal-back{position:fixed;inset:0;background:rgba(7,19,35,.55);z-index:80;display:grid;place-items:center;padding:20px}.modal{background:#fff;width:min(860px,96vw);max-height:90vh;overflow:auto;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.28)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.modal-head h3{margin:0;font-size:20px}.modal-body{padding:20px 22px}.modal-close{border:0;background:#eef2f6;width:34px;height:34px;border-radius:10px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field label{font-size:12px;color:var(--muted);font-weight:700;display:block;margin-bottom:6px}.field input,.field select,.field textarea{width:100%}.detail-hero{display:grid;grid-template-columns:110px 1fr;gap:18px}.detail-img{width:110px;height:110px;object-fit:contain;border:1px solid var(--line);border-radius:15px}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}.mini{background:#f6f9fd;border-radius:10px;padding:10px}.mini b{display:block;font-size:17px}.mini span{font-size:11px;color:var(--muted)}.component-list{margin-top:16px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.component-row{display:grid;grid-template-columns:115px 1fr 90px 90px 42px;gap:8px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--line)}.component-row:last-child{border-bottom:0}.toast{background:#13253f;color:#fff;padding:12px 15px;border-radius:11px;box-shadow:0 12px 35px rgba(0,0,0,.2);margin-top:8px;min-width:280px}.toast.error{background:#9e2d38}.toast.success{background:#087954}#toast-wrap{position:fixed;right:22px;bottom:22px;z-index:120}.quick-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.quick-card{padding:18px}.quick-card h3{margin:0 0 5px}.quick-card p{color:var(--muted);font-size:13px;margin:0 0 15px}.op-line{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);gap:12px}.op-line:last-child{border-bottom:0}.op-main{min-width:0}.op-main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.op-main span{font-size:12px;color:var(--muted)}.danger-text{color:var(--red)}
@media(max-width:1100px){.grid-kpi{grid-template-columns:repeat(2,1fr)}.sidebar{width:210px}.main{margin-left:210px;width:calc(100% - 210px)}.quick-grid{grid-template-columns:1fr}}
@media(max-width:760px){.sidebar{width:68px;padding:16px 8px}.brand>div:last-child,.nav span,.nav-link span,.version{display:none}.brand{padding:0 4px 20px}.brand-mark{width:44px}.nav,.nav-link{justify-content:center;font-size:20px}.main{margin-left:68px;width:calc(100% - 68px);padding:0 12px 30px}.topbar{height:auto;padding:16px 0;align-items:flex-start}.top-actions>span{display:none}.grid-kpi{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.detail-hero{grid-template-columns:1fr}.search{min-width:180px}}
.user-chip{border:1px solid var(--line);background:#fff;border-radius:12px;padding:7px 11px;display:flex;flex-direction:column;align-items:flex-start;cursor:pointer;min-width:130px;color:var(--ink)}.user-chip span{font-size:12px;font-weight:800}.user-chip small{font-size:10px;color:var(--muted);margin-top:2px}.user-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:14px}.user-card{padding:16px;display:grid;grid-template-columns:48px 1fr auto;gap:11px;align-items:center}.user-avatar{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#e5f1ff,#dff9f1);display:grid;place-items:center;font-size:18px;font-weight:900;color:#1d5f9e}.user-info{display:flex;flex-direction:column;gap:3px;min-width:0}.user-info>b{font-size:15px}.user-info>span:not(.pill){font-size:11px;color:var(--muted)}.user-info .pill{width:max-content;margin-top:3px}.user-role{font-size:11px;font-weight:800;color:#315472;text-align:right}.user-last{grid-column:2/4;font-size:11px;color:var(--muted)}.user-card>.btn{grid-column:3;grid-row:3;justify-self:end}.admin-only{display:none}@media(max-width:1100px){.user-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media(max-width:760px){.user-grid{grid-template-columns:1fr}.user-chip{min-width:0;padding:7px}.user-chip small{display:none}.top-actions .user-chip span{display:block}.user-card{grid-template-columns:44px 1fr auto}}

/* AirSmile Warehouse — table editor, stable kit modal and alignment */
.modal-back[data-kind="kit"] .modal{width:min(1120px,97vw)}
.modal-back[data-kind="kit-child"]{background:rgba(7,19,35,.38);z-index:90}
.modal-back[data-kind="ui"]{z-index:100}
.modal-actions{margin-top:20px;display:flex;justify-content:flex-end;gap:9px;align-items:center}
.modal-actions.wrap{flex-wrap:wrap}
.field-spaced{margin-top:13px}
.push{margin-left:auto}
.quick-actions,.detail-actions,.cell-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.detail-actions{margin-top:15px}
.warning-box{margin-top:16px;padding:12px;background:#fff5e5;border-radius:11px;color:#97610a}
.toolbar-sub{font-size:12px;margin-top:3px}
.op-num{text-align:right}

/* Component rows: fixed numeric columns and consistent baselines. */
.component-list{overflow:visible}
.component-row{grid-template-columns:minmax(90px,120px) minmax(260px,1fr) minmax(135px,160px) minmax(115px,145px) 48px;gap:16px;min-height:58px;padding:10px 14px}
.component-row>*,.box-row>*{min-width:0}
.component-head,.box-head{background:#f6f9fd;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.28px;min-height:42px}
.component-head span:nth-child(3),.component-head span:nth-child(4){text-align:right}
.component-name{line-height:1.28}
.component-qty,.component-stock{display:flex;justify-content:flex-end;align-items:center;gap:7px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.component-stock{display:block}
.icon-btn{border:0;background:transparent;color:var(--accent);cursor:pointer;width:32px;height:32px;border-radius:9px;display:inline-grid;place-items:center;font-weight:900;font-size:16px}
.icon-btn:hover{background:#eaf3ff}
.integer-note{margin-top:10px;padding:10px 12px;border-radius:10px;background:#f5f8fc;color:var(--muted);font-size:12px}
.whole-number{font-variant-numeric:tabular-nums}
.detail-section{margin-top:24px!important}

/* Ready-box rows have their own layout instead of reusing component columns. */
.box-row{display:grid;grid-template-columns:minmax(90px,120px) minmax(120px,150px) minmax(260px,1fr) 48px;gap:16px;align-items:center;min-height:56px;padding:10px 14px;border-bottom:1px solid var(--line)}
.box-row:last-child{border-bottom:0}
.box-qty{font-variant-numeric:tabular-nums;white-space:nowrap}
.box-note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.box-edit{justify-self:end}

/* Table-customization mode. */
.customize-banner{margin:-3px 0 12px;padding:10px 13px;border:1px dashed #e2ad46;background:#fff9ea;color:#775214;border-radius:12px;font-size:12px}
.th-edit{margin-left:5px;color:var(--accent);font-size:13px}
th[onclick]{cursor:pointer}
th[onclick]:hover{background:#eaf3ff;color:#1e5eaa}
.style-target{transition:box-shadow .12s ease,filter .12s ease}
.style-target:hover{box-shadow:inset 0 0 0 2px rgba(22,119,255,.36);filter:saturate(1.04)}
tr[draggable="true"]{cursor:grab;user-select:none}
tr[draggable="true"]:active{cursor:grabbing}
tr.dragging{opacity:.45}
tr.drop-before>td{border-top:3px solid var(--accent)!important}
tr.drop-after>td{border-bottom:3px solid var(--accent)!important}
.drag-cell{font-weight:900;color:#8090a6;text-align:center}
.palette{display:grid;grid-template-columns:repeat(5,44px);gap:10px}
.color-swatch{width:44px;height:38px;border-radius:10px;border:1px solid #cfd8e5;cursor:pointer;box-shadow:inset 0 0 0 2px rgba(255,255,255,.65)}
.color-swatch:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(30,50,80,.15)}
.color-input{width:72px;height:42px;border:1px solid var(--line);border-radius:10px;padding:3px;background:#fff;cursor:pointer}
.undo-btn{min-width:104px}

/* Slightly calmer table geometry for wide operational grids. */
td.num,.qty-good,.qty-low{text-align:right}
.table-wrap table td{line-height:1.25}
.boxes{min-width:220px}

@media(max-width:900px){
 .component-row{grid-template-columns:90px 1fr 120px 110px 42px;gap:9px;padding:9px 10px}
 .box-row{grid-template-columns:85px 105px 1fr 42px;gap:9px;padding:9px 10px}
}
@media(max-width:650px){
 .component-row{grid-template-columns:82px 1fr 42px}
 .component-head{display:none}
 .component-row .component-qty,.component-row .component-stock{grid-column:2;text-align:left;justify-content:flex-start}
 .component-row>button:last-child{grid-column:3;grid-row:1}
 .box-row{grid-template-columns:85px 1fr 42px}
 .box-head{display:none}
 .box-note{grid-column:2;white-space:normal}
 .top-actions{flex-wrap:wrap;justify-content:flex-end}
}


/* AirSmile Warehouse — slightly larger, clearer values in supply tables */
.supply-row td:nth-child(3) .sku{font-size:17px;font-weight:700;letter-spacing:.01em}
.supply-row td:nth-child(4),
.supply-row td:nth-child(5),
.supply-row td:nth-child(6){font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}
.supply-row td:nth-child(5) .qty-good,
.supply-row td:nth-child(6) .qty-good,
.supply-row td:nth-child(5) .muted,
.supply-row td:nth-child(6) .muted{font-size:17px;font-weight:650}
.supply-row .row-qty{font-size:16px}

/* AirSmile Warehouse — theme, Excel-like filters, row colors and direct drag/drop */
.thumb-missing{display:grid;place-items:center;color:var(--muted);font-size:10px;background:color-mix(in srgb,var(--panel) 88%,var(--bg));}
.th-content{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:max-content}
.filter-btn{border:0;background:transparent;color:#8b98aa;width:24px;height:24px;border-radius:7px;cursor:pointer;font-size:13px;display:inline-grid;place-items:center;flex:0 0 auto}
.filter-btn:hover{background:#e7effb;color:var(--accent)}
.filter-btn.active{background:#ddecff;color:#0569dc;box-shadow:inset 0 0 0 1px #b9d5fb}
.filter-values{width:100%;min-height:190px;padding:7px}
.filter-values option{padding:7px 8px;border-radius:6px}
.filter-tools{display:flex;gap:7px;margin-top:8px;flex-wrap:wrap}
.filter-status{justify-content:space-between}
.theme-btn{min-width:108px}
tr[draggable="true"]{cursor:grab}
tr[draggable="true"] td:not(:has(button,input,select,textarea,a)){cursor:grab}
tr[draggable="true"]:active{cursor:grabbing}
.style-target{position:relative}
.style-target:hover{box-shadow:inset 0 0 0 1px rgba(22,119,255,.18)}

/* Dark theme */
html[data-theme="dark"]{
 --bg:#071421;--panel:#0d1f32;--ink:#e8f0fa;--muted:#93a6bd;--line:#20364d;
 --nav:#061727;--nav2:#0e2d4a;--accent:#2488ff;--accent2:#1269d7;--green:#33d39b;
 --red:#ff6978;--amber:#f4b94f;--shadow:0 12px 35px rgba(0,0,0,.22)
}
html[data-theme="dark"] body{background:var(--bg);color:var(--ink)}
html[data-theme="dark"] .main{background:var(--bg)}
html[data-theme="dark"] .card,
html[data-theme="dark"] .toolbar,
html[data-theme="dark"] .modal,
html[data-theme="dark"] .modal-head,
html[data-theme="dark"] .pagination,
html[data-theme="dark"] .user-chip,
html[data-theme="dark"] .channel-tab,
html[data-theme="dark"] .input,
html[data-theme="dark"] .select,
html[data-theme="dark"] .textarea,
html[data-theme="dark"] .search input{background:var(--panel);color:var(--ink);border-color:var(--line)}
html[data-theme="dark"] th{background:#10253a;color:#a8b9cc;border-color:var(--line)}
html[data-theme="dark"] td{border-color:#172d42}
html[data-theme="dark"] tbody tr:hover{background:#10263c}
html[data-theme="dark"] .btn.secondary{background:#142a40;color:#b8c8da}
html[data-theme="dark"] .btn.success{background:#10382f;color:#62e4b4}
html[data-theme="dark"] .btn.danger{background:#3a1d27;color:#ff8c98}
html[data-theme="dark"] .btn.warn{background:#392e18;color:#ffd074}
html[data-theme="dark"] .mini,
html[data-theme="dark"] .component-head,
html[data-theme="dark"] .box-head,
html[data-theme="dark"] .integer-note{background:#10253a;color:var(--muted)}
html[data-theme="dark"] .component-list{border-color:var(--line)}
html[data-theme="dark"] .component-row,
html[data-theme="dark"] .box-row{border-color:var(--line)}
html[data-theme="dark"] .thumb{background:#f8fbff;border-color:#28445f}
html[data-theme="dark"] .thumb-missing{background:#13283d;color:#7f96ae}
html[data-theme="dark"] .sku{color:#eff6ff}
html[data-theme="dark"] .pill.gray{background:#203248;color:#afbed0}
html[data-theme="dark"] .pill.blue{background:#16385f;color:#83bbff}
html[data-theme="dark"] .pill.green{background:#113c31;color:#72e5bd}
html[data-theme="dark"] .pill.red{background:#44232b;color:#ff9ba5}
html[data-theme="dark"] .filter-btn:hover{background:#18354f}
html[data-theme="dark"] .filter-btn.active{background:#164276;color:#9dcbff;box-shadow:inset 0 0 0 1px #285b8e}
html[data-theme="dark"] .customize-banner{background:#312817;border-color:#7c6331;color:#f3d38c}
html[data-theme="dark"] .color-swatch{border-color:#38506a;box-shadow:inset 0 0 0 2px rgba(255,255,255,.12)}
html[data-theme="dark"] .warning-box{background:#352b18;color:#f2c76e}
html[data-theme="dark"] .search:before{color:#71869d}
html[data-theme="dark"] input::placeholder{color:#71849a}
html[data-theme="dark"] .modal-back{background:rgba(0,5,12,.72)}


/* AirSmile Warehouse — persistent page size + verified DonBallon links */
.pagination-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.page-size{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;white-space:nowrap}
.page-size .select{padding:5px 26px 5px 8px;min-width:72px;height:31px}
.donballon-link{color:var(--accent);font-weight:700;text-decoration:none;white-space:nowrap}
.donballon-link:hover{text-decoration:underline}
html[data-theme="dark"] .donballon-link{color:#75b8ff}

/* AirSmile Warehouse central-server UI */
.mp-accounts{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;margin-bottom:14px}
.mp-account-card{padding:15px;box-shadow:none;border-left:4px solid #cbd5e1}.mp-account-card.connected{border-left-color:var(--green)}
.mp-account-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.mp-account-head b{display:block;font-size:15px}.mp-account-head span:not(.pill){display:block;color:var(--muted);font-size:11px;margin-top:4px}
.mp-account-stats{display:grid;grid-template-columns:1fr 1fr 90px;gap:8px;margin-top:13px}.mp-account-stats span{min-width:0}.mp-account-stats small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.3px}.mp-account-stats b{display:block;font-size:11px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-account-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.mp-error{margin-top:9px;padding:7px 8px;border-radius:8px;background:#fff0f1;color:#a83440;font-size:10px;max-height:48px;overflow:auto}
.mp-deadline{min-width:145px;font-size:11px;color:var(--muted)}
.security-note{padding:10px 12px;border:1px solid #cfe5db;background:#eefbf6;color:#177257;border-radius:10px;margin-bottom:14px;font-size:12px}
.cost-list{max-height:58vh;overflow:auto;border:1px solid var(--line);border-radius:12px}.cost-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,1fr) 130px;gap:10px;align-items:center;padding:9px 11px;border-bottom:1px solid var(--line)}.cost-row:last-child{border-bottom:0}.cost-input{width:100%}
.access-tabs{margin-top:22px}.access-tabs h3{font-size:15px;margin:18px 0 9px}.perm-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:11px}.perm-group{border:1px solid var(--line);border-radius:12px;padding:11px}.perm-group h4{margin:0 0 8px;font-size:12px;color:#3e5a76}.check-line{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:12px;cursor:pointer}.check-line input{margin-top:2px}
.account-access{border:1px solid var(--line);border-radius:12px;overflow:auto}.account-access-row{display:grid;grid-template-columns:130px repeat(10,minmax(105px,1fr));gap:0;border-bottom:1px solid var(--line);min-width:1250px}.account-access-row:last-child{border-bottom:0}.account-access-row>b{padding:10px;background:#f6f9fd;position:sticky;left:0;z-index:1}.account-access-row label{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;padding:8px;border-left:1px solid var(--line);font-size:9px;text-align:center;color:var(--muted);cursor:pointer}.account-access-row input{width:16px;height:16px}
.mp-account-card .btn{font-size:11px}
@media(max-width:1400px){.mp-accounts{grid-template-columns:repeat(2,1fr)}.perm-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.mp-accounts,.perm-grid{grid-template-columns:1fr}.cost-row{grid-template-columns:1fr}.mp-account-stats{grid-template-columns:1fr 1fr}}
html[data-theme="dark"] .mp-error{background:#3a1d27;color:#ff9da7}
html[data-theme="dark"] .security-note{background:#11352d;border-color:#215a4b;color:#7be2bd}
html[data-theme="dark"] .account-access-row>b{background:#10253a}
html[data-theme="dark"] .perm-group,html[data-theme="dark"] .account-access{border-color:var(--line)}

/* AirSmile Warehouse central-server UI */
.modal-back[data-kind="user-access"] .modal{width:min(1280px,98vw)}
.mp-bulk-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:13px;box-shadow:0 5px 20px rgba(30,50,80,.04)}
.mp-check-col{width:42px;min-width:42px;text-align:center}
.mp-order-check{width:17px;height:17px}
.cost-row{grid-template-columns:58px minmax(160px,1fr) minmax(120px,1fr) 130px}
.catch-results{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:8px;max-height:280px;overflow:auto;margin:10px 0 14px}
.catch-product{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:8px;display:grid;grid-template-columns:54px 1fr;gap:10px;align-items:center;text-align:left;cursor:pointer}
.catch-product:hover{border-color:#79aef5;box-shadow:0 0 0 3px rgba(22,119,255,.08)}
.catch-product small{display:block;color:var(--muted);margin-top:3px}
.catch-selected{border:1px dashed var(--line);border-radius:12px;padding:10px 12px;margin-bottom:13px;min-height:58px;display:flex;align-items:center}
.catch-choice{display:flex;gap:10px;align-items:center;color:var(--ink)}
html[data-theme="dark"] .mp-bulk-actions,html[data-theme="dark"] .catch-product{background:var(--panel);border-color:var(--line)}
@media(max-width:900px){.catch-results{grid-template-columns:1fr}.cost-row{grid-template-columns:50px 1fr 110px}.cost-row .cost-input{grid-column:2/4}}
.access-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.access-title-row h3{margin:0!important}


/* AirSmile Warehouse central-server UI */
.mp-source-cell{display:flex;flex-direction:column;gap:4px;min-width:150px}
.mp-source-select{width:100%;min-width:145px;font-size:12px;padding:7px 8px}
.mp-source-detail{display:block;color:var(--muted);line-height:1.25;white-space:normal}
.mp-source-bulk{display:flex;align-items:center;gap:7px;padding:2px 4px}
.mp-source-bulk>span{font-size:11px;color:var(--muted);font-weight:700;white-space:nowrap}
.mp-source-bulk .select{min-width:190px}
.mp-bulk-count{font-size:12px;font-weight:800;color:var(--accent);min-width:72px}

/* AirSmile Warehouse central-server UI */
.analytics-estimate-note{margin:0 0 14px;padding:12px 14px;border:1px solid rgba(229,150,21,.35);background:rgba(229,150,21,.10);border-radius:12px;color:var(--ink);font-size:12px;line-height:1.45}
.analytics-estimate-note span{color:var(--muted)}
.estimated-money{font-weight:750;color:var(--amber);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:help}
.profile-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px}
.profile-menu-note{margin-top:14px;font-size:12px;line-height:1.4}
@media(max-width:600px){.profile-menu-grid{grid-template-columns:1fr}}

/* AirSmile Warehouse central-server UI */
.analytics-toolbar{align-items:center}
.analytics-dates{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.analytics-dates>span{font-size:12px;color:var(--muted);font-weight:700}
.analytics-dates .input{width:145px}
.analytics-scheme{min-width:125px;font-weight:700}
.analytics-period-note{margin:-2px 0 10px;padding:8px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--muted);font-size:12px}
@media(max-width:900px){.analytics-dates .input{width:132px}.analytics-toolbar{align-items:stretch}}

/* AirSmile Warehouse central-server UI */
.smart-search-hint{font-size:12px;color:var(--muted);margin:-5px 2px 10px;padding-left:8px}
.editable-cell{display:flex;align-items:center;gap:7px;min-height:28px;cursor:pointer;border-radius:7px;padding:3px 5px;margin:-3px -5px;transition:background .12s ease}
.editable-cell:hover{background:rgba(22,119,255,.08)}
.editable-value{min-width:0;overflow:hidden;text-overflow:ellipsis}
.cell-pencil{opacity:0;font-size:11px;color:var(--accent);flex:0 0 auto;transition:opacity .12s ease}
.editable-cell:hover .cell-pencil{opacity:1}
.article-link{color:var(--accent2);font-weight:700;text-decoration:none}
.article-link:hover{text-decoration:underline}
.image-edit-trigger{position:relative;border:0;background:transparent;padding:0;cursor:pointer;display:inline-grid;place-items:center;border-radius:10px}
.image-edit-trigger>span{position:absolute;right:-4px;bottom:-3px;width:19px;height:19px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.image-edit-trigger:hover .thumb{outline:2px solid rgba(22,119,255,.35)}
.image-editor-preview{display:flex;justify-content:center;align-items:center;background:#f5f8fc;border:1px dashed var(--line);border-radius:14px;padding:16px;margin-bottom:16px;min-height:120px}
.image-editor-preview .thumb{width:110px;height:110px}
.kit-sku-title{font-size:13px;font-weight:600;margin-left:8px}
.gpt-setup{padding:20px;margin-bottom:14px}
.gpt-setup h3{margin:0 0 6px}.gpt-setup p{margin:0 0 14px;color:var(--muted)}
.gpt-card{overflow:hidden;min-height:calc(100vh - 150px);display:flex;flex-direction:column}
.gpt-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 16px;border-bottom:1px solid var(--line)}
.gpt-toolbar>div:first-child{display:flex;flex-direction:column;gap:3px}.gpt-toolbar>div:last-child{display:flex;gap:7px}
.gpt-messages{padding:18px;overflow:auto;flex:1;min-height:360px;max-height:calc(100vh - 330px);background:linear-gradient(180deg,rgba(22,119,255,.025),transparent)}
.gpt-msg{max-width:min(820px,88%);padding:12px 14px;border-radius:14px;margin:0 0 12px;line-height:1.45;word-break:break-word}
.gpt-msg.user{margin-left:auto;background:#eaf3ff;border:1px solid #d7e7ff}.gpt-msg.assistant{margin-right:auto;background:#f5f7fa;border:1px solid var(--line)}
.gpt-role{font-size:11px;text-transform:uppercase;letter-spacing:.3px;font-weight:800;color:var(--muted);margin-bottom:5px}
.gpt-empty{text-align:center;color:var(--muted);padding:70px 30px;line-height:1.55}
.gpt-compose{padding:14px 16px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.gpt-compose .textarea{resize:vertical;min-height:72px}.gpt-compose .btn{height:42px}
.gpt-note{font-size:11px;padding:0 16px 12px}
html[data-theme="dark"] .editable-cell:hover{background:rgba(70,150,255,.12)}
html[data-theme="dark"] .image-editor-preview{background:#0d2138}
html[data-theme="dark"] .gpt-msg.user{background:#153456;border-color:#24496f}
html[data-theme="dark"] .gpt-msg.assistant{background:#10263e;border-color:var(--line)}
@media(max-width:760px){.gpt-compose{grid-template-columns:1fr}.gpt-msg{max-width:96%}.gpt-card{min-height:70vh}}
