:root{font-family:'Pretendard','Pretendard Variable',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo',"Noto Sans KR","Malgun Gothic",sans-serif;color:#172033;background:#f5f7fb}*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5}
/* 폼 컨트롤이 본문과 같은 폰트를 쓰도록 통일(브라우저 기본 폰트로 튀지 않게) */
input,textarea,select,button{font-family:inherit}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:#111b34;color:#fff;padding:24px 16px}.brand{margin-bottom:28px}.brand img{height:20px;width:auto;display:block}.brand small{display:block;color:#93a4c7;font-size:11px;margin-top:7px}.nav{display:grid;gap:7px}.nav button{border:0;background:transparent;color:#b8c4dc;text-align:left;padding:11px 12px;border-radius:9px;cursor:pointer;font-size:14px}.nav button.active,.nav button:hover{background:#263354;color:#fff}.main{padding:28px 32px;width:100%;min-width:0}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.top h1{font-size:24px;margin:0}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700}.active-badge{background:#dcfce7;color:#166534}.draft-badge{background:#e0e7ff;color:#3730a3}.expired-badge{background:#e5e7eb;color:#475569}.panel{background:#fff;border:1px solid #e3e8f2;border-radius:14px;padding:20px;box-shadow:0 5px 18px rgba(24,39,75,.04);margin-bottom:18px}.panel h2{font-size:16px;margin:0 0 16px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px}.field.wide{grid-column:1/-1}label{font-size:12px;font-weight:700;color:#536079}input,textarea{width:100%;border:1px solid #ced6e5;border-radius:8px;padding:10px 11px;font:inherit;background:#fff}
input[type="checkbox"],input[type="radio"]{width:15px;height:15px;flex-shrink:0;padding:0}textarea{min-height:76px;resize:vertical}input:focus,textarea:focus{outline:2px solid #bfdbfe;border-color:#2563eb}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.btn{border:0;border-radius:8px;padding:10px 14px;font-weight:700;cursor:pointer}.primary{background:#2563eb;color:white}.secondary{background:#e8eef9;color:#294069}.danger{background:#fee2e2;color:#b91c1c}.success{background:#dcfce7;color:#166534}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px;border-bottom:1px solid #e8edf5;text-align:left;vertical-align:middle}th{background:#f8fafc;color:#536079;font-size:11px}td input{padding:7px}.range-actions{width:70px}.muted{color:#71809d;font-size:12px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:18px}.metric{background:#fff;border:1px solid #e3e8f2;border-radius:12px;padding:17px}.metric strong{font-size:24px;display:block;margin-top:8px}.hidden{display:none!important}.empty{text-align:center;padding:34px;color:#71809d}.toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:#111827;color:#fff;padding:14px 20px;border-radius:10px;box-shadow:0 14px 44px rgba(0,0,0,.4);z-index:4000;font-size:14px;font-weight:600;line-height:1.5;text-align:center;max-width:min(90vw,420px);white-space:pre-line;pointer-events:none;animation:toast-pop .16s ease-out}
@keyframes toast-pop{from{opacity:0;transform:translate(-50%,-46%)}to{opacity:1;transform:translate(-50%,-50%)}}
.input-error{border-color:#ef4444!important;background:#fff5f5!important;box-shadow:0 0 0 2px rgba(239,68,68,.18)}
tr.row-click{cursor:pointer}tr.row-click:hover{background:#f4f8ff}
.dtl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;align-items:start}
.dtl-grid .dtl-sec{margin:0}
.rq-card.row-click{cursor:pointer}.members-card.row-click:hover,.rq-card.row-click:active{background:#f8fbff}
.acc-comments{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow:auto}
.acc-comment{background:#f7f9fc;border:1px solid #e5eaf3;border-left:3px solid #2864FF;border-radius:8px;padding:9px 11px}
.acc-comment-h{font-size:12px;margin-bottom:3px}
.acc-comment-h b{font-size:12.5px}
.acc-comment-b{font-size:13.5px;white-space:pre-line;color:#1a2233}
.acc-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}
@media(max-width:640px){.acc-stats{grid-template-columns:repeat(3,1fr)}}
.acc-stat{background:#fff;border:1px solid #e8edf5;border-radius:12px;padding:14px 10px;text-align:center;box-shadow:0 4px 14px rgba(24,39,75,.05)}
.acc-stat-v{font-size:24px;font-weight:900;letter-spacing:-.5px;line-height:1}
.acc-stat-l{font-size:12px;color:#8792a6;font-weight:700;margin-top:6px}
.acc-route{display:flex;flex-direction:column;gap:3px;font-size:12.5px;line-height:1.35}
.acc-route-o,.acc-route-d{display:block;word-break:keep-all;white-space:normal}
.acc-route-o::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#2864FF;margin-right:6px;vertical-align:middle}
.acc-route-d::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#12B76A;margin-right:6px;vertical-align:middle}
.acc-route-o{color:#3a4560}.acc-route-d{color:#1f2c44;font-weight:600}
/* 지갑 조정 회원검색 결과 — 화면 넘침 방지 카드 리스트 */
.wls-list{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto}
.wls-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid #e8edf5;border-radius:10px;padding:10px 12px;background:#fff}
.wls-info{flex:1 1 160px;min-width:0}
.wls-name{font-size:13.5px;word-break:keep-all}
.wls-bal{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:0 0 auto;line-height:1.3}
.wls-cash{font-weight:800;font-size:13.5px;color:#1f2c44}
.wls-mile{font-size:12px;color:#2864FF}
.wls-pick{flex:0 0 auto;padding:7px 16px}
/* 파트너 계약 단가 이력 — 좌우로 늘어나던 표를 카드 리스트로 재구성 */
.pc-hist-list{display:flex;flex-direction:column;gap:8px}
.pc-hist-item{border:1px solid #e8edf5;border-radius:10px;padding:11px 13px;background:#fbfcff}
.pc-hist-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13.5px;margin-bottom:8px}
.pc-hist-pay{margin-left:auto;font-size:12px;color:#48607a;background:#eef2f6;border-radius:20px;padding:2px 10px}
.pc-hist-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}
.pc-hist-cell{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid #eef0f6;border-radius:8px;padding:6px 9px}
.pc-hist-k{font-size:11px;color:#8792a6}
.pc-hist-v{font-size:13px;font-weight:700;color:#1f2c44}.policy-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0f6}.policy-row:last-child{border:0}.policy-title{font-weight:700}.error{background:#fff1f2;color:#be123c;padding:11px;border-radius:8px;font-size:13px;margin-bottom:14px}
.admin-thumb{height:64px;width:auto;max-width:220px;border-radius:8px;border:1px solid #e5e8eb;cursor:zoom-in;object-fit:cover;display:block}
.login-remember{display:flex;align-items:center;gap:7px;font-size:13px;color:#536079;margin-top:12px;cursor:pointer}.login-remember input{width:15px;height:15px}
.driver-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.search-grid{grid-template-columns:2fr 1fr;align-items:end;margin-bottom:14px}
.detail-fields{display:flex;flex-direction:column;gap:8px;margin-bottom:6px}
.detail-field{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 11px;background:#f8fafc;border-radius:8px}
.detail-label{font-size:11px;font-weight:700;color:#536079;min-width:96px}
.detail-value{flex:1;font-size:13px;word-break:break-all}
.btn-copy{padding:6px 11px;font-size:12px;flex-shrink:0}
/* 데스크톱: 좌측 메뉴와 우측 콘텐츠 스크롤 분리 - 페이지 전체가 아니라 각 영역이 독립적으로 스크롤된다. */
@media(min-width:801px){
  .shell{height:100vh;overflow:hidden}
  .sidebar{height:100vh;overflow-y:auto}
  .main{height:100vh;overflow-y:auto}
}
@media(max-width:800px){
  .shell{grid-template-columns:1fr}
  .shell>*{min-width:0}
  .main{padding:14px}
  .grid,.cards,.driver-grid,.search-grid{grid-template-columns:1fr}
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .top{flex-direction:column;align-items:stretch;gap:10px}
  .top h1{font-size:19px}
  .top>div{display:flex;gap:8px;flex-wrap:wrap}
  .top>div .btn,.top>div a{flex:1;text-align:center}
  input:not([type="checkbox"]):not([type="radio"]),textarea,select{font-size:16px;padding:12px 11px}
  .btn{padding:12px 14px;font-size:14px}
  td .btn,td .actions .btn{padding:9px 12px}
  .detail-field{flex-direction:column;align-items:flex-start;gap:6px}
  .detail-label{min-width:0}
  .btn-copy{align-self:flex-start}
  .policy-row{flex-direction:column;align-items:flex-start;gap:10px}
  .policy-row .actions{margin-top:0}
}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-panel{width:100%;max-width:340px}.login-panel h1{font-size:18px;margin:0 0 18px}
/* ===== 어드민 로그인 화면(탁송 테마 글래스 카드) ===== */
.login-scene{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden;background:#cfe0ee}
.login-scene-photo{background:#cfe0ee url('/admin%20login%20background.png') center/cover no-repeat}
/* 카드 뒤쪽 가독성 확보용 은은한 스크림(하단·중앙 약간 어둡게, 상단은 하늘 유지) */
.login-scrim{position:absolute;inset:0;z-index:0;background:
  radial-gradient(120% 90% at 42% 58%, rgba(12,28,54,.28), transparent 55%),
  linear-gradient(180deg, rgba(255,255,255,.06) 0%, transparent 26%, rgba(9,22,46,.22) 100%)}
.login-topbrand{position:absolute;top:22px;left:24px;z-index:2;display:flex;align-items:center;gap:9px}
.login-topbrand img{height:22px;width:auto;display:block;filter:drop-shadow(0 1px 3px rgba(255,255,255,.7))}
.login-topbrand span{font-size:13px;font-weight:800;color:#17325c;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.9);border-radius:7px;padding:2px 9px;backdrop-filter:blur(6px)}
.login-card{position:relative;z-index:1;width:100%;max-width:400px;padding:38px 34px 26px;border-radius:26px;background:rgba(255,255,255,.74);border:1px solid rgba(255,255,255,.6);box-shadow:0 40px 90px rgba(3,12,32,.5);backdrop-filter:blur(26px) saturate(150%);-webkit-backdrop-filter:blur(26px) saturate(150%);text-align:center}
.login-badge{width:60px;height:60px;margin:0 auto 16px;border-radius:18px;background:linear-gradient(160deg,#4b82ff,#2258e6);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 26px rgba(40,100,255,.34);overflow:hidden}
.login-badge img{width:100%;height:100%;object-fit:cover;border-radius:18px;display:block}
.login-badge svg{width:28px;height:28px}
.login-card h1{font-size:24px;font-weight:800;color:#141d33;margin:0 0 8px;letter-spacing:-.3px}
.login-sub{font-size:14px;line-height:1.5;color:#5a6a86;margin:0 0 26px}
.lg-field{position:relative;display:flex;align-items:center;margin-bottom:12px}
.lg-field .lg-ic{position:absolute;left:14px;display:flex;color:#8494ae;pointer-events:none}
.lg-field .lg-ic svg{width:19px;height:19px}
.login-card .lg-field input{width:100%;height:52px;border:1px solid rgba(255,255,255,.9);border-radius:14px;background:rgba(255,255,255,.72);padding:0 46px 0 44px;font-size:16px;color:#1a2440;transition:border-color .12s,box-shadow .12s,background .12s}
.lg-field input::placeholder{color:#97a3b8}
.lg-field input:focus{outline:none;border-color:#2864FF;background:#fff;box-shadow:0 0 0 4px rgba(40,100,255,.14)}
.lg-eye{position:absolute;right:8px;width:36px;height:36px;border:0;background:transparent;color:#8494ae;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:9px}
.lg-eye:hover{color:#2864FF;background:rgba(40,100,255,.08)}
.lg-eye svg{width:19px;height:19px}
.login-scene .login-remember{display:flex;align-items:center;gap:8px;justify-content:flex-start;font-size:13px;color:#5a6a86;margin:2px 2px 18px;cursor:pointer}
.login-scene .login-remember input{width:16px;height:16px;accent-color:#2864FF}
.lg-error{background:rgba(240,68,56,.1);border:1px solid rgba(240,68,56,.3);color:#b42318;font-size:13px;font-weight:600;border-radius:11px;padding:10px 12px;margin-bottom:14px}
.lg-submit{width:100%;height:52px;border:0;border-radius:14px;background:linear-gradient(160deg,#2f3b56,#1b2740);color:#fff;font-size:15.5px;font-weight:800;letter-spacing:.2px;cursor:pointer;box-shadow:0 14px 30px rgba(27,39,64,.32);transition:transform .12s,box-shadow .12s,opacity .12s}
.lg-submit:hover{transform:translateY(-1px);box-shadow:0 18px 38px rgba(27,39,64,.4)}
.lg-submit:active{transform:translateY(0)}
.lg-foot{font-size:11.5px;color:#8494ae;margin-top:18px}
/* 모바일/세로화면은 세로형 배경 이미지 사용 */
@media(max-width:820px){.login-scene-photo{background-image:url('/admin%20login%20background%20for%20mobilie.png')}}
@media(max-width:480px){.login-card{padding:32px 22px 22px;border-radius:22px}.login-card h1{font-size:21px}.login-topbrand{top:16px;left:16px}}

/* 디자인 톤 개편: 더 둥글고 부드러운 톤 + 사용자용 앱과 통일된 포인트 컬러 */
:root{--pg-accent:#3d63ff;--pg-accent-dark:#2947c7}
body{background:linear-gradient(160deg,#eef1ff 0%,#f6f7fc 55%,#fbf8f4 100%)}
.sidebar{background:linear-gradient(180deg,#141d3d 0%,#0e1529 100%);padding:24px 14px}
.brand{padding:0 6px}
.nav button{border-radius:12px;padding:12px 14px;transition:background .15s}
.nav button.active,.nav button:hover{background:linear-gradient(135deg,var(--pg-accent),var(--pg-accent-dark));color:#fff}
.panel{border-radius:20px;border-color:#eef0f9;box-shadow:0 16px 40px rgba(20,29,61,.07)}
input,textarea{border-radius:10px;border-color:#e7eaf6;background:#fbfbfe}
input:focus,textarea:focus{outline:none;border-color:var(--pg-accent);box-shadow:0 0 0 3px rgba(61,99,255,.14)}
.btn{border-radius:10px;transition:transform .1s}
.btn:hover{transform:translateY(-1px)}
.primary{background:linear-gradient(135deg,var(--pg-accent),var(--pg-accent-dark));box-shadow:0 8px 18px rgba(61,99,255,.22)}
.badge{border-radius:999px}
.metric{border-radius:16px;box-shadow:0 12px 30px rgba(20,29,61,.06)}
.login-panel{border-radius:22px;box-shadow:0 26px 60px rgba(20,29,61,.16);padding:28px}
code{background:#f4f6fd;border-radius:6px;padding:2px 6px;font-size:12px;color:#2947c7}
/* 좁은 화면에서 열이 억지로 찌그러지지 않고 가로 스크롤되도록 최소 폭 지정 */
.table-wrap table{min-width:900px}
/* 넓은 화면에서도 표는 자기 영역(table-wrap) 안에서만 가로 스크롤되게 한다. 이게 없으면 모달 등
   좁은 컨테이너 안의 표(min-width:900px)가 컨테이너 전체를 옆으로 밀어 팝업이 통째로 넘어간다. */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* 상세 모달 안의 표는 모달 폭에 맞춰 자연스럽게 줄어들게(모달 자체가 넓어졌으니 강제 900px 불필요). */
.dtl-modal .table-wrap table{min-width:560px}

/* ===== 디자인 리프레시: Cafe24 AI SPACE 콘솔 컨셉 (밝고 깔끔한 SaaS) ===== */
body{background:#f3f5fb}
.shell{grid-template-columns:250px 1fr}
/* 밝은 사이드바 + 섹션 그룹 */
.sidebar{background:#fff;border-right:1px solid #eceef6;color:#1e2a44}
.brand{margin:2px 6px 20px}
.brand small{color:#95a1b8}
.nav-label{font-size:10.5px;font-weight:800;letter-spacing:.4px;color:#adb6c8;padding:0 12px;margin:15px 0 7px}
.nav button{color:#5b6579;font-weight:600;padding:11px 13px;border-radius:11px;transition:background .12s,color .12s}
.nav button:hover{background:#f2f5fc;color:#1e2a44}
.nav button.active{background:#eef3ff;color:#2864FF;font-weight:800}
/* 최상단 단독 대시보드 링크 */
.nav-top{display:block;margin:0 0 8px}
.nav-top-btn{width:100%;text-align:left;display:flex;align-items:center;gap:9px;font-weight:800;font-size:13.5px;color:#3c4761;background:#f4f7ff;border:1px solid #e2ebff;border-radius:11px;padding:12px 13px}
.nav-top-btn i{color:#2864FF}
.nav-top-btn.active{background:#2864FF;color:#fff;border-color:#2864FF}
.nav-top-btn.active i{color:#fff}
/* ===== 대메뉴 아코디언(헤더 클릭 → 하위메뉴 접고 펼침) ===== */
.nav-accs{display:flex;flex-direction:column;gap:2px}
.nav-acc-head{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:transparent;color:#3c4761;font-weight:800;font-size:13.5px;padding:12px 12px;border-radius:11px;cursor:pointer;text-align:left;transition:background .12s}
.nav-acc-head:hover{background:#f2f5fc}
.nav-acc-chev{font-size:11px;color:#aab3c4;transition:transform .18s ease}
.nav-acc.open>.nav-acc-head{color:#2864FF}
.nav-acc.open>.nav-acc-head .nav-acc-chev{transform:rotate(180deg);color:#2864FF}
.nav-acc-body{display:none;padding:2px 0 6px}
.nav-acc.open>.nav-acc-body{display:block}
.nav-acc-body .nav{display:grid;gap:2px}
.nav-acc-body .nav button{padding:10px 12px 10px 20px;font-size:13px}
/* 본문 헤더(제목+부제) */
.top{margin-bottom:26px;align-items:flex-start}
.top-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.admin-whoami{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#3a4763;background:#eef2fb;border:1px solid #dbe3f0;border-radius:8px;padding:6px 11px;white-space:nowrap}
.admin-whoami i{color:#2864FF}
.admin-whoami b{color:#141d33}
.admin-whoami-role{font-size:11px;font-weight:700;color:#fff;background:#2864FF;border-radius:5px;padding:1px 6px}
/* 어드민 알림 벨 */
.admin-bell-wrap{position:relative;flex-shrink:0}
.admin-bell{position:relative;width:40px;height:40px;border-radius:10px;border:1px solid #dbe3f0;background:#fff;color:#3a4763;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}
.admin-bell:hover{background:#eef2fb;border-color:#c7d3e8;color:#2864FF}
.admin-bell-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#F04438;color:#fff;font-size:11px;font-weight:800;line-height:18px;text-align:center;box-shadow:0 0 0 2px #fff}
.admin-bell-panel{position:absolute;top:48px;right:0;width:340px;max-width:86vw;background:#fff;border:1px solid #e3e8f2;border-radius:14px;box-shadow:0 18px 46px rgba(20,29,61,.18);z-index:1500;overflow:hidden}
.an-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid #eef1f7}
.an-head b{font-size:14px;color:#141d33}
.an-readall{border:0;background:transparent;color:#2864FF;font-size:12.5px;font-weight:700;cursor:pointer;padding:4px 6px;border-radius:6px}
.an-readall:hover{background:#eef3ff}
.an-list{max-height:60vh;overflow:auto}
.an-item{display:flex;gap:11px;width:100%;text-align:left;border:0;border-bottom:1px solid #f2f4f9;background:#fff;padding:12px 16px;cursor:pointer}
.an-item:hover{background:#f7f9fd}
.an-ic{flex-shrink:0;font-size:19px;line-height:1.2}
.an-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.an-title{font-size:13px;font-weight:800;color:#1a2440}
.an-text{font-size:12px;color:#51607a;white-space:pre-line;word-break:keep-all}
.an-time{font-size:11px;color:#94a2bd;margin-top:1px}
.an-empty{padding:28px 16px;text-align:center;color:#94a2bd;font-size:13px}
/* 알림 벨 상단 웹푸시 신청/해제 영역 */
.an-push-row{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid #eef1f7;background:#f8fafd}
.an-push-row.on{background:#eefaf3}
.an-push-row.note{background:#fbfbfd}
.an-push-txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.an-push-txt b{font-size:13px;color:#1a2440}
.an-push-txt small{font-size:11.5px;color:#8794ab;line-height:1.35}
.an-push-btn{flex-shrink:0;border:0;border-radius:9px;background:#2864FF;color:#fff;font-size:12.5px;font-weight:800;padding:8px 14px;cursor:pointer}
.an-push-btn:hover{background:#1f52d6}
.an-push-btn.off{background:#eef1f6;color:#54617c}
.an-push-btn.off:hover{background:#e2e7f0}
.an-push-btn:disabled{opacity:.6;cursor:default}
.top h1{font-size:25px;font-weight:800;letter-spacing:-.4px;color:#141d33}
.page-subtitle{font-size:13px;color:#8792a6;margin-top:6px}
/* 카드/패널 */
.panel{border:1px solid #edf0f7;border-radius:18px;box-shadow:0 8px 26px rgba(24,39,75,.05);padding:22px 24px}
.panel h2{font-size:16px;font-weight:800;color:#1a2440;display:flex;align-items:center;gap:10px}
/* 이용안내·공지 게시판 편집 카드 */
.notice-edit-list{margin-top:14px;display:flex;flex-direction:column;gap:12px}
.notice-edit-card{border:1px solid #e8ecf6;border-radius:12px;padding:14px 16px;background:#fbfcff}
.notice-edit-card .field{margin-bottom:10px}
.notice-edit-card textarea{width:100%;line-height:1.6;resize:vertical}
.notice-edit-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.notice-edit-meta .muted{font-size:12px}
/* 버튼(브랜드 블루) */
.btn{border-radius:10px;padding:10px 15px;transition:transform .07s,background .12s,filter .12s}
.btn:active{transform:translateY(1px)}
.primary{background:#2864FF}
.primary:hover{background:#1f52d6}
.secondary{background:#eef1fb;color:#33477a}
.secondary:hover{background:#e2e8f7}
/* 표 */
th{background:#f7f9fe;color:#7c889e;font-size:11px;font-weight:800;letter-spacing:.2px;border-bottom:1px solid #edf1f8;padding:11px 12px}
td{border-bottom:1px solid #f1f4fa;padding:11px 12px}
tbody tr{transition:background .1s}
tbody tr:hover>td{background:#fafbff}
/* 입력 */
input,textarea{border:1px solid #dce2ee;border-radius:10px}
input:focus,textarea:focus{outline:none;border-color:#2864FF;box-shadow:0 0 0 3px rgba(40,100,255,.14)}
/* 배지 · 지표 카드 */
.badge{padding:5px 11px;font-weight:800;border-radius:999px}
.metric{border:1px solid #edf0f7;border-radius:16px;box-shadow:0 8px 26px rgba(24,39,75,.05);padding:18px 20px}
.metric strong{font-size:26px;color:#141d33}
/* 로그인 카드 */
.login-panel{border-radius:18px;box-shadow:0 20px 50px rgba(20,29,61,.12);padding:26px}

/* 정책센터 이전 버전 이력 본문 */
.terms-hist-body{white-space:pre-line;font-size:12.5px;color:#475569;line-height:1.7;max-height:280px;overflow:auto;background:#f8fafc;border:1px solid #eef1f7;border-radius:10px;padding:12px}

/* 접수 상세 팝업 안의 탁송 사진 썸네일 */
.detail-photos{margin-bottom:6px}
.detail-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.detail-photo-thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;border:1px solid #e5e8eb;cursor:zoom-in}

/* 정책센터 하위: 왼쪽 버전 리스트 / 오른쪽 내용 (박스 없이 넓게) */
.policy-intro{font-size:12.5px;color:#5b6a86;line-height:1.7;margin:0 0 14px}
.policy-layout{display:flex;gap:18px;align-items:flex-start}
.policy-verlist{flex:0 0 180px;display:flex;flex-direction:column;gap:6px}
.policy-ver-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border:1px solid #e5e8eb;border-radius:10px;background:#fff;cursor:pointer;text-align:left;transition:all .12s}
.policy-ver-item:hover{border-color:#b9c6ff}
.policy-ver-item.active{border-color:#2864FF;background:#f2f6ff}
.policy-ver-num{font-weight:800;color:#17202D;font-size:13px}
.policy-ver-tag{font-size:11px;color:#2864FF;font-weight:700}
.policy-ver-item.active .policy-ver-tag{color:#2864FF}
.policy-ver-sub{width:100%;font-size:11px;color:#94a3b8}
.policy-content{flex:1;min-width:0}
.policy-content-head h2{margin:0 0 4px;font-size:17px}
/* 공개 URL 안내 행(복사·바로가기) */
.policy-url-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 14px;padding:10px 12px;border:1px solid #e5e8eb;border-radius:10px;background:#f6f9ff}
.policy-url-label{font-size:11.5px;font-weight:800;color:#2864FF;background:#e5edff;padding:2px 8px;border-radius:6px;flex:none}
.policy-url-link{font-size:12.5px;color:#33415c;text-decoration:none;word-break:break-all;flex:1;min-width:0}
.policy-url-link:hover{text-decoration:underline}
.policy-url-copy{flex:none;padding:6px 12px;font-size:12px}
.policy-editor{width:100%;font-size:13px;line-height:1.6;padding:14px;border:1px solid #e5e8eb;border-radius:10px;resize:vertical;font-family:inherit}
.policy-readonly{white-space:pre-wrap;font-size:13px;line-height:1.7;color:#33415c;border:1px solid #e5e8eb;border-radius:10px;padding:16px;background:#fafbfc;max-height:70vh;overflow:auto}
@media (max-width:720px){.policy-layout{flex-direction:column}.policy-verlist{flex-direction:row;flex-wrap:wrap;flex-basis:auto;width:100%}.policy-ver-item{flex:0 0 auto}}

/* 접수/회원 필터 바 */
.req-filter{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:12px}
.req-filter .field{margin:0}
.req-filter-search{flex:1 1 260px;min-width:220px}
.req-filter-actions{margin-left:auto}
.req-status-field{flex:1 1 100%}
.req-status-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:5px}
.req-status-chip{font:inherit;font-size:12.5px;font-weight:700;color:#51607a;background:#f4f6fb;border:1px solid #dce3f0;border-radius:999px;padding:7px 15px;cursor:pointer;white-space:nowrap;transition:all .12s}
.req-status-chip:hover{border-color:#b9c6ff;color:#2864FF}
.req-status-chip.active{background:#2864FF;border-color:#2864FF;color:#fff;box-shadow:0 2px 6px rgba(40,100,255,.25)}
.req-count{margin:0 0 10px;font-size:12.5px}

/* FAQ 관리 아코디언 */
.faq-admin-list{margin-top:10px;border-top:1px solid #eef0f5}
.faq-admin-item{border-bottom:1px solid #eef0f5}
.faq-admin-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 4px;background:none;border:0;text-align:left;cursor:pointer;font:inherit}
.faq-admin-q{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:700;color:#1f2a44}
.faq-q-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;background:#2864FF;color:#fff;font-size:11px;font-weight:800;flex-shrink:0}
.faq-admin-chev{color:#94a3b8;transition:transform .15s;flex-shrink:0}
.faq-admin-item.open .faq-admin-chev{transform:rotate(180deg)}
.faq-admin-q .badge{flex-shrink:0;font-weight:700}
.faq-home-toggle{display:flex;align-items:center;gap:8px;font-weight:700;color:#536079;margin:8px 0 0;cursor:pointer;font-size:13px}
.faq-home-toggle input{width:16px;height:16px;margin:0;accent-color:#2864FF}
.faq-admin-body{max-height:0;overflow:hidden;transition:max-height .2s ease}
.faq-admin-item.open .faq-admin-body{max-height:600px;padding-bottom:12px}

/* 셀렉트·파일 입력을 텍스트 입력과 동일한 디자인으로 통일 (#56) */
.field select, select { width:100%; border:1px solid #ced6e5; border-radius:8px; padding:10px 11px; font:inherit; background:#fff; color:#172033; height:40px; }
.field input[type=file] { padding:7px 10px; background:#fff; }
.field input[type=file]::file-selector-button { border:1px solid #ced6e5; background:#f4f6fb; border-radius:6px; padding:5px 12px; margin-right:10px; font:inherit; cursor:pointer; color:#334155; }
.field input, .field textarea { height:auto; }
.field input:not([type=file]):not([type=checkbox]) { height:40px; }

/* 상태값 배지 - 리스트·상세 어디서나 동일 (#61) */
.status-badge { display:inline-flex; align-items:center; padding:5px 10px; border-radius:999px; font-size:11px; font-weight:700; white-space:nowrap; }
.status-PENDING { background:#e0e7ff; color:#3730a3; }
.status-ASSIGNING { background:#dbeafe; color:#1e40af; }
.status-ASSIGNED { background:#e0f2fe; color:#0369a1; }
.status-IN_TRANSIT { background:#ccfbf1; color:#0f766e; }
.status-COMPLETED { background:#dcfce7; color:#166534; }
.status-CANCELLED { background:#e5e7eb; color:#64748b; }
.status-ACCIDENT_PROCESSING { background:#fee2e2; color:#b91c1c; }
.status-ACCIDENT_DONE { background:#fde8d3; color:#9a3412; }

/* 상세 팝업 소제목 */
.detail-h3 { font-size:12px; font-weight:700; color:#536079; margin:14px 0 8px; }

/* FAQ 관리 아코디언: 펼침 시 내용이 잘려 버튼이 겹치지 않도록 넉넉히 */
.faq-admin-item.open .faq-admin-body { max-height:1400px; padding:4px 2px 16px; }
.faq-admin-body .notice-edit-meta { margin-top:12px; }

/* 대시보드 */
.dash-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}
.dash-stat{display:flex;align-items:center;gap:13px;position:relative;overflow:hidden;background:#fff;border:1px solid #e3e8f2;border-radius:14px;padding:16px;box-shadow:0 5px 18px rgba(24,39,75,.04);transition:transform .12s ease,box-shadow .12s ease}
.dash-stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent,#2864FF)}
.dash-stat:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(24,39,75,.1)}
.dash-stat-ic{flex-shrink:0;width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center}
.dash-stat-ic svg{width:24px;height:24px}
.dash-stat-body{min-width:0}
.dash-stat-label{font-size:12px;color:#71809d;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-stat-value{font-size:25px;font-weight:800;color:#1a2440;margin-top:3px;line-height:1.1}
.dash-stat-sub{font-size:11px;color:#94a2bd;margin-top:2px}
.panel h2 .ph-ic{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;flex-shrink:0}
.panel h2 .ph-ic svg{width:18px;height:18px}
.accident-panel{border-color:#f6cbc7;background:linear-gradient(180deg,#fff8f7,#fff)}
.dash-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.dash-chip{background:#eef2fb;color:#3a4a6b;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600}
.dash-chip b{color:#1a2440}
.dash-table{min-width:640px}
/* 대시보드 내역: 표 대신 정돈된 카드 리스트(모바일에서도 가로 스크롤 없음) */
.dash-list{display:flex;flex-direction:column;gap:6px;max-height:360px;overflow-y:auto;padding-right:3px}
.dash-list::-webkit-scrollbar{width:6px}
.dash-list::-webkit-scrollbar-thumb{background:#dbe2ee;border-radius:3px}
.dash-item{border:1px solid #eceef5;border-radius:10px;padding:8px 11px;background:#fbfcfe}
.dash-item .di-top{margin-bottom:3px !important}
.dash-item .di-route{margin-top:2px !important}
.dash-item--click{cursor:pointer;transition:box-shadow .12s,border-color .12s,transform .05s}
.dash-item--click:hover{border-color:#c3d2f7;box-shadow:0 2px 10px rgba(40,100,255,.1)}
.dash-item--click:active{transform:scale(.997)}
.dash-item .di-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.dash-item .di-id{font-weight:800;font-size:13px;color:#1f2a44;letter-spacing:.2px;word-break:break-all}
.dash-item .di-line{font-size:12.5px;color:#3a4763;font-weight:600}
.dash-item .di-k{font-size:10px;font-weight:800;color:#8792a6;background:#eef1f6;border-radius:5px;padding:1px 6px;margin-right:3px}
.dash-item .di-route{font-size:12px;color:#51607a;margin-top:4px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;word-break:keep-all}
.dash-item .di-route .arr{color:#9aa7be;flex-shrink:0}
.dash-item .di-meta{font-size:11px;color:#8792a6;margin-top:4px}
.dash-item .di-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
.dash-item .di-actions select{font-size:12.5px;height:34px;padding:6px 9px;max-width:150px}
.dash-list .empty{padding:26px 10px}
.dash-fine-status{padding:6px 8px;border:1px solid #ced6e5;border-radius:8px;font:inherit;background:#fff}
@media(max-width:1400px){.dash-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.dash-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 요금정책 유저용/어드민용 탭 */
.policy-kind-tabs{display:inline-flex;background:#eef2fb;border-radius:10px;padding:4px;margin-bottom:8px;gap:4px}
.policy-kind-tab{border:0;background:transparent;color:#546089;font-weight:700;font-size:13px;padding:8px 16px;border-radius:8px;cursor:pointer}
.policy-kind-tab.active{background:#2563eb;color:#fff}

/* 접수내역 표: 폰트 통일 + 텍스트 잘림 방지 + 컬럼 분리 대응 */
.req-table{min-width:1180px;font-size:12.5px}
.req-table th,.req-table td{padding:9px 10px;vertical-align:middle;line-height:1.45;text-align:center}
.req-table th{font-size:11px;white-space:nowrap}
.req-table td.cell-nowrap{white-space:nowrap}
.req-table td{white-space:normal;word-break:keep-all}
/* 액션 버튼 셀은 가운데 정렬 시 버튼들이 중앙에 모이도록 */
.req-table td .actions,.req-table td .status-cell{justify-content:center}
/* 픽고앱 미수락(5분+) 강조: 좌측 핑크 바 + 옅은 배경 */
tr.req-nodriver td{background:#FEF1F6}
tr.req-nodriver:hover td{background:#FCE7F0}
tr.req-nodriver td:first-child{box-shadow:inset 3px 0 0 #D6336C}
.rq-card.req-nodriver{border-color:#F5B5CE;box-shadow:0 0 0 1px #F5B5CE inset}
.cell-sub{color:#71809d;font-size:11px;margin-top:3px}
/* 금액 셀: 유저 노출가 / 추천 접수가 2줄 */
.amt-lines{display:inline-flex;flex-direction:column;gap:3px;text-align:left;min-width:118px}
.amt-line{display:flex;align-items:center;justify-content:space-between;gap:8px}
.amt-label{font-size:10px;font-weight:700;padding:1px 6px;border-radius:5px;white-space:nowrap}
.amt-val{font-weight:800;font-size:12.5px;color:#1f2a44;white-space:nowrap}
.amt-line.user .amt-label{background:#eef1f6;color:#5b6a86}
.amt-line.rec .amt-label{background:#e7effe;color:#2864FF}
.amt-line.rec .amt-val{color:#2864FF}
.amt-line.fin .amt-label{background:#e3f7ee;color:#16A36A}
.amt-line.fin .amt-val{color:#16A36A}
.amt-line.driver .amt-label{background:#fdf1e3;color:#9a6410}
.amt-line.driver .amt-val{color:#9a6410}
/* 배차 최종금액 미리보기 */
.fm-final{margin-top:8px}
.fm-final-box{background:#e3f7ee;border:1px solid #b8ead0;border-radius:9px;padding:9px 12px;font-size:13.5px;color:#127a4f;font-weight:700}
/* v2 요금정책 편집 */
.pv2-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:900px){.pv2-grid{grid-template-columns:1fr}}
.pv2-band th,.pv2-band td{padding:6px 8px;text-align:right;font-size:12.5px}
.pv2-band th:first-child,.pv2-band td:first-child{text-align:left}
.pv2-band input{width:100%;text-align:right;padding:6px 8px;font-size:12.5px}
.pv2-sim-out{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}
.pv2-sim-card{background:#f8fafc;border:1px solid #e6eaf2;border-radius:10px;padding:12px 14px}
.pv2-sim-card .lb{font-size:11px;color:#8792a6;font-weight:700}
.pv2-sim-card .vl{font-size:19px;font-weight:800;color:#1f2a44;margin-top:3px}
.pv2-sim-card .sub{font-size:11px;color:#94a2bd;margin-top:2px}
.pv2-tier{display:flex;gap:8px;align-items:center;margin:6px 0}
.pv2-tier input{width:110px}
.pv2-bulk{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;background:#f4f6fb;border:1px solid #e6eaf2;border-radius:10px;padding:9px 12px;margin-bottom:10px}
.pv2-bulk-lb{font-size:11.5px;font-weight:800;color:#8792a6}
.pv2-bulk-grp{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:#3a4763}
.pv2-bulk-grp .btn{padding:5px 10px;font-size:12px}
.rtype-badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}
.rtype-immediate{background:#e0edff;color:#1d4ed8}
.rtype-reserved{background:#fff2d9;color:#b45309}
.rtype-jeju{background:#e6f7ff;color:#0958d9;border:1px solid #91caff;margin-left:4px;gap:3px}
.drv-tabs{display:flex;gap:6px;border-bottom:1px solid #e3e9f2;margin-bottom:16px}
.drv-tab{appearance:none;border:none;background:none;padding:9px 14px;font:inherit;font-weight:700;font-size:13.5px;color:#7a8aa5;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.drv-tab.on{color:#1d4ed8;border-bottom-color:#1d4ed8}
.drv-tab-cnt{display:inline-block;min-width:18px;padding:1px 6px;border-radius:999px;background:#eef2f9;color:#5b6b86;font-size:11px;font-weight:700;margin-left:2px}
.drv-tab.on .drv-tab-cnt{background:#e0edff;color:#1d4ed8}
.cell-route{min-width:220px;font-size:12.5px;line-height:1.5;color:#334155}
.cell-route .cell-arr{margin:0 6px;color:#94a3b8}
.src-badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;margin-left:5px}
.src-partner{background:#ede9fe;color:#6d28d9}

/* ===== 접수내역 모바일 카드 뷰 (≤800px에서 표 대신 카드) ===== */
.req-cards{display:none}
.rq-card{background:#fff;border:1px solid #eef0f9;border-radius:14px;padding:15px;box-shadow:0 4px 14px rgba(20,29,61,.05)}
.rq-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px}
.rq-id{font-weight:800;font-size:13.5px;letter-spacing:.2px}
.rq-sub{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:11px}
.rq-time{color:#71809d;font-size:11.5px}
.rq-route{font-weight:700;font-size:13.5px;line-height:1.55;margin-bottom:11px;word-break:keep-all;padding-bottom:11px;border-bottom:1px solid #f0f2f8}
.rq-arr{color:#b7c0ce;margin:0 6px}
.rq-line{display:flex;gap:10px;font-size:12.5px;color:#33405a;padding:3px 0;line-height:1.55}
.rq-line .rq-k{color:#8492ab;font-weight:700;min-width:34px;flex:0 0 auto}
.rq-line>span:last-child{flex:1;min-width:0;word-break:break-all}
.rq-btns{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}
.rq-btns .btn{flex:1 1 auto;min-width:calc(50% - 4px);font-size:13px;padding:12px 10px;text-align:center}
@media(max-width:800px){
  .req-table-wrap{display:none}
  .req-cards{display:flex;flex-direction:column;gap:12px}
  .req-filter{gap:9px}
  .req-filter-search{flex:1 1 100%;min-width:0}
  .req-filter .field{flex:1 1 calc(50% - 5px);min-width:0}
  .req-filter-actions{flex:1 1 100%;margin-left:0}
  .req-filter-actions>div{flex-wrap:wrap}
  /* 상태 칩: 모바일에서는 한 줄 가로 스크롤로(세로로 길게 쌓이지 않게) */
  .req-status-field{flex:1 1 100%!important}
  .req-status-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:5px;scrollbar-width:none}
  .req-status-chips::-webkit-scrollbar{display:none}
  .req-status-chip{padding:8px 14px;font-size:12px;flex:0 0 auto}
}
/* 필터 접기/펼치기: 데스크톱은 항상 펼침(토글 숨김), 모바일은 기본 접힘 */
.filter-collapse{margin-bottom:12px}
.filter-toggle{display:none}
.filter-collapse .filter-body[hidden]{display:none}
@media(max-width:800px){
  .filter-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;font:inherit;font-size:14px;font-weight:800;color:#2b3a5b;background:#eef3fb;border:1px solid #d7e0f0;border-radius:11px;padding:12px 15px;cursor:pointer}
  .filter-toggle .ft-caret{transition:transform .2s;color:#5b6b8c}
  .filter-collapse.open .filter-toggle .ft-caret{transform:rotate(180deg)}
  .filter-collapse .filter-body{margin-top:10px}
  /* 필터바: 메뉴바(고정 헤더) 아래에 sticky로 붙어 스크롤해도 상단 유지 */
  .filter-collapse{position:sticky;top:var(--admin-header-h,0);z-index:20;background:#fff;padding:8px 0;box-shadow:0 6px 8px -6px rgba(24,39,75,.12)}
}
/* 모바일 상단 헤더바: 알림·유저·사용자화면·로그아웃을 메뉴바 위 '한 줄'로 */
.m-topbar{display:none}
@media(max-width:800px){
  .m-topbar{display:block;margin:0 0 9px}
  .m-topbar .top-actions{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;flex:none}
  .m-topbar .admin-whoami{flex:1 1 auto;min-width:0;justify-content:flex-start;font-size:12.5px;padding:6px 10px;overflow:hidden;white-space:nowrap}
  .m-topbar .admin-whoami b{overflow:hidden;text-overflow:ellipsis}
  .m-topbar .admin-bell-wrap{flex:0 0 auto}
  /* 벨이 좌측에 있으므로 알림 팝업을 좌측 기준으로 펼쳐 화면 밖으로 나가지 않게 */
  .m-topbar .admin-bell-panel{left:0;right:auto;width:min(340px,88vw)}
  .m-topbar #install-btn,.m-topbar #view-user-btn{display:none}
  .m-topbar #logout-button{flex:0 0 auto;font-size:0;padding:9px 12px}
  .m-topbar #logout-button i{font-size:15px;margin:0}
}
/* 맨 위로 플로팅 버튼 */
.scroll-top-btn{position:fixed;right:16px;bottom:16px;bottom:calc(16px + env(safe-area-inset-bottom));width:46px;height:46px;border-radius:50%;background:#2864FF;color:#fff;border:0;box-shadow:0 6px 18px rgba(40,100,255,.42);font-size:16px;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s,transform .2s,visibility .2s;z-index:1500}
.scroll-top-btn.show{opacity:1;visibility:visible;transform:none}
.scroll-top-btn:hover{background:#1c53e6}
/* 필터 필드 폰트·크기 통일 */
.req-filter .field label{font-size:12px;font-weight:700;color:#536079}
.req-filter input,.req-filter select{font-size:13px;height:38px;padding:8px 11px}
.req-filter select{min-width:130px}

/* 정산 미리보기 합계 */
.settle-totals{margin:14px 0 4px;margin-left:auto;width:280px;font-size:13px}
.settle-totals>div{display:flex;justify-content:space-between;padding:6px 2px;border-bottom:1px solid #eef2f8}
.settle-total-final{border-top:2px solid #2563eb;border-bottom:none!important;font-size:16px;font-weight:800;color:#111b34;padding-top:9px!important}

/* 정산서 폼: 기업 회원 select가 잘리지 않도록 폭 고정 + 긴 옵션 말줄임 */
.settle-form-grid .field.wide select{width:100%;max-width:100%;text-overflow:ellipsis}

/* 대시보드 2열 배치(예약·과태료 / 기업가입·최근회원) */
.dash-2col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.dash-2col>.panel{margin-bottom:0;min-width:0}
.dash-cnt{font-size:12.5px;font-weight:800;color:#2864FF;background:#eef3ff;border-radius:999px;padding:2px 10px;margin-left:6px;vertical-align:middle}
.dash-2col .table-wrap table{min-width:0}
@media(max-width:900px){.dash-2col{grid-template-columns:1fr}}

/* ===== 모바일: 대메뉴는 상단바(가로 칩), 하위메뉴는 그 아래 전체폭으로 =====
   데스크톱은 좌측 세로 아코디언 사이드바 유지. 모바일은 사이드바가 콘텐츠 위에 얹히고
   대메뉴는 가로 슬라이드(좌우 스크롤) 탭 바로, 선택한 대메뉴의 하위메뉴는
   그 아래 패널로 나온다. 데스크톱 세로 아코디언(.nav-accs)은 모바일에서 숨긴다. */
.m-nav{display:none}
@media(max-width:800px){
  .shell{grid-template-columns:1fr;align-content:start}
  .sidebar{border-right:none;border-bottom:1px solid #eceef6;padding:9px 11px 11px;position:sticky;top:0;z-index:30;background:#fff}
  .sidebar .brand{display:none}
  .nav-accs{display:none}
  .m-nav{display:block}
  .m-nav-strip{display:flex;gap:7px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:1px}
  .m-nav-strip::-webkit-scrollbar{display:none}
  .m-nav-tab{flex:0 0 auto;white-space:nowrap;padding:9px 16px;border-radius:999px;border:1px solid #dce3f0;background:#f4f6fb;color:#51607a;font-weight:700;font-size:13.5px;cursor:pointer}
  .m-nav-tab.active{background:#2864FF;border-color:#2864FF;color:#fff}
  .m-nav-panel{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
  .m-nav-panel button{flex:0 0 auto;white-space:nowrap;padding:9px 13px;border-radius:9px;border:1px solid #e6eaf2;background:#fff;color:#4a566e;font-weight:600;font-size:13px;cursor:pointer}
  .m-nav-panel button.active{background:#eef3ff;border-color:#bcd0ff;color:#2864FF;font-weight:800}
  .main{padding:14px 13px 40px}
  .top{flex-direction:column;align-items:stretch;gap:10px}
  .top h1{font-size:19px}
  .top-actions{flex-wrap:wrap}
  .top-actions .admin-whoami{flex:1 1 100%;justify-content:center}
  .panel{padding:15px;border-radius:16px}
  .metric strong{font-size:20px}
}

/* ===== 어드민 진입 스플래시 (넷플릭스풍: 로고 샤인 → 줌인 리빌) ===== */
#pg-splash{position:fixed;inset:0;z-index:99999;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:opacity .6s ease}
#pg-splash.pg-splash-hide{opacity:0;pointer-events:none}
#pg-splash .nf-logo{
  width:min(300px,72vw);aspect-ratio:711 / 132;position:relative;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;
  background:#f4f7ff;transform:scale(.62);opacity:0;
  animation:nfIn 1s cubic-bezier(.16,.9,.2,1.02) .15s both, nfZoom 1s cubic-bezier(.6,0,.85,0) 2.95s both;
}
#pg-splash .nf-logo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(105deg,transparent 32%,rgba(229,9,20,.55) 44%,#ff2a36 49%,#ffffff 50%,#ff2a36 51%,rgba(229,9,20,.55) 56%,transparent 68%);
  background-size:260% 100%;background-repeat:no-repeat;background-position:210% 0;
  animation:nfShine 1.9s ease-in-out .95s both;
}
@keyframes nfIn{0%{opacity:0;transform:scale(.62)}60%{opacity:1;transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}
@keyframes nfShine{0%{background-position:210% 0}100%{background-position:-120% 0}}
@keyframes nfZoom{0%{transform:scale(1);opacity:1}100%{transform:scale(13);opacity:0}}
@media (prefers-reduced-motion: reduce){
  #pg-splash .nf-logo{animation:nfIn .5s ease both;opacity:1;transform:none}
  #pg-splash .nf-logo::after{animation:none;display:none}
}

/* 하위 관리자 메뉴 접근 권한 선택 */
.ca-perm-wrap{border:1px solid #e5e9f2;border-radius:12px;padding:6px 12px 12px;background:#fafbfe}
.ca-perm-group{padding:10px 0;border-bottom:1px solid #eef1f7}
.ca-perm-group:last-child{border-bottom:0}
.ca-perm-title{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:#5a6b8c;margin-bottom:8px}
.ca-perm-all{border:1px solid #d4dbea;background:#fff;color:#3a63c7;border-radius:999px;font-size:11px;padding:2px 10px;cursor:pointer}
.ca-perm-all:hover{background:#eef3ff}
.ca-perm-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
.ca-perm{display:flex;align-items:center;gap:7px;font-size:13px;color:#2b3448;cursor:pointer;font-weight:500}
.ca-perm input{width:16px;height:16px;accent-color:#2864FF;flex:0 0 auto}
@media (max-width:480px){.ca-perm-list{grid-template-columns:1fr}}

/* 광고 관리: 자리별 CPC/직접 선택 */
.ad-type { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: #2b3448; cursor: pointer; }
.ad-type input { width: 16px; height: 16px; accent-color: #2864FF; }

/* 회원관리 모바일 카드 (좁은 화면에서 가로 스크롤 표 대신) */
.members-cards{display:none;flex-direction:column;gap:10px}
.member-card{border:1px solid #eceef5;border-radius:12px;padding:13px 14px;background:#fbfcfe}
.member-card .mc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.member-card .mc-name{font-weight:800;font-size:14px;color:#1f2a44;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.member-card .mc-sub{font-size:12px;color:#6b7791;margin-top:3px;word-break:break-all}
.member-card .mc-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;margin:11px 0 12px}
.member-card .mc-cell{display:flex;flex-direction:column;gap:2px;min-width:0}
.member-card .mc-k{font-size:10.5px;font-weight:700;color:#8792a6}
.member-card .mc-v{font-size:13px;color:#2b3448;font-weight:600;word-break:break-all}
.member-card .actions{display:flex;flex-wrap:wrap;gap:6px}
.member-card .actions .btn{flex:0 0 auto;padding:7px 11px;font-size:12.5px}
@media (max-width:800px){
  .members-table-wrap{display:none}
  .members-cards{display:flex}
}

/* ===== 접수 상세 모달: 섹션 · 표 · 진행 타임라인 ===== */
.dtl-sec{margin-bottom:16px}
.dtl-sec-h{font-size:13px;font-weight:800;color:#2864FF;border-left:3px solid #2864FF;padding-left:8px;margin-bottom:8px}
table.dtl-table{width:100%;border-collapse:collapse;font-size:13px}
table.dtl-table th,table.dtl-table td{border:1px solid #e7ebf3;padding:8px 10px;text-align:left;vertical-align:top;word-break:break-all}
table.dtl-table th{background:#f6f8fc;color:#51607a;font-weight:700;width:140px;white-space:nowrap}
/* 진행 타임라인 */
.tl-list{list-style:none;margin:0;padding:2px 0 2px 4px}
.tl-item{position:relative;padding:0 0 14px 20px;border-left:2px solid #dbe3f0}
.tl-item:last-child{border-left-color:transparent;padding-bottom:2px}
.tl-item .tl-dot{position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;background:#2864FF;border:2px solid #fff;box-shadow:0 0 0 1px #cfd9ec}
.tl-item.tl-danger .tl-dot{background:#DC2626}
.tl-body{padding-left:4px}
.tl-row{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}
.tl-label{font-size:13px;color:#1f2a44}
.tl-item.tl-danger .tl-label{color:#b91c1c}
.tl-time{font-size:11.5px;color:#8792a6;white-space:nowrap}
.tl-by{display:block;font-size:11px;color:#8792a6;margin-top:1px}
.tl-note{font-size:12px;color:#51607a;margin-top:2px;background:#f6f8fc;border-radius:6px;padding:4px 7px}
@media(max-width:800px){ table.dtl-table th{width:104px} .dtl-modal{padding:16px} }

/* 접수 상세: 펼치기/접기 섹션 (토글 문구는 우측 끝에) */
.dtl-collapse>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px;user-select:none}
.dtl-collapse>summary::-webkit-details-marker{display:none}
.dtl-collapse>summary::after{margin-left:auto;font-size:12px;font-weight:700;color:#2864FF;background:#eef3ff;border:1px solid #d7e3ff;border-radius:999px;padding:3px 11px;white-space:nowrap;content:'펼치기 \25BE'}
.dtl-collapse[open]>summary::after{content:'접기 \25B4'}
.dtl-collapse>summary:hover::after{background:#e0e9ff}
.dtl-collapse-body{margin-top:8px}

/* 회원관리 탭(개인/기업) */
.member-tabs{display:flex;gap:8px;margin-bottom:14px;border-bottom:1px solid #e7ebf3}
.member-tabs .mtab{border:0;background:transparent;color:#6b7791;font-size:14px;font-weight:700;padding:9px 4px;margin-bottom:-1px;border-bottom:2px solid transparent;cursor:pointer}
.member-tabs .mtab.on{color:#2864FF;border-bottom-color:#2864FF}
.member-tabs .mtab-cnt{display:inline-flex;min-width:20px;justify-content:center;background:#eef2fb;color:#51607a;border-radius:999px;font-size:11px;padding:1px 7px;margin-left:2px}
.member-tabs .mtab.on .mtab-cnt{background:#e0e9ff;color:#2864FF}

/* 대시보드 과태료·통행료 처리상태 조회 전용 배지 */
.fine-status-badge{display:inline-flex;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:800}
.fine-st-RECEIVED{background:#e0e7ff;color:#3730a3}
.fine-st-PROCESSING{background:#fef3c7;color:#92400e}
.fine-st-DONE{background:#dcfce7;color:#166534}
/* 픽고 내부수익 정산 */
td.r,th.r{text-align:right;white-space:nowrap}
.ip-filter{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:6px}
.ip-filter .seg{display:flex;border:1px solid #d7deea;border-radius:9px;overflow:hidden;align-self:flex-end;height:38px}
.ip-filter .seg-btn{border:none;background:#fff;color:#5a6b86;font-weight:700;font-size:13px;padding:0 16px;cursor:pointer}
.ip-filter .seg-btn.on{background:#2864FF;color:#fff}
.ip-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}
.ip-card{border:1px solid #eef1f6;border-radius:11px;padding:12px 14px;background:#fbfcfe}
.ip-card-l{font-size:12px;color:#8a94a6;font-weight:700;margin-bottom:5px}
.ip-card-v{font-size:17px;font-weight:800;color:#17202D}
.ip-card-v.pos{color:#12866b}
