/* =========================================================
   보험한판 — common.css
   모든 페이지에서 공통으로 사용하는 기본 스타일만 포함
   (흰 톤 라이트 테마로 전환)
========================================================= */

:root{
  --brand-blue:#2F6FD6;
  --brand-blue-dark:#2457A8;
  --brand-blue-text:#2457A8;

  --brand-green:#127A53;
  --brand-orange:#A85B00;
  --brand-cyan:#2E8FA8;
  --brand-purple:#6941C6;

  --white:#FFFFFF;
  --bg-tint:#F4F7FB;
  --surface:#FFFFFF;
  --border:#E5EAF1;
  --accent-blue-soft:rgba(47,111,214,.08);

  --gray-900:#172033;
  --gray-700:#46536B;
  --gray-600:#667085;
  --gray-400:#94A3B8;

  --blue-accent:#4D8DFF;

  --danger:#B42318;
  --danger-bg:#FFF0EE;
  --warning:#A85B00;
  --warning-bg:#FFF3DF;
  --success:#127A53;
  --success-bg:#EAF8F2;

  --brand-dark:var(--gray-900);
  --line:var(--border);
  --text:var(--gray-900);
  --sub:var(--gray-600);
  --blue:var(--brand-blue);
  --red:var(--danger);
  --orange:var(--brand-orange);
  --shadow:0 8px 24px rgba(23,32,51,.08);
}


/* ── Reset ── */
*,
*::before,
*::after{
  box-sizing:border-box;
  margin:0;
  padding:0;
  -webkit-tap-highlight-color:transparent;
}

html{
  min-height:100%;
  background:var(--bg-tint);
}

body{
  min-height:100vh;
  margin:0;
  padding:0 0 24px;
  background:var(--bg-tint);
  color:var(--gray-900);
  font-family:-apple-system,BlinkMacSystemFont,"Noto Sans KR",system-ui,sans-serif;
}

button,
a,
input,
textarea,
select{
  font:inherit;
}

button,
a{
  color:inherit;
}

button{
  border:0;
  background:none;
  cursor:pointer;
}

a{
  text-decoration:none;
}

img{
  max-width:100%;
  display:block;
}


/* ── 공통 앱 레이아웃 ── */
.app{
  width:100%;
  max-width:430px;
  min-height:100vh;
  margin:0 auto;
  background:var(--bg-tint);
  box-shadow:0 0 40px rgba(23,32,51,.06);
}

.screen{
  display:none;
  padding:14px 12px 22px;
}

.screen.active{
  display:block;
}


/* ── 공통 상단 바 ── */
.top{
  height:46px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:-14px -12px 8px;
  padding:0 14px;
  position:sticky;
  top:0;
  z-index:20;
  background:var(--surface);
  border-bottom:1px solid var(--border);
}

.logo,
.page-title{
  color:var(--gray-900);
  font-size:16px;
  font-weight:950;
  letter-spacing:-.04em;
}

.ph{
  width:34px;
}

.back-btn{
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 34px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg-tint);
  color:var(--gray-700);
  font-size:22px;
  font-weight:900;
}


/* ── 공통 카드 / 버튼 ── */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:0 8px 22px rgba(23,32,51,.06);
}

.notice-link{
  height:30px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--bg-tint);
  color:var(--brand-blue-text);
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}

.btn{
  height:45px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  font-size:13px;
  font-weight:950;
}

.btn-p{
  border:0;
  background:linear-gradient(180deg,var(--blue-accent),var(--brand-blue));
  color:var(--white);
}

.btn-o{
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--brand-blue-text);
}


/* ── 공통 섹션 ── */
.section{
  margin-top:18px;
}

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

.head h2{
  color:var(--gray-900);
  font-size:15px;
  font-weight:950;
}

.app-footer{
  width:100%;
  max-width:430px;
  margin:0 auto;
  padding:22px 16px 34px;
  color:var(--gray-400);
  font-size:12px;
  font-weight:800;
  line-height:1.7;
  text-align:center;
}


