/* Donghaeng Platform board UI unified v3.1.0 */
:root{
  --dh-navy:#102a4c;
  --dh-blue:#1769e8;
  --dh-blue-2:#2563eb;
  --dh-blue-soft:#eef5ff;
  --dh-bg:#f4f7fb;
  --dh-card:#fff;
  --dh-line:#dbe5f1;
  --dh-line-strong:#c8d6e7;
  --dh-text:#0d1b32;
  --dh-muted:#687790;
  --dh-green:#0a8f62;
  --dh-green-soft:#eaf8f2;
  --dh-red:#d64545;
  --dh-shadow:0 18px 48px rgba(16,42,76,.08);
  --dh-radius-lg:24px;
  --dh-radius-md:16px;
  --dh-radius-sm:12px;
}

/* shared page frame */
.community-shell,.request-shell,.gb-shell,.um-wrap,.job-shell,.sp-shell,.ed-shell{
  width:min(1120px,calc(100% - 40px));
  margin:0 auto;
  padding:72px 0 96px;
}

/* shared hero */
.community-hero,.request-hero,.gb-hero,.um-hero,.job-hero,.sp-hero,.ed-hero{
  min-height:190px;
  padding:38px 42px;
  border:1px solid #d2e1f5;
  border-radius:var(--dh-radius-lg);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  background:linear-gradient(135deg,#f1f6fd 0%,#edf4ff 100%);
  box-shadow:none;
  color:var(--dh-text);
}
.community-hero,.gb-hero,.um-hero{
  color:#fff;
  border-color:transparent;
  background:linear-gradient(135deg,#173b6b 0%,#1f6fe8 100%);
  box-shadow:var(--dh-shadow);
}
.community-kicker,.request-kicker,.gb-hero>div>span,.um-hero>div>b,.job-hero>div>b,.sp-hero>div>span,.ed-hero>div>span{
  display:block;
  margin-bottom:14px;
  font-size:12px;
  line-height:1;
  letter-spacing:.14em;
  font-weight:900;
  color:var(--dh-blue);
}
.community-kicker,.gb-hero>div>span,.um-hero>div>b{color:#dbeafe}
.community-hero h1,.request-hero h1,.gb-hero h1,.um-hero h1,.job-hero h1,.sp-hero h1,.ed-hero h1{
  margin:0 0 12px;
  font-size:40px;
  line-height:1.12;
  letter-spacing:-.04em;
  font-weight:900;
}
.community-hero p,.request-hero p,.gb-hero p,.um-hero p,.job-hero p,.sp-hero p,.ed-hero p{
  margin:0;
  font-size:16px;
  line-height:1.7;
  color:var(--dh-muted);
}
.community-hero p,.gb-hero p,.um-hero p{color:rgba(255,255,255,.84)}
.community-write,.request-write,.gb-hero>a,.um-primary,.job-hero>a,.sp-primary,.ed-primary{
  flex:0 0 auto;
  min-width:120px;
  height:52px;
  padding:0 22px;
  border-radius:13px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  font-weight:900;
  color:#fff;
  background:var(--dh-blue);
  border:1px solid var(--dh-blue);
  box-shadow:0 10px 24px rgba(23,105,232,.18);
}
.community-write,.gb-hero>a{background:#fff;color:var(--dh-blue);border-color:#fff}
.um-primary{background:#1769e8;color:#fff;border-color:#1769e8}

/* messages / notices */
.community-messages,.request-messages,.request-approval-note,.gb-notice,.um-notice,.job-note{
  margin-top:18px;
  padding:14px 18px;
  border:1px solid #cfe0f8;
  border-radius:var(--dh-radius-sm);
  background:#eef6ff;
  color:#215d9b;
  font-size:14px;
  font-weight:800;
}

/* shared filter bars */
.community-toolbar,.request-filter,.gb-filter,.um-filter,.job-filter,.sp-filter,.ed-filter{
  margin:22px 0 20px;
  display:flex;
  align-items:stretch;
  gap:10px;
}
.community-search,.request-search{display:flex;flex:1;min-width:0}
.community-toolbar input,.request-filter input,.gb-filter input,.um-filter input,.job-filter input,.sp-filter input,.ed-filter input,
.request-filter select,.gb-filter select,.um-filter select,.job-filter select,.sp-filter select,.ed-filter select{
  height:52px;
  min-width:0;
  padding:0 16px;
  border:1px solid var(--dh-line-strong);
  border-radius:12px;
  background:#fff;
  color:var(--dh-text);
  font-size:15px;
  outline:none;
  box-sizing:border-box;
}
.community-toolbar input:focus,.request-filter input:focus,.gb-filter input:focus,.um-filter input:focus,.job-filter input:focus,.sp-filter input:focus,.ed-filter input:focus,
.request-filter select:focus,.gb-filter select:focus,.um-filter select:focus,.job-filter select:focus,.sp-filter select:focus,.ed-filter select:focus{
  border-color:var(--dh-blue);
  box-shadow:0 0 0 3px rgba(23,105,232,.1);
}
.community-search input,.request-search input,.gb-filter input,.sp-filter input,.ed-filter input{flex:1}
.community-search input,.request-search input{border-radius:12px 0 0 12px;border-right:0}
.community-search button,.request-search button,.request-apply,.gb-filter button,.um-filter button,.job-filter button,.sp-filter button,.ed-filter button{
  height:52px;
  padding:0 22px;
  border:0;
  border-radius:12px;
  background:var(--dh-blue);
  color:#fff;
  font-size:15px;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}
.community-search button,.request-search button{border-radius:0 12px 12px 0}
.request-apply{min-width:104px}
.community-order{display:flex;align-items:center;gap:6px;margin-left:auto}
.community-order a{
  height:42px;padding:0 14px;border-radius:10px;display:inline-flex;align-items:center;
  color:var(--dh-muted);font-size:14px;font-weight:800;text-decoration:none
}
.community-order a.active{background:#eaf2ff;color:var(--dh-blue)}

/* unified card boards: request, group-buy, used-market, jobs */
.request-grid,.gb-grid,.um-grid,.job-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}
.request-card,.gb-card,.um-card,.job-card{
  min-width:0;
  border:1px solid var(--dh-line);
  border-radius:18px;
  background:#fff;
  color:var(--dh-text);
  text-decoration:none;
  box-shadow:0 10px 30px rgba(16,42,76,.055);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
  overflow:hidden;
}
.request-card,.gb-card,.job-card{padding:24px}
.request-card:hover,.gb-card:hover,.um-card:hover,.job-card:hover{
  transform:translateY(-3px);
  border-color:#b8d0f3;
  box-shadow:0 18px 38px rgba(16,42,76,.1);
}
.request-card-top,.gb-top,.job-card>div:first-child,.um-badges{
  display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px
}
.request-card-top span,.gb-top span,.gb-top b,.job-card>div:first-child span,.job-card>div:first-child em,.um-badges span,.um-badges em{
  display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;
  background:#edf3fb;color:#52657d;font-size:12px;font-style:normal;font-weight:900
}
.request-card-top .status,.gb-top b.open,.job-card>div:first-child em,.um-badges em{
  background:var(--dh-green-soft);color:var(--dh-green)
}
.request-card.closed .status,.gb-top b:not(.open){background:#f0f2f5;color:#748094}
.request-card h2,.gb-card h2,.job-card h2,.um-card h3{
  margin:0 0 10px;font-size:21px;line-height:1.35;letter-spacing:-.025em;color:var(--dh-text)
}
.request-card>p,.gb-card>p,.job-card>p,.um-card-body>p{
  margin:0 0 18px;color:var(--dh-muted);font-size:14px;line-height:1.65
}
.request-card-info,.request-card-bottom,.job-card>small,.um-card-body>small{
  display:flex;align-items:center;justify-content:space-between;gap:12px;color:#8290a3;font-size:13px
}
.request-card-info{padding-top:16px;border-top:1px solid #edf1f6}
.request-card-bottom{margin-top:12px}
.request-card-bottom strong,.um-card-body>strong{color:var(--dh-blue);font-size:20px;font-weight:900}
.gb-card dl,.job-card dl{margin:18px 0 0;padding-top:16px;border-top:1px solid #edf1f6}
.gb-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gb-card dl div{min-width:0}
.gb-card dt,.job-card dt{font-size:12px;color:#8896a8}
.gb-card dd,.job-card dd{margin:5px 0 0;font-size:14px;font-weight:800;color:var(--dh-text)}
.job-card dl{display:grid;grid-template-columns:54px 1fr;gap:8px 10px}
.job-card>small{margin-top:16px;padding-top:14px;border-top:1px solid #edf1f6}
.um-card{display:grid;grid-template-columns:190px minmax(0,1fr)}
.um-photo{min-height:210px;background:#eef2f7;display:flex;align-items:center;justify-content:center;color:#8b98a9}
.um-photo img{width:100%;height:100%;min-height:210px;object-fit:cover;display:block}
.um-card-body{padding:22px;display:flex;flex-direction:column;min-width:0}
.um-card-body>strong{margin-top:auto;margin-bottom:10px}

/* unified list boards: community, support, education */
.community-board,.sp-list,.ed-list{
  border:1px solid var(--dh-line);
  border-radius:18px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(16,42,76,.045);
}
.community-board-head{
  display:grid;grid-template-columns:72px minmax(0,1fr) 130px 110px 70px;
  min-height:48px;align-items:center;padding:0 20px;background:#f8fafc;
  border-bottom:1px solid var(--dh-line);color:#6e7d91;font-size:12px;font-weight:900;text-align:center
}
.community-board-head span:nth-child(2){text-align:left}
.community-row{
  display:grid;grid-template-columns:72px minmax(0,1fr) 130px 110px 70px;
  min-height:76px;align-items:center;padding:0 20px;border-bottom:1px solid #edf1f6;
  color:var(--dh-text);text-decoration:none;transition:background .15s ease
}
.community-row:last-of-type{border-bottom:0}
.community-row:hover{background:#f8fbff}
.community-row.pinned{background:#fbfdff}
.community-no,.community-author,.community-row time,.community-views{text-align:center;color:#77869a;font-size:13px}
.community-no b{color:var(--dh-blue)}
.community-title{min-width:0;padding:12px 18px 12px 0}
.community-title strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
.community-title small{display:block;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8a97a8;font-size:12px}

.sp-list,.ed-list{display:block}
.sp-card,.ed-card{
  display:grid;
  align-items:center;
  gap:18px;
  padding:20px 22px;
  border:0;
  border-bottom:1px solid #edf1f6;
  border-radius:0;
  background:#fff;
  box-shadow:none;
  color:var(--dh-text);
  text-decoration:none;
  transition:background .15s ease;
}
.sp-card{grid-template-columns:150px minmax(0,1fr) 330px}
.ed-card{grid-template-columns:130px minmax(0,1fr) 240px}
.sp-card:last-child,.ed-card:last-child{border-bottom:0}
.sp-card:hover,.ed-card:hover{background:#f8fbff;transform:none}
.sp-card-top,.ed-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0}
.sp-card-top span,.sp-card-top b,.ed-meta span,.ed-meta b{
  display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;
  background:#edf3fb;color:#53667d;font-size:12px;font-weight:900
}
.sp-card-top b.open{background:var(--dh-green-soft);color:var(--dh-green)}
.sp-card h2,.ed-card h2{margin:0 0 6px;font-size:17px;line-height:1.45;letter-spacing:-.02em}
.sp-card>p,.ed-card>p{margin:0;color:var(--dh-muted);font-size:13px;line-height:1.6}
.sp-card dl{display:grid;grid-template-columns:1fr;gap:6px;margin:0}
.sp-card dl div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px}
.sp-card dt{color:#8a97a8;font-size:12px}
.sp-card dd{margin:0;color:#4f6076;font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-foot{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin:0;color:#748397;font-size:12px}
.ed-foot span{padding:5px 9px;border-radius:999px;background:#f2f5f9}

/* empty states */
.community-empty,.request-empty,.gb-grid>.empty,.um-empty,.job-empty,.sp-empty,.ed-empty{
  grid-column:1/-1;
  min-height:180px;
  padding:40px 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  border:1px dashed #cad8e8;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  color:#7b899d;
}
.community-empty{border:0;border-radius:0;background:#fff}
.community-empty strong,.request-empty strong{color:var(--dh-text);font-size:16px}
.community-empty p,.request-empty p{margin:8px 0 0}

/* pagination */
.community-pagination,.request-pagination,.pager,.um-pages,.sp-pager,.ed-pager{
  margin-top:26px;display:flex;align-items:center;justify-content:center;gap:8px
}
.community-pagination a,.community-pagination strong,.request-pagination a,.request-pagination strong,
.pager a,.pager span,.um-pages a,.um-pages span,.sp-pager a,.sp-pager span,.ed-pager a,.ed-pager span{
  min-width:38px;height:38px;padding:0 11px;border:1px solid var(--dh-line);border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#55667c;
  text-decoration:none;font-size:13px;font-weight:800
}
.community-pagination strong,.request-pagination strong{background:var(--dh-blue);color:#fff;border-color:var(--dh-blue)}

@media (max-width:900px){
  .community-shell,.request-shell,.gb-shell,.um-wrap,.job-shell,.sp-shell,.ed-shell{width:min(100% - 28px,1120px);padding:38px 0 70px}
  .community-hero,.request-hero,.gb-hero,.um-hero,.job-hero,.sp-hero,.ed-hero{padding:28px;min-height:160px}
  .community-hero h1,.request-hero h1,.gb-hero h1,.um-hero h1,.job-hero h1,.sp-hero h1,.ed-hero h1{font-size:33px}
  .community-toolbar,.request-filter,.gb-filter,.um-filter,.job-filter,.sp-filter,.ed-filter{flex-wrap:wrap}
  .community-search,.request-search,.gb-filter input,.sp-filter input,.ed-filter input{flex:1 1 100%}
  .request-filter>input,.request-filter>select,.gb-filter select,.um-filter input,.um-filter select,.job-filter input,.job-filter select,.sp-filter select,.ed-filter select{flex:1 1 calc(50% - 8px)}
  .request-grid,.gb-grid,.um-grid,.job-grid{grid-template-columns:1fr}
  .sp-card{grid-template-columns:130px minmax(0,1fr)}
  .sp-card dl{grid-column:1/-1;padding-left:148px}
  .ed-card{grid-template-columns:120px minmax(0,1fr)}
  .ed-foot{grid-column:1/-1;justify-content:flex-start;padding-left:138px}
}

@media (max-width:680px){
  .community-hero,.request-hero,.gb-hero,.um-hero,.job-hero,.sp-hero,.ed-hero{align-items:flex-start;flex-direction:column}
  .community-write,.request-write,.gb-hero>a,.um-primary,.job-hero>a,.sp-primary,.ed-primary{width:100%;box-sizing:border-box}
  .community-toolbar,.request-filter,.gb-filter,.um-filter,.job-filter,.sp-filter,.ed-filter{display:grid;grid-template-columns:1fr}
  .community-search,.request-search{width:100%}
  .community-order{margin-left:0;justify-content:flex-end}
  .community-board{overflow-x:auto}
  .community-board-head,.community-row{min-width:760px}
  .um-card{grid-template-columns:132px minmax(0,1fr)}
  .um-photo,.um-photo img{min-height:190px}
  .gb-card dl{grid-template-columns:1fr}
  .sp-card,.ed-card{grid-template-columns:1fr;gap:10px}
  .sp-card dl,.ed-foot{grid-column:auto;padding-left:0;justify-content:flex-start}
}
