:root{--line:#d9e2ee;--navy:#102b4a;--blue:#2863eb;--muted:#64748b}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:#f1f3f5;color:#203047;font:13px/1.5 "Microsoft YaHei",Arial}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid #cedbef;background:white;color:#204d80;padding:6px 10px;border-radius:5px;min-height:30px}button:disabled{opacity:.5;cursor:default}.btn{background:var(--blue);color:white;border:1px solid var(--blue)}a{color:#245fa5;text-decoration:none}.app{display:grid;grid-template-columns:184px minmax(0,1fr);min-height:100vh}.side{position:fixed;inset:0 auto 0 0;width:184px;overflow:auto;padding:16px 8px;background:var(--navy);color:white}.brand{font-size:19px;font-weight:800;margin:0 6px 18px}.brand small{display:block;font-size:11px;color:#b8cce5;margin-top:4px}#who{font-size:12px;padding:0 7px}.nav a{display:block;padding:10px 8px;color:#dce8f6;border-radius:3px;margin:3px 0}.nav a[aria-current=page]{background:#2c557e;box-shadow:inset 3px 0 #62a2ff}.client-ui .main{grid-column:2;width:100%;max-width:none!important;margin:0;padding:14px!important;min-width:0}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.top h1{margin:0;font-size:20px}#portalMessage{margin:4px 0 8px;min-height:20px;color:#52677f}#err{color:#b91c1c}.panel{border:1px solid var(--line);background:white;border-radius:4px;padding:12px;margin-bottom:12px;min-width:0}.login{max-width:420px;margin:12vh auto}.login h1{font-size:23px}.login .btn{width:100%;margin:12px 0}label{display:block;color:#41556e;font-size:12px}input,select,textarea{display:block;width:100%;border:1px solid #c9d7e8;background:white;padding:7px;border-radius:5px;min-height:32px;margin-top:4px}textarea{resize:vertical}input[type=checkbox]{display:inline;width:auto;min-height:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #3478e4;outline-offset:2px}.workspace-tabs{display:flex;flex-wrap:wrap;gap:3px;border:1px solid var(--line);background:white;padding:5px;margin-bottom:8px}.workspace-tabs button{border:0;border-radius:0}.workspace-tabs button.active{background:#edf4ff;color:#1f58d3;border-bottom:2px solid #2863eb}.workspace-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:1px;border:1px solid var(--line);background:var(--line);margin-bottom:10px}.workspace-cards>span,.workspace-cards>button{padding:9px;background:white;border:0;border-radius:0;text-align:left}.workspace-cards b{font-size:17px;margin-left:7px}.workspace-filter{padding:10px;background:white;border:1px solid var(--line);margin-bottom:8px}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:end}.filter-grid .span2{grid-column:span 2}.filter-actions{display:flex;gap:7px;flex-wrap:wrap}.advanced{padding:8px 10px;border:1px solid var(--line);background:white;margin:8px 0}.advanced>summary{cursor:pointer;color:#245fa5}.advanced[open]>.filter-grid{margin-top:10px}.workspace-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:9px 0}.workspace-actions h2{font-size:16px;margin:0 auto 0 0}.workspace-actions input{width:260px;margin:0}.workspace-table{max-width:100%;overflow:auto;border:1px solid var(--line);background:white;scrollbar-gutter:stable}.workspace-table table{width:100%;border-collapse:collapse;min-width:1000px;font-size:12px}.workspace-table th,.workspace-table td{text-align:left;padding:8px;border-bottom:1px solid #e5ebf4;vertical-align:middle}.workspace-table th{background:#edf1f6;white-space:nowrap;color:#314a68}.workspace-table tr:nth-child(even){background:#f2f7fd}.workspace-table td{overflow-wrap:anywhere}.sort-heading{border:0;background:none;padding:0;min-height:24px;color:inherit;font-weight:bold}.link{padding:0;border:0;background:none}.tag{display:inline-block;padding:2px 7px;border-radius:12px;background:#eef2f7;white-space:nowrap}.tag.success{background:#dbfbe6;color:#19734d}.tag.warning{background:#fff4cf;color:#9c5b0c}.attention td{background:#fff0f2!important;color:#bd263a}.workspace-pager{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:10px;background:white;border:1px solid var(--line);border-top:0;flex-wrap:wrap}.workspace-pager>span:first-child{margin-right:auto}.workspace-pager label{display:flex;align-items:center;gap:6px}.workspace-pager select{width:65px;margin:0}.hint{color:var(--muted);font-size:12px}.material-intake-grid{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);gap:12px}.material-upload-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}fieldset{border:1px solid var(--line);padding:10px;min-width:0}fieldset label{margin:10px 0}h2{font-size:17px;margin:0 0 10px}.draft-card{border-top:1px solid var(--line);margin-top:10px;padding:8px 0}.draft-card summary{cursor:pointer;overflow-wrap:anywhere}.draft-card label{margin:8px 0}#materialRuns details{border-top:1px solid var(--line);padding:10px 0}#materialRuns summary{cursor:pointer}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.detail-grid p{margin:4px 0;overflow-wrap:anywhere}dialog{width:min(1200px,96vw);max-height:92vh;overflow:auto;border:1px solid #cdd9e9;padding:16px;border-radius:6px;color:#203047}dialog::backdrop{background:#0f172a80}dialog>header{position:sticky;top:-16px;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:10px 0;background:white;margin-bottom:12px}dialog>header h2{margin:0;min-width:0;overflow-wrap:anywhere}dialog>header>button{width:34px;height:34px;flex:0 0 34px;padding:0}.message{padding:10px;border-bottom:1px solid var(--line);white-space:pre-wrap}.message small{color:var(--muted)}#clientDialog form label{margin:10px 0}@media(max-width:1000px){.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.material-intake-grid{grid-template-columns:1fr}}@media(max-width:700px){.app{display:block}.side{position:static;width:auto;padding:10px}.brand{margin-bottom:6px}.nav{display:flex;flex-wrap:wrap;gap:4px}.nav a{padding:7px}.client-ui .main{padding:10px!important}.filter-grid,.material-upload-groups,.detail-grid{grid-template-columns:1fr}.filter-grid .span2{grid-column:auto}.login{margin:8vh 12px}.workspace-actions input{width:100%}}

/* ===== 20261102-002 客户端布局密度（对齐主端 2/3 数据区指标） =====
   客户端 body 是 .client-ui，不继承主端 body.baila-layout-v1 的密度规则，
   原页头 376/430px（订单/船期），远低于 2/3 数据区要求。此处按主端同一套
   压缩手法处理：标题下留白、空占位段、状态标签条、统计卡、筛选表单。 */
@media screen {
  /* 1) 标题行：margin-bottom 18px → 4px，字号降一档 */
  body.client-ui main.main > header.top { margin-bottom: 4px !important; min-height: 0 !important; }
  body.client-ui main.main > header.top h1 {
    font-size: 19px !important; line-height: 1.2 !important; margin: 0 !important;
  }
  body.client-ui main.main > header.top .btn,
  body.client-ui main.main > header.top button {
    height: 26px !important; min-height: 0 !important; padding: 0 10px !important;
    font-size: 12px !important; line-height: 24px !important;
  }

  /* 2) 标题下方的空占位段（无文本，仅贡献 20px + 12px 外边距） */
  body.client-ui main.main > p:empty { display: none !important; }

  /* 3) 状态标签条 */
  body.client-ui .workspace-tabs { margin-bottom: 4px !important; gap: 4px !important; min-height: 0 !important; }
  body.client-ui .workspace-tabs button {
    height: 28px !important; min-height: 0 !important; padding: 0 12px !important;
    font-size: 12px !important; line-height: 26px !important;
  }

  /* 4) 统计卡 */
  body.client-ui .workspace-cards { margin-bottom: 4px !important; min-height: 0 !important; }
  body.client-ui .workspace-cards > span {
    padding: 4px 10px !important; min-height: 0 !important; line-height: 1.2 !important;
    font-size: 12px !important;
  }
  body.client-ui .workspace-cards b { font-size: 15px !important; line-height: 1.2 !important; }

  /* 5) 筛选表单 */
  body.client-ui .workspace-filter { padding: 6px 8px !important; margin-bottom: 4px !important; }
  body.client-ui .workspace-filter .filter-grid { gap: 4px 8px !important; }
  body.client-ui .workspace-filter label {
    font-size: 11px !important; line-height: 1.2 !important; margin-bottom: 0 !important;
  }
  body.client-ui .workspace-filter :is(input, select) {
    height: 28px !important; font-size: 12px !important; margin-top: 2px !important;
  }
  body.client-ui .workspace-filter .filter-actions { margin-top: 2px !important; }
  body.client-ui .workspace-filter .btn {
    height: 28px !important; min-height: 0 !important; font-size: 12px !important; line-height: 26px !important;
  }

  /* 6) 折叠条（更多筛选 等） */
  body.client-ui details.advanced { margin: 2px 0 !important; }
  body.client-ui details.advanced > summary {
    padding: 2px 0 !important; line-height: 1.3 !important; font-size: 12px !important;
  }
}

/* Desktop: keep search controls and action buttons together where space allows. */
@media screen and (min-width:1200px) {
  body.client-ui .workspace-filter .filter-grid {
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
}