/* ── 공통 스켈레톤 ── */
@keyframes skel-shine{
  0%{background-position:-200% 0;}
  100%{background-position:200% 0;}
}

.skel{
  display:inline-block;
  border-radius:6px;
  background:linear-gradient(
    90deg,
    var(--border) 25%,
    var(--bg-tint) 50%,
    var(--border) 75%
  );
  background-size:200% 100%;
  animation:skel-shine 1.4s ease infinite;
}


/* =========================================================
   공통 바텀시트
========================================================= */

.sheet-overlay{
  position:fixed;
  inset:0;
  z-index:1000;
  display:none;
  align-items:flex-end;
  justify-content:center;
  padding:0;
  background:rgba(23,32,51,.45);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}

.sheet-overlay.open{
  display:flex;
}

.sheet{
  width:min(430px,100%);
  max-height:calc(100dvh - 24px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:0;
  border:1px solid var(--border);
  border-bottom:0;
  border-radius:22px 22px 0 0;
  background:var(--surface);
  box-shadow:0 -18px 40px rgba(23,32,51,.12);
}

.sheet-head{
  position:relative;
  flex:0 0 auto;
  padding:12px 18px 14px;
  border-bottom:1px solid var(--border);
  background:var(--surface);
}

.sheet-handle{
  width:40px;
  height:4px;
  margin:0 auto 14px;
  border-radius:999px;
  background:var(--gray-400);
  opacity:.4;
}

.sheet-close{
  position:absolute;
  top:18px;
  right:16px;
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  border-radius:50%;
  background:var(--bg-tint);
  color:var(--gray-700);
  font-size:15px;
  line-height:1;
}

.sheet-title{
  margin:0 44px 4px 0;
  color:var(--gray-900);
  font-size:17px;
  font-weight:950;
  line-height:1.3;
  letter-spacing:-.04em;
}

.sheet-desc{
  margin-right:44px;
  color:var(--gray-400);
  font-size:11px;
  font-weight:700;
  line-height:1.45;
}

.sheet-body{
  display:flex;
  flex:1;
  min-height:0;
  overflow:hidden;
  background:var(--surface);
}

.sheet-sidebar{
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  background:var(--bg-tint);
  border-right:1px solid var(--border);
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}

.sheet-sidebar::-webkit-scrollbar{
  display:none;
}

.sheet-panel{
  flex:1;
  min-width:0;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:16px 16px calc(28px + env(safe-area-inset-bottom));
  background:var(--surface);
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}

.sheet-panel::-webkit-scrollbar{
  display:none;
}

body.sheet-open{
  overflow:hidden;
  touch-action:none;
}


/* ── 공통 바텀시트 콘텐츠 카드 ── */
.sheet-card{
  margin-bottom:10px;
  padding:13px 14px;
  border:1px solid var(--border);
  border-radius:13px;
  background:var(--bg-tint);
}

.sheet-card-title{
  margin-bottom:7px;
  color:var(--gray-900);
  font-size:11px;
  font-weight:950;
  line-height:1.35;
}

.sheet-card-text{
  color:var(--gray-700);
  font-size:11px;
  font-weight:750;
  line-height:1.65;
}

.sheet-card-list{
  display:flex;
  flex-direction:column;
  gap:7px;
}

.sheet-card-row{
  position:relative;
  padding-left:11px;
  color:var(--gray-700);
  font-size:11px;
  font-weight:750;
  line-height:1.55;
}

.sheet-card-row::before{
  content:"";
  position:absolute;
  left:0;
  top:.68em;
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--gray-400);
}

.sheet-note{
  padding:11px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  color:var(--gray-600);
  font-size:10.5px;
  font-weight:750;
  line-height:1.55;
}


@media(max-width:370px){
  .screen{
    padding-left:12px;
    padding-right:12px;
  }

  .sheet{
    border-radius:20px 20px 0 0;
  }

  .sheet-head{
    padding-left:16px;
    padding-right:16px;
  }

  .sheet-panel{
    padding-left:14px;
    padding-right:14px;
  }
}