:root{
      --bg:#ffffff;
      --text:#111111;
      --muted:#666666;
      --line:#dddddd;
      --soft:#f7f7f7;
      --card:#ffffff;
      --chip:#f5f5f5;
      --stockbg:#f8f8f8;
      --out:#c63e3e;
      --in:#2563eb;
      --radius:0px;
      --log-cols: 88px 84px 130px 120px 100px;
      --request-cols: 88px 84px 130px 112px 120px 100px;
      --blue:#2563eb;
      --bluebg:#eef4ff;
      --blueLine:#dbeafe;
      --danger:#c63e3e;
      --dangerBg:#fff5f5;
      --dangerLine:#ffefef;
      --saMint:#84cdc9;
      --page-accent:#111111;
      --page-accent-soft:#f7f7f7;
      --header-h:72px;
      --max:1260px;
      --content-max:1040px;
    }

    *{box-sizing:border-box}

    body.preboot #app,
    body.preboot .fab{
      visibility:hidden;
    }

    html{scroll-behavior:smooth; overflow-x:hidden}

    body{
      margin:0;
      overflow-x:hidden;
      font-family:'Pretendard', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", sans-serif;
      background:var(--bg);
      color:var(--text);
      line-height:1.5;
      word-break:keep-all;
    }

    body.mode-request,
    body.mode-list,
    body.mode-admin{
      --page-accent:#111111;
      --page-accent-soft:#f7f7f7;
    }

    .wrap{
      width:min(calc(100% - 100px), var(--content-max));
      margin:0 auto;
      padding:0 0 80px;
    }

    .topbar{
      position:sticky;
      top:0;
      z-index:90;
      min-height:64px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:20px;
      padding:16px 0;
      margin:0 0 2px;
      background:rgb(255, 255, 255);
      backdrop-filter:blur(14px);
      border-bottom:none;
    }

    .brand{
      color:inherit;
      text-decoration:none;
      display:inline-flex;
      align-items:center;
      gap:8px;
      min-width:0;
      margin-left:12px;
      font-family:"Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
      font-weight:600;
      letter-spacing:-0.02em;
    }

    .brand a{
      color:inherit;
      text-decoration:none;
      min-width:0;
    }

    h1{
      font-size:9px;
      font-weight:500;
      margin:0;
      letter-spacing:-0.02em;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
      -webkit-font-smoothing:antialiased;
      -moz-osx-font-smoothing:grayscale;
    }



    #topTitle{
      display:flex;
      align-items:center;
      min-width:0;
    }

    .topLogo{
      height:22px;
      width:auto;
      max-width:150px;
      object-fit:contain;
      display:block;
    }

    .catalogTopSearch{
      width:140px;
      height:30px;
      border:none !important;
      border-bottom:1px solid #ccc !important;
      border-radius:0;
      background:transparent !important;
      outline:none;
      padding:0 30px 6px 0 !important;
      font-size:11px;
      font-family:inherit;
      color:#111;
      box-shadow:none !important;
      -webkit-appearance:none;
      appearance:none;
    }

    .catalogTopSearch:focus{
      border-bottom-color:#2a2a2aae !important;
    }

    body.mode-request .topbarLogo{
      position:relative;
      min-width:140px;
      padding-right:0;
      margin-left:auto;
    }

    body.mode-request .topbarLogo:has(.catalogTopSearch)::after{
      content:"";
      position:absolute;
      right:0;
      top:50%;
      transform:translateY(-50%);
      width:18px;
      height:18px;
      background:url('https://cdn-icons-png.flaticon.com/512/622/622669.png') no-repeat center/contain;
      opacity:.6;
      pointer-events:none;
      filter:grayscale(1);
    }

    .search{
      display:flex;
      gap:8px;
      align-items:center;
      justify-content:flex-end;
      margin-left:auto;
      flex:0;
    }

    .search input{
      width:min(150px, 100%);
      height:30px;
      padding:0 12px;
      border:1px solid var(--line);
      border-radius:0;
      outline:none;
      font-size:11px;
      background:#fff;
    }

    #doSearch{
  height:30px;
  padding:0 14px;
  border:none;
  background:#292929;   /* 항상 보이게 */
  color:#fff;
  font-size:12px;
  cursor:pointer;
}

#doSearch:active{
  background:#000;
}

#doSearch:hover{
  background:#444;
}

    .search input:focus{
      border-color: #2a2a2aae;
    }

    .topbarLogo{
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex:0 0 auto;
      gap:8px;
      margin-left:8px;
      padding-right:0;
      min-width:auto;
      width:auto;
    }

    .topbar img{
  width:auto !important;
  height:22px !important;
  max-width:140px !important;
  object-fit:contain;
  display:block;
}

/* 모바일 */
@media (max-width:640px){
  .topbar img{
    height:18px !important;
    max-width:110px !important;
  }
}

    .topbar.no-search .topbarLogo{
      display:flex;
    }

    .topbarLogo.show{ display:flex; }

    
  

    .pill{
      height:36px;
      padding:0 16px;
      border:1px solid transparent;
      border-radius:0px;
      background:none;
      font-size:12px;
      cursor:pointer;
      user-select:none;
      white-space:nowrap;
      font-weight:500;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      transition:.2s ease;
    }

    .pill:hover,
    .btn:hover,
    .sheetClose:hover,
    .dangerBtn:hover,
    .authBtn.cancel:hover,
    .stockInlineMini:hover,
    .selDelBtn:hover,
    .miniBtn:hover{
      
      border-color:var(--line);
      background:#292929 !important;
      border-color:#292929 !important;
      color:#fff !important
    }

    .section{ margin-top:34px; }

    /* ===== 도록 이미지 메뉴 / 상세 ===== */
    .catalogMenuSection{
      position:relative;
      left:50%;
      width:100vw;
      margin-left:-50vw;
      margin-bottom:20px;
      padding:0;
      background:#eeeeee95;
      overflow:hidden;
    }

    .catalogMenuSection > *{
      width:min(calc(100% - 64px), 1040px);
      margin:0 auto;
    }

    .catalogMenuInner{
      padding:40px 0 40px;
    }

    .catalogMenuHead{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      margin:4px 0 18px;
    }

    .catalogMenuTitleGroup{
      display:flex;
      align-items:center;
      gap:10px;
      min-width:0;
      color:#fff;
    }

    .catalogMenuTitle{
      margin:0;
      font-size:13px;
      font-weight:600;
      letter-spacing:-0.03em;
      color:#1f1f1f;
      line-height:1;
    }

    .catalogMenuDivider{
      font-size:16px;
      color:#1f1f1f;
      line-height:1;
      transform:translateY(-1px);
    }

    .catalogMenuTitleSub{
      font-size:15px;
      font-weight:400;
      color:#1f1f1f;
      letter-spacing:-0.02em;
      white-space:nowrap;
      line-height:1;
    }

    .catalogMenuAction{
      display:inline-flex;
      align-items:center;
      gap:6px;
      font-size:14px;
      font-weight:400;
      color:#1f1f1f;
      white-space:nowrap;
      letter-spacing:-0.02em;
      border:0;
      background:transparent;
      padding:0;
      margin:0;
      cursor:pointer;
      font-family:inherit;
    }

    .catalogMenuGrid{
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:22px;
      min-width:0;
      align-items:stretch;
    }

    .catalogMenuCard{
      width:100%;
      min-width:0;
      border:0;
      background:transparent;
      padding:0;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:flex-start;
      gap:10px;
      text-align:center;
      overflow:visible;
      appearance:none;
      -webkit-appearance:none;
      cursor:pointer;
    }

    .catalogMenuThumb{
      width:100%;
      aspect-ratio:3 / 4;
      display:flex;
      align-items:center;
      justify-content:center;
      background:transparent;
      border:0;
      overflow:visible;
    }

    .catalogMenuThumb img,
    .catalogMenuThumb .catalogMenuThumbImg{
      width:80% !important;
      height:80% !important;
      max-width:80% !important;
      max-height:80% !important;
      object-fit:contain !important;
      display:block;
      margin:0 auto;
    }

    .catalogMenuThumbPlaceholder{
      width:62%;
      aspect-ratio:3 / 4;
      display:flex;
      align-items:center;
      justify-content:center;
      color:rgba(255,255,255,0.45);
      font-size:12px;
      border:1px dashed rgba(255,255,255,0.18);
      background:transparent;
    }

    .catalogMenuLabel{
      width:100%;
      min-height:25px;
      display:flex;
      align-items:flex-start;
      justify-content:center;
      text-align:center;
      font-size:16px;
      line-height:1.22;
      letter-spacing:-0.03em;
      white-space:normal;
      word-break:keep-all;
      overflow-wrap:break-word;
      color:#1f1f1f;
      font-weight:500;
      margin-top:-20px;  /* ← 핵심 */
    }

    .catalogDetailPage{
      width:min(100%, 1200px);
      margin:0 auto;
      padding:0;
    }

    .catalogDetailMeta{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      margin:2px 0 34px;
    }

    .catalogDetailSub{
      display:flex;
      align-items:center;
      gap:10px;
      font-size:15px;
      font-weight:400;
      color: #555555;
      white-space:nowrap;
      letter-spacing:-0.03em;
      
    }

    .catalogDetailSub small{
      font-size:15px;
      font-weight:400;
      color:#666;
      letter-spacing:-0.02em;
    }

    .catalogControlLabel,
    .catalogStockCaption,
    .catalogGalleryTitle{
      margin:0 0 8px;
      font-size:12px;
      font-weight:500;
      color:#666;
      letter-spacing:-0.02em;
    }

    .catalogDetailControlRow{
      display:grid;
      grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1fr) 164px;
      gap:12px;
      align-items:center;
      margin-bottom:20px;
    }

    .catalogSelectWrap{
      position:relative;
      min-width:0;
    }

    .catalogSelect{
      width:100%;
      height:44px;
      border:1px solid #dcdcdc;
      border-radius:0;
      background:#fff;
      padding:0 42px 0 16px;
      font-size:14px;
      font-weight:500;
      color:#444;
      outline:none;
      appearance:none;
      -webkit-appearance:none;
      cursor:pointer;
    }

    .catalogSelectArrow{
      position:absolute;
      right:14px;
      top:50%;
      transform:translateY(-52%);
      pointer-events:none;
      font-size:13px;
      color:#555;
    }

    .catalogDetailAction{
      margin:0;
    }

    .catalogDetailSubmit{
      width:100%;
      height:44px;
      border:0;
      border-radius:0;
      background:#2c2c2c;
      color:#fff;
      font-size:14px;
      font-weight:700;
      cursor:pointer;
    }

    .catalogDetailSubmit:hover{
      opacity:.92;
    }

    .catalogStockBox{
      border:1px solid #dcdcdc;
      background:#fff;
      margin-bottom:28px;
    }

    .catalogStockRow{
      display:grid;
      grid-template-columns:180px minmax(0, 1fr);
      min-height:52px;
      align-items:center;
    }

    .catalogStockLabel,
    .catalogStockValue{
      display:flex;
      align-items:center;
      justify-content:center;
      min-height:52px;
      font-size:13px;
      color:#222;
      font-weight:600;
    }

    .catalogStockValue{
      position:relative;
      font-size:15px;
      font-weight:700;
    }

    .catalogStockValue::before{
      content:"";
      position:absolute;
      left:0;
      top:50%;
      transform:translateY(-50%);
      width:1px;
      height:22px;
      background:#dcdcdc;
    }

    .catalogGalleryGrid{
      display:grid;
      grid-template-columns:repeat(5, minmax(0, 1fr));
      gap:32px 36px;
      margin-bottom:26px;
    }

    .catalogGalleryItem{
      width:100%;
      aspect-ratio:3 / 4;
      overflow:hidden;
      background:#f3f3f3;
      border:1px solid #e1e1e1;
      display:flex;
      align-items:center;
      justify-content:center;
    }

    .catalogGalleryItem img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
    }

    .catalogGalleryPlaceholder{
      width:100%;
      height:100%;
      display:flex;
      align-items:center;
      justify-content:center;
      color:#b5b5b5;
      font-size:11px;
      background:#f6f6f6;
    }

    .secHead{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin:0 0 18px;
      padding-bottom:10px;
      border-bottom:none;
    }

    /* 상세/리스트 들어갔을 때만 선 보이게 */
    .body.mode-request .topbar.no-search{
  border-bottom:none !important;
}

.secHeadTitle{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}

.secHeadAction{
  display:flex;
  align-items:center;
  flex:0 0 auto;
}

.sectionAddBtn{
  background:#84cdc9 !important;
  border-color:#84cdc9 !important;
  color:#fff !important;
}

.sectionAddBtn:hover{
  background:#73c1bc !important;
  border-color:#73c1bc !important;
  color:#fff !important;
}

