/* ═══ DESIGN TOKENS ═══ */
/* (see :root below for CSS custom properties) */

/* ═══ RESET & BASE ═══ */
/* Desktop-first: min-width on shell container, not html/body */

/* ═══ LOGIN SCREEN ═══ */
#login-screen {
  position:fixed;inset:0;background:#F5F4F1;
  display:flex;align-items:center;justify-content:center;
  z-index:9999;
}
#login-screen.hidden{display:none}
.login-box{
  background:#fff;border:1px solid #E8E6E1;border-radius:12px;
  padding:40px 36px;width:380px;max-width:92vw;
  box-shadow:0 8px 32px rgba(0,0,0,.08);
}
.login-logo{font-family:'Sora',sans-serif;font-size:22px;font-weight:600;color:#1A1814;margin-bottom:4px}
.login-tagline{font-size:12px;color:#A8A49E;margin-bottom:32px;letter-spacing:1px;text-transform:uppercase}
.login-title{font-size:15px;font-weight:500;color:#1A1814;margin-bottom:20px}
.login-err{background:#FEF2F2;border:1px solid #FECACA;border-radius:6px;padding:9px 12px;font-size:12px;color:#B91C1C;margin-bottom:14px;display:none}
.login-err.show{display:block}
/* ═══ USER MENU ═══ */
.user-menu-wrap{position:relative}
.user-menu{
  position:absolute;bottom:calc(100% + 8px);left:0;right:0;
  background:#fff;border:1px solid #E8E6E1;border-radius:8px;
  box-shadow:0 4px 16px rgba(0,0,0,.1);overflow:hidden;
  display:none;z-index:100;
}
.user-menu.open{display:block}
.user-menu-item{
  padding:10px 14px;font-size:13px;cursor:pointer;
  color:#1A1814;transition:background .12s;
}
.user-menu-item:hover{background:#F5F4F1}
.user-menu-item.danger{color:#B91C1C}
.user-menu-sep{height:1px;background:#E8E6E1}
/* ═══ REMEMBER ME ═══ */
.remember-label{display:flex;align-items:center;gap:8px;cursor:pointer}
.remember-cb{display:none}
.remember-box{
  width:16px;height:16px;border:1.5px solid #D4D0C8;border-radius:4px;
  background:#fff;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  transition:all .15s;
}
.remember-cb:checked + .remember-box{background:#1A1814;border-color:#1A1814}
.remember-cb:checked + .remember-box::after{
  content:'';display:block;width:8px;height:5px;
  border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;
  transform:rotate(-45deg) translateY(-1px);
}
/* saved credential pill */
.saved-creds{
  display:none;flex-wrap:wrap;gap:6px;margin-bottom:12px;
}
.saved-creds.show{display:flex}
.cred-pill{
  display:inline-flex;align-items:center;gap:6px;
  background:#F5F4F1;border:1px solid #E8E6E1;border-radius:20px;
  padding:4px 10px 4px 8px;cursor:pointer;transition:all .15s;
  font-size:12px;color:#1A1814;
}
.cred-pill:hover{background:#EEECEA;border-color:#D4D0C8}
.cred-pill-avatar{
  width:18px;height:18px;border-radius:50%;background:#1A1814;
  color:#fff;font-size:9px;font-weight:600;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.cred-pill-del{
  margin-left:2px;color:#A8A49E;font-size:13px;line-height:1;
  transition:color .12s;
}
.cred-pill-del:hover{color:#B91C1C}
.cred-section-label{font-size:11px;color:#A8A49E;margin-bottom:6px;display:none}
.cred-section-label.show{display:block}
.perm-denied{
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;padding:80px 20px;text-align:center;
}
.perm-denied-icon{font-size:36px;margin-bottom:12px}
.perm-denied-title{font-family:'Sora',sans-serif;font-size:16px;font-weight:500;color:#1A1814;margin-bottom:6px}
.perm-denied-sub{font-size:13px;color:#A8A49E}
/* ═══ ADMIN PAGE ═══ */
.user-table th,.user-table td{padding:8px 10px}
.role-badge{display:inline-block;padding:2px 9px;border-radius:4px;font-size:11px;font-weight:500}
.role-gm{background:#EFF4FF;color:#1D4ED8}
.role-assistant{background:#F0FDF4;color:#15803D}
.role-factory-gm{background:#FFFBEB;color:#B45309}
.role-tech{background:#F1F5F9;color:#475569}
.role-quality{background:#FDF4FF;color:#7C3AED}
.role-production{background:#FFF7ED;color:#C2410C}
/* ═══ FIELD MASK ═══ */
.masked{filter:blur(5px);user-select:none;pointer-events:none;transition:filter .2s}

.prod-sec-label{font-size:11px;font-weight:600;color:var(--text3);letter-spacing:.06em;text-transform:uppercase;margin:16px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--border)}
/* Universal section divider — use instead of inline style */
.sec-divider{font-size:11px;font-weight:600;color:var(--text3);letter-spacing:.06em;text-transform:uppercase;margin:16px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--border)}
.alias-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;align-items:end;padding:14px 16px;background:var(--surface2);border-radius:10px;margin-bottom:10px;border:1px solid var(--border)}
.alias-row .form-group{margin:0}
.alias-row-actions{display:flex;align-items:flex-end;gap:8px}
.alias-row-bottom{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;padding-top:8px;border-top:1px solid var(--border);margin-top:2px}
/* 订单行左侧色条：向上延伸1px覆盖行间分隔线，保持视觉连续 */
[id^="og-line-"] td > div > div:first-child[style*="width:4px"] {
  margin-top: -1px;
  padding-top: 1px;
}

/* ═══════════════════════════════════════════════
   DESIGN TOKENS
═══════════════════════════════════════════════ */
:root {
  --bg:       #F5F4F1;
  --surface:  #FFFFFF;
  --surface2: #F9F8F6;
  --border:   #E8E6E1;
  --border2:  #D4D0C8;
  --text:     #1A1814;
  --text2:    #6B6760;
  --text3:    #A8A49E;
  --blue:     #1D4ED8;
  --blue-bg:  #DBEAFE;
  --amber:    #B45309;
  --amber-bg: #FEF3C7;
  --green:    #15803D;
  --green-bg: #DCFCE7;
  --red:      #B91C1C;
  --red-bg:   #FEF2F2;
  --slate:    #475569;
  --slate-bg: #F1F5F9;
  --sidebar-w: 220px;
  --topbar-h:  56px;
  --radius:    8px;
  --radius-sm: 5px;
  --shadow:    0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 4px 12px rgba(0,0,0,.08);
  /* Semantic aliases */
  --danger:     var(--red);
  --danger-bg:  var(--red-bg);
  --success:    var(--green);
  --success-bg: var(--green-bg);
  --warning:    var(--amber);
  --warning-bg: var(--amber-bg);
  --info:       var(--blue);
  --info-bg:    var(--blue-bg);
  /* Typography */
  --mono: 'SF Mono','Cascadia Code','Fira Code',monospace;
  --font: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  /* Convenience aliases used in markup */
  --bg1:   var(--surface);
  --bg2:   var(--surface2);
  --accent: var(--blue);
}

/* ═══════════════════════════════════════════════
   RESET & BASE
═══════════════════════════════════════════════ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:14px;-webkit-font-smoothing:antialiased}
body{
  font-family:'Noto Sans SC',sans-serif;
  background:var(--bg);color:var(--text);
  min-height:100vh;line-height:1.6;
}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,select,textarea{font-family:inherit}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}

/* ═══════════════════════════════════════════════
   LAYOUT SHELL
═══════════════════════════════════════════════ */
.shell{display:flex;height:100vh;overflow:hidden;min-width:900px}

/* ═══════════════════════════════════════════════
   SIDEBAR
═══════════════════════════════════════════════ */
.sidebar{padding-top:env(safe-area-inset-top,0px);
  width:var(--sidebar-w);min-width:var(--sidebar-w);
  background:var(--text);
  display:flex;flex-direction:column;
  overflow:hidden;flex-shrink:0;
}
.sidebar-logo{
  padding:16px 20px 14px 20px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.logo-wordmark{
  font-family:'Sora',sans-serif;
  font-size:18px;font-weight:600;
  color:#fff;letter-spacing:.5px;
}
.logo-tagline{
  font-size:10px;color:rgba(255,255,255,.35);
  margin-top:4px;letter-spacing:1.5px;text-transform:uppercase;
}
.sidebar-nav{flex:1;padding:12px 10px;overflow-y:auto}
.nav-section-label{
  font-size:10px;text-transform:uppercase;letter-spacing:1.5px;
  color:rgba(255,255,255,.25);padding:8px 10px 4px;
  font-weight:500;
}
.nav-item{
  display:flex;align-items:center;gap:9px;
  padding:9px 10px;border-radius:6px;
  color:rgba(255,255,255,.55);font-size:13px;
  cursor:pointer;transition:all .15s;
  margin-bottom:1px;user-select:none;
  position:relative;
}
.nav-item:hover{color:rgba(255,255,255,.9);background:rgba(255,255,255,.06)}
.nav-item.active{color:#fff;background:rgba(255,255,255,.12)}
.nav-item .nav-icon{width:16px;height:16px;flex-shrink:0;opacity:.7}
.nav-item.active .nav-icon{opacity:1}
.nav-badge{
  margin-left:auto;background:var(--red);color:#fff;
  font-size:10px;padding:1px 6px;border-radius:10px;
  font-family:'DM Mono',monospace;
}
.nav-badge.amber{background:var(--amber)}
.sidebar-footer{
  padding:14px 16px;
  border-top:1px solid rgba(255,255,255,.08);
}
.user-row{display:flex;align-items:center;gap:9px}
.user-avatar{
  width:30px;height:30px;border-radius:50%;
  background:rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:600;color:#fff;flex-shrink:0;
}
.user-name{font-size:12px;color:rgba(255,255,255,.7)}
.user-role{font-size:10px;color:rgba(255,255,255,.3)}

/* ═══════════════════════════════════════════════
   MAIN AREA
═══════════════════════════════════════════════ */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}

/* TOPBAR */
.topbar{
  height:var(--topbar-h);min-height:var(--topbar-h);
  background:var(--surface);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;
  padding:0 24px;gap:16px;
  flex-shrink:0;
}
.topbar-title{
  font-family:'Sora',sans-serif;
  font-size:15px;font-weight:500;
  color:var(--text);flex:1;
}
.topbar-clock{
  font-family:'DM Mono',monospace;
  font-size:12px;color:var(--text3);
}
.topbar-date{font-size:12px;color:var(--text2)}
.topbar-divider{width:1px;height:20px;background:var(--border)}
.topbar-notif{
  width:32px;height:32px;border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .15s;position:relative;
}
.topbar-notif:hover{background:var(--surface2)}
.notif-dot{
  position:absolute;top:7px;right:7px;
  width:6px;height:6px;border-radius:50%;
  background:var(--red);border:1.5px solid var(--surface);
}

/* CONTENT */
.content{flex:1;overflow-y:auto;overflow-x:auto;padding:24px;min-width:0}
.page{display:none}
.page:not(.active){display:none!important}
.page.active{display:block;animation:fadeUp .2s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* ═══════════════════════════════════════════════
   TYPOGRAPHY & UTILITIES
═══════════════════════════════════════════════ */
.page-header{margin-bottom:24px}
.page-header h1{
  font-family:'Sora',sans-serif;
  font-size:20px;font-weight:600;color:var(--text);
}
.page-header p{font-size:13px;color:var(--text2);margin-top:3px}
.section-title{
  font-size:11px;text-transform:uppercase;letter-spacing:1.5px;
  color:var(--text3);font-weight:500;margin-bottom:12px;
}
.mono{font-family:'DM Mono',monospace}
.flex{display:flex}.flex-1{flex:1}.items-center{align-items:center}
.justify-between{justify-content:space-between}
.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}
.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}
.mt-4{margin-top:16px}.mt-6{margin-top:24px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ═══════════════════════════════════════════════
   CARDS
═══════════════════════════════════════════════ */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:20px;
}
.card-sm{padding:14px 16px}
.card-title{
  font-size:12px;text-transform:uppercase;letter-spacing:1px;
  color:var(--text3);font-weight:500;margin-bottom:16px;
}
.card-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:16px;
}
.card-header .card-title{margin-bottom:0}

/* STAT CARDS */
.stat-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:20px;
  display:flex;flex-direction:column;gap:4px;
  position:relative;overflow:hidden;
}
.stat-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
}
.stat-card.blue::before{background:var(--blue)}
.stat-card.amber::before{background:var(--amber)}
.stat-card.green::before{background:var(--green)}
.stat-card.red::before{background:var(--red)}
.stat-card.slate::before{background:var(--slate)}
.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--text3);font-weight:500}
.stat-num{
  font-family:'DM Mono',monospace;
  font-size:30px;font-weight:500;color:var(--text);
  line-height:1.1;margin-top:4px;
}
.stat-unit{font-size:13px;color:var(--text2);margin-left:2px}
.stat-sub{font-size:12px;color:var(--text3);margin-top:4px}
.stat-trend{font-size:11px;margin-top:6px}
.trend-up{color:var(--green)}.trend-down{color:var(--red)}

/* ═══════════════════════════════════════════════
   STATUS TAGS
═══════════════════════════════════════════════ */
.tag{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 9px;border-radius:5px;
  font-size:11px;font-weight:600;white-space:nowrap;
  letter-spacing:.2px;
}
.tag-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}
.tag-blue{background:var(--blue-bg);color:var(--blue)}
.tag-blue .tag-dot{background:var(--blue)}
.tag-amber{background:var(--amber-bg);color:var(--amber)}
.tag-amber .tag-dot{background:var(--amber)}
.tag-green{background:var(--green-bg);color:var(--green)}
.tag-green .tag-dot{background:var(--green)}
.tag-red{background:var(--red-bg);color:var(--red)}
.tag-red .tag-dot{background:var(--red)}
.tag-slate{background:var(--slate-bg);color:var(--slate)}
.tag-slate .tag-dot{background:var(--slate)}
.tag-teal{background:#CCFBF1;color:#0F766E}
.tag-teal .tag-dot{background:#0F766E}
.tag-purple{background:#EDE9FE;color:#5B21B6}
.tag-purple .tag-dot{background:#5B21B6}

/* ═══════════════════════════════════════════════
   TABLES
═══════════════════════════════════════════════ */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
thead th{
  text-align:left;padding:8px 10px;
  font-size:11px;text-transform:uppercase;letter-spacing:.04em;
  color:var(--text3);font-weight:600;
  border-bottom:1px solid var(--border);
  white-space:nowrap;background:var(--surface2);
}
thead th:first-child{border-radius:var(--radius-sm) 0 0 0}
thead th:last-child{border-radius:0 var(--radius-sm) 0 0}
tbody td{
  padding:8px 10px;border-bottom:1px solid var(--border);
  font-size:13px;color:var(--text);vertical-align:middle;
}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:var(--surface2)}
.td-mono{font-family:'DM Mono',monospace;font-size:12px;color:var(--text2)}
.td-em{font-weight:500;color:var(--text)}

/* ═══════════════════════════════════════════════
   BUTTONS
═══════════════════════════════════════════════ */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  height:36px;padding:0 14px;border-radius:var(--radius-sm);
  font-size:12px;font-weight:500;
  transition:all .15s;white-space:nowrap;cursor:pointer;
  font-family:inherit;
}
.btn-primary{background:var(--text);color:#fff;border:1px solid var(--text)}
.btn-primary:hover{background:#333}
.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}
.btn-secondary:hover{background:var(--surface2);border-color:var(--border2)}
.btn-ghost{background:transparent;color:var(--text2);border:1px solid transparent}
.btn-ghost:hover{background:var(--surface2);color:var(--text)}
.btn-danger{background:var(--red-bg);color:var(--red);border:1px solid #FECACA}
.btn-danger:hover{background:#FEE2E2}
.btn-sm{height:28px;padding:0 10px;font-size:11px}
.btn-icon{width:32px;height:32px;padding:0;justify-content:center}

/* ═══════════════════════════════════════════════
   FORMS
═══════════════════════════════════════════════ */
.form-group{margin-bottom:14px}
.form-label{display:block;font-size:12px;font-weight:600;color:var(--text2);margin-bottom:5px}
.form-input,.form-select,.form-textarea{
  width:100%;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:8px 10px;font-size:13px;color:var(--text);
  outline:none;transition:border-color .15s;font-family:inherit;
}
.form-input,.form-select{height:36px}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--blue)}
.form-textarea{height:auto;resize:vertical;min-height:80px;line-height:1.6}

/* ═══════════════════════════════════════════════
   RISK / ALERT ITEMS
═══════════════════════════════════════════════ */
.alert-item{
  display:flex;align-items:flex-start;gap:12px;
  padding:12px 14px;border-radius:var(--radius-sm);
  border:1px solid;margin-bottom:8px;
  transition:all .15s;cursor:pointer;
}
.alert-item:last-child{margin-bottom:0}
.alert-item.high{background:#FFF8F5;border-color:#FECACA}
.alert-item.high:hover{background:#FEF2F2}
.alert-item.mid{background:var(--amber-bg);border-color:#FCD34D}
.alert-item.mid:hover{background:#FFFCE8}
.alert-item.low{background:var(--slate-bg);border-color:var(--border)}
.alert-icon{width:16px;height:16px;flex-shrink:0;margin-top:1px}
.alert-content{flex:1}
.alert-title{font-size:13px;font-weight:500;color:var(--text)}
.alert-desc{font-size:12px;color:var(--text2);margin-top:2px}
.alert-time{font-size:11px;color:var(--text3);font-family:'DM Mono',monospace;margin-left:auto;flex-shrink:0}

/* ═══════════════════════════════════════════════
   PROGRESS BAR
═══════════════════════════════════════════════ */
.prog-wrap{margin-bottom:12px}
.prog-wrap:last-child{margin-bottom:0}
.prog-header{display:flex;justify-content:space-between;margin-bottom:5px;font-size:12px}
.prog-label{color:var(--text2)}
.prog-val{color:var(--text);font-family:'DM Mono',monospace}
.prog-bar{height:5px;background:var(--border);border-radius:3px;overflow:hidden}
.prog-fill{height:100%;border-radius:3px;transition:width .8s cubic-bezier(.4,0,.2,1)}
.prog-blue{background:var(--blue)}
.prog-green{background:var(--green)}
.prog-amber{background:var(--amber)}
.prog-red{background:var(--red)}

/* ═══════════════════════════════════════════════
   TODO ITEMS
═══════════════════════════════════════════════ */
/* ── 滴答清单风格 Todo ── */
.dida-layout{display:flex;gap:0;height:calc(100vh - 120px);min-height:500px;background:var(--surface);border-radius:12px;overflow:visible;border:1px solid var(--border);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.dida-sidebar{width:220px;flex-shrink:0;background:#F7F6F3;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 0}
.dida-main{flex:1;min-width:0;display:flex;flex-direction:column;background:#fff}
.dida-smart-list{padding:0 8px;margin-bottom:8px}
.dida-smart-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;color:var(--text2);transition:background .12s;-webkit-tap-highlight-color:transparent;user-select:none}
.dida-smart-item:hover{background:rgba(0,0,0,.04)}
.dida-smart-item.active{background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.dida-smart-item .si-icon{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.dida-smart-item .si-count{margin-left:auto;font-size:11px;font-weight:600;background:var(--red);color:#fff;border-radius:10px;padding:1px 6px;min-width:18px;text-align:center}
.dida-smart-item .si-count.zero{background:var(--border2);color:var(--text3)}
.dida-sep{height:1px;background:var(--border);margin:8px 16px}
.dida-header{padding:20px 24px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.dida-header-title{font-size:18px;font-weight:700;color:var(--text)}
.dida-header-count{font-size:13px;color:var(--text3);margin-top:2px}
.dida-body{flex:1;overflow-y:auto;padding:0 0 20px}
.dida-section-label{font-size:11px;font-weight:600;color:var(--text3);letter-spacing:.06em;text-transform:uppercase;padding:16px 24px 6px;display:flex;align-items:center;gap:8px}
.dida-section-label::after{content:'';flex:1;height:1px;background:var(--border)}
.dida-item{display:flex;align-items:flex-start;gap:12px;padding:10px 24px;border-bottom:1px solid var(--border);cursor:default;transition:background .1s;position:relative}
.dida-item:hover{background:#FAFAF8}
.dida-item:hover .dida-item-del{opacity:1}
.dida-pri-bar{position:absolute;left:0;top:0;bottom:0;width:3px}
.dida-circle{width:18px;height:18px;border-radius:50%;border:2px solid var(--border2);flex-shrink:0;cursor:pointer;margin-top:2px;display:flex;align-items:center;justify-content:center;transition:all .15s;background:#fff}
.dida-circle:hover{transform:scale(1.15)}
.dida-circle.urgent{border-color:#EF4444}
.dida-circle.high{border-color:#F97316}
.dida-circle.mid{border-color:#3B82F6}
.dida-circle.low{border-color:#9CA3AF}
.dida-circle.done-c{background:#22C55E;border-color:#22C55E}
.dida-circle.done-c::after{content:'';display:block;width:8px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translateY(-1px)}
.dida-content{flex:1;min-width:0}
.dida-title{font-size:13px;font-weight:500;color:var(--text);line-height:1.4;word-break:break-all}
.dida-title.done{text-decoration:line-through;color:var(--text3);font-weight:400}
.dida-meta{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}
.dida-tag{font-size:10px;font-weight:600;padding:1px 7px;border-radius:10px;white-space:nowrap}
.dida-tag.urgent{background:#FEE2E2;color:#B91C1C}
.dida-tag.high{background:#FEF3C7;color:#B45309}
.dida-tag.mid{background:#DBEAFE;color:#1D4ED8}
.dida-tag.low{background:#F1F5F9;color:#64748B}
.dida-due{font-size:11px;color:var(--text3);display:flex;align-items:center;gap:3px}
.dida-due.overdue{color:#EF4444;font-weight:600}
.dida-due.today{color:#22C55E;font-weight:600}
.dida-owner{font-size:11px;color:var(--text3)}
.dida-order{font-size:11px;font-family:var(--mono);color:var(--blue)}
.dida-item-del{opacity:0;transition:opacity .15s}
.dida-add-bar{display:flex;align-items:center;gap:10px;padding:12px 24px;border-top:1px solid var(--border);background:#FAFAF8;flex-shrink:0}
.dida-add-input{flex:1;border:1.5px solid var(--border2);border-radius:8px;padding:9px 14px;font-size:13px;outline:none;background:#fff;transition:border-color .15s}
.dida-add-input:focus{border-color:var(--blue)}
.dida-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text3)}
.dida-empty-icon{font-size:48px;margin-bottom:12px;opacity:.4}
.dida-empty-text{font-size:13px}

/* ── Task Kanban Board ── */
.tkb-layout{display:flex;height:calc(100vh - 60px);overflow:hidden}
.tkb-sb{width:210px;background:#F8F9FA;border-right:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;padding:12px 0;overflow-y:auto}
.tkb-slabel{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:1px;padding:0 14px;margin:8px 0 3px}
.tkb-nav{display:flex;align-items:center;gap:8px;padding:7px 12px;margin:1px 8px;border-radius:7px;cursor:pointer;font-size:13px;color:var(--text2);transition:all .15s;user-select:none}
.tkb-nav:hover{background:var(--surface2);color:var(--text)}
.tkb-nav.active{background:#EEF2FF;color:#3730A3;font-weight:500}
.tkb-badge{margin-left:auto;background:#6366F1;color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px;min-width:18px;text-align:center}
.tkb-sbottom{margin-top:auto;padding:12px 10px 0}
.tkb-content{flex:1;overflow-y:auto;padding:20px 24px}
.tkb-view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.tkb-view-title{font-size:18px;font-weight:700;color:var(--text)}
.tkb-filters{display:flex;gap:6px}
.tkb-fchip{padding:4px 12px;border-radius:20px;border:1px solid var(--border);font-size:12px;background:#fff;cursor:pointer;color:var(--text2);transition:all .15s;font-family:inherit}
.tkb-fchip.on{background:#1E293B;color:#fff;border-color:#1E293B}
/* Kanban cols */
.tkb-kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:start}
.tkb-col{background:#F1F5F9;border-radius:10px;padding:10px}
.tkb-colh{display:flex;align-items:center;gap:7px;margin-bottom:10px}
.tkb-kdot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.tkb-kname{font-size:12px;font-weight:600;color:var(--text2)}
.tkb-kcount{margin-left:auto;font-size:11px;color:var(--text3)}
/* Task card */
.tkb-card{background:#fff;border-radius:8px;padding:11px 13px;margin-bottom:7px;border:1px solid #E2E8F0;cursor:pointer;transition:box-shadow .15s,transform .1s}
.tkb-card:hover{box-shadow:0 3px 12px rgba(0,0,0,.1);transform:translateY(-1px)}
.tkb-card-top{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}
.tkb-pdot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:5px}
.tkb-ctitle{font-size:13px;font-weight:500;color:var(--text);line-height:1.4;flex:1}
.tkb-card.kbdone .tkb-ctitle{text-decoration:line-through;color:var(--text3)}
.tkb-cmeta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--text3)}
.tkb-stbar{display:flex;gap:4px;margin-top:9px;padding-top:9px;border-top:1px solid #F1F5F9}
.tkb-sbtn{flex:1;padding:4px 2px;font-size:11px;font-weight:500;border:1px solid var(--border);border-radius:5px;cursor:pointer;font-family:inherit;background:none;color:var(--text3);transition:all .15s}
.tkb-sbtn:hover{background:var(--surface2)}
.tkb-sbtn.todo-on{background:#FEF3C7;color:#92400E;border-color:#FDE68A}
.tkb-sbtn.ip-on{background:#DBEAFE;color:#1E40AF;border-color:#BFDBFE}
.tkb-sbtn.done-on{background:#D1FAE5;color:#065F46;border-color:#A7F3D0}
/* List item */
.tkb-li{background:#fff;border:1px solid #E2E8F0;border-radius:8px;padding:10px 14px;margin-bottom:6px;display:grid;grid-template-columns:8px 1fr;align-items:center;gap:12px;cursor:pointer;transition:box-shadow .15s}
.tkb-li:hover{box-shadow:0 2px 8px rgba(0,0,0,.07)}
/* Section labels */
.tkb-sec{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin:16px 0 8px}
.tkb-tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-bottom:4px}
/* Order groups */
.tkb-og{margin-bottom:22px}
.tkb-og-hd{display:flex;align-items:center;gap:10px;padding-bottom:7px;border-bottom:1px solid var(--border);margin-bottom:10px}
.tkb-og-title{font-size:13px;font-weight:600;color:var(--text)}
.tkb-og-cnt{font-size:11px;color:var(--text3)}
/* Member items in sidebar */
.tkb-mem{display:flex;align-items:center;gap:8px;padding:5px 12px;margin:1px 8px;border-radius:6px;cursor:pointer;font-size:12px;color:var(--text2);transition:all .15s}
.tkb-mem:hover{background:var(--surface2)}
.tkb-av{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;flex-shrink:0}
/* Priority badge */
.pc-urgent{background:#FEE2E2;color:#991B1B;font-size:10px;padding:1px 7px;border-radius:4px;font-weight:500}
.pc-high{background:#FEF3C7;color:#92400E;font-size:10px;padding:1px 7px;border-radius:4px;font-weight:500}
.pc-mid{background:#DBEAFE;color:#1E40AF;font-size:10px;padding:1px 7px;border-radius:4px;font-weight:500}
.pc-low{background:#F0FDF4;color:#166534;font-size:10px;padding:1px 7px;border-radius:4px;font-weight:500}
.tkb-order-tag{display:inline-flex;align-items:center;gap:3px;background:#EEF2FF;color:#4F46E5;font-size:10px;font-weight:500;padding:1px 7px;border-radius:4px}
/* ── 四象限 ── */
.matrix-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1px;background:var(--border);height:100%;min-height:400px}
.matrix-quad{background:#fff;padding:14px 16px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;min-height:180px}
.matrix-quad-hd{font-size:12px;font-weight:700;display:flex;align-items:center;gap:6px;margin-bottom:4px;flex-shrink:0}
.matrix-quad-hd .mq-icon{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0}
.matrix-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;background:var(--surface2);border:1px solid var(--border);cursor:pointer;transition:background .1s}
.matrix-item:hover{background:#F0F4FF}
.matrix-item .mi-check{width:15px;height:15px;border-radius:50%;border:2px solid var(--border2);flex-shrink:0;cursor:pointer;transition:all .15s}
.matrix-item .mi-check:hover{border-color:#22C55E}
.matrix-item .mi-check.done-c{background:#22C55E;border-color:#22C55E}
.matrix-item .mi-title{font-size:12px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.matrix-item .mi-title.done{text-decoration:line-through;color:var(--text3)}
.matrix-item .mi-due{font-size:10px;color:var(--text3);flex-shrink:0}
.matrix-item .mi-due.overdue{color:#EF4444;font-weight:600}
/* ── 日程视图 ── */
.cal-grid{display:flex;flex-direction:column;height:100%;overflow-y:auto}
.cal-month-nav{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border);flex-shrink:0}
.cal-month-nav .mn-title{font-size:15px;font-weight:700;color:var(--text)}
.cal-month-nav button{background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:6px;font-size:16px;color:var(--text2);transition:background .12s}
.cal-month-nav button:hover{background:var(--surface2)}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:6px 12px 0;flex-shrink:0}
.cal-weekday{font-size:11px;font-weight:600;color:var(--text3);text-align:center;padding:4px 0}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:6px 12px 12px;flex-shrink:0}
.cal-day{min-height:64px;border-radius:8px;padding:4px;cursor:pointer;transition:background .1s;border:1px solid transparent;position:relative}
.cal-day:hover{background:var(--surface2)}
.cal-day.today{border-color:var(--blue);background:#EFF6FF}
.cal-day.other-month{opacity:.35}
.cal-day.has-tasks{background:#FAFFF4}
.cal-day-num{font-size:12px;font-weight:600;color:var(--text2);margin-bottom:3px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%}
.cal-day.today .cal-day-num{background:var(--blue);color:#fff}
.cal-task-dot{font-size:10px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px 4px;border-radius:3px;margin-bottom:1px}
.cal-task-dot.urgent{background:#FEE2E2;color:#B91C1C}
.cal-task-dot.high{background:#FEF3C7;color:#92400E}
.cal-task-dot.mid{background:#DBEAFE;color:#1E40AF}
.cal-task-dot.low{background:#F1F5F9;color:#475569}
.cal-task-dot.done{background:#DCFCE7;color:#166534;text-decoration:line-through}
.cal-day-panel{border-top:1px solid var(--border);padding:12px 20px;flex-shrink:0}
.cal-day-panel-hd{font-size:13px;font-weight:600;color:var(--text);margin-bottom:8px}
/* 旧todo兼容 */
.todo-item{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.todo-item:last-child{border-bottom:none}
.todo-check{width:17px;height:17px;border:1.5px solid var(--border2);border-radius:4px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-top:2px;transition:all .15s;background:var(--surface)}
.todo-check:hover{border-color:var(--blue)}
.todo-check.checked{background:var(--green);border-color:var(--green)}
.todo-check.checked::after{content:'';display:block;width:9px;height:6px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(-45deg) translateY(-1px)}
.todo-body{flex:1;min-width:0}
.todo-title{font-size:13px;color:var(--text)}
.todo-title.done{text-decoration:line-through;color:var(--text3)}
.todo-meta{font-size:11px;color:var(--text3);margin-top:3px;display:flex;gap:8px;align-items:center}
.todo-actions{display:flex;gap:4px;align-items:flex-start}

/* ═══════════════════════════════════════════════
   MEMO CARDS
═══════════════════════════════════════════════ */
.memo-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:16px;
  margin-bottom:10px;transition:border-color .15s;
  position:relative;
}
.memo-card:hover{border-color:var(--border2)}
.memo-card.pinned{border-left:3px solid var(--amber)}
.memo-card.pinned .pin-badge{
  display:inline-flex;align-items:center;gap:3px;
  font-size:10px;color:var(--amber);font-weight:500;
  margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px;
}
.pin-badge{display:none}
.memo-title{font-size:14px;font-weight:500;color:var(--text);margin-bottom:6px}
.memo-body{font-size:13px;color:var(--text2);line-height:1.7}
.memo-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.memo-date{font-size:11px;color:var(--text3);font-family:'DM Mono',monospace}
.memo-cat{font-size:10px;padding:2px 7px;border-radius:3px;background:var(--surface2);color:var(--text3);border:1px solid var(--border)}

/* ═══════════════════════════════════════════════
   SHIPMENT TIMELINE
═══════════════════════════════════════════════ */
/* ── order row classes（减少内嵌 style，压缩 DOM 体积）── */
.or-wrap{display:flex;flex-direction:row!important;flex-wrap:nowrap!important;align-items:stretch;min-height:54px;position:relative;overflow:visible;min-width:700px}
.or-accent{position:absolute;left:0;top:-1px;width:4px;bottom:0;border-radius:0 2px 2px 0}
.or-spacer{width:4px;flex-shrink:0}
.or-num{width:155px;min-width:155px;flex-shrink:0;padding:6px 10px;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;gap:2px}
.or-num .td-mono{font-size:13px;font-weight:700;font-family:var(--mono);letter-spacing:-.1px;cursor:pointer;border-bottom:1px dashed var(--border2);white-space:nowrap;color:var(--text)}
.or-num .sn-tag{font-size:11px;font-weight:600;font-family:var(--mono);color:var(--text2)}
.or-model{flex:1 1 220px;min-width:0;padding:6px 14px;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;gap:0;min-height:52px}
.or-model .m-main{font-size:14px;font-weight:800;font-family:var(--mono);letter-spacing:-.1px;color:var(--text)}
.or-model .m-mha{font-size:11px;color:var(--text3)}
.or-model .m-cn{font-size:13px;color:var(--text2);font-weight:500}
/* 三行固定结构，保证所有行高度一致 */
.or-m-name{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap;min-height:20px}
.or-m-tags{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-height:20px;margin-top:3px}
.or-m-price{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-height:18px;margin-top:1px}
.or-qty{width:62px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--border)}
.or-qty .q-num{font-size:22px;font-weight:900;font-family:var(--mono);line-height:1;letter-spacing:-1px;color:var(--text)}
.or-qty .q-unit{font-size:9px;color:var(--text3);text-transform:uppercase;margin-top:1px}
.or-ctn-badge{display:none}
.or-info{width:130px;flex-shrink:0;padding:0 10px;display:flex;align-items:center;gap:6px;overflow:hidden}
.or-info .i-row{display:flex;align-items:center;gap:5px}
.or-info .i-lbl{font-size:10px;font-weight:600;color:var(--text3);letter-spacing:.04em}
.or-status{width:170px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 8px;gap:2px;border-left:1px solid var(--border)}
.or-actions{width:90px;min-width:70px;flex-shrink:0;flex-grow:0;padding:0 6px;display:flex;align-items:center;gap:3px;border-left:1px solid var(--border);white-space:nowrap;overflow:hidden}
.line-menu-popup{position:absolute;right:0;top:calc(100% + 4px);background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:140px;z-index:1200;padding:4px 0;animation:fadeUp .12s ease}
.lm-item{display:block;width:100%;padding:7px 14px;text-align:left;background:none;border:none;font-size:12px;color:var(--text);cursor:pointer;white-space:nowrap;transition:background .1s}
.lm-item:hover{background:var(--bg2)}
.lm-danger{color:#EF4444!important}
.lm-danger:hover{background:#FEF2F2!important}
.lm-divider{height:1px;background:var(--border);margin:4px 0}
.or-ctn{font-family:var(--mono);font-size:11px;background:#EEF2FF;color:#3B4EC8;padding:2px 8px;border-radius:12px;white-space:nowrap}
.or-etd{font-size:11px;padding:3px 9px;border-radius:12px;background:#F1F5F9;color:var(--text3);border:1px solid transparent;font-weight:500}
.or-etd.late{background:#FEE2E2;color:#B91C1C;font-weight:700;border:1px solid #FECACA}
.or-flag{font-size:10px;font-weight:700;color:#EF4444;text-transform:uppercase;margin-bottom:1px}
.or-price{margin-top:2px;display:flex;align-items:center;gap:4px}
.or-price .p-val{font-size:12px;font-weight:600;color:#059669}
.or-price .p-unit{font-size:10px;color:var(--text3)}

/* ── 生产进度条 ── */
.prod-prog-row { background: #FAFAF7; border-top: 1px dashed var(--border); padding: 10px 16px 14px; display: flex; align-items: center; gap: 20px; }
.prod-prog-stages { display: flex; align-items: center; gap: 0; flex-shrink: 0; padding-bottom: 20px; }
.prod-prog-stage { position: relative; cursor: pointer; display: flex; align-items: center; }
.prod-prog-dot { width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--border2); background: #fff; transition: all .2s; flex-shrink: 0; z-index: 1; display: flex; align-items: center; justify-content: center; }
.prod-prog-dot:hover { border-color: var(--blue); transform: scale(1.15); }
.prod-prog-stage.done .prod-prog-dot { background: #15803D; border-color: #15803D; }
.prod-prog-stage.current .prod-prog-dot { background: #2563EB; border-color: #2563EB; box-shadow: 0 0 0 4px rgba(37,99,235,.12); }
.prod-prog-line { width: 32px; height: 2px; background: var(--border); flex-shrink: 0; }
.prod-prog-stage.done + .prod-prog-stage .prod-prog-line { background: #15803D; }
.prod-prog-lbl { position: absolute; top: 22px; left: 50%; transform: translateX(-50%); font-size: 9px; font-family: var(--mono); color: var(--text3); white-space: nowrap; font-weight: 500; }
.prod-prog-stage.done .prod-prog-lbl { color: #15803D; font-weight: 600; }
.prod-prog-stage.current .prod-prog-lbl { color: #2563EB; font-weight: 700; }
.prod-prog-bar-wrap { flex: 1; min-width: 100px; }
.prod-prog-bar-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 5px; }
.prod-prog-pct { font-family: var(--mono); font-size: 18px; font-weight: 800; color: var(--text); letter-spacing: -1px; }
.prod-prog-cur { font-size: 11px; color: var(--text3); font-weight: 500; }
.prod-prog-bar { height: 8px; background: var(--border); border-radius: 4px; overflow: hidden; }
.prod-prog-fill { height: 100%; border-radius: 4px; transition: width .4s ease; background: linear-gradient(90deg, #2563EB 0%, #15803D 100%); }

/* ── 强制订单行横向布局（覆盖所有媒体查询）── */
.or-wrap { flex-direction: row !important; flex-wrap: nowrap !important; overflow: hidden !important; }
.or-num  { width: 155px !important; flex-shrink: 0 !important; border-right: 1px solid var(--border) !important; flex-direction: column !important; }
.or-model{ flex: 1 !important; min-width: 0 !important; }
.or-qty  { display: flex !important; width: 62px !important; }
.or-ctn-badge { display: none !important; }
.or-info { display: flex !important; width: 130px !important; }
.or-status { display: flex !important; width: 170px !important; }
.or-actions { display: flex !important; width: 90px !important; overflow: hidden !important; }

/* ── 紧急订单 ── */
.og-urgent-border{outline:2px solid #EF4444;outline-offset:-1px;animation:urgentPulse 2s ease-in-out infinite}
@keyframes urgentPulse{0%,100%{outline-color:#EF4444}50%{outline-color:#FCA5A5}}
.urgent-badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px;background:#FEE2E2;color:#B91C1C;border:1px solid #FECACA}
.dash-urgent-item{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}
.dash-urgent-item:hover{background:#FFF5F5}
/* ── 产品中心重设计 ── */
.prod-client-card{background:#fff;border:1px solid var(--border);border-radius:12px;margin-bottom:16px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.prod-client-hdr{display:flex;align-items:center;gap:10px;padding:14px 18px;cursor:pointer;user-select:none;border-bottom:1px solid var(--border);transition:background .12s}
.prod-client-hdr:hover{background:var(--surface2)}
.prod-client-body{padding:16px 18px}
.prod-series-section{margin-bottom:18px}
.prod-series-section:last-child{margin-bottom:0}
.prod-series-hdr{display:flex;align-items:center;gap:6px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.prod-series-label{font-size:12px;font-weight:700;color:var(--text2);letter-spacing:.04em;text-transform:uppercase}
.prod-series-cnt{font-size:11px;color:var(--text3);font-weight:400}
.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.prod-item{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:11px 13px;cursor:pointer;transition:all .15s;position:relative;overflow:hidden}
.prod-item:hover{border-color:var(--blue);background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.06);transform:translateY(-1px)}
.prod-item-accent{position:absolute;left:0;top:0;bottom:0;width:3px}
.prod-item-model{font-size:13px;font-weight:700;font-family:var(--mono);color:var(--text);line-height:1.3;margin-bottom:2px}
.prod-item-name{font-size:11px;color:var(--text3);margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prod-item-meta{display:flex;align-items:center;justify-content:space-between;gap:4px}
.prod-item-price{font-size:11px;font-weight:600;color:#059669}
.prod-item-partno{font-size:10px;color:var(--text3);font-family:var(--mono)}
.prod-item-del{position:absolute;top:6px;right:6px;opacity:0;transition:.15s;background:#FEE2E2;border:none;border-radius:4px;width:18px;height:18px;cursor:pointer;font-size:11px;color:#DC2626;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}
.prod-item:hover .prod-item-del{opacity:1}
/* ── order group 展开动画 ── */
.og-body-wrap {
  overflow: hidden;
  transition: none;
}
/* mg-wrap 展开时不触发外层 reflow */
[id^="mg-wrap-"] {
  isolation: isolate;
}
[id^="og-body-"] {
  isolation: isolate;
}

/* ── shipment list v4 (compact) ── */
.ship-group{margin-bottom:20px}
.ship-group-hdr{
  display:flex;align-items:center;gap:8px;
  padding:6px 0 8px;
  border-bottom:2px solid var(--border);
  margin-bottom:0;
}
.ship-group-title{font-size:13px;font-weight:700;color:var(--text)}
.ship-group-count{font-size:11px;color:var(--text3);background:var(--surface2);padding:1px 8px;border-radius:10px}

/* 列表行 */
.shipment-card{
  background:var(--surface);
  border-bottom:1px solid var(--border);
  transition:background .1s;
  cursor:default;
}
.shipment-card:hover{background:#FAFAF8}
.sc-row{
  display:flex;align-items:stretch;gap:0;
  min-height:66px;
}
/* 左色条 */
.ship-mode-bar{width:4px;flex-shrink:0;align-self:stretch;background:#3B82F6}
.ship-mode-bar.ups{background:#8B5CF6}
.ship-mode-bar.done{background:#D1D5DB}
/* 柜号区 */
.sc-num-col{width:180px;flex-shrink:0;padding:8px 14px;display:flex;flex-direction:column;gap:2px}
.sc-num{font-family:'DM Mono',monospace;font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-num-empty{color:var(--text3);font-weight:400;font-style:italic;font-size:11px}
.sc-mode{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:1px 7px;border-radius:10px;width:fit-content}
.sc-mode.sea{background:#DBEAFE;color:#1E40AF}
.sc-mode.ups{background:#EDE9FE;color:#5B21B6}
/* 客户区 */
.sc-client-col{width:110px;flex-shrink:0;padding:8px 10px}
.sc-clients{display:flex;flex-wrap:wrap;gap:3px}
.sc-client-chip{font-size:11px;font-weight:600;color:#3730A3;background:#EEF2FF;padding:2px 7px;border-radius:10px;border:1px solid #C7D2FE;cursor:pointer;white-space:nowrap;transition:background .1s}
.sc-client-chip:hover{background:#E0E7FF}
/* 货物摘要区 */
.sc-cargo-col{flex:1;min-width:0;padding:8px 12px;border-left:1px solid var(--border)}
.sc-cargo-inline{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.sc-cargo-tag{font-size:11px;color:var(--text2);background:var(--surface2);padding:1px 7px;border-radius:4px;font-family:'DM Mono',monospace;white-space:nowrap}
.sc-cargo-tag.shipped{color:#16A34A;background:#F0FDF4}
.sc-cargo-note{font-size:10px;color:var(--text3);margin-top:2px}
.sc-dest{font-size:10px;color:var(--text3);margin-top:2px}
/* ETD区 */
.sc-date-col{width:120px;flex-shrink:0;padding:8px 10px;border-left:1px solid var(--border);font-size:11px;color:var(--text2);font-family:'DM Mono',monospace}
/* 进度列 — 圆点进度 */
.sc-steps-col{width:150px;flex-shrink:0;padding:10px 14px;border-left:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;gap:5px}
.sc-prog-top{display:flex;align-items:center;gap:3px;flex-wrap:nowrap;overflow:hidden}
.sc-pd{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:#E5E7EB;transition:background .2s}
.sc-pd.done{background:#16A34A}
.sc-pd.curr{background:#2563EB;box-shadow:0 0 0 2px rgba(37,99,235,.2)}
.sc-prog-frac{font-size:10px;color:var(--text3);font-family:var(--mono);margin-left:4px;flex-shrink:0;white-space:nowrap}
.sc-prog-label{font-size:11px;font-weight:500;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 状态+操作区 */
.sc-status-col{width:180px;flex-shrink:0;padding:8px 10px;border-left:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;gap:5px}
.sc-actions-col{width:64px;flex-shrink:0;padding:4px 8px;border-left:1px solid var(--border);display:flex;align-items:center;justify-content:center;gap:2px}

/* 展开详情行 */
.sc-detail{display:none;padding:10px 18px 12px 18px;border-top:1px solid var(--border);background:#FAFAF8;font-size:12px}
.sc-detail.open{display:block}

/* 出货流程 checklist */
.cl-wrap{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.cl-label{font-size:10px;color:var(--text3);margin-right:4px;flex-shrink:0}
.cl-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 9px;border-radius:20px;font-size:11px;cursor:pointer;border:1px solid var(--border);color:var(--text3);background:#fff;transition:all .15s;user-select:none}
.cl-tag:hover{border-color:#2563EB;color:#2563EB}
.cl-tag.cl-done{background:#F0FDF4;border-color:#16A34A;color:#16A34A;font-weight:600}

/* 列表容器 */
.ship-list-wrap{border:1px solid var(--border);border-radius:10px;overflow:hidden}
.ship-list-hdr{display:flex;align-items:center;background:var(--surface2);border-bottom:1px solid var(--border);padding:0}
.ship-list-hdr-cell{font-size:10px;font-weight:600;color:var(--text3);padding:6px 12px;letter-spacing:.04em;text-transform:uppercase}
/* (duplicate removed) */

/* 操作按钮区 */
.sc-actions{
  display:flex;align-items:center;gap:6px;
  padding:0 16px;border-left:1px solid var(--border);
  justify-content:center;width:80px;flex-shrink:0;
}

/* ═══════════════════════════════════════════════
   SEARCH & FILTER BAR
═══════════════════════════════════════════════ */
.toolbar{
  display:flex;align-items:center;gap:10px;
  margin-bottom:16px;flex-wrap:wrap;
}
.search-box{
  display:flex;align-items:center;gap:8px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:0 11px;
  min-width:220px;transition:border-color .15s;
}
.search-box:focus-within{border-color:var(--blue)}
.search-box input{
  border:none;background:none;outline:none;
  padding:7px 0;font-size:13px;color:var(--text);
  font-family:inherit;width:100%;
}
.search-box input::placeholder{color:var(--text3)}
.filter-select{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:7px 10px;
  font-size:12px;color:var(--text);outline:none;cursor:pointer;
  font-family:inherit;
}
.filter-select:focus{border-color:var(--blue)}

/* ═══════════════════════════════════════════════
   REPORT STYLES
═══════════════════════════════════════════════ */
.report-header{
  background:var(--text);color:#fff;
  border-radius:var(--radius);padding:28px 32px;
  margin-bottom:20px;position:relative;overflow:hidden;
}
.report-header::after{
  content:'REPORT';position:absolute;right:24px;top:50%;
  transform:translateY(-50%);
  font-family:'Sora',sans-serif;font-size:64px;font-weight:600;
  color:rgba(255,255,255,.05);letter-spacing:4px;
  pointer-events:none;user-select:none;
}
.report-title{font-family:'Sora',sans-serif;font-size:22px;font-weight:600;color:#fff}
.report-period{font-size:13px;color:rgba(255,255,255,.5);margin-top:4px;font-family:'DM Mono',monospace}
.report-section{margin-bottom:20px}
.report-section h3{
  font-size:11px;text-transform:uppercase;letter-spacing:1.5px;
  color:var(--text3);padding-bottom:10px;
  border-bottom:1px solid var(--border);margin-bottom:12px;
  font-weight:500;
}
.kv-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:7px 0;border-bottom:1px solid rgba(0,0,0,.04);
  font-size:13px;
}
.kv-row:last-child{border-bottom:none}
.kv-key{color:var(--text2)}
.kv-val{font-family:'DM Mono',monospace;font-size:13px;color:var(--text)}
.report-summary{
  background:var(--surface2);border:1px solid var(--border);
  border-radius:var(--radius);padding:20px;
  font-size:13px;color:var(--text2);line-height:2;
  white-space:pre-line;
}

/* ═══════════════════════════════════════════════
   DASHBOARD SPECIAL
═══════════════════════════════════════════════ */
.dash-welcome{
  margin-bottom:24px;
}
.dash-welcome-text{
  font-family:'Sora',sans-serif;
  font-size:22px;font-weight:500;color:var(--text);
}
.dash-welcome-sub{font-size:13px;color:var(--text2);margin-top:3px}

/* Bar chart */
.bar-chart-wrap{display:flex;align-items:flex-end;gap:4px;height:80px;padding-top:10px}
.bar-col-wrap{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px}
.bar-fill{
  width:100%;border-radius:3px 3px 0 0;min-height:3px;
  background:var(--blue);opacity:.7;transition:height .6s ease;
}
.bar-fill.today{opacity:1;background:var(--blue)}
.bar-lbl{font-size:9px;color:var(--text3);font-family:'DM Mono',monospace}
.bar-num{font-size:10px;color:var(--text2)}

/* ═══════════════════════════════════════════════
   MODAL
═══════════════════════════════════════════════ */
.modal-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,.35);backdrop-filter:blur(2px);
  z-index:1000;align-items:center;justify-content:center;
  padding:20px;
}
.modal-overlay.open{display:flex}
.modal{
  background:var(--surface);border:1px solid var(--border);
  border-radius:12px;padding:28px;width:100%;max-width:390px;
  box-shadow:var(--shadow-md);animation:fadeUp .2s ease;
  max-height:90vh;overflow-y:auto;
}
.modal h2{font-family:'Sora',sans-serif;font-size:16px;font-weight:600;color:var(--text);margin-bottom:20px}
.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}

/* ═══════════════════════════════════════════════
   NOTIFICATION TOAST
═══════════════════════════════════════════════ */
.toast{
  position:fixed;bottom:24px;right:24px;
  background:var(--text);color:#fff;
  padding:12px 18px;border-radius:var(--radius);
  font-size:13px;z-index:9999;
  transform:translateY(20px);opacity:0;
  transition:all .3s cubic-bezier(.4,0,.2,1);
  max-width:300px;box-shadow:var(--shadow-md);
}
.toast.show{transform:translateY(0);opacity:1}

/* ═══════════════════════════════════════════════
   RISK CENTER PAGE
═══════════════════════════════════════════════ */
.risk-header{
  background:var(--red-bg);border:1px solid #FECACA;
  border-radius:var(--radius);padding:16px 20px;
  display:flex;align-items:center;gap:12px;margin-bottom:20px;
}
.risk-header-icon{font-size:20px}
.risk-header-text{flex:1}
.risk-header-title{font-size:14px;font-weight:500;color:var(--red)}
.risk-header-sub{font-size:12px;color:var(--text2);margin-top:1px}

/* ═══════════════════════════════════════════════
   EMPTY STATE
═══════════════════════════════════════════════ */
.empty{padding:40px 20px;text-align:center;color:var(--text3)}
.empty-icon{font-size:28px;margin-bottom:8px}
.empty-text{font-size:13px}

/* ═══════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════ */
@media (max-width:900px){
  .sidebar{width:52px;min-width:52px}
  .logo-wordmark,.logo-tagline,.nav-section-label,.nav-item span:not(.nav-icon),.user-name,.user-role,.nav-badge{display:none}
  .nav-item{justify-content:center;padding:10px}
  .sidebar-footer{padding:10px}
  .user-row{justify-content:center}
  .user-avatar{margin:0}
  .grid-4{grid-template-columns:1fr 1fr}
  .grid-3{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .content{padding:16px}
  .grid-4,.grid-3,.grid-2{grid-template-columns:1fr}
  .sc-body{flex-direction:column}
  .sc-cargo{border-right:none;border-bottom:1px solid var(--border)}
  .sc-meta{width:100%;border-top:1px solid var(--border)}
  .sc-footer{padding:12px 16px 14px}
}

/* ═══════════════════════════════════════════════
   手机端适配 (max-width: 390px)
═══════════════════════════════════════════════ */


/* Universal status pill — inline-flex, consistent sizing */
.status-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap}

/* ── 桌面端隐藏移动端专属元素 ── */
#mobile-nav    { display: none; }
#mobile-header { display: none; }
#mobile-search-bar { display: none; }

/* ═══════════════════════════════════════════════
   iPhone 专项优化 (max-width: 390px)
═══════════════════════════════════════════════ */



@keyframes spin { to { transform: rotate(360deg); } }

/* ── Report Section Headers ── */
.rpt-sec { margin-bottom: 28px; }
.rpt-sec-hdr {
  font-size: 11px; text-transform: uppercase; letter-spacing: 1.8px;
  font-weight: 600; color: var(--text3);
  padding-bottom: 10px; border-bottom: 2px solid var(--border);
  margin-bottom: 16px; display: flex; align-items: center; gap: 10px;
}
.rpt-od-row {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 16px; border-top: 1px solid var(--border);
}
.rpt-od-row.severe { background: #FFF5F5; }
.rpt-tag-red { font-size:10px; padding:1px 7px; border-radius:4px; background:#FEE2E2; color:#B91C1C; font-weight:600; }
.rpt-tag-amber { font-size:10px; padding:1px 7px; border-radius:4px; background:#FEF3C7; color:#B45309; font-weight:600; }
.rpt-tag-green { font-size:10px; padding:1px 7px; border-radius:4px; background:#F0FDF4; color:#166534; font-weight:600; }
.rpt-tag-blue { font-size:10px; padding:1px 7px; border-radius:4px; background:#EFF6FF; color:#1D4ED8; font-weight:600; }
.rpt-sec-label {
  font-size: 11px; text-transform: uppercase; letter-spacing: 1.2px;
  color: var(--text3); margin-bottom: 10px; font-weight: 500;
}

/* ═══════════════════════════════════════════════
   PHASE 1 ENHANCEMENTS
═══════════════════════════════════════════════ */

/* Search highlight */
.hl { background:#FEF08A; border-radius:2px; padding:0 1px; color:inherit; font-weight:inherit }

/* Shipped row dimming — grey out completely-done rows */
.or-shipped-dim { opacity:.45; filter:grayscale(.3); }
.or-shipped-dim:hover { opacity:.75; filter:none; }

/* Large-order fold row */
.or-fold-row {
  padding:8px 20px;
  background:linear-gradient(180deg,var(--surface2) 0%,var(--surface) 100%);
  border-top:1px dashed var(--border);
  cursor:pointer;
  font-size:12px;font-weight:500;color:#2563EB;
  text-align:center;
  user-select:none;
  transition:background .15s;
}
.or-fold-row:hover { background:#EFF6FF; }
.or-fold-collapse {
  padding:6px 20px;
  background:var(--surface);
  border-top:1px dashed var(--border);
  cursor:pointer;
  font-size:12px;font-weight:500;color:var(--text3);
  text-align:center;
  user-select:none;
  transition:background .15s;
}
.or-fold-collapse:hover { background:var(--surface2); }

/* Floating batch action bar */
#batch-float-bar {
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
  display:none;
  align-items:center;gap:10px;
  background:var(--text);color:#fff;
  padding:10px 18px;border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.25);
  z-index:1000;
  font-size:12px;font-weight:500;
  white-space:nowrap;
  animation:floatIn .2s ease;
}
#batch-float-bar.visible { display:flex; }
@keyframes floatIn { from{opacity:0;transform:translateX(-50%) translateY(8px)} to{opacity:1;transform:translateX(-50%) translateY(0)} }
#batch-float-bar .bfb-count { font-size:13px;font-weight:700;background:rgba(255,255,255,.15);padding:2px 8px;border-radius:6px }
#batch-float-bar button {
  padding:6px 14px;border-radius:7px;border:none;cursor:pointer;
  font-size:12px;font-weight:600;
  transition:all .15s;
}
#batch-float-bar .bfb-btn-primary { background:#fff;color:var(--text) }
#batch-float-bar .bfb-btn-primary:hover { background:#f0f0f0 }
#batch-float-bar .bfb-btn-amber { background:#FEF3C7;color:#92400E }
#batch-float-bar .bfb-btn-amber:hover { background:#FDE68A }
#batch-float-bar .bfb-btn-ghost { background:transparent;color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.2) }
#batch-float-bar .bfb-btn-ghost:hover { background:rgba(255,255,255,.1);color:#fff }

/* Next-stage button on progress dots — highlight the next clickable dot */
.prod-next-hint { animation:nextPulse 1.8s ease-in-out infinite; }
@keyframes nextPulse { 0%,100%{box-shadow:0 0 0 0 rgba(37,99,235,.4)} 50%{box-shadow:0 0 0 5px rgba(37,99,235,.0)} }

/* Tooltip */
.tooltip-wrap { position:relative;display:inline-flex }
.tooltip-wrap .tooltip-box {
  display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);
  background:#1A1814;color:#fff;
  padding:5px 10px;border-radius:6px;
  font-size:11px;font-weight:400;white-space:nowrap;
  pointer-events:none;z-index:500;
  box-shadow:0 4px 12px rgba(0,0,0,.2);
}
.tooltip-wrap .tooltip-box::after {
  content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:4px solid transparent;border-top-color:#1A1814;
}
.tooltip-wrap:hover .tooltip-box { display:block }

/* ═══════════════════════════════════════════════
   柜计划管理 (CONTAINER PLANNING)
═══════════════════════════════════════════════ */
.cp-subtabs {
  display:flex;gap:4px;padding:12px 16px 0;border-bottom:1px solid var(--border);
  background:var(--surface);
}
.cp-subtab-btn {
  padding:8px 16px;border:none;background:transparent;
  font-size:13px;font-weight:500;color:var(--text3);cursor:pointer;
  border-bottom:2px solid transparent;border-radius:6px 6px 0 0;
  transition:.15s;white-space:nowrap;
}
.cp-subtab-btn:hover { color:var(--text);background:var(--surface2); }
.cp-subtab-btn.active { color:var(--accent);border-bottom-color:var(--accent);font-weight:600; }
.cp-toolbar {
  display:flex;align-items:center;gap:10px;padding:12px 16px;
  border-bottom:1px solid var(--border);flex-wrap:wrap;
}
.cp-stat-row {
  display:flex;gap:12px;padding:14px 16px;flex-wrap:wrap;
}
.cp-stat-card {
  flex:1;min-width:110px;background:#fff;border:1px solid var(--border);
  border-radius:10px;padding:14px 16px;text-align:center;
  box-shadow:0 1px 4px rgba(0,0,0,.04);
}
.cp-table-wrap {
  overflow-x:auto;padding:0 16px 16px;
}
.cp-table {
  width:100%;border-collapse:collapse;font-size:13px;min-width:800px;
}
.cp-table thead th {
  padding:9px 10px;background:var(--surface2);border-bottom:2px solid var(--border);
  font-size:11px;font-weight:600;color:var(--text3);text-align:left;
  white-space:nowrap;position:sticky;top:0;z-index:1;
}
.cp-table tbody td {
  padding:9px 10px;vertical-align:middle;
}
.cp-plan-row:hover td { background:var(--surface2); }
.cp-detail-hdr {
  display:flex;align-items:flex-start;gap:12px;padding:14px 16px;
  border-bottom:1px solid var(--border);background:#F8FAFF;flex-wrap:wrap;
}
.cp-status-stepper {
  display:flex;align-items:center;gap:0;padding:12px 16px;
  overflow-x:auto;background:var(--surface);border-bottom:1px solid var(--border);
}
.cp-step {
  display:flex;flex-direction:column;align-items:center;gap:4px;
  cursor:pointer;padding:4px 6px;border-radius:6px;transition:.12s;flex-shrink:0;
}
.cp-step:hover { background:var(--surface2); }
.cp-step-dot {
  width:10px;height:10px;border-radius:50%;background:#CBD5E1;transition:.2s;
}
.cp-step-active .cp-step-dot { width:14px;height:14px; box-shadow:0 0 0 3px rgba(0,0,0,.12); }
.cp-step-label { font-size:10px;color:var(--text3);white-space:nowrap; }
.cp-step-active .cp-step-label { color:var(--text);font-weight:600; }
.cp-step-done .cp-step-label { color:var(--text2); }
.cp-step-line {
  flex:1;min-width:8px;height:2px;background:#E2E8F0;align-self:center;
  margin-bottom:14px;flex-shrink:0;
}
.cp-exc-row {
  display:flex;align-items:center;gap:10px;padding:10px 14px;
  border-radius:8px;margin-bottom:6px;font-size:13px;
}
.cp-exc-critical { background:#FFF5F5;border:1px solid #FECACA; }
.cp-exc-warning  { background:#FFFBEB;border:1px solid #FDE68A; }

/* ── Compact mode ─────────────────────────────────────── */
body.compact-mode .or-wrap { min-height: 32px !important; }
body.compact-mode .or-wrap > div { padding-top: 4px !important; padding-bottom: 4px !important; }
body.compact-mode #prod-dots-wrapper,
body.compact-mode [id^="prod-dots-"] { transform: scale(0.85); transform-origin: left center; }
body.compact-mode .or-fold-row { padding: 3px 8px !important; font-size: 11px !important; }
body.compact-mode table td, body.compact-mode table th { padding: 4px 8px !important; font-size: 11px !important; }

/* ── CP pool summary bar ─────────────────────────────── */
#cp-pool-summary b { color: var(--text); }

/* ── Dispatch Hub (发运调度中心) ─────────────────────────────── */
.dh-board {
  display: flex;
  height: calc(100vh - 175px);
  min-height: 480px;
  overflow: hidden;
}

.dh-pool {
  width: 320px;
  min-width: 260px;
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  background: #fff;
  flex-shrink: 0;
}

@media (max-width: 900px) {
  .dh-board { flex-direction: column; height: auto; }
  .dh-pool { width: 100%; min-width: 0; border-right: none; border-bottom: 1px solid var(--border); max-height: 340px; }
}

.dh-pool-row {
  position: relative;
  border-bottom: 1px solid var(--border);
  cursor: grab;
  transition: box-shadow .1s;
  overflow: hidden;
}
.dh-pool-row:hover { background: #F8F7F4 !important; }
.dh-pool-row:active { cursor: grabbing; }
.dh-pool-row[draggable="true"]:hover { box-shadow: inset 3px 0 0 #2563EB; }

.dh-kanban {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: #F8F7F4;
  min-width: 0;
}

.dh-card {
  background: #fff;
  border-radius: 10px;
  border: 1px solid var(--border);
  padding: 14px;
  position: relative;
  transition: box-shadow .15s, border-color .15s;
}
.dh-card:hover { box-shadow: 0 2px 12px rgba(0,0,0,.07); }
.dh-card.dh-drag-over {
  border-color: #2563EB !important;
  box-shadow: 0 0 0 3px rgba(37,99,235,.15) !important;
}

/* ── Dispatch hub on small screens ── */
@media (max-width: 1100px) {
  .dh-pool { width: 280px; }
}
