
:root{
  --bg:#f4f7fb;--card:#fff;--text:#152033;--muted:#6e7a8a;--line:#e3e9f1;
  --primary:#1877f2;--primary-dark:#0f66d6;--success:#17a673;--danger:#d94b4b;
  --shadow:0 10px 30px rgba(30,55,90,.08);--radius:18px;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.app-shell{max-width:1120px;margin:0 auto;padding:18px 18px 90px}
.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}
h1,h2,h3,p{margin-top:0}
h1{font-size:26px;margin-bottom:2px}.muted{color:var(--muted)}
.tabs{display:flex;gap:8px;overflow:auto;padding:7px;background:#fff;border:1px solid var(--line);border-radius:16px;position:sticky;top:8px;z-index:20;box-shadow:var(--shadow)}
.tab{white-space:nowrap;border:0;background:transparent;padding:11px 14px;border-radius:12px;color:var(--muted);font-weight:700}
.tab.active{background:#eaf3ff;color:var(--primary)}
.page{display:none;padding-top:18px}.page.active{display:block}
.hero{background:linear-gradient(135deg,#1877f2,#54a3ff);color:white;border-radius:24px;padding:28px;display:flex;justify-content:space-between;align-items:center;gap:24px;box-shadow:var(--shadow)}
.hero h2{font-size:32px;margin-bottom:10px}.hero p{max-width:650px;opacity:.92}.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:900;opacity:.8}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:16px 0}
.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.stat{padding:18px}.stat span{font-size:22px}.stat strong{display:block;font-size:30px;margin:10px 0 2px}.stat small{color:var(--muted)}
.card{padding:20px;margin-bottom:16px}.card-head,.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.section-title{margin-bottom:16px}
.primary,.secondary,.success,.ghost,.danger-outline,.icon-btn,.file-label{border-radius:12px;padding:11px 14px;border:1px solid transparent;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.primary{background:var(--primary);color:white}.primary:hover{background:var(--primary-dark)}
.secondary,.file-label{background:#eef4fb;color:#24364e;border-color:#dbe6f3}
.success{background:var(--success);color:white}.ghost,.icon-btn{background:transparent;color:var(--muted);border-color:var(--line)}
.danger-outline{background:#fff5f5;color:var(--danger);border-color:#f0caca}.big{padding:14px 20px}
.quick-actions,.action-grid{display:flex;gap:10px;flex-wrap:wrap}
.toolbar{display:flex;gap:10px;margin-bottom:14px}
.toolbar input{flex:1}.toolbar select{min-width:160px}
input,select,textarea{width:100%;border:1px solid #d9e2ee;background:#fff;color:var(--text);border-radius:12px;padding:12px;outline:none}
input:focus,select:focus,textarea:focus{border-color:#79b2ff;box-shadow:0 0 0 3px rgba(24,119,242,.12)}
.list{display:flex;flex-direction:column;gap:10px}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.item,.product-card{background:white;border:1px solid var(--line);border-radius:16px;padding:15px;box-shadow:var(--shadow)}
.item{display:flex;justify-content:space-between;gap:12px;align-items:center}
.item-main{min-width:0}.item h3,.product-card h3{margin:0 0 6px;font-size:17px}.item a{color:var(--primary);text-decoration:none;word-break:break-all}
.item-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.tag,.pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf3fa;color:#4e6078;font-size:12px;font-weight:800}
.tag.new{background:#fff2cc;color:#896500}.tag.off{background:#f7dede;color:#9f3f3f}
.product-card .post-snippet{color:#526276;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.thumbs{display:flex;gap:8px;overflow:auto;margin-top:10px}.thumbs img{width:84px;height:84px;object-fit:cover;border-radius:12px;border:1px solid var(--line);background:#f4f4f4}
.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed #cfd8e5;border-radius:14px}
.publish-session{max-width:760px;margin:0 auto}.progress-wrap{margin-bottom:14px}.progress-meta{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px;color:var(--muted);font-weight:700}
.progress{height:10px;background:#dfe6ef;border-radius:999px;overflow:hidden}.progress div{height:100%;width:0;background:var(--primary);transition:.25s}
.publish-card{background:white;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:var(--shadow)}
.publish-card h3{font-size:26px;margin:12px 0}.post-preview{background:#f7f9fc;border:1px solid var(--line);border-radius:14px;padding:14px;margin:16px 0}
.post-preview p{white-space:pre-wrap}.post-preview a{color:var(--primary);word-break:break-all}
.warning{padding:11px 13px;border-radius:12px;background:#fff3cd;color:#7a5a00;margin-top:10px}
.center{text-align:center}.done-icon{font-size:52px}.hidden{display:none!important}.check-row{display:flex!important;align-items:center;gap:10px}.check-row input{width:auto}
dialog{width:min(620px,calc(100% - 24px));border:0;border-radius:20px;padding:0;box-shadow:0 30px 90px rgba(16,35,60,.28)}
dialog::backdrop{background:rgba(20,30,45,.48);backdrop-filter:blur(2px)}
dialog form{padding:20px}dialog label{display:block;font-weight:750;margin:12px 0}dialog label input,dialog label textarea{margin-top:6px}
.dialog-head,.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.dialog-actions{justify-content:flex-end;margin-top:18px}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(30px);opacity:0;background:#162033;color:white;padding:11px 16px;border-radius:999px;z-index:99;transition:.2s;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:760px){
  .app-shell{padding:10px 10px 88px}.topbar{padding:4px}.topbar h1{font-size:21px}.topbar .muted{display:none}
  .tabs{position:fixed;left:0;right:0;bottom:0;top:auto;border-radius:18px 18px 0 0;padding:7px 6px calc(7px + env(safe-area-inset-bottom));justify-content:space-around;z-index:50}
  .tab{font-size:11px;padding:9px 8px;flex:1;display:flex;flex-direction:column;gap:3px}.hero{padding:20px;display:block}.hero h2{font-size:26px}.hero .big{width:100%}
  .stats{grid-template-columns:1fr 1fr}.stat{padding:14px}.grid{grid-template-columns:1fr}.section-title{align-items:center}.section-title h2{font-size:22px}
  .toolbar{flex-direction:column}.toolbar select{min-width:0}.item{align-items:flex-start;flex-direction:column}.item-actions{justify-content:flex-start;width:100%}.item-actions button,.item-actions a{flex:1}
  .action-grid{display:grid;grid-template-columns:1fr 1fr}.action-grid .success,.action-grid .ghost{grid-column:span 2}.publish-card{padding:17px}.publish-card h3{font-size:22px}
}

.scanner-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(135deg,#ffffff,#f1f7ff)}
.scanner-banner p{margin:5px 0 0}
.scan-tools{display:flex;gap:8px;margin:12px 0}
.scan-review{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto;padding-right:3px}
.scan-row{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px}
.scan-row input{width:auto;margin-top:4px}
.scan-row .name{font-weight:800}
.scan-row .url{font-size:12px;color:var(--muted);word-break:break-all}
.help-list{line-height:1.8;padding-left:22px}
@media(max-width:760px){.scanner-banner{align-items:stretch;flex-direction:column}.scanner-banner button{width:100%}}

.group-counts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.count-badge{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#111923;color:#9eb0c7;font-size:12px;font-weight:700}
.count-badge b{color:#fff}

/* Panel 2.8: search keeps its own width; actions wrap on smaller screens. */
.toolbar input{min-width:0;flex:1 1 65%;width:auto;font-size:17px;min-height:50px}
.toolbar select{flex:0 1 240px;width:auto;min-width:170px}
.section-title{flex-wrap:wrap}
.group-toolbar #groupSearch{flex:1 1 420px;min-width:240px}
.bulk-panel .quick-actions{align-items:center}
.set-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}
.set-actions select{flex:1 1 220px;width:auto;min-width:180px}
.bulk-panel>label{display:block;margin:12px 0 6px;font-weight:700}
.bulk-panel>small{display:block;margin-top:10px}
.group-item .group-pick{width:22px;height:22px;flex:0 0 22px;cursor:pointer}
.group-item .item-main{flex:1}
button:disabled{opacity:.45;cursor:default}
#publishSetup>label{display:block;margin-top:14px;margin-bottom:7px}
#publishSetup #startPublishBtn{margin-top:18px}
#publishImages{flex-wrap:wrap;overflow:visible;margin-bottom:18px}
.download-photo{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.download-photo img{width:140px;height:140px;object-fit:contain}
@media(max-width:760px){
  .toolbar input,.toolbar select,.group-toolbar #groupSearch{flex:auto;width:100%;min-width:0}
  .group-item{display:grid;grid-template-columns:22px minmax(0,1fr)}
  .group-item .item-actions{grid-column:2}
  .set-actions>*{width:100%}
}

.publish-card.is-posted{background:#e8f7ee;border:3px solid #17a673;box-shadow:0 0 0 4px rgba(23,166,115,.12)}
.posted-status{background:#116b48;color:white;padding:13px 16px;border-radius:10px;font-weight:800;line-height:1.5;margin-bottom:16px}
.publish-card.is-posted .post-preview{background:#f5fff8;border-color:#acd9bf}
#publishDone button{margin:6px}

.cloud-bar{position:sticky;top:0;z-index:80;background:#143759;color:white;padding:10px 16px;font-size:14px;min-height:40px}
.cloud-bar a{color:white}.cloud-error{color:#ffd8a8}.cloud-bar button{margin:5px;border:0;border-radius:8px;padding:10px;background:white;color:#152033}
.tabs{top:48px}.app-shell[inert]{opacity:.55}
@media(max-width:760px){.tabs{top:auto}.topbar .muted{display:block;font-size:12px}.group-counts{gap:4px}.scan-tools{flex-wrap:wrap}input,select,textarea{font-size:16px}.download-photo{max-width:100%}.download-photo a,.download-photo button{min-height:44px}.toast{bottom:90px}}

/* 3.2: compact mobile publishing and shared team activity */
[hidden]{display:none!important}
.cloud-bar{position:relative;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 12px;font-size:12px;min-height:0}
.cloud-bar form{margin:0;margin-left:auto;order:2}.cloud-bar button{margin:0;padding:8px;min-height:36px}
#cloudRecovery,#cloudLoadError{flex-basis:100%;order:3}#currentUser{font-weight:700}
#cloudStatus{flex:1;text-align:right;font-size:11px}.tabs{top:8px}
#publish .section-title{margin-bottom:10px}#publish .section-title h2{font-size:22px;margin:0}#publish .section-title p{display:none}
.session-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px;font-size:12px}.session-tools .ghost{margin-left:auto;padding:7px}
.progress-wrap{margin-bottom:8px}.progress{height:5px}.progress-meta{font-size:13px}
.publish-card{padding:14px;border-radius:16px}.publish-card h3{font-size:21px;margin:8px 0;overflow-wrap:anywhere}
.posted-status{padding:8px 10px;margin-bottom:8px;font-size:13px;line-height:1.4}
.publish-card.posted-blue{background:#eaf3ff;border-color:#2675db;box-shadow:0 0 0 4px #2675db18}.posted-blue .posted-status{background:#205db0}
.post-preview{margin:8px 0;padding:9px 12px;font-size:14px}.post-preview summary{cursor:pointer;font-weight:600;min-height:26px}.post-preview p{margin:10px 0 0;overflow-wrap:anywhere}
#publishImages{display:flex;flex-direction:column;gap:8px;margin:8px 0 12px}
.download-photo{display:grid;grid-template-columns:56px 1fr 1fr;align-items:center;gap:6px;width:100%}
.download-photo img{width:56px;height:56px;object-fit:contain}.download-photo a,.download-photo button{font-size:13px;padding:8px;min-height:44px}
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.action-grid>*{min-height:44px;padding:10px 6px;font-size:15px}.action-grid .success{grid-column:span 2}.action-grid .ghost{grid-column:auto}
.product-status{font-size:13px;line-height:1.5;margin:8px 0;color:#4e6078}.product-status strong{color:#8a4e00}.author-green{background:#effaf4;border-left:5px solid #17a673}.author-blue{background:#eff5ff;border-left:5px solid #2675db}.author-old{border-left:5px solid #8995a5}
.history-item{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start}.history-item .history-pick{width:22px;height:22px;margin:0}.history-item>.tag{grid-column:2;justify-self:start}.history-tools{margin-bottom:12px;align-items:center}
#teamForm label{display:block;margin:12px 0}#teamForm button{margin-top:8px}
@media(max-width:760px){
 .tabs{top:auto;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding-left:2px;padding-right:2px}.tab{font-size:10px;padding:10px 1px;min-width:0;white-space:normal;overflow-wrap:anywhere}
 .app-shell{padding:8px 10px calc(85px + env(safe-area-inset-bottom))}.page{padding-top:8px}
 .hero{padding:16px}.hero h2{font-size:23px}.hero p{font-size:14px;margin-bottom:12px}.hero .big{font-size:15px;padding:12px}
 .publish-card{padding:12px}.publish-card h3{font-size:20px}.publish-card .tags:empty{display:none}.publish-card .tags{margin:4px 0}
 .cloud-bar{gap:5px}#currentUser{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