.sectionAddBtn:active{
  background:#fff !important;
  border-color:#84cdc9 !important;
  color:#84cdc9 !important;
}

    .secHead h2{
      margin:0;
      font-size:12px;
      color:var(--muted);
      font-weight:500;
      letter-spacing:0em;
      text-transform:uppercase;
    }

    .list{ display:flex; flex-direction:column; gap:14px; }

    body.mode-request .list,
    body.mode-list .list,
    body.mode-admin .list{
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:14px;
    }

    .row{
      display:grid;
      grid-template-columns:minmax(0, 1fr) 150px;
      gap:0;
      align-items:stretch;
    }

    /* 와인박스(1구) 아래 여백 */
    .row.wineboxGap{
      margin-bottom:36px;
    }

    .card{
      border:1px solid var(--line);
      border-right:0;
      border-radius:var(--radius) 0 0 var(--radius);
      background:#fff;
      padding:14px;
      display:flex;
      gap:14px;
      align-items:center;
      min-height:100px;
      cursor:pointer;
      transition:transform .18s ease, border-color .18s ease;
    }

    .card:hover{
      transform:translateY(-2px);
      border-color:#ededed;
    }

    .card:active{ transform:translateY(0); }

    .thumb{
      width:82px;
      height:82px;
      border-radius:0;
      background:#ffffff;
      display:flex;
      align-items:center;
      justify-content:center;
      flex:0 0 auto;
      overflow:hidden;
      border:1px solid #efefef;
      color:transparent;
      font-size:0;
      line-height:0;
    }

    .thumb img,
    .imgBox img,
    .stockThumb img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      filter:saturate(.98);
      opacity:0;
      visibility:hidden;
      transition:opacity .15s ease;
    }

    .thumb img.is-loaded,
    .imgBox img.is-loaded,
    .stockThumb img.is-loaded,
    .mainLogoImg.is-loaded{
      opacity:1;
      visibility:visible;
    }

    .meta{ display:flex; flex-direction:column; align-items:flex-start; gap:10px; text-align:left; min-width:0; }
    .meta-top{ width:100%; }

    .meta-bot{
      display:flex;
      align-items:center;
      gap:12px;
      font-size:12px;
      color:var(--muted);
      margin-top:2px;
      min-width:0;
      flex-wrap:wrap;
    }

    .meta-bot span{ white-space:nowrap; }

    .title{
      font-weight:600;
      font-size:18px;
      line-height:1.2;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
      letter-spacing:-0.04em;
      margin-bottom:6px;
    }

    .size{
      font-size:13px;
      color:var(--muted);
      white-space:nowrap;
      font-weight:500;
    }

    .status{ font-weight:600; }
    .status.out{ color:var(--out); }
    .status.in{ color:var(--in); }

    .delta{ white-space:nowrap; font-weight:500; }
    .delta .qty{ font-weight:700; margin-left:6px; }
    .delta .qty.out{ color:var(--out); }
    .delta .qty.in{ color:var(--in); }

    .stock{
      border:1px solid var(--line);
      border-left:1px solid var(--line);
      border-radius:0 var(--radius) var(--radius) 0;
      background:rgba(185, 185, 185, 0.088);
      display:flex;
      align-items:center;
      justify-content:center;
      font-weight:800;
      font-size:20px;
      letter-spacing:-0.04em;
      min-height:100px;
    }

    .stock small{
      font-size:14px;
      color:var(--muted);
      font-weight:700;
      margin-left:4px;
    }

    .paper{
      border:1px solid var(--line);
      border-radius:var(--radius);
      background:#fff;
      overflow:hidden;
    }
    .paper.detailPaper{
  border:none !important;
}

    .paper-head{
      padding:18px 24px;
      border-bottom:1px solid var(--line);
      font-weight:600;
      letter-spacing:0.08em;
      font-size:12px;
      color:var(--muted);
      text-transform:uppercase;
    }

    .paper-body{ padding:28px 24px 24px; }

    .imgRow{
      display:flex;
      justify-content:flex-start;
      gap:20px;
      padding:0 0 24px;
      margin:0;
    }

    .imgBox{
      width:min(100%, 260px);
      aspect-ratio:1 / 1;
      border-radius:0;
      background:#f4f4f4;
      border:1px solid #efefef;
      overflow:hidden;
      display:flex;
      align-items:center;
      justify-content:center;
      color:transparent;
      font-size:0;
      line-height:0;
    }

    .imgPh{ width:42px; height:42px; opacity:.55; }

    .itemHeader{ padding:4px 0 0; }

    .itemTop{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:14px;
      margin-bottom:20px;
    }

    .itemName{
      font-size:30px;
      font-weight:800;
      letter-spacing:-0.06em;
      line-height:1.04;
      margin:0;
      min-width:0;
      word-break:keep-all;
    }

    .sizePill{
      flex:0 0 auto;
      padding:10px 14px;
      border-radius:999px;
      background:#f7f7f7;
      border:1px solid #ececec;
      color:#111827;
      font-weight:600;
      font-size:13px;
      white-space:nowrap;
      margin-top:3px;
    }

    .statsGrid{ display:grid; grid-template-columns:1fr; gap:10px; margin-top:3px; }

    .statCard{
      border-radius:0;
      border:1px solid var(--line);
      background:#fff;
      padding:0;
      min-height:70px;
      display:flex;
      align-items:center;
      justify-content:center;
      overflow:hidden;
    }

    .statCard.current{ background:#f8f8f8; border-color:var(--line); }

    .statRow{
      width:100%;
      display:grid;
      grid-template-columns:1fr 1fr;
      align-items:center;
      min-height:70px;
    }

    .statLabel,
    .statValue{
      display:flex;
      align-items:center;
      justify-content:center;
      min-height:70px;
      min-width:0;
      white-space:nowrap;
      position:relative;
      word-break:keep-all;
      padding:0 6px;
    }

    .statLabel{
      font-size:14px;
      font-weight:600;
      color:#3b3b3b;
      letter-spacing:-0.02em;
    }

    .statLabel .txt{ font-size:15px; line-height:1; white-space:nowrap;  word-break:keep-all;}

    .statValue{
      font-size:18px;
      font-weight:800;
      color:#111;
      letter-spacing:-0.05em;
    }

    .statValue::before{
      content:"";
      position:absolute;
      left:0;
      top:50%;
      transform:translateY(-50%);
      width:1px;
      height:36px;
      background:#d9d9d9;
    }

    .statValue .unit{ font-size:15px; font-weight:800; color:#2f2f2f; margin-left:0; white-space:nowrap;}

    .divider{ height:1px; background:var(--line); margin:28px 0 24px; }

    .boxTitleRow{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0; margin-bottom:8px; flex-wrap:nowrap; }

    .boxTitle{
      font-size:16px;
      font-weight:600;
      letter-spacing:0em;
      margin:0;
      padding:0;
      color:var(--muted);
      text-transform:uppercase;
      white-space:nowrap;
      word-break:keep-all;
      line-height:1.2;
    }

    .selDelBtn,
    .btn,
    .dangerBtn,
    .stockInlineMini,
    .miniBtn,
    .sheetClose,
    .authBtn{
      padding:0 14px;
      border:1px solid var(--line);
      border-radius:0;
      background:#fff;
      font-weight:500;
      cursor:pointer;
      white-space:nowrap;
      min-width:86px;
      height:34px;
      font-size:12px;
      transition:.2s ease;
    }

    .logBox{
      margin:0;
      border:1px solid var(--line);
      border-radius:0;
      background:#fff;
      overflow-x:auto;
      overflow-y:hidden;
      -webkit-overflow-scrolling:touch;
    }

    .logMinWidth{ min-width:100%; width:100%; }

    .logHead,
    .logRow{
      display:grid;
      grid-template-columns:minmax(120px, 1.15fr) minmax(100px, 0.9fr) minmax(140px, 1.1fr) minmax(140px, 1fr) minmax(110px, 0.8fr);
      align-items:center;
      width:100%;
      column-gap:0;
    }

    .requestTable .logHead,
    .requestTable .logRow{
      grid-template-columns:minmax(120px, 1.1fr) minmax(100px, 0.8fr) minmax(140px, 1.1fr) minmax(120px, 0.95fr) minmax(140px, 1fr) minmax(110px, 0.8fr);
    }

    .logHead > div,
    .logRow > div{ min-width:0; padding:0 18px; }

    .logHead{
      padding:0;
      min-height:52px;
      background:#fafafa;
      border-bottom:1px solid var(--line);
      font-weight:600;
      font-size:12px;
    }

    .logRow{
      padding:0;
      min-height:56px;
      border-top:1px solid var(--line);
      font-size:13px;
      background:#fff;
    }

    .logHeadCell,
    .logDate,
    .logType,
    .logDept,
    .logPerson,
    .logQty{
      display:flex;
      align-items:center;
      justify-content:center;
      min-height:52px;
      text-align:center;
    }

    .logHeadLabel{ width:100%; font-size:12px; color:var(--muted); font-weight:600; white-space:nowrap; text-align:center; }

    .logHead .hselect{
      width:100%;
      min-width:0;
      margin:0;
      padding:0 14px;
      text-align:left;
      height:38px;
      border:1px solid var(--line);
      border-radius:999px;
      background:#fff;
      font-weight:600;
      font-size:12px;
      outline:none;
    }

    .logHead .hdateWrap{ width:100%; }
    .logHead .hbtn{ width:100%; }
    .logHead .qtySortBtn{ width:100%; display:flex; justify-content:flex-start; align-items:center; }
    .logRow:first-child{ border-top:none; }
    .logRow.clickable{ cursor:pointer; }

    .logRow.selected{ outline:1px solid #111; outline-offset:-1px; background:#fcfcfc; }

    .hbtn{ display:inline-flex; align-items:center; gap:6px; cursor:pointer; font-weight:700; }
    .arrow{ font-size:10px; color:var(--muted); transform:translateY(-0.5px); }

    .hdateWrap{ position:relative; }

    .hdate{
      position:absolute;
      left:0;
      top:44px;
      width:min(92vw, 320px);
      padding:8px;
      border:1px solid var(--line);
      border-radius:0;
      background:#fff;
      display:none;
      z-index:50;
      box-shadow:0 10px 30px rgba(17,24,39,0.08);
    }

    .hdate input{
      width:100%;
      border:1px solid var(--line);
      border-radius:12px;
      padding:9px 10px;
      font-size:12px;
      font-weight:600;
      outline:none;
      background:#fff;
    }

    .hdate .row2{ display:flex; justify-content:flex-end; gap:6px; margin-top:8px; }

    .requestActionWrap{ margin:8px 0 18px; }

    .catalogApplyPage{
      width:min(100%, 520px);
      margin:0 auto;
      padding:0 0 12px;
    }

    .catalogApplyTop{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      margin:6px 0 20px;
    }

    .catalogApplyTitle{
      margin:0;
      font-size:20px;
      font-weight:600;
      letter-spacing:-0.04em;
      color:#111;
      line-height:1.2;
    }

    .catalogApplySub{
      flex:0 0 auto;
      font-size:14px;
      font-weight:500;
      color:#444;
      padding-top:2px;
      white-space:nowrap;
    }

    .catalogApplySummary{
      border:1px solid var(--line);
      background:#f8f8f8;
      margin-bottom:16px;
    }

    .catalogApplySummaryRow{
      display:grid;
      min-height:56px;
    }

    .catalogApplySummaryRowSingle{
      grid-template-columns:1fr;
    }

    .catalogApplySummaryRowDouble{
      grid-template-columns:1fr 1fr;
    }

    .catalogApplySummaryCell{
      display:flex;
      align-items:center;
      justify-content:center;
      padding:0 18px;
      font-size:14px;
      font-weight:600;
      color:#333;
      text-align:center;
      min-height:56px;
    }

    .catalogApplySummaryRowDouble .catalogApplySummaryCell + .catalogApplySummaryCell{
      border-left:1px solid #d9d9d9;
    }

    .catalogApplyTitleCell{
      justify-content:flex-start;
      text-align:left;
      font-weight:700;
      font-size:17px;
      min-height:64px;
      padding:0 38px;
    
      @media (max-width: 640px){
  .catalogApplyTitle{
    margin-left:12px;   /* ← 이 값으로 위치 조절 */
  }
}
    }
    

    .catalogApplyForm{
      border:1px solid var(--line);
      background:#fff;
      padding:18px 18px 4px;
      margin-bottom:18px;
    }

    .catalogApplyBtn{
      width:100%;
      height:62px;
      border:0;
      background:#84cdc9;
      color:#fff;
      font-size:18px;
      font-weight:700;
      cursor:pointer;
    }

    .catalogApplyBtn:hover{ opacity:.92; }

    .requestSubmitBtn{
      width:100%;
      padding:15px 16px;
      border:0;
      border-radius:0;
      background:#84cdc9;
      color:#fff;
      font-weight:500;
      font-size:15px;
      cursor:pointer;
      margin-bottom:0;
      transition:opacity .2s ease;
    }

    .requestSubmitBtn:hover,
    .primary:hover,
    .fab:hover,
    .authBtn.confirm:hover{ opacity:.9; }

    .detailPaper.requestDetailPaper{ border-color:#d9d9d9; }

    .detailPaperHead{ display:none; }
    .detailHeadLogo{ display:none; }
    .detailHeroGrid,
    .detailHeroTop,
    .detailHeroText,
    .detailLogoWrap{ display:none; }

    .detailPaperBody{
      padding:10px 22px 30px;
    }

    .detailAdminHero{
      display:grid;
      grid-template-columns:minmax(180px, 240px) minmax(520px, 1fr);
      align-items:start;
      gap:44px;
      padding:4px 14px 34px;
    }

    .detailAdminIntro{
      display:flex;
      flex-direction:column;
      align-items:flex-start;
      justify-content:flex-start;
      padding-top:14px;
      min-width:0;
    }

    .detailAdminName{
      margin:0;
      font-size:24px;
      line-height:1.15;
      font-weight:800;
      letter-spacing:-0.05em;
      color:#111;
      word-break:keep-all;
    }

    .detailAdminSize{
      margin:20px 0 0;
      font-size:13px;
      line-height:1.2;
      font-weight:600;
      letter-spacing:-0.02em;
      color:#666;
      white-space:nowrap;
    }

    .detailImageFrame{
      border:none;
      border-top:none;
      padding:0;
      display:flex;
      justify-content:flex-end;
    }

    .requestImgRow{
      justify-content:flex-end;
      gap:20px;
      border:none;
      padding:0;
      width:max-content;
      margin-left:auto;
    }

    .requestImgBox{
      width:250px;
      aspect-ratio:1 / 1;
      background:#f6f6f3;
      border:1px solid #dfdfdf;
      display:flex;
      align-items:center;
      justify-content:center;
      color:transparent;
      font-size:0;
      line-height:0;
    }

    .requestImgRow .requestImgBox + .requestImgBox{
      border-left:1px solid #dfdfdf;
      padding-left:0;
      margin-left:0;
    }

    .requestStatsGrid{
      margin-top:20px;
    }

    .requestStatCard{
      border:none;
      background:#f5f5f5;
    }

    .requestActionWrapLarge{ margin:18px 0 28px; }
    .detailSectionBlock{ margin-top:28px; }
    .detailSectionHead{ justify-content:space-between; }
    .requestLogBox{ border-color:#d8d8d8; }
    .subtleHead{ background:#f5f5f5; }

    .typeBadge{ font-weight:700; }
    .typeBadge.request{ color:#1f2937; }
    .typeBadge.pending{ color:#9a6700; }
    .typeBadge.approved{ color:#0f766e; }
    .typeBadge.rejected{ color:#b42318; }
    .typeBadge.in{ color:var(--in); }
    .typeBadge.out{ color:var(--out); }

    .filterInlineRow{ display:flex; justify-content:flex-end; gap:10px; margin:0 0 10px; }
    .filterInlineRow.multi{ justify-content:flex-start; flex-wrap:wrap; }

    .filterDateInput,
    .filterSelectInline{ height:34px; border:1px solid var(--line); padding:0 12px; font-size:12px; font-weight:600; background:#fff; }

    .mintBtn{ background:#84cdc9; border-color: #84cdc9; color:#fff; border-radius:0; }
    .mintBtn:hover{ background:#73c1bc; border-color:#73c1bc; }

    .logEmpty{ padding:18px; font-size:10px; color:var(--muted); }

    #bulkDeleteRequests,
    #bulkDeleteLogs{
      background:#292929;
      border-color:#292929;
      color:#fff;
    }

    #bulkDeleteRequests:hover,
    #bulkDeleteLogs:hover{
      background:#1f1f1f;
      border-color:#1f1f1f;
    }

    .reqApproveBtn{
      background:rgba(37, 99, 235, 0.15);
      border-color:rgba(37, 99, 235, 0.35);
      color:#2563eb;
    }

    .reqApproveBtn:hover{
      background:rgba(37, 99, 235, 0.22);
      border-color:rgba(86, 138, 248, 0.45);
      color:#000000;
    }

    .reqRejectBtn{
      background:rgba(198, 62, 62, 0.12);
      border-color:rgba(198, 62, 62, 0.28);
      color:#c63e3e;
    }

    .reqRejectBtn:hover{
      background:rgba(198, 62, 62, 0.18);
      border-color:rgba(198, 62, 62, 0.38);
      color:#b42318;
    }

    #openAdd{
      background:rgba(37, 99, 235, 0.15);
      border-color:rgba(37, 99, 235, 0.35);
      color: #2563eb;
    }

    #openAdd:hover{
      background:rgba(37, 99, 235, 0.22);
      border-color:rgba(37, 99, 235, 0.45);
      color: #1d4ed8;
    }

    .headerFilterDate,
    .headerFilterSelect{
      width:100%;
      min-width:0;
      height:34px;
      border:1px solid var(--line);
      border-radius:0;
      padding:0 10px;
      font-size:12px;
      text-align:center;
      text-align-last:center;
      font-weight:600;
      background:#fff;
      outline:none;
    }

    .primary{
      background:#111;
      color:#fff;
      border-color:#111;
    }

    .adminBottomRow,
    .commonBottomRow{
      margin-top:18px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      flex-wrap:wrap;
    }

    .adminBottomLeft,
    .commonBottomLeft{
      display:flex;
      align-items:center;
      gap:4px;
      font-size:11px;
      color:var(--muted);
      font-weight:600;
      min-width:0;
    }

    .stockInline{ display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; }

    .stockInlineValue{
      display:inline-flex;
      align-items:center;
      gap:4px;
      font-size:11px;
      color:#667085;
      font-weight:700;
      cursor:pointer;
      border:none;
      background:transparent;
      padding:0;
    }

    .stockInlineValue b{ font-size:13px; color:#667085; }
    .stockInlineEdit{ display:none; align-items:center; gap:6px; flex-wrap:wrap; }
    .stockInlineEdit.show{ display:inline-flex; }

    .stockInlineInput{
      width:88px;
      height:38px;
      border:1px solid var(--line);
      border-radius:999px;
      padding:0 12px;
      font-size:12px;
      font-weight:700;
      outline:none;
    }

    .adminBottomRight,
    .commonBottomRight{ display:flex; align-items:center; gap:8px; margin-left:auto; }

    .dangerBox{
      margin-top:50px;
      border:1px dashed #e7dede;
      background:#fff9f9;
      border-radius:0;
      padding:16px 18px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
    }

    .dangerText{ font-size:11px; color:#313131; font-weight:500; line-height:1.8; }
    .dbStatusLine{ margin-top:18px; font-size:11px; color:var(--muted); }

    .modal,
    .authModal{
      display:none;
      position:fixed;
      inset:0;
      z-index:9999;
    }

    .modal.show,
    .authModal.show{ display:block; }

    .modalOverlay,
    .authOverlay{
      position:absolute;
      inset:0;
      background:rgba(17,24,39,0.45);
    }

    .sheet{
      position:absolute;
      left:0; right:0; bottom:0;
      background:#fff;
      border-top-left-radius:24px;
      border-top-right-radius:24px;
      box-shadow:0 -10px 30px rgba(0,0,0,0.12);
      overflow:hidden;
      max-height:86vh;
      display:flex;
      flex-direction:column;
    }

    .sheetHead{
      padding:18px 20px;
      border-bottom:1px solid var(--line);
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      font-weight:500;
    }

    .sheetBody{ padding:18px 20px 8px; overflow:auto; }
    .field{ margin-bottom:14px; }

    .field label{
      display:block;
      font-size:11px;
      color:var(--muted);
      font-weight:600;
      margin-bottom:6px;
      letter-spacing:0.04em;
    }

    .field input, .field select, .authInput{
      width:100%;
      border:1px solid var(--line);
      border-radius:0;
      padding:13px 14px;
      font-size:13px;
      font-weight:600;
      outline:none;
      background:#fff;
      color:#111;
    }
    @media (max-width:640px){
  .dateInput{
    width:70%;
    max-width:280px;
    margin:0 auto;
    display:block;
  }
}

    .seg{ display:flex; gap:10px; }

    .seg button{
      flex:1;
      border:1px solid var(--line);
      border-radius:0;
      padding:12px 10px;
      background:#fff;
      cursor:pointer;
      font-weight:700;
      font-size:12px;
    }

    .seg button.active.out{ border-color:var(--out); color:var(--out); background:#fff5f5; }
    .seg button.active.in{ border-color:var(--in); color:var(--in); background:#f1f5ff; }

    .sheetFoot{ padding:14px 20px 20px; border-top:1px solid var(--line); background:#fff; }

    .sheetFoot .primary{
      width:100%;
      padding:15px 14px;
      border-radius:0;
      font-size:14px;
      font-weight:800;
    }

    .fab{
      position:fixed;
      right:24px;
      bottom:24px;
      z-index:9998;
      padding:0 18px;
      height:48px;
      border:1px solid #111;
      border-radius:999px;
      background:#111;
      color:#fff;
      font-weight:700;
      font-size:12px;
      cursor:pointer;
      box-shadow:0 10px 24px rgba(0,0,0,0.14);
      user-select:none;
      white-space:nowrap;
    }

    .fab:active{ transform:translateY(0.5px); }

    .bottomNav{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:9997;
  height:60px;
  background:#f9f9f9;
  border-top:0.2px solid #d9d9d9;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  align-items:center;
  justify-items:center;
  padding:0 env(safe-area-inset-right) calc(env(safe-area-inset-bottom)) env(safe-area-inset-left);
}

.bottomNavBtn{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  width:100%;
  height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  padding:0;
}

.bottomNavBtn svg{
  width:20px;
  height:20px;
  stroke:#11111199;
  stroke-width:1.5;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}

body{
  padding-bottom:50px;
}

.fab{
  bottom:80px;
}

@media (max-width: 980px){
  .bottomNav{
    height:60px;
  }

  .bottomNavBtn{
    height:45px;
  }

  .bottomNavBtn svg{
    width:20px;
    height:20px;
  }

  .fab{
    right:16px;
    bottom:74px;
  }
}

    .mainHome{
      width:min(100%, 360px);
      margin:0 auto;
      padding:48px 0 8px;
      text-align:center;
    }

    .mainLogoArea{
      width:100%;
      min-height:180px;
      display:flex;
      align-items:center;
      justify-content:center;
      margin-bottom:0px;
      cursor:pointer;
    }

    .mainLogoImg{ max-width:250px; max-height:88px; object-fit:contain; display:block; opacity:0; visibility:hidden; transition:opacity .15s ease; }

    .mainLogoPlaceholder{
      width:200px;
      height:72px;
      border:1px dashed #cfd8dc;
      border-radius:0;
      display:flex;
      align-items:center;
      justify-content:center;
      color:#d1d5da;
      font-size:12px;
      font-weight:600;
      background:#fafafa;
    }

    .mainHomeLine,
    .authHeaderLine{
      width:156px;
      height:0.7px;
      background:#d9d9d9;
      margin:0 auto 14px;
    }

    .mainHomeTitle,
    .authHeaderTitle{
      font-size:11px;
      font-weight:400;
      color:#222;
      margin-bottom:60px;
      letter-spacing:-0.02em;
      text-align:center;
    }

    .mainHomeBtns{
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:20px;
      margin-top:0;
    }

    .mainHomeBtns.oneRole{
      grid-template-columns:1fr;
      width:72%;
      min-width:220px;
      max-width:320px;
      margin:0 auto;
      gap:17px;
    }

    .mainHomeBtn{
      width:100%;
      height:50px;
      min-height:50px;
      border:0;
      border-radius:0;
      background:#fff;
      color:#222;
      font-size:14px;
      font-weight:500;
      cursor:pointer;
      padding:0 18px;
      display:flex;
      align-items:center;
      justify-content:center;
      text-align:center;
      transition:transform .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease;
    }

    .mainHomeBtn:hover{
      transform:translateY(-2px);
    }

    .mainHomeBtn.primaryHomeBtn{ background:#111; border-color:#111; color:#fff; }
    .requestDarkBtn{ background:#262626; color:#fff; }
    .stockBtn{ background:#f3f3f3; color:#111; }
    .adminBtn{ background:#f7f7f7; color:#111; }
    .adminMintBtn{ background:#84cdc9; color:#fff; }

    .logoutBtn{
      background:transparent;
      color:#adadad;
      font-size:11px;
      font-weight:400;
      height:auto;
      min-height:0;
      padding:28px 0 0;
    }

    .listGrid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:20px 32px;
      align-items:stretch;
    }

    .stockCard{
      border:1px solid #dcdcdc;
      border-radius:0;
      background:#f6f6f6;
      padding:22px 26px;
      display:grid;
      grid-template-columns:96px minmax(0, 1fr);
      align-items:center;
      column-gap:22px;
      min-height:140px;
    }

    .stockCard:hover{ transform:translateY(-2px); border-color:#bfbfbf; }

    .stockThumb{
      width:96px;
      height:96px;
      flex:0 0 96px;
      background:#f1f1f1;
      border:1px solid #e3e3e3;
      color:transparent;
      font-size:0;
      line-height:0;
      overflow:hidden;
    }

    .stockMeta{
      min-width:0;
      flex:1;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:18px;
    }

    .stockName{
      width:100%;
      text-align:center;
      font-size:22px;
      font-weight:800;
      line-height:1.2;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }

    .stockQtyBar{
      width:100%;
      min-height:54px;
      padding:0 18px;
      background:#efefef;
      display:flex;
      align-items:center;
      justify-content:center;
      font-size:20px;
      border:1px solid #d8d8d8;
    }

    .authDialog{
      position:absolute;
      left:50%;
      top:50%;
      transform:translate(-50%, -50%);
      width:min(92vw, 440px);
      background:#fff;
      border-radius:20px;
      padding:22px 22px 18px;
      box-shadow:0 24px 60px rgba(45, 45, 45, 0.18);
    }

    .authTitle{ font-size:18px; font-weight:700; letter-spacing:-0.03em; margin:0 0 8px; color:#111; }
    .authDesc{ font-size:14px; color:#6d6d6d; margin:0 0 14px; line-height:1.5; }

    .authInput:focus{
      border-color:#111;
      box-shadow:0 0 0 3px rgba(17,17,17,0.06);
    }

    .authError{ min-height:20px; margin-top:10px; font-size:12px; color:#c63e3e; font-weight:500; visibility:hidden; }
    .authError.show{ visibility:visible; }

    .authBtns{ display:flex; justify-content:flex-end; gap:10px; margin-top:0; }
    .authBtn.confirm{ background:#111; color:#fff; border-color:#111; }

    .loginScreen{
      min-height:100vh;
      display:flex;
      align-items:flex-start;
      justify-content:center;
      padding:120px 16px 48px;
      background:#ffffff;
    }

    .loginWrap{
      width:min(100%, 360px);
      display:flex;
      flex-direction:column;
      align-items:center;
    }

    .loginLogoWrap{
      width:100%;
      margin:0 0 0;
    }

    .loginLogoBox{
      width:100%;
      height:100px;
      display:flex;
      align-items:center;
      justify-content:center;
    }

    .loginLogoImage{
      max-width:250px;
      max-height:70px;
      width:auto;
      height:auto;
      display:block;
      object-fit:contain;
    }

    .loginForm{
      width:82%;
      min-width:220px;
      max-width:320px;
      margin-top:0;
    }

    .findIdForm,
    .resetPwForm,
    .signupForm{
      margin-top:120px;
    }

    .loginInput{
      width:100%;
      height:38px;
      border:0;
      background:#f4f4f487;
      padding:0 17px;
      font-size:13px;
      color:#2e2e2e9e;
      outline:none;
      margin-bottom:10px;
      font-family:'Pretendard', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", sans-serif;
    }

    .loginInput::placeholder{
      color:#a1a1a1a9;
      font-family:'Pretendard', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", sans-serif;
    }

    #signupPasswordConfirm,
#findIdEmail,
#resetEmail,
#newPasswordConfirm{
  margin-bottom:24px;
}
.loginForm input:last-of-type{
  margin-bottom:24px;
}

    .loginSubLinks{
      display:flex;
      align-items:center;
      justify-content:center;
      gap:12px;
      font-size:11px;
      color:#9b9b9b;
      font-weight:400;
      margin:14px 0 30px;
      font-family:'Pretendard', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", sans-serif;
      flex-wrap:wrap;
    }

    .loginSubLinks a{
      color:#616161;
      text-decoration:none;
    }

    .loginSubLinks span{ color:#dadada; }

    .loginBtn,
    .authSecondaryBtn{
      width:62%;
      min-width:200px;
      height:39px;
      border:0;
      background:#84cdc9;;
      color:#fff;
      font-size:14px;
      font-weight:500;
      cursor:pointer;
      display:block;
      margin:0 auto;
      font-family:'Pretendard', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", sans-serif;
    }

    .authSecondaryBtn{
      background:#fff;
      color:#111111cc;
      border:1px solid #d9d9d9;
      margin-top:10px;
    }

    .loginErrorText{
      min-height:20px;
      margin:15px 0 0;
      text-align:center;
      font-size:11px;
      color:#d66068bc;
      visibility:hidden;
      font-family:'Pretendard', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", sans-serif;
      white-space:pre-line;
    }

    .loginErrorText.show{ visibility:visible; }

    .authPageTitle{
      width:100%;
      margin:0 0 20px;
      font-size:18px;
      font-weight:500;
      letter-spacing:-0.04em;
      color:#111;
      text-align:center;
    }

    .authPageDesc{
      width:100%;
      margin:0 0 25px;
      font-size:10px;
      line-height:1.6;
      color:#666666b8;
      text-align:center;
    }

    .authBackLink{
      display:block;
      margin-top:18px;
      text-align:center;
      font-size:12px;
      color:#111;
      text-decoration:none;
      font-weight:500;
    }

    .authInfoBox{
      width:100%;
      padding:14px 16px;
      border:1px solid #e5e5e5;
      background:#fafafa;
      color:#333;
      font-size:12px;
      line-height:1.6;
      margin-bottom:18px;
    }

    .nImgPreviewBox{
      width:120px;
      height:120px;
      margin-top:10px;
      border:1px solid #e5e5e5;
      background:#f7f7f7;
      overflow:hidden;
      display:flex;
      align-items:center;
      justify-content:center;
    }

    .nImgPreviewBox img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
    }

    .shopSection{
      position:relative;
      left:50%;
      width:100vw;
      margin-left:-50vw;
      margin-bottom:20px;
      padding:0;
      background: #e4f3f3e6;
      overflow:hidden;
    }

    .shopSection > *{
      width:min(calc(100% - 64px), 1040px);
      margin:0 auto;
    }

    
    .shopInner{
      padding:40px 0 40px;
    }

.shopHead{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      margin:4px 0 18px;
    }

    .shopTitle{
      margin:0;
      font-size:18px;
      font-weight:600;
      letter-spacing:-0.03em;
      color:#1f1f1f;
      line-height:1;
    }

    .shopLink{
      display:inline-flex;
      align-items:center;
      gap:6px;
      font-size:14px;
      font-weight:400;
      color:#1f1f1f;
      white-space:nowrap;
      letter-spacing:-0.02em;
      text-decoration:none;
    }

    .shopGrid{
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:30px;
      align-items:start;
    }

    .shopCard{
      border:0;
      background:transparent;
      padding:0;
      text-align:center;
      cursor:pointer;
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:10px;
    }
    /* 와인박스(1구)만 여백 */
.shopCard[data-name="와인박스(1구)"]{
  margin-bottom:20px;
}

    .shopThumb{
      width:90%;
      aspect-ratio:1 / 1;
      background:#fff;
      border:1px solid #d8d8d8;
      display:flex;
      align-items:center;
      justify-content:center;
      overflow:hidden;
    }

    .shopThumb img{
      width:100%;
      height:100%;
      object-fit:contain;
      display:block;
    }

    .shopMeta{
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:2px;
    }

    .shopName{
      font-size:16px;
      line-height:1.35;
      color:#111;
      font-weight:500;
      word-break:keep-all;
    }

    .shopPrice{
      font-size:19px;
      line-height:1.2;
      color:#111;
      font-weight:700;
      letter-spacing:-0.02em;
    }

    .catalogDetailTitle{
  display:flex;
  align-items:center;
  margin:0;
}

.catalogTitleKr{
  font-size:22px;
  font-weight:700;
  color:#111;
}

.catalogTitleDivider{
  font-size:18px;
  color:#999;
  margin:0 8px;
}

.catalogTitleEn{
  font-size:14px;
  font-weight:400;
  color:#666;
}

@media (max-width:640px){
  .catalogTitleKr{ font-size:17px; }
  .catalogTitleDivider{ font-size:13px; }
  .catalogTitleEn{ font-size:11px; }
}

    @media (max-width: 1280px){
      .listGrid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
      .mainHomeBtns{ grid-template-columns:1fr 1fr 1fr; }
      .itemName{ font-size:28px; }
    }

    @media (max-width: 980px){
      .wrap{ width:min(calc(100% - 34px), var(--content-max)); }
      .row{ grid-template-columns:1fr; }
      .stock{ min-height:86px; }
      .listGrid{ grid-template-columns:1fr 1fr; }

      body.mode-request .list,
      body.mode-list .list,
      body.mode-admin .list{
        display:grid;
        grid-template-columns:1fr;
        gap:14px;
      }

      body.mode-request .row,
      body.mode-list .row,
      body.mode-admin .row{
        grid-template-columns:minmax(0, 1fr) 140px;
        gap:0px;
        align-items:stretch;
      }

      .mainHomeBtns{ grid-template-columns:1fr; }
      .mainHomeBtns.oneRole{ max-width:320px; width:72%; }
      .mainHomeBtn{ height:50px; min-height:40px; }
      .itemTop{ flex-direction:column; align-items:flex-start; }
      .statRow{ grid-template-columns:1fr 1fr; }
    }

    @media (max-width: 640px){
      :root{ --header-h:64px; --log-cols: 88px 72px 112px 110px 86px; }

      .wrap{ width:min(calc(100% - 28px), var(--content-max)); }

      .topbar{
        min-height:var(--header-h);
        gap:12px;
        margin-bottom:28px;
        padding:12px 0;
      }

      .brand{ margin-left:5px; }
      h1{ font-size:16px; max-width:52vw; }

      .search{ justify-content:flex-end; }
      .search input{ width:min(100px, 100%); height:30px; padding:0 10px; font-size:11px; }
      .pill{ height:30px; padding:0 12px; font-size:12px; }

      .section{ margin-top:28px; }
      .listGrid{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }

      body.mode-request .list,
      body.mode-list .list,
      body.mode-admin .list{
        display:grid;
        grid-template-columns:1fr;
        gap:14px;
      }

      body.mode-request .row,
      body.mode-list .row,
      body.mode-admin .row{
        grid-template-columns:minmax(0, 1fr) 104px;
        gap:0px;
        align-items:stretch;
      }

      body.mode-request .card,
      body.mode-list .card,
      body.mode-admin .card{
        min-height:92px;
        padding:12px;
        gap:12px;
        flex-direction:row;
        align-items:center;
      }

      body.mode-request .thumb,
      body.mode-list .thumb,
      body.mode-admin .thumb{
        width:62px;
        height:62px;
        aspect-ratio:auto;
        flex:0 0 62px;
      }

      body.mode-request .meta,
      body.mode-list .meta,
      body.mode-admin .meta{
        width:100%;
        gap:6px;
        min-width:0;
      }

      body.mode-request .meta-bot,
      body.mode-list .meta-bot,
      body.mode-admin .meta-bot{
        width:100%;
        gap:8px;
        flex-direction:row;
        align-items:center;
        flex-wrap:wrap;
      }

      body.mode-request .meta-bot span,
      body.mode-request .delta,
      body.mode-list .meta-bot span,
      body.mode-list .delta,
      body.mode-admin .meta-bot span,
      body.mode-admin .delta{
        white-space:nowrap;
      }

      body.mode-request .title,
      body.mode-list .title,
      body.mode-admin .title{
        font-size:14px;
        line-height:1.35;
        white-space:normal;
        overflow:visible;
        text-overflow:unset;
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
      }

      body.mode-request .size,
      body.mode-list .size,
      body.mode-admin .size{
        font-size:11px;
        white-space:normal;
      }

      body.mode-request .stock,
      body.mode-list .stock,
      body.mode-admin .stock{
        min-height:92px;
        padding:10px 8px;
        font-size:16px;
      }

      body.mode-request .stock small,
      body.mode-list .stock small,
      body.mode-admin .stock small{
        font-size:10px;
      }

      .card{ padding:14px; min-height:96px; gap:14px; }
      .thumb{ width:78px; height:78px; }
      .title{ font-size:18px; }
      .size{ font-size:12px; }
      .stock{ min-height:96px; font-size:22px; }

      .paper-body{ padding:18px 16px 18px; }
      .imgRow{ gap:12px; padding-bottom:18px; }
      .imgBox{ width:calc(50% - 6px); }
      .itemName{ font-size:26px; }
      .sizePill{ font-size:12px; }
      .statRow{ grid-template-columns:minmax(0, 96px) minmax(0, 1fr); }
      .statValue::before{ display:block; height:22px; }
      .statLabel, .statValue{ min-height:56px; padding:0 4px; }
      .statLabel{ justify-content:center; }
      .statLabel .txt,
      .statValue,
      .statValue .unit{ white-space:nowrap; }
      .statValue{ font-size:22px; }

      .logBox{ margin:0; }
      @media (max-width: 640px){
  .logBox{
    overflow-x:auto;
    overflow-y:hidden;
  }

  .logMinWidth{
    min-width:max-content;
    width:max-content;
  }

  .logHead,
  .logRow,
  .requestTable .logHead,
  .requestTable .logRow{
    width:max-content;
  }
}
      .logHead > div, .logRow > div{ padding:0 12px; }
      .detailBrand{ font-size:20px; }
      .detailPaperBody{ padding:6px 16px 24px; }
      .detailAdminHero{
        grid-template-columns:1fr;
        gap:20px;
        padding:0 0 24px;
      }
      .detailAdminIntro{
        padding-top:4px;
      }
      .detailAdminName{ font-size:18px; }
      .detailAdminSize{ margin-top:12px; font-size:12px; }
      .detailLogoImage{ max-width:62px; }
      .detailLogoImage{ max-width:64px; }
      .detailImageFrame{
        padding:0;
        display:block;
      }
      .requestImgRow{
        gap:12px;
        padding:0;
        justify-content:flex-start;
        width:100%;
        margin-left:0;
      }
      .requestImgRow .requestImgBox + .requestImgBox{ padding-left:0; margin-left:0; }
      .requestImgBox{ width:calc(50% - 6px); }

      .detailSectionHead{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:6px;
        flex-wrap:nowrap;
        min-width:0;
      }

      .detailSectionHead .boxTitle{
        flex:1 1 auto;
        min-width:0;
        margin:0;
        font-size:14px;
        line-height:1.2;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
      }

      .requestAdminActions{
        display:flex;
        align-items:center;
        justify-content:flex-end;
        gap:4px;
        margin-left:auto;
        flex:0 0 auto;
        white-space:nowrap;
      }

      .requestAdminActions .btn,
      .requestAdminActions .dangerBtn,
      .requestAdminActions .selDelBtn,
      .requestAdminActions .reqApproveBtn,
      .requestAdminActions .reqRejectBtn{
        min-width:52px;
        height:28px;
        padding:0 8px;
        font-size:11px;
      }

      .logActionBtns{
        display:flex;
        align-items:center;
        justify-content:flex-end;
        gap:4px;
        margin-left:auto;
        flex:0 0 auto;
        white-space:nowrap;
      }

      .logActionBtns .btn,
      .logActionBtns .dangerBtn,
      .logActionBtns .selDelBtn{
        min-width:52px;
        height:28px;
        padding:0 8px;
        font-size:11px;
      }

      .adminBottomRow,
      .commonBottomRow{ align-items:flex-start; }

      .adminBottomRight,
      .commonBottomRight{
        width:100%;
        justify-content:flex-end;
        gap:4px;
        flex-wrap:nowrap;
      }

      .adminBottomRight .btn,
      .adminBottomRight .dangerBtn,
      .adminBottomRight .selDelBtn,
      .commonBottomRight .btn,
      .commonBottomRight .dangerBtn,
      .commonBottomRight .selDelBtn{
        min-width:52px;
        height:28px;
        padding:0 8px;
        font-size:11px;
      }

      .dangerBox{ flex-direction:column; align-items:flex-start; }
      .dangerBtn{ align-self:stretch; text-align:center; }

      .mainHome{ padding-top:150px; text-align:center;}
      .mainLogoArea{ min-height:90px; margin-bottom:30px; justify-content:center; }
      .mainLogoImg{ max-width:220px; max-height:82px; }
      .mainLogoPlaceholder{ width:220px; height:82px; font-size:13px; }
      .mainHomeTitle{ font-size:12px; margin-bottom:45px; }
      .mainHomeBtn{
        min-height:50px;
        font-size:14px;
        font-weight:500;
        padding:16px 16px;
        align-items:center;
        justify-content:center;
        text-align:center;
      }

      .catalogMenuSection{
        position:relative;
        left:50%;
        width:100vw;
        margin-left:-50vw;
        margin-bottom:22px;
        padding:0;
        background:#eeeeee95;
        overflow:hidden;
      }

      .catalogMenuSection > *{
        width:min(calc(100% - 28px), 800px);
        margin:0 auto;
      }

      .catalogMenuInner{
        padding:24px 0 28px;
      }

      .catalogMenuHead{
        margin-bottom:16px;
        gap:10px;
      }

      .catalogMenuTitleGroup{
        gap:8px;
      }

      .catalogMenuTitle{
        font-size:15px;
        margin:0;
      }

      .catalogMenuDivider{
        font-size:13px;
      }

      .catalogMenuTitleSub{
        font-size:13px;
      }

      .catalogMenuAction{
        font-size:12px;
        gap:4px;
      }

      .catalogMenuGrid{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:10px;
      }

      .catalogMenuCard{
        gap:8px;
      }

      .catalogMenuLabel{
        min-height:30px;
        font-size:11px;
        line-height:1.16;
        letter-spacing:-0.03em;
        white-space:normal;
        word-break:keep-all;
        overflow-wrap:break-word;
        color: #292929;
        margin-top:0.2px;
      }

      .catalogDetailPage{ width:100%; }
      .catalogDetailTop{ margin-bottom:28px; }
      .catalogDetailTitle{ font-size:17px; }
      .catalogDetailSub{ font-size:11px; padding-top:3px; font-weight:400; color: #555555; }
      .catalogDetailFields{ grid-template-columns:110px minmax(0, 1fr); gap:12px; margin-bottom:12px; }
      .catalogDetailControlRow{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:8px;
        align-items:stretch;
        margin-bottom:16px;
      }
      .catalogDetailAction{
        grid-column:1 / -1;
      }
      .catalogSelectWrap,
      .catalogDetailAction{
        width:100%;
      }
      .catalogSelect{ height:42px; padding:0 36px 0 14px; font-size:13px; }
      .catalogSelectArrow{ right:12px; font-size:12px; }
      .catalogStockRow{ grid-template-columns:120px minmax(0, 1fr); min-height:52px; }
      .catalogStockLabel, .catalogStockValue{ min-height:52px; font-size:13px; }
      .catalogStockValue{ font-size:15px; }
      .catalogStockBox{ margin-bottom:14px; }
      .catalogDetailSubmit{
        width:100%;
        height:52px;
        font-size:15px;
      }
      .catalogGalleryGrid{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:8px;
        margin-bottom:22px;
      }

      .stockCard{
        padding:12px;
        grid-template-columns:52px minmax(0, 1fr);
        column-gap:10px;
        min-height:88px;
      }

      .stockThumb{
        width:52px;
        height:52px;
        flex-basis:52px;
      }

      .stockMeta{ gap:8px; }
      .stockName{ font-size:12px; }

      .stockQtyBar{
        min-height:34px;
        padding:0 8px;
        font-size:11px;
      }

      .fab{ right:16px; bottom:16px; height:44px; }
      .authDialog{ width:min(92vw, 360px); padding:20px 18px 16px; }
      .authTitle{ font-size:17px; }
      .authBtn{ min-width:92px; height:42px; font-size:13px; }

      .shopSection{
        position:relative;
        left:50%;
        width:100vw;
        margin-left:-50vw;
        margin-bottom:22px;
        padding:0;
        background: #e4f3f3e6;
        overflow:hidden;
      }

      .shopSection > *{
        width:min(calc(100% - 28px), 800px);
        margin:0 auto;
      }

      .shopInner{
        padding:24px 0 28px;
      }

      .shopHead{
        margin-bottom:16px;
        gap:10px;
      }

      .shopTitle{
        font-size:15px;
      }

      .shopLink{
        font-size:12px;
        gap:4px;
      }

      .shopGrid{
        gap:12px;
      }

      .shopCard{
        gap:8px;
      }

      .shopName{
        font-size:11px;
      }

      .shopPrice{
        font-size:12px;
      }
    }

    .reqApproveBtn{
      background:rgba(37, 99, 235, 0.15);
      border-color:#2563eb;
      color:#2563eb;
    }

    .reqApproveBtn:hover{
      background:rgba(37, 99, 235, 0.25);
      border-color:#2563eb;
      color:#2563eb;
    }

    .reqRejectBtn{
      background:rgba(198, 62, 62, 0.15);
      border-color:#c63e3e;
      color:#c63e3e;
    }

    .reqRejectBtn:hover{
      background:rgba(198, 62, 62, 0.25);
      border-color:#c63e3e;
      color:#c63e3e;
    }

    .addLogBtn{
      background:rgba(37, 99, 235, 0.15);
      border-color:#2563eb;
      color:#2563eb;
    }

    .addLogBtn:hover{
      background:rgba(37, 99, 235, 0.25);
      border-color:#2563eb;
      color:#2563eb;
    }

    body.auth-page{
      padding-bottom:0 !important;
      overflow:hidden;
    }

    html.auth-page{
      overflow:hidden;
    }

    body.auth-page .wrap{
      padding-bottom:0 !important;
    }

    @media (max-width: 768px){
      body.auth-page,
      html.auth-page{
        height:100%;
        overflow:hidden;
      }

      body.auth-page .wrap,
      body.auth-page #app{
        min-height:100dvh;
      }

      body.auth-page .loginScreen{
        min-height:100dvh;
        height:100dvh;
        padding:48px 16px 8px !important;
        align-items:center;
        box-sizing:border-box;
        overflow:hidden;
      }

      body.auth-page .loginWrap{
        width:min(100%, 360px);
        max-width:360px;
        margin:0 auto;
      }

      body.auth-page .loginForm,
      body.auth-page .signupForm,
      body.auth-page .findIdForm,
      body.auth-page .resetPwForm{
        margin-top:0 !important;
        padding-bottom:0 !important;
      }
    }
/* ===== SHOP 구매 페이지 ===== */
.shopHomeBtn{
  background:#ffffff;
  color:#111;
  border:1px solid #e2e2e2;
}

body.mode-shop .topbar.no-search,
body.mode-request .topbar.no-search{
  border-bottom:none !important;
}

.shopPage{
  width:min(100%, 700px);
  margin:0 auto;
  padding:25px 0 80px;
}

.shopPageHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 42px;
}

.shopPageTitle{
  font-size:12px;
  font-weight:700;
  letter-spacing:-0.02em;
  color:#111;
}

.shopPageIcons{
  display:flex;
  align-items:center;
  gap:12px;
}

.shopIconBtn{
  position:relative;
  border:0;
  background:transparent;
  color:#999;
  font-size:20px;
  cursor:pointer;
  padding:0;
  line-height:1;
}

.shopIconBtn span{
  position:absolute;
  right:-8px;
  top:-9px;
  min-width:14px;
  height:14px;
  padding:0 4px;
  border-radius:999px;
  background:#84cdc9;
  color:#fff;
  font-size:9px;
  line-height:14px;
  font-weight:700;
}

.shopProductGrid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:55px 50px;
}

.shopProductCard{
  border:0;
  background:transparent;
  padding:0;
  text-align:left;
  cursor:pointer;
}

.shopProductThumb{
  width:100%;
  aspect-ratio:1 / 1;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  margin-bottom:18px;
  overflow:hidden;
}

.shopProductThumb img{
  width:95%;
  height:95%;
  object-fit:contain;
  display:block;
}

.shopReadyIcon{
  width:80%;
  height:80%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fafafa;
  color:#c9c9c9;
  font-size:58px;
  font-weight:100;
}

.shopProductName,
.shopDetailName,
.shopCartName{
  font-size:14px;
  font-weight:500;
  color:#111;
  line-height:1.35;
  letter-spacing:-0.02em;
}

.shopProductColor,
.shopDetailColor,
.shopCartColor,
.shopDetailsText{
  font-size:13px;
  color:#666;
  line-height:1.6;
}

.shopProductPrice,
.shopDetailPrice,
.shopCartUnit,
.shopCartPrice{
  font-size:16px;
  font-weight:800;
  color:#111;
  line-height:1.5;
}

.shopDetailPage{
  max-width:520px;
}

.shopDetailHero{
  width:100%;
}

.shopDetailImg{
  width:100%;
  aspect-ratio:1 / 1;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 24px;
  overflow:hidden;
}

.shopDetailImg img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.shopDetailInfo{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:12px;
}

.shopOptionSelect{
  width:100%;
  height:30px;
  border:1px solid #d9d9d9;
  background:#fff;
  font-size:10px;
  color:#555;
  padding:0 10px;
  outline:none;
  border-radius:0;
}

.shopDetailActions{
  display:grid;
  grid-template-columns:1fr 86px;
  gap:8px;
  margin:12px 0 44px;
}

.shopBuyBtn,
.shopOrderBtn{
  height:34px;
  border:0;
  background:#84cdc9;
  color:#fff;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}

.shopCartBtn{
  height:34px;
  border:1px solid #d9d9d9;
  background:#fff;
  color:#333;
  font-size:10px;
  font-weight:700;
  cursor:pointer;
}

.shopDetailsBlock{
  border-top:1px solid #d9d9d9;
  padding-top:18px;
}

.shopDetailsTitle{
  font-size:10px;
  font-weight:800;
  color:#555;
  margin-bottom:8px;
}

.shopCartPage{
  max-width:620px;
}

.shopCartList{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.shopCartRow{
  position:relative;
  display:grid;
  grid-template-columns:96px minmax(0, 1fr) auto;
  align-items:center;
  gap:18px;
  border:1px solid #e0e0e0;
  padding:18px;
  min-height:126px;
}

.shopCartRemove{
  position:absolute;
  right:12px;
  top:8px;
  border:0;
  background:transparent;
  color:#777;
  font-size:14px;
  cursor:pointer;
}

.shopCartThumb{
  width:96px;
  height:96px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.shopCartThumb img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.shopQtyControl{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:6px;
  font-size:10px;
}

.shopQtyControl button{
  width:16px;
  height:16px;
  border:1px solid #ddd;
  background:#fff;
  line-height:1;
  font-size:10px;
  cursor:pointer;
}

.shopCartEmpty{
  padding:60px 0;
  text-align:center;
  color:#777;
  font-size:12px;
}

.shopOrderBtn{
  display:block;
  width:180px;
  margin:34px 0 0 auto;
}

@media (max-width:640px){
  .shopPage{
    width:100%;
    padding:18px 12px 72px;
  }

  .shopPageHead{
    margin-bottom:34px;
  }

  .shopProductGrid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:36px 28px;
  }

  .shopDetailPage,
  .shopCartPage{
    max-width:100%;
  }

  .shopCartRow{
    grid-template-columns:82px minmax(0, 1fr) auto;
    gap:12px;
    padding:16px 14px;
  }

  .shopCartThumb{
    width:82px;
    height:82px;
  }

  .shopOrderBtn{
    width:160px;
  }
}


/* ===== SHOP 상세 PC 레이아웃 최종 보정 ===== */
@media (min-width: 769px){
  .shopPage{
    width:min(calc(100% - 48px), 1040px) !important;
    max-width:1040px !important;
    margin:0 auto !important;
    padding:18px 0 80px !important;
  }

  .shopDetailPage{
    max-width:1040px !important;
  }

  .shopDetailHero{
    display:grid !important;
    grid-template-columns:minmax(360px, 1.05fr) minmax(330px, .95fr) !important;
    grid-template-areas:
      "image info"
      "image option"
      "image actions"
      "details details" !important;
    column-gap:72px !important;
    row-gap:12px !important;
    align-items:start !important;
    width:100% !important;
  }

  .shopDetailImg{
    grid-area:image !important;
    width:100% !important;
    max-width:430px !important;
    aspect-ratio:1 / 1 !important;
    margin:0 !important;
    justify-content:flex-start !important;
  }

  .shopDetailImg img{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
  }

  .shopDetailInfo{
    grid-area:info !important;
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) auto !important;
    gap:16px !important;
    align-items:start !important;
    margin:172px 0 0 !important;
  }

  .shopOptionSelect{
    grid-area:option !important;
    width:100% !important;
    height:34px !important;
  }

  .shopDetailActions{
    grid-area:actions !important;
    display:grid !important;
    grid-template-columns:1fr 120px !important;
    gap:12px !important;
    margin:0 !important;
  }

  .shopBuyBtn,
  .shopCartBtn{
    height:38px !important;
  }

  .shopDetailsBlock{
    grid-area:details !important;
    width:100% !important;
    margin-top:54px !important;
  }
}

@media (max-width:768px){
  .shopDetailHero{
    display:block !important;
  }

  .shopDetailInfo{
    margin-bottom:12px !important;
  }

  .shopDetailActions{
    margin:12px 0 44px !important;
  }
}


/* 신청하기/리스트/관리자 화면에서는 SHOP 영역 숨김 */
body.mode-request .shopSection,
body.mode-list .shopSection,
body.mode-admin .shopSection{
  display:none !important;
}


/* 검색 아이콘형 디자인 */
.search{
  position:relative;
}

.search input{
  border:none !important;
  border-bottom:1px solid #ccc !important;
  padding:0 30px 6px 0 !important;
  width:140px;
  background:transparent;
}

.searchIcon{
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  background:url('https://cdn-icons-png.flaticon.com/512/622/622669.png') no-repeat center/contain;
  opacity:0.6;
  cursor:pointer;
}

/* ===== SHOP 상단바 - 첨부 시안 반영 ===== */
body.mode-shop .wrap{
  width:min(calc(100% - 52px), 1040px);
}

body.mode-shop .topbar{
  min-height:52px;
  padding:20px 0 6px;
  margin:0;
  align-items:flex-start;
  border-bottom:none !important;
  background:#fff;
}

body.mode-shop .brand{
  margin-left:0;
  align-items:flex-start;
}

body.mode-shop h1#topTitle{
  font-family:Georgia, 'Times New Roman', serif;
  font-size:16px;
  line-height:1;
  font-weight:400;
  letter-spacing:-0.05em;
  color:#b7b2ad;
}

body.mode-shop .search{
  flex:0 0 auto;
  width:74px;
  height:20px;
  margin-left:auto;
  margin-right:0;
  gap:0;
  justify-content:flex-end;
}

body.mode-shop .search input{
  width:74px !important;
  height:20px;
  padding:0 17px 3px 0 !important;
  border:0 !important;
  border-bottom:1px solid #e2e0dd !important;
  background:transparent !important;
  box-shadow:none !important;
  font-size:0;
}

body.mode-shop .searchIcon{
  width:11px;
  height:11px;
  right:2px;
  top:8px;
  opacity:.58;
  filter:grayscale(1);
}

body.mode-shop .topbarLogo{
  display:none !important;
}

body.mode-shop .shopPage{
  padding-top:14px;
}

body.mode-shop .shopPageHead{
  margin:0 0 42px;
  min-height:24px;
  align-items:center;
}

body.mode-shop .shopPageTitle{
  display:flex;
  align-items:center;
  gap:7px;
  color:#222;
  letter-spacing:-0.02em;
  line-height:1;
}

body.mode-shop .shopPageTitle strong{
  font-size:13px;
  font-weight:700;
}

body.mode-shop .shopPageTitle span{
  font-size:12px;
  color:#111;
  font-weight:300;
  transform:translateY(-.5px);
}

body.mode-shop .shopPageTitle em{
  font-style:normal;
  font-size:10px;
  font-weight:400;
  color:#333;
}

body.mode-shop .shopPageIcons{
  gap:14px;
  padding-right:2px;
}

body.mode-shop .shopIconBtn{
  width:28px;
  height:25px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#8b8782;
}

body.mode-shop .shopIconBtn svg{
  width:28px;
  height:25px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.25;
  stroke-linecap:round;
  stroke-linejoin:round;
}

body.mode-shop .shopIconBtn span{
  right:-7px;
  top:-8px;
}

@media (max-width:640px){
  body.mode-shop .wrap{
    width:calc(100% - 36px);
  }

  body.mode-shop .topbar{
    padding-top:18px;
  }

  body.mode-shop h1#topTitle{
    font-size:15px;
  }

  body.mode-shop .shopPage{
    padding-left:0;
    padding-right:0;
  }
}


@media (max-width:640px){
  .topLogo{
    height:19px;
    max-width:130px;
  }
  .catalogTopSearch{
    width:104px !important;
    height:30px;
    padding:0 28px 6px 0 !important;
  }
  body.mode-request .topbarLogo{
    min-width:104px;
  }
  .catalogDetailMeta{
    margin-bottom:28px;
  }
}


/* ===== 요청 반영: 도록/신청 상단 검색 디자인 통일 + 상단 선 제거 ===== */
body.mode-request .topbar,
body.mode-request .topbar.no-search,
body.mode-shop .topbar,
body.mode-shop .topbar.no-search{
  border-bottom:none !important;
  box-shadow:none !important;
}

body.mode-request .topbarLogo:has(.catalogTopSearch){
  display:flex !important;
  align-items:center;
  justify-content:flex-end;
}

body.mode-request .topbarLogo:has(.catalogTopSearch) img{
  display:none !important;
}


/* ===== SHOP 검색창/아이콘 수정 최종 ===== */
body.mode-shop .search{
  position:relative;
  flex:0 0 auto;
  width:140px;
  height:30px;
  margin-left:auto;
  margin-right:0;
  gap:0;
  justify-content:flex-end;
}

body.mode-shop .search input{
  width:140px !important;
  height:30px !important;
  padding:0 30px 6px 0 !important;
  border:0 !important;
  border-bottom:1px solid #ccc !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:none !important;
  font-size:11px !important;
  color:#111 !important;
  font-family:inherit !important;
}

body.mode-shop .search input:focus{
  border-bottom-color:#2a2a2aae !important;
}

body.mode-shop .searchIcon{
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  background:url('https://cdn-icons-png.flaticon.com/512/622/622669.png') no-repeat center/contain;
  opacity:.6;
  cursor:pointer;
  filter:grayscale(1);
}

body.mode-shop .shopIconBtn.active{
  color:#111;
}

.shopEmptyResult{
  grid-column:1 / -1;
  min-height:160px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#999;
  font-size:12px;
}

.shopAccountPage{
  width:min(100%, 520px);
}

.shopAccountPanel{
  min-height:360px;
  border:1px solid #eeeeee;
  background:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:54px 28px;
}

.shopAccountIcon{
  width:74px;
  height:74px;
  border:1px solid #e8e8e8;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:22px;
  color:#777;
}

.shopAccountIcon svg{
  width:34px;
  height:34px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.15;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.shopAccountTitle{
  font-size:17px;
  font-weight:700;
  letter-spacing:.02em;
  color:#111;
  margin-bottom:8px;
}

.shopAccountSub{
  font-size:12px;
  font-weight:400;
  color:#777;
  margin-bottom:28px;
}

.shopAccountMenu{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  width:min(100%, 320px);
}

.shopAccountMenu button{
  height:42px;
  border:1px solid #ddd;
  background:#fff;
  color:#222;
  font-size:12px;
  font-weight:500;
  cursor:pointer;
}

.shopAccountMenu button:hover{
  background:#292929;
  border-color:#292929;
  color:#fff;
}

@media (max-width:640px){
  body.mode-shop .search{
    width:120px;
  }

  body.mode-shop .search input{
    width:120px !important;
  }

  .shopAccountPanel{
    min-height:330px;
    padding:42px 20px;
  }
}

/* ===== Catalogue page redesign 2026-04-28 ===== */
body.mode-request .wrap{
  width:min(calc(100% - 64px), 1120px);
  padding-bottom:70px;
}
body.mode-request .topbar{
  min-height:68px;
  padding:24px 0 14px;
}
body.mode-request .brand{ margin-left:0; }
body.mode-request .topLogo{ height:25px; max-width:180px; opacity:.45; }
body.mode-request .topbarLogo{
  display:flex !important;
  min-width:110px;
  margin-left:auto;
  padding-right:12px;
}
body.mode-request .topbarLogo:has(.catalogTopSearch)::after{
  width:16px;
  height:16px;
  right:12px;
  opacity:.85;
}
body.mode-request .catalogTopSearch{
  width:106px;
  height:28px;
  border-bottom:1px solid #d7d7d7 !important;
  padding:0 26px 4px 0 !important;
}
/* 물품신청하기 품목 상세페이지 원복: 상세페이지 숨김 처리 제거 */
body.mode-request .catalogDetailPage{
  width:100%;
  max-width:none;
  margin:0 auto;
  padding:0;
}
body.mode-request .catalogDetailTop{ margin-top:6px; }
body.mode-request .catalogDetailTitle{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 44px;
  font-size:0;
  line-height:1;
  letter-spacing:-0.03em;
}
body.mode-request .catalogTitleKr{
  font-size:18px;
  font-weight:800;
  color:#202020;
}
body.mode-request .catalogTitleDivider{
  font-size:16px;
  color:#333;
  font-weight:400;
  transform:translateY(-1px);
}
body.mode-request .catalogTitleEn{
  font-size:15px;
  font-weight:400;
  color:#333;
}
body.mode-request .catalogControlLabel{
  margin:0 0 6px 14px;
  font-size:11px;
  color:#777;
  font-weight:400;
}
body.mode-request .catalogDetailControlRow{
  display:grid;
  grid-template-columns:185px 185px 185px 116px;
  gap:42px;
  align-items:end;
  margin:0 12px 74px;
}
body.mode-request .catalogSelectWrap{ position:relative; }
body.mode-request .catalogSelect{
  width:100%;
  height:32px;
  border:0 !important;
  border-bottom:1px solid #cfcfcf !important;
  border-radius:0;
  background:transparent;
  padding:0 26px 8px 2px;
  font-size:14px;
  font-weight:500;
  color:#333;
  outline:none;
}
body.mode-request .catalogSelectArrow{
  right:8px;
  top:38%;
  font-size:11px;
  color:#555;
}
body.mode-request .catalogDetailSubmit{
  height:31px;
  width:116px;
  border-radius:2px;
  background:#2d2d2d;
  color:#fff;
  font-size:14px;
  font-weight:700;
}
.catalogGalleryGrid.catalogGridView{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:58px 74px;
  margin:0 0 70px;
  padding:0;
}
.catalogGalleryGrid.catalogGridView .catalogGalleryItem{
  width:100%;
  max-width:184px;
  aspect-ratio:3/4;
  margin:0 auto;
  border:0;
  background:transparent;
  overflow:visible;
  box-shadow:none;
}
.catalogGalleryGrid.catalogGridView .catalogGalleryItem img{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.22));
}
.catalogGalleryGrid.catalogGridView .catalogGalleryPlaceholder{ background:#f7f7f7; color:#bbb; }
.catalogResultView{
  margin:0 0 0;
}
.catalogResultLabel{
  margin:0 0 110px 14px;
  font-size:11px;
  color:#777;
}
.catalogResultMain{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 310px;
  gap:90px;
  align-items:center;
  padding:0 44px 58px 14px;
  border-bottom:1px solid #d7d7d7;
}
.catalogResultInfo{ align-self:end; padding-bottom:4px; }
.catalogYearBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:70px;
  height:22px;
  padding:0 14px;
  margin:0 0 12px;
  background:#f2f2f2;
  color:#333;
  font-size:15px;
  font-weight:700;
}
.catalogResultTitle{
  margin:0 0 2px;
  font-size:24px;
  line-height:1.2;
  letter-spacing:-0.05em;
  font-weight:800;
  color:#202020;
}
.catalogResultDate{
  margin:0 0 32px;
  font-size:17px;
  color:#222;
}
.catalogResultApplyBtn{
  width:282px;
  height:42px;
  border:0;
  border-radius:2px;
  background:#2d2d2d;
  color:#fff;
  font-size:16px;
  font-weight:800;
  cursor:pointer;
}
.catalogResultCover{
  width:250px;
  aspect-ratio:3/4;
  justify-self:center;
  display:flex;
  align-items:center;
  justify-content:center;
}
.catalogResultCover img{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));
}
body.mode-request .detailSectionBlock{
  margin:48px 2px 0;
}
body.mode-request .detailSectionHead{
  margin-bottom:8px;
}
body.mode-request .boxTitle{
  font-size:11px;
  color:#777;
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
}
body.mode-request .requestAdminActions .selDelBtn{
  width:62px;
  min-width:62px;
  height:26px;
  padding:0;
  border-color:#cfcfcf;
  font-size:11px;
}
body.mode-request .requestLogBox{
  border-color:#e0e0e0;
}
body.mode-request .requestTable .logHead,
body.mode-request .requestTable .logRow{
  grid-template-columns:1fr 1fr 1.55fr 1.3fr 1.1fr 1fr;
}
body.mode-request .logHead{
  min-height:38px;
  background:#fafafa;
}
body.mode-request .logRow{
  min-height:52px;
}
body.mode-request .logHead > div,
body.mode-request .logRow > div{
  padding:0 10px;
}
body.mode-request .logHeadLabel,
body.mode-request .logHeadCell,
body.mode-request .logDate,
body.mode-request .logType,
body.mode-request .logDept,
body.mode-request .logPerson,
body.mode-request .logQty{
  font-size:11px;
  color:#555;
}
body.mode-request .headerFilterDate,
body.mode-request .headerFilterSelect{
  border:0 !important;
  background:transparent !important;
  font-size:11px !important;
  text-align:center;
  color:#555;
}
@media (max-width: 760px){
  body.mode-request .wrap{ width:min(calc(100% - 32px), 1120px); }
  body.mode-request .catalogDetailControlRow{
    grid-template-columns:1fr;
    gap:14px;
    margin:0 0 38px;
  }
  body.mode-request .catalogDetailSubmit{ width:100%; height:38px; }
  .catalogGalleryGrid.catalogGridView{ grid-template-columns:repeat(2,1fr); gap:34px 26px; }
  .catalogResultMain{ grid-template-columns:1fr; gap:28px; padding:0 0 42px; }
  .catalogResultCover{ width:min(68vw,230px); order:-1; }
  .catalogResultLabel{ margin-bottom:34px; }
  .catalogResultApplyBtn{ width:100%; }
}


/* ===== FIX: round detail layout web/mobile ===== */
.catalogWholeBackBtn{
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  display:inline-flex;
  align-items:center;
  cursor:pointer;
  font-family:inherit;
}

.catalogWholeBackBtn:hover{
  opacity:.72;
}

.catalogResultGrid.yearOnly{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:34px 36px;
  align-items:start;
  width:100%;
}

.catalogResultCard{
  border:0;
  background:transparent;
  padding:0;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.catalogResultCardImg{
  width:100%;
  aspect-ratio:3 / 4;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  overflow:hidden;
}

.catalogResultCardImg img{
  width:80% !important;
  height:80% !important;
  max-width:80% !important;
  max-height:80% !important;
  object-fit:contain !important;
  display:block;
}

/* 회차 상세: 웹 */
.catalogRoundDetailLayout{
  width:100%;
  display:grid;
  grid-template-columns:minmax(240px, 1fr) minmax(220px, 320px);
  align-items:end;
  gap:70px;
  padding:8px 0 10px;
}

.catalogRoundInfo{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  padding-bottom:6px;
}

.catalogYearBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:56px;
  height:28px;
  padding:0 14px;
  background:#f3f3f3;
  font-size:14px;
  font-weight:700;
  color:#333;
  margin-bottom:8px;
}

.catalogRoundTitle{
  margin:0 0 4px;
  font-size:20px;
  line-height:1.25;
  font-weight:800;
  letter-spacing:-0.05em;
  color:#111;
}

.catalogRoundDate{
  margin:0 0 28px;
  font-size:15px;
  line-height:1.2;
  color:#111;
  font-weight:500;
}

.catalogRoundApplyBtn{
  width:230px;
  height:42px;
  border:0;
  background:#2d2d2d;
  color:#fff;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  font-family:inherit;
}

.catalogRoundImageBtn{
  border:0;
  background:transparent;
  padding:0;
  cursor:pointer;
  justify-self:end;
}

.catalogRoundImage{
  width:260px;
  aspect-ratio:3 / 4;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}

.catalogRoundImage img{
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  display:block;
  box-shadow:0 4px 8px rgba(0,0,0,.18);
}

.catalogEmptyResult{
  width:100%;
  padding:48px 0;
  text-align:center;
  font-size:13px;
  color:#777;
}

/* 모바일 회차 상세 */
@media (max-width:640px){
  .catalogResultGrid.yearOnly{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:26px 18px;
  }

  .catalogResultCardImg img{
    width:86% !important;
    height:86% !important;
    max-width:86% !important;
    max-height:86% !important;
  }

  .catalogRoundDetailLayout{
    display:flex;
    flex-direction:column-reverse;
    align-items:center;
    gap:28px;
    padding:4px 0 16px;
  }

  .catalogRoundImageBtn{
    width:100%;
    display:flex;
    justify-content:center;
  }

  .catalogRoundImage{
    width:min(54vw, 210px);
  }

  .catalogRoundInfo{
    width:100%;
    align-items:flex-start;
    padding:0 16px;
  }

  .catalogYearBadge{
    min-width:70px;
    height:32px;
    font-size:16px;
    margin-bottom:10px;
  }

  .catalogRoundTitle{
    font-size:22px;
    line-height:1.25;
    margin-bottom:4px;
  }

  .catalogRoundDate{
    font-size:16px;
    margin-bottom:22px;
  }

  .catalogRoundApplyBtn{
    width:100%;
    height:42px;
    font-size:16px;
  }
}


/* ===== PURE IMAGE FIX (완전 배경 제거) ===== */
.catalogRoundImage,
.catalogResultCardImg{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:0 !important;
}

.catalogRoundImage img,
.catalogResultCardImg img{
  background:transparent !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
}

.catalogResultCard,
.catalogRoundImageBtn{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
}



/* ===== 물품재고현황 페이지 디자인 + 클릭 폼 FINAL DIRECT ===== */
body.mode-list{ background:#fff; }

body.mode-list .wrap{
  width:min(calc(100% - 32px), 720px) !important;
  padding:0 0 80px !important;
}

body.mode-list .topbar{
  padding:18px 0 12px !important;
  margin:0 0 10px !important;
  min-height:60px !important;
}

body.mode-list .section{ margin-top:24px !important; }

body.mode-list .secHead{
  margin:0 0 18px !important;
  padding:0 !important;
  border:0 !important;
}

body.mode-list .secHead h2{
  font-size:14px !important;
  font-weight:800 !important;
  color:#222 !important;
  letter-spacing:-0.03em !important;
  text-transform:none !important;
}

.stockCatalogSection{
  position:relative;
  left:50%;
  width:100vw;
  margin-left:-50vw;
  background:#f2f2f2;
  padding:24px 0 20px;
  margin-top:14px;
  margin-bottom:24px;
}

.stockCatalogInner{
  width:min(calc(100% - 32px), 720px);
  margin:0 auto;
}

.stockCatalogHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px;
}

.stockCatalogTitle{
  display:flex;
  align-items:center;
  gap:7px;
  color:#111;
}

.stockCatalogTitle span{
  font-size:15px;
  font-weight:800;
}

.stockCatalogTitle em{
  font-style:normal;
  font-size:12px;
  color:#777;
}

.stockCatalogTitle small{
  font-size:12px;
  color:#777;
  font-weight:400;
}

.stockCatalogRight{
  font-size:14px;
  font-weight:800;
  color:#111;
}

.stockCatalogCards{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}

.stockCatalogCard{
  min-height:128px;
  border:0;
  background:#fff;
  padding:17px 10px 12px;
  text-align:center;
  cursor:pointer;
  font-family:inherit;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.stockCatalogCardTitle{
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  line-height:1.15;
  font-weight:900;
  color:#222;
}

.stockCatalogLine{
  width:100%;
  height:1px;
  background:#d9d9d9;
  margin:10px 0 8px;
}

.stockCatalogYear{
  font-size:11px;
  color:#777;
  line-height:1.2;
}

.stockCatalogRound{
  margin-top:2px;
  font-size:12px;
  color:#111;
  font-weight:500;
  line-height:1.2;
}

.stockCatalogQty{
  margin-top:auto;
  font-size:15px;
  font-weight:900;
  color:#18bfc0;
  line-height:1.2;
}

body.mode-list .list{
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
}

body.mode-list .stockStatusRow{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) 86px !important;
  gap:0 !important;
  min-height:62px !important;
}

body.mode-list .stockStatusCard{
  min-height:62px !important;
  padding:8px 10px !important;
  gap:12px !important;
  border:1px solid #e8e8e8 !important;
  border-right:0 !important;
  background:#fff !important;
  transform:none !important;
}

body.mode-list .stockStatusThumb{
  width:46px !important;
  height:46px !important;
  flex:0 0 46px !important;
  border:0 !important;
  background:#f5f5f5 !important;
}

body.mode-list .stockStatusTitle{
  font-size:13px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
  margin-bottom:2px !important;
}

body.mode-list .stockStatusSize{
  font-size:10px !important;
  color:#777 !important;
}

.stockStatusSub{
  font-size:10px;
  color:#4a7bd0;
}

body.mode-list .stockStatusQty{
  min-height:62px !important;
  padding:0 8px !important;
  font-size:14px !important;
  font-weight:900 !important;
  background:#fbfbfb !important;
  border:1px solid #e8e8e8 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.stockCatalogApplyModal.modal{ display:none; }
.stockCatalogApplyModal.modal.show{ display:block !important; }

/* PATCH: 도록 관리자 신청/입출고 내역 버튼 및 재고 표시 */
.catalogRoundApplyBtn.adminStockOnly{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  background:#f3f3f3 !important;
  color:#111 !important;
  cursor:default !important;
  border:0;
}
.catalogRoundApplyBtn.adminStockOnly b{font-weight:800;}
.catalogLogSection{margin-top:34px;}
.catalogStockBottom{margin-top:22px;}
.catalogStockBottom .adminBottomLeft{font-size:15px;color:#657085;font-weight:700;}
.catalogStockBottom .adminBottomLeft b{font-size:16px;margin-left:6px;color:#657085;}

/* 관리자 전용 도록 홈 요약 리스트 */
.adminCatalogHomeSection{
  margin:34px 0 22px;
  width:min(100%, 360px);
}
.adminCatalogHomeTitle{
  margin:0 0 12px;
  font-size:12px;
  font-weight:600;
  color:#111;
  letter-spacing:-0.03em;
}
.adminCatalogHomeList{
  background:#fafafa;
  border:0;
  padding:10px 18px;
}
.adminCatalogHomeRow{
  width:100%;
  min-height:58px;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto auto;
  align-items:center;
  gap:12px;
  border:0;
  border-bottom:1px solid #dddddd;
  background:transparent;
  padding:10px 0;
  text-align:left;
  font-family:inherit;
  cursor:pointer;
}
.adminCatalogHomeRow:last-child{ border-bottom:0; }
.adminCatalogHomeMain{
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:3px;
}
.adminCatalogHomeMain strong{
  font-size:13px;
  line-height:1.2;
  font-weight:700;
  color:#171717;
  letter-spacing:-0.03em;
}
.adminCatalogHomeMain em{
  font-style:normal;
  font-size:10px;
  line-height:1.2;
  color:#777;
  letter-spacing:-0.02em;
}
.adminCatalogHomeStatus,
.adminCatalogHomeQty{
  font-size:12px;
  line-height:1;
  color:#21b7b2;
  font-weight:600;
  white-space:nowrap;
}
.adminCatalogHomeRow:hover .adminCatalogHomeMain strong{
  text-decoration:underline;
  text-underline-offset:3px;
}
@media (max-width:640px){
  .adminCatalogHomeSection{ width:100%; margin-top:24px; }
  .adminCatalogHomeList{ padding:8px 14px; }
}


/* ===== PATCH: 관리자 도록 요약 박스 - 아래 봉투 리스트와 가로/내부선/내용 정렬 ===== */
.adminCatalogHomeSection{
  width:100% !important;
  max-width:none !important;
  margin:34px 0 42px !important;
}

.adminCatalogHomeTitle{
  margin:0 0 12px !important;
  font-size:12px !important;
  font-weight:600 !important;
  color:#111 !important;
  letter-spacing:-0.03em !important;
}

.adminCatalogHomeList{
  width:100% !important;
  background:#fafafa !important;
  border:0 !important;
  padding:26px 32px !important;
}

.adminCatalogHomeRow{
  width:100% !important;
  min-height:70px !important;
  display:grid !important;
  grid-template-columns:minmax(260px, 1fr) 96px 72px !important;
  align-items:center !important;
  gap:14px !important;
  border:0 !important;
  border-bottom:1px solid #dddddd !important;
  background:transparent !important;
  padding:14px 0 !important;
  text-align:left !important;
  font-family:inherit !important;
  cursor:pointer !important;
}

.adminCatalogHomeRow:last-child{
  border-bottom:0 !important;
}

.adminCatalogHomeMain{
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
  gap:4px !important;
}

.adminCatalogHomeMain strong{
  font-size:16px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
  color:#171717 !important;
  letter-spacing:-0.04em !important;
}

.adminCatalogHomeMain em{
  font-style:normal !important;
  font-size:13px !important;
  line-height:1.25 !important;
  color:#777 !important;
  letter-spacing:-0.03em !important;
}

.adminCatalogHomeStatus,
.adminCatalogHomeQty{
  font-size:15px !important;
  line-height:1 !important;
  color:#21b7b2 !important;
  font-weight:700 !important;
  white-space:nowrap !important;
  text-align:right !important;
}

.adminCatalogHomeRow:hover .adminCatalogHomeMain strong{
  text-decoration:underline !important;
  text-underline-offset:3px !important;
}

@media (max-width:640px){
  .adminCatalogHomeSection{
    width:100% !important;
    margin-top:24px !important;
  }

  .adminCatalogHomeList{
    padding:16px 18px !important;
  }

  .adminCatalogHomeRow{
    min-height:62px !important;
    grid-template-columns:minmax(0, 1fr) auto auto !important;
    gap:10px !important;
    padding:12px 0 !important;
  }

  .adminCatalogHomeMain strong{
    font-size:14px !important;
  }

  .adminCatalogHomeMain em,
  .adminCatalogHomeStatus,
  .adminCatalogHomeQty{
    font-size:12px !important;
  }
}

/* ===== SHOP cart/order/admin request update ===== */
.shopSubTitle{
  margin:26px 0 24px;
  font-size:18px;
  font-weight:700;
  letter-spacing:-0.04em;
  color:#222;
}

.shopCartPage .shopCartList{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.shopCartRow{
  position:relative;
  display:grid;
  grid-template-columns:160px minmax(0,1fr) 104px;
  align-items:center;
  min-height:172px;
  border:1px solid #d8d8d8;
  background:#fff;
  padding:22px 36px 22px 26px;
  column-gap:22px;
}

.shopCartRemove{
  position:absolute;
  right:14px;
  top:10px;
  width:20px;
  height:20px;
  border:0;
  background:transparent;
  color:#777;
  font-size:22px;
  line-height:18px;
  cursor:pointer;
}

.shopCartThumb{
  width:142px;
  height:118px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:#fff;
}

.shopCartThumb img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
}

.shopCartName{
  font-size:15px;
  font-weight:700;
  color:#222;
  margin-bottom:2px;
}

.shopCartColor{
  font-size:13px;
  color:#777;
  margin-bottom:8px;
}

.shopQtyControl{
  display:flex;
  align-items:center;
  gap:10px;
  margin:2px 0 8px;
}

.shopQtyControl span{
  min-width:20px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #d7d7d7;
  color:#777;
  font-size:14px;
}

.shopQtyControl button{
  border:0;
  background:transparent;
  padding:0;
  color:#777;
  font-size:16px;
  cursor:pointer;
}

.shopCartUnit{
  font-size:16px;
  font-weight:700;
  color:#111;
}

.shopCartPrice{
  align-self:end;
  justify-self:end;
  font-size:18px;
  font-weight:800;
  color:#111;
}

.shopOrderBtn{
  width:196px;
  height:42px;
  display:block;
  margin:44px 0 0 auto;
  border:0;
  background:#9fd7d4;
  color:#fff;
  font-size:16px;
  font-weight:800;
  cursor:pointer;
}

.shopOrderHistoryList,
.shopAdminRequestList{
  display:flex;
  flex-direction:column;
  gap:22px;
}

.shopOrderNo{
  height:28px;
  display:flex;
  align-items:center;
  padding:0 10px;
  margin-bottom:8px;
  background:#f4f4f4;
  color:#111;
  font-size:11px;
  font-weight:700;
}

.shopOrderRow{
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  align-items:center;
  gap:16px;
  min-height:114px;
  border:1px solid #dcdcdc;
  padding:16px 18px;
  background:#fff;
}

.shopOrderThumb,
.shopAdminRequestThumb,
.shopAdminDetailImg{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  overflow:hidden;
}

.shopOrderThumb{ width:100px; height:82px; }
.shopOrderThumb img,
.shopAdminRequestThumb img,
.shopAdminDetailImg img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
}

.shopOrderName{
  font-size:12px;
  font-weight:700;
  color:#222;
}
.shopOrderColor{
  font-size:10px;
  color:#777;
  margin-bottom:7px;
}
.shopOrderLine{
  height:1px;
  background:#d6d6d6;
  margin-bottom:8px;
}
.shopOrderMeta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:11px;
}
.shopOrderMeta span{ color:#ff4b4b; font-weight:700; }
.shopOrderMeta em{ color:#777; font-style:normal; }
.shopOrderTotal{
  margin-top:10px;
  text-align:right;
  font-size:14px;
  font-weight:800;
}
.shopGrandTotal{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:32px;
  padding:18px 0;
  border-top:1px solid #ddd;
  border-bottom:1px solid #ddd;
  font-size:12px;
}
.shopGrandTotal strong{ font-size:14px; }

.shopAdminRequestCard{
  width:100%;
  display:grid;
  grid-template-columns:160px minmax(0,1fr);
  gap:30px;
  align-items:center;
  min-height:156px;
  padding:24px 36px;
  border:1px solid #d8d8d8;
  background:#fff;
  text-align:left;
  cursor:pointer;
  font-family:inherit;
}
.shopAdminRequestThumb{ width:136px; height:108px; }
.shopAdminRequestName{ font-size:15px; font-weight:700; color:#222; }
.shopAdminRequestColor{ font-size:12px; color:#777; margin-top:2px; }
.shopAdminRequestLine{ height:1px; background:#d5d5d5; margin:8px 0 12px; }
.shopAdminRequestStatus{
  display:flex;
  justify-content:space-between;
  color:#e03d3d;
  font-size:14px;
  margin-bottom:12px;
}
.shopAdminRequestStatus em{ font-style:normal; }
.shopAdminRequestBottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:15px;
  color:#111;
}
.shopAdminRequestBottom strong,
.shopAdminRequestBottom b{ font-weight:800; }

.shopAdminDetailHero{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:28px;
  align-items:center;
  margin:38px 0 52px;
}
.shopAdminDetailImg{ width:150px; height:130px; }
.shopAdminDetailName{ font-size:13px; font-weight:700; }
.shopAdminDetailColor{ font-size:11px; color:#777; }
.shopAdminDetailLine{ height:1px; background:#d7d7d7; margin:8px 0; }
.shopAdminStock{ display:flex; align-items:center; justify-content:space-between; font-size:13px; font-weight:700; }
.shopAdminStock strong{ font-size:14px; }
.shopAdminTableTitleRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 8px;
}
.shopAdminTableTitleRow h3{
  margin:0;
  font-size:12px;
  font-weight:500;
  color:#555;
}
.shopAdminActions{ display:flex; gap:8px; }
.shopAdminActions button{
  height:24px;
  min-width:40px;
  padding:0 12px;
  border:1px solid #d7d7d7;
  background:#fff;
  color:#111;
  font-size:11px;
  cursor:pointer;
}
#shopApproveBtn{ background:#e6f1ff; border-color:#c7dcfb; }
#shopRejectBtn{ background:#ffe9e9; border-color:#ffd1d1; }
.shopAdminMiniTable{
  border:1px solid #e2e2e2;
  margin-bottom:24px;
}
.shopAdminMiniHead,
.shopAdminMiniRow{
  display:grid;
  grid-template-columns:1fr .8fr 1fr 1fr;
  align-items:center;
  min-height:26px;
  font-size:10px;
  color:#222;
  text-align:center;
}
.shopAdminMiniHead{
  background:#f8f8f8;
  border-bottom:1px solid #e2e2e2;
}
.shopAdminMiniRow{
  border-bottom:1px solid #eee;
  position:relative;
}
.shopAdminMiniRow input{
  position:absolute;
  left:8px;
  top:50%;
  transform:translateY(-50%);
}
.shopAdminMiniRow.noCheck{
  position:static;
}
.shopAdminMiniEmpty{ height:27px; border-bottom:1px solid #eee; }
.shopAdminLogTitleRow{ margin-top:46px; }

@media (max-width:640px){
  .shopSubTitle{ margin:22px 0 20px; font-size:16px; }
  .shopCartRow{ grid-template-columns:110px minmax(0,1fr); padding:16px 18px; gap:14px; min-height:132px; }
  .shopCartThumb{ width:104px; height:92px; }
  .shopCartPrice{ grid-column:2; justify-self:end; font-size:15px; }
  .shopOrderBtn{ width:190px; margin-top:36px; }
  .shopAdminRequestCard{ grid-template-columns:130px minmax(0,1fr); gap:18px; padding:22px 26px; }
  .shopAdminRequestThumb{ width:116px; height:96px; }
  .shopAdminDetailHero{ grid-template-columns:118px minmax(0,1fr); gap:18px; }
  .shopAdminDetailImg{ width:118px; height:106px; }
}

/* ===== PATCH: 관리자 제품 구매하기 - SHOP 재고 현황 별도 표시 ===== */
.shopAdminStockSummary{
  margin:0 0 34px;
  padding:0;
}

.shopAdminStockSummaryHead{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin:0 0 12px;
}

.shopAdminStockSummaryHead h3,
.shopAdminRequestTitleRow h3{
  margin:0;
  font-size:13px;
  font-weight:700;
  color:#111;
  letter-spacing:-0.03em;
}

.shopAdminStockSummaryHead p{
  margin:5px 0 0;
  font-size:11px;
  font-weight:400;
  color:#777;
  letter-spacing:-0.02em;
}

.shopAdminStockSummaryTotal{
  display:flex;
  align-items:center;
  gap:9px;
  white-space:nowrap;
  font-size:11px;
  color:#777;
}

.shopAdminStockSummaryTotal strong{
  font-size:17px;
  color:#111;
  letter-spacing:-0.04em;
}

.shopAdminStockSummaryMeta{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 14px;
}

.shopAdminStockSummaryMeta span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 10px;
  background:#f7f7f7;
  border:1px solid #ededed;
  font-size:11px;
  color:#555;
  white-space:nowrap;
}

.shopAdminStockGrid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}

.shopAdminStockCard{
  display:grid;
  grid-template-columns:76px minmax(0, 1fr);
  gap:12px;
  align-items:center;
  width:100%;
  min-height:116px;
  padding:14px;
  border:1px solid #e5e5e5;
  background:#fff;
  text-align:left;
  font-family:inherit;
  cursor:pointer;
  transition:transform .18s ease, border-color .18s ease, background .18s ease;
}

.shopAdminStockCard:hover{
  transform:translateY(-2px);
  border-color:#cfcfcf;
  background:#fafafa;
}

.shopAdminStockThumb{
  width:76px;
  height:76px;
  border:1px solid #efefef;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.shopAdminStockThumb img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.shopAdminStockInfo{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:5px;
}

.shopAdminStockName{
  font-size:13px;
  font-weight:700;
  color:#111;
  letter-spacing:-0.04em;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.shopAdminStockColor{
  font-size:11px;
  color:#777;
  line-height:1.2;
}

.shopAdminStockNumbers{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:8px;
  margin-top:4px;
  padding-top:8px;
  border-top:1px solid #eeeeee;
}

.shopAdminStockNumbers span{
  font-size:11px;
  color:#777;
  white-space:nowrap;
}

.shopAdminStockNumbers strong{
  font-size:18px;
  color:#111;
  letter-spacing:-0.05em;
  white-space:nowrap;
}

.shopAdminStockSub{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  font-size:11px;
  color:#777;
}

.shopAdminStockSub em{
  font-style:normal;
  font-weight:700;
  color:#21b7b2;
}

.shopAdminStockCard.low .shopAdminStockSub em{
  color:#c47b00;
}

.shopAdminStockCard.empty .shopAdminStockSub em{
  color:#c63e3e;
}

.shopAdminRequestTitleRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 12px;
}

.shopAdminRequestTitleRow span{
  font-size:11px;
  color:#777;
}

@media (max-width:900px){
  .shopAdminStockGrid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:640px){
  .shopAdminStockSummaryHead{
    align-items:flex-start;
    flex-direction:column;
  }

  .shopAdminStockGrid{
    grid-template-columns:1fr;
  }

  .shopAdminStockCard{
    grid-template-columns:66px minmax(0, 1fr);
    min-height:102px;
    padding:12px;
  }

  .shopAdminStockThumb{
    width:66px;
    height:66px;
  }
}

/* PATCH: 관리자 SHOP 재고 현황 제외 후 빈 목록 안내 */
.shopAdminStockEmpty{
  grid-column:1 / -1;
  min-height:90px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #eeeeee;
  background:#fafafa;
  color:#888;
  font-size:12px;
}

/* PATCH v3: SHOP 주문 신청 정보 / 관리자 기존 재고 수정 */
.shopOrderRequestForm{
  margin:28px 0 0;
  padding:18px 20px;
  border:1px solid #dedede;
  background:#fafafa;
}

.shopOrderRequestTitle{
  margin:0 0 12px;
  font-size:13px;
  font-weight:700;
  color:#222;
  letter-spacing:-0.03em;
}

.shopOrderRequestFields{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.shopOrderRequestFields label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:11px;
  color:#666;
  font-weight:600;
}

.shopOrderRequestFields input{
  width:100%;
  height:38px;
  border:1px solid #d8d8d8;
  background:#fff;
  padding:0 12px;
  font-size:13px;
  outline:none;
  font-family:inherit;
}

.shopOrderRequestFields input:focus{
  border-color:#111;
}

.shopOrderRequester{
  margin-top:6px;
  font-size:11px;
  color:#777;
  text-align:right;
}

.shopAdminBaseStockEdit{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid #ededed;
}

.shopAdminBaseStockEdit > button,
.shopAdminBaseStockEditRow button{
  height:28px;
  border:1px solid #d7d7d7;
  background:#fff;
  color:#111;
  padding:0 10px;
  font-size:11px;
  cursor:pointer;
  font-family:inherit;
}

.shopAdminBaseStockEdit > button{
  width:100%;
  background:#f8f8f8;
}

.shopAdminBaseStockEditRow{
  display:none;
  grid-template-columns:minmax(0, 1fr) 48px 48px;
  gap:6px;
  margin-top:8px;
}

.shopAdminBaseStockEditRow.show{
  display:grid;
}

.shopAdminBaseStockEditRow input{
  min-width:0;
  height:28px;
  border:1px solid #d7d7d7;
  padding:0 8px;
  font-size:12px;
  font-family:inherit;
}

@media (max-width:640px){
  .shopOrderRequestFields{
    grid-template-columns:1fr;
  }
}

/* ===== SHOP 주문 신청/주문완료 분리 ===== */
.shopOrderSection{
  margin:0 0 46px;
}

.shopOrderSection.completed{
  margin-top:34px;
}

.shopOrderSectionHead{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin:0 0 16px;
  border-bottom:1px solid #e5e5e5;
  padding-bottom:10px;
}

.shopOrderSectionHead h3{
  margin:0;
  font-size:16px;
  font-weight:800;
  color:#222;
  letter-spacing:-0.04em;
}

.shopOrderSectionHead p{
  margin:0;
  font-size:12px;
  color:#777;
  letter-spacing:-0.03em;
  text-align:right;
}

.shopOrderRow{
  position:relative;
}

.shopOrderDeleteBtn{
  position:absolute;
  right:14px;
  top:12px;
  min-width:54px;
  height:26px;
  border:1px solid #ddd;
  background:#fff;
  color:#555;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  z-index:2;
}

.shopOrderDeleteBtn:hover{
  background:#222;
  border-color:#222;
  color:#fff;
}

.shopOrderStatus{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  min-width:72px;
  height:24px;
  margin-top:8px;
  padding:0 10px;
  border:1px solid #dcdcdc;
  background:#fafafa;
  color:#555;
  font-size:12px;
  font-weight:700;
}

.shopOrderStatus.approved{
  border-color:#9fd7d4;
  background:#eefbf9;
  color:#179b96;
}

.shopOrderStatus.rejected{
  border-color:#ffd5d5;
  background:#fff7f7;
  color:#c63e3e;
}

.shopOrderStatus.pending{
  border-color:#e5e5e5;
  background:#f8f8f8;
  color:#555;
}

@media (max-width:640px){
  .shopOrderSectionHead{
    display:block;
  }

  .shopOrderSectionHead p{
    margin-top:6px;
    text-align:left;
  }

  .shopOrderDeleteBtn{
    right:10px;
    top:10px;
  }
}

/* PATCH v6: 관리자 SHOP 주문 신청 내역 연도 필터/신청자 표시 */
.shopAdminYearFilter{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin:0 0 16px;
}
.shopAdminYearFilter label{
  font-size:11px;
  font-weight:600;
  color:#666;
  white-space:nowrap;
}
.shopAdminYearFilter select{
  height:34px;
  min-width:120px;
  border:1px solid #dcdcdc;
  background:#fff;
  padding:0 28px 0 10px;
  font-size:12px;
  font-family:inherit;
  color:#111;
  border-radius:0;
}
.shopAdminRequestRequester{
  margin-top:10px;
  padding-top:8px;
  border-top:1px solid #eeeeee;
  font-size:11px;
  color:#777;
  line-height:1.4;
}
@media (max-width:640px){
  .shopAdminYearFilter{ justify-content:space-between; }
  .shopAdminYearFilter select{ flex:0 0 130px; }
}
