:root{
    --navy:#1B2A4A; --navy-d:#14203A; --navy-l:#2A3C63;
    --orange:#F97316; --orange-d:#EA580C; --orange-l:#FFF1E6;
    --kakao:#FEE500; --kakao-ink:#191919;
    --blue:#3B5BA5; --teal:#0E9F8A; --purple:#8B5CF6;
    --good:#16A34A; --warn:#D97706; --bad:#DC2626;
    --bg:#F2F4F7; --card:#FFFFFF; --line:#E8EAEF;
    --ink:#1A2233; --ink2:#5B6472; --ink3:#98A1B0;
    --r:16px; --shadow:0 2px 10px rgba(20,32,58,.07);
  }
  *{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  body{background:#3a4256;font-family:'Pretendard',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic','Segoe UI',sans-serif;display:flex;justify-content:center;align-items:flex-start;min-height:100vh;min-height:100dvh;padding:24px 0;color:var(--ink)}
  /* 반응형 기본(태블릿·PC): 가운데 디바이스 프레임 — 화면 높이에 맞춰 자동 크기 */
  .phone{width:min(420px,100vw);max-width:100vw;height:min(880px,calc(100dvh - 48px));background:var(--bg);border-radius:36px;overflow:hidden;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.45);border:1px solid #556}
  .screen{position:absolute;inset:0;bottom:66px;overflow-y:auto;display:none;scrollbar-width:none}
  .screen::-webkit-scrollbar{display:none}
  .screen.on{display:block}
  .screen.full{bottom:0}

  /* top bars */
  .topbar{background:var(--navy);padding:16px 18px 14px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}
  .logo{font-size:21px;font-weight:900;color:#fff;letter-spacing:-.5px}
  .logo em{font-style:normal;color:var(--orange)}
  .topbtns{display:flex;gap:8px}
  .iconbtn{width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.12);border:none;color:#fff;font-size:16px;cursor:pointer;position:relative}
  .iconbtn .dot{position:absolute;top:6px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--orange);border:1.5px solid var(--navy)}
  .subbar{background:#fff;padding:13px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
  .subbar .back{border:none;background:none;font-size:20px;cursor:pointer;color:var(--ink)}
  .subbar h2{font-size:16px;font-weight:800}
  .subbar .right{margin-left:auto;font-size:12px;color:var(--ink3)}

  .wrap{padding:14px 14px 90px}
  .card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:16px;margin-bottom:12px}
  .card h3{font-size:15px;font-weight:800;margin-bottom:4px}
  .card .sub{font-size:12px;color:var(--ink2)}
  .sec-title{display:flex;align-items:center;justify-content:space-between;margin:18px 2px 10px}
  .sec-title h3{font-size:16px;font-weight:800}
  .sec-title a{font-size:12px;color:var(--ink3);text-decoration:none;cursor:pointer}
  .badge{display:inline-block;font-size:10px;font-weight:800;padding:3px 7px;border-radius:999px;vertical-align:2px}
  .badge.new{background:var(--orange);color:#fff}
  .badge.soft{background:var(--orange-l);color:var(--orange-d)}
  .badge.navy{background:#E8EDF7;color:var(--blue)}
  .badge.green{background:#E7F6EC;color:var(--good)}
  .badge.gray{background:#EEF0F4;color:var(--ink2)}

  .btn{display:block;width:100%;border:none;border-radius:14px;padding:15px;font-size:15px;font-weight:800;cursor:pointer;text-align:center;font-family:inherit}
  .btn.orange{background:var(--orange);color:#fff}
  .btn.navy{background:var(--navy);color:#fff}
  .btn.kakao{background:var(--kakao);color:var(--kakao-ink)}
  .btn.ghost{background:#fff;border:1.5px solid var(--line);color:var(--ink)}
  .btn.sm{padding:10px;font-size:13px;border-radius:11px}
  .row{display:flex;gap:8px}
  .row .btn{flex:1}

  /* home */
  .yt-banner{background:#FDFBE8;border:1px solid #F2ECC8;border-radius:var(--r);padding:14px 16px;display:flex;align-items:center;gap:12px;margin-bottom:12px;cursor:pointer}
  .yt-banner .txt b{color:#2456C4;font-size:14px;display:block}
  .yt-banner .txt span{font-size:11.5px;color:#8A8340}
  .yt-banner .txt .stat{color:var(--orange-d);font-weight:800}
  .yt-play{width:52px;height:36px;background:#FF0000;border-radius:9px;display:flex;align-items:center;justify-content:center;flex:none;margin-left:auto}
  .yt-play:after{content:'';border-left:12px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent}
  .lookup{background:linear-gradient(135deg,var(--orange),#FB923C);border-radius:var(--r);display:flex;margin-bottom:4px;box-shadow:0 6px 16px rgba(249,115,22,.3)}
  .lookup button{flex:1;background:none;border:none;color:#fff;padding:18px 6px 15px;cursor:pointer;font-family:inherit}
  .lookup button:first-child{border-right:1px solid rgba(255,255,255,.35)}
  .lookup .ic{font-size:21px;display:block;margin-bottom:5px}
  .lookup b{font-size:14.5px;font-weight:800}
  .score-strip{display:flex;align-items:center;gap:14px}
  .mini-gauge{width:74px;height:74px;flex:none}
  .score-nums{flex:1}
  .score-nums .pt{font-size:13px;color:#B9C3D8}
  .score-nums .save{font-size:12px;color:#B9C3D8;margin-top:5px}
  .score-nums .save b{color:#FFB477;font-size:15px}
  .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
  .ins-item{background:#fff;border-radius:14px;padding:14px 12px 12px;box-shadow:var(--shadow);cursor:pointer;position:relative}
  .ins-item b{font-size:13px;font-weight:800;display:block;margin-bottom:10px}
  .ins-item .ic{font-size:22px;display:block;text-align:right}
  .ticker{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:12px 14px;overflow:hidden;height:44px;position:relative;margin-bottom:12px}
  .ticker-inner{position:absolute;inset:12px 14px;animation:tick 9s infinite}
  .ticker-item{height:20px;line-height:20px;font-size:12.5px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ticker-item b{color:var(--orange-d)}
  @keyframes tick{0%,28%{transform:translateY(0)}33%,61%{transform:translateY(-20px)}66%,94%{transform:translateY(-40px)}100%{transform:translateY(-60px)}}

  /* floating CTA */
  .fab{position:absolute;right:16px;bottom:82px;background:var(--orange);color:#fff;border:none;border-radius:999px;padding:14px 20px;font-size:14px;font-weight:800;box-shadow:0 8px 20px rgba(249,115,22,.45);cursor:pointer;z-index:30;font-family:inherit;display:flex;align-items:center;gap:7px}

  /* bottom nav */
  .nav{position:absolute;left:0;right:0;bottom:0;height:66px;background:#fff;border-top:1px solid var(--line);display:flex;z-index:40}
  .nav button{flex:1;border:none;background:none;cursor:pointer;font-family:inherit;color:var(--ink3);font-size:10.5px;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
  .nav button .nic{font-size:20px;line-height:1}
  .nav button.on{color:var(--orange)}
  .nav button .navdot{position:relative}
  .nav button .navdot:after{content:'';position:absolute;top:-2px;right:-6px;width:6px;height:6px;border-radius:50%;background:var(--orange)}

  /* diagnosis */
  .gauge-wrap{display:flex;flex-direction:column;align-items:center;padding:6px 0 2px}
  .gauge-label{font-size:12px;color:var(--ink2);margin-top:4px}
  .diag-list .item{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--line)}
  .diag-list .item:last-child{border-bottom:none}
  .diag-ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:18px;flex:none}
  .diag-list b{font-size:13.5px;display:block}
  .diag-list .m{font-size:11.5px;color:var(--ink2)}
  .diag-list .item>div:not(.diag-ic):not(.amt){flex:1;min-width:0}
  .diag-list .amt{margin-left:auto;text-align:right;font-size:13px;font-weight:800;flex:none;white-space:nowrap;padding-left:8px}   /* QA 수정: 89,000원의 '원'이 줄바꿈되던 문제 */
  .diag-list .amt span{display:block;font-size:10.5px;color:var(--ink3);font-weight:600}
  .flag{border-radius:13px;padding:12px 13px;margin-bottom:9px;font-size:12.5px;line-height:1.55}
  .flag b{display:block;font-size:13px;margin-bottom:2px}
  .flag.over{background:#FDF0EC;color:#8a3b22}.flag.over b{color:var(--bad)}
  .flag.lack{background:#FFF7E8;color:#7a5410}.flag.lack b{color:var(--warn)}
  .flag.dup{background:#EEF3FB;color:#324e7e}.flag.dup b{color:var(--blue)}
  .save-hero{background:linear-gradient(135deg,var(--orange),#FB923C);border-radius:var(--r);padding:18px;color:#fff;text-align:center;margin-bottom:12px}
  .save-hero .t{font-size:12.5px;opacity:.9}
  .save-hero .v{font-size:28px;font-weight:900;margin:3px 0}
  .save-hero .s{font-size:11.5px;opacity:.85}

  /* consult */
  .seg{display:flex;background:#E9ECF1;border-radius:12px;padding:4px;margin-bottom:14px}
  .seg button{flex:1;border:none;background:none;padding:9px;border-radius:9px;font-size:13px;font-weight:700;color:var(--ink2);cursor:pointer;font-family:inherit}
  .seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.08)}
  .fld{margin-bottom:13px}
  .fld label{display:block;font-size:12.5px;font-weight:700;margin-bottom:6px;color:var(--ink2)}
  .fld input,.fld select{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:13px;font-size:14px;font-family:inherit;background:#fff}
  .fld input:focus,.fld select:focus{outline:none;border-color:var(--orange)}
  .chips{display:flex;flex-wrap:wrap;gap:7px}
  .chip{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:8px 13px;font-size:12.5px;font-weight:700;color:var(--ink2);cursor:pointer;font-family:inherit}
  .chip.on{background:var(--orange-l);border-color:var(--orange);color:var(--orange-d)}
  .agree{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink2);margin:4px 0 14px}
  .steps{display:flex;margin:14px 0 6px}
  .step{flex:1;text-align:center;position:relative}
  .step .nd{width:26px;height:26px;border-radius:50%;background:#E4E8EF;color:var(--ink3);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 5px;position:relative;z-index:2}
  .step:not(:last-child):after{content:'';position:absolute;top:13px;left:50%;width:100%;height:2.5px;background:#E4E8EF}
  .step.done .nd{background:var(--good);color:#fff}
  .step.done:after{background:var(--good)}
  .step.cur .nd{background:var(--orange);color:#fff;box-shadow:0 0 0 4px var(--orange-l)}
  .step span{font-size:10px;color:var(--ink3);font-weight:700}
  .step.done span,.step.cur span{color:var(--ink)}
  .contract-box{background:#F6F9F6;border:1.5px solid #CDE7D3;border-radius:14px;padding:14px;margin-top:12px}
  .contract-box .l{display:flex;justify-content:space-between;font-size:12.5px;padding:4px 0;color:var(--ink2)}
  .contract-box .l b{color:var(--ink)}
  .contract-box .l.tot{border-top:1px dashed #BFDCC7;margin-top:6px;padding-top:9px}
  .contract-box .l.tot b{color:var(--good);font-size:15px}

  /* social & community */
  .yt-card{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;margin-bottom:12px;cursor:pointer}
  .yt-thumb{height:150px;background:linear-gradient(120deg,#2B3A5C,#0E1524);position:relative;display:flex;align-items:center;justify-content:center}
  .yt-thumb .play{width:54px;height:38px;background:#FF0000;border-radius:10px;display:flex;align-items:center;justify-content:center}
  .yt-thumb .play:after{content:'';border-left:13px solid #fff;border-top:8px solid transparent;border-bottom:8px solid transparent}
  .yt-thumb .dur{position:absolute;right:9px;bottom:8px;background:rgba(0,0,0,.75);color:#fff;font-size:10.5px;padding:2px 6px;border-radius:5px}
  .yt-thumb .tt{position:absolute;left:12px;top:12px;right:70px;color:#fff;font-size:15px;font-weight:800;line-height:1.35;text-shadow:0 1px 6px rgba(0,0,0,.6)}
  /* 공용 유튜브 플레이어(yt.js): 16:9 박스 · 로딩 · 임베드 불가 시 썸네일+안내 */
  .ytp{background:#000}
  .ytp-box{position:relative;padding-top:56.25%;background:#000;overflow:hidden}
  .ytp-box > div,.ytp-box > iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
  .ytp-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;font-size:12.5px;background:rgba(0,0,0,.55);pointer-events:none}
  .ytp-load .spin{border-top-color:#fff}
  .ytp-fb{position:absolute;inset:0}
  .ytp-fb-in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;text-align:center;background:rgba(0,0,0,.6);color:#fff}
  .ytp-fb-in b{font-size:13.5px;line-height:1.4;max-width:100%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .ytp-fb-in span{font-size:12px;color:#DCE4F5}
  .ytp-fb-in .btn{width:auto;padding:9px 16px}
  .yt-meta{padding:11px 13px;display:flex;align-items:center;gap:8px}
  .yt-meta .ch{width:28px;height:28px;border-radius:50%;background:var(--orange);color:#fff;font-size:10px;font-weight:900;display:flex;align-items:center;justify-content:center;flex:none}
  .yt-meta b{font-size:13px;display:block}
  .yt-meta span{font-size:11px;color:var(--ink3)}
  .yt-meta .share{margin-left:auto;border:none;background:var(--kakao);border-radius:9px;padding:7px 10px;font-size:11.5px;font-weight:800;cursor:pointer;font-family:inherit}
  .sns-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}
  .sns{border-radius:14px;padding:13px;color:#fff;cursor:pointer;box-shadow:var(--shadow)}
  .sns b{font-size:13.5px;display:block;margin-bottom:2px}
  .sns span{font-size:11px;opacity:.85}
  .sns.insta{background:linear-gradient(45deg,#F58529,#DD2A7B,#8134AF)}
  .sns.blog{background:#03C75A}
  .review{border-bottom:1px solid var(--line);padding:12px 0}
  .review:last-child{border-bottom:none}
  .review .hd{display:flex;align-items:center;gap:8px;margin-bottom:5px}
  .review .avatar{width:30px;height:30px;border-radius:50%;background:#E8EDF7;color:var(--blue);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}
  .review b{font-size:13px}
  .review .stars{color:#F5A623;font-size:11px;letter-spacing:1px}
  .review .when{margin-left:auto;font-size:10.5px;color:var(--ink3)}
  .review p{font-size:12.5px;color:var(--ink2);line-height:1.55}
  /* QA 수정: 행 높이만큼 배지·버튼이 세로로 늘어나 '동그란 덩어리'로 보이던 문제 → 세로 가운데 정렬 + 내용 크기 유지 */
  .qna{display:flex;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer}
  .qna:last-child{border-bottom:none}
  .qna .q{width:24px;height:24px;border-radius:8px;background:var(--orange-l);color:var(--orange-d);font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center;flex:none}
  .qna>div:not(.q){flex:1;min-width:0}
  .qna b{font-size:13px;display:block;margin-bottom:2px}
  .qna span{font-size:11px;color:var(--ink3)}
  .qna .st{margin-left:auto;flex:none;align-self:center;white-space:nowrap;line-height:1.3}
  .qna .badge{align-self:center;white-space:nowrap;line-height:1.3;flex:none}
  .qna .btn.sm{align-self:center;white-space:nowrap;flex:none}
  .referral{background:linear-gradient(135deg,#FEE500,#FFD400);border-radius:var(--r);padding:16px;margin-bottom:12px;color:var(--kakao-ink)}
  .referral b{font-size:15px;display:block;margin-bottom:3px}
  .referral p{font-size:12px;opacity:.75;margin-bottom:11px;line-height:1.5}
  .ref-code{display:flex;gap:8px}
  .ref-code .code{flex:1;background:rgba(255,255,255,.75);border-radius:11px;padding:11px;font-size:15px;font-weight:900;text-align:center;letter-spacing:2px}
  .ref-code button{border:none;background:var(--kakao-ink);color:#FEE500;border-radius:11px;padding:0 16px;font-size:12.5px;font-weight:800;cursor:pointer;font-family:inherit}

  /* account */
  .prof{display:flex;align-items:center;gap:13px;padding:18px 16px;background:#fff;margin-bottom:10px}
  .prof .pic{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900}
  .prof b{font-size:17px;display:block}
  .prof span{font-size:12px;color:var(--ink3)}
  .prof .grade{margin-left:auto;text-align:center;background:var(--orange-l);border-radius:12px;padding:8px 12px}
  .prof .grade b{font-size:13px;color:var(--orange-d)}
  .prof .grade span{font-size:10px;color:var(--orange-d)}
  .menu{background:#fff;margin-bottom:10px}
  .menu .mi{display:flex;align-items:center;gap:11px;padding:15px 16px;border-bottom:1px solid var(--line);font-size:14px;font-weight:600;cursor:pointer}
  .menu .mi:last-child{border-bottom:none}
  .menu .mi .mic{font-size:17px;width:24px;text-align:center}
  .menu .mi .arr{margin-left:auto;color:var(--ink3)}
  .menu .mi .val{margin-left:auto;color:var(--ink3);font-size:13px}
  .toggle{margin-left:auto;width:44px;height:25px;border-radius:999px;background:var(--orange);position:relative;cursor:pointer;flex:none}
  .toggle.off{background:#D6DAE1}
  .toggle:after{content:'';position:absolute;top:2.5px;right:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2)}
  .toggle.off:after{right:auto;left:3px}

  /* admin */
  .admin-top{background:var(--navy);padding:16px 16px 60px}
  .admin-top .hd{display:flex;align-items:center;justify-content:space-between;color:#fff}
  .admin-top h2{font-size:17px;font-weight:800}
  .admin-top .hd button{border:none;background:rgba(255,255,255,.14);color:#fff;border-radius:10px;padding:7px 11px;font-size:12px;cursor:pointer;font-family:inherit}
  .period{display:flex;gap:7px;margin-top:13px}
  .period button{border:none;border-radius:999px;padding:7px 13px;font-size:12px;font-weight:700;cursor:pointer;background:rgba(255,255,255,.13);color:#C6CFDF;font-family:inherit}
  .period button.on{background:var(--orange);color:#fff}
  .admin-body{margin-top:-44px;padding:0 14px 90px}
  .kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
  .kpi{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:14px}
  .kpi .t{font-size:11.5px;color:var(--ink2);font-weight:700}
  .kpi .v{font-size:21px;font-weight:900;margin:3px 0 2px;letter-spacing:-.5px}
  .kpi .d{font-size:11px;font-weight:800}
  .kpi .d.up{color:var(--good)}.kpi .d.dn{color:var(--bad)}
  .hbar{margin-bottom:11px}
  .hbar .lb{display:flex;justify-content:space-between;font-size:12px;margin-bottom:5px}
  .hbar .lb b{font-weight:800}
  .hbar .lb span{color:var(--ink2)}
  .hbar .tr{height:14px;background:#EEF0F4;border-radius:7px;overflow:hidden}
  .hbar .fl{height:100%;border-radius:7px;min-width:6px}
  .tbl{width:100%;border-collapse:collapse;font-size:12.5px}
  .tbl th{text-align:left;color:var(--ink3);font-size:11px;font-weight:700;padding:7px 4px;border-bottom:1px solid var(--line)}
  .tbl td{padding:9px 4px;border-bottom:1px solid var(--line);font-weight:600}
  .tbl tr:last-child td{border-bottom:none}
  .tbl .num{text-align:right}

  /* modals & toast */
  .overlay{position:absolute;inset:0;background:rgba(15,22,38,.55);z-index:60;display:none;align-items:flex-end}
  .overlay.on{display:flex}
  .sheet{background:#fff;width:100%;border-radius:22px 22px 0 0;padding:20px 18px 26px;animation:slideup .25s}
  @keyframes slideup{from{transform:translateY(60px);opacity:.4}to{transform:translateY(0);opacity:1}}
  .sheet .grab{width:44px;height:5px;border-radius:99px;background:#E1E4EA;margin:0 auto 15px}
  .sheet h3{font-size:16px;font-weight:800;margin-bottom:13px}
  .share-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
  .share-grid button{border:none;background:none;cursor:pointer;font-family:inherit;font-size:11px;color:var(--ink2);display:flex;flex-direction:column;align-items:center;gap:6px}
  .share-grid .sic{width:50px;height:50px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:900}
  .toast{position:absolute;left:50%;transform:translateX(-50%);bottom:96px;background:rgba(20,30,54,.94);color:#fff;font-size:13px;font-weight:600;padding:12px 18px;border-radius:12px;z-index:80;opacity:0;transition:.3s;pointer-events:none;white-space:nowrap}
  .toast.on{opacity:1}
  /* kakao alimtalk preview */
  .ktalk{background:#ABC1D1;border-radius:16px;padding:14px;margin-bottom:14px}
  .ktalk .kb{background:#fff;border-radius:4px 14px 14px 14px;padding:0;overflow:hidden;max-width:92%}
  .ktalk .kb .kh{background:var(--kakao);padding:9px 12px;font-size:12px;font-weight:800;color:var(--kakao-ink)}
  .ktalk .kb .kc{padding:12px;font-size:12.5px;line-height:1.6;color:#333}
  .ktalk .kb .kbtn{margin:0 12px 12px;border:1px solid #ddd;border-radius:8px;text-align:center;padding:9px;font-size:12px;font-weight:700;color:#333;background:#F7F7F7}
  .ktalk .kfrom{display:flex;gap:8px;margin-bottom:7px;align-items:center}
  .ktalk .kfrom .kav{width:34px;height:34px;border-radius:12px;background:var(--navy);color:#fff;font-size:9px;font-weight:900;display:flex;align-items:center;justify-content:center}
  .ktalk .kfrom b{font-size:12px;color:#333}

/* ===== app-specific additions ===== */
.screen{display:block;bottom:0}
body.has-nav .screen{bottom:66px}
.nav[hidden],.fab[hidden]{display:none}
.login{min-height:100%;background:linear-gradient(160deg,var(--navy) 0%,#2A3C63 60%,#1B2A4A 100%);display:flex;flex-direction:column;justify-content:center;padding:32px 26px;color:#fff}
.login .logo{font-size:34px;margin-bottom:4px}
.login .tag{font-size:13px;color:#B9C3D8;margin-bottom:30px}
.login .fld input{background:rgba(255,255,255,.96);border-color:transparent}
.login .fld label{color:#C6CFDF}
.login .hint{font-size:11.5px;color:#B9C3D8;margin-top:14px;line-height:1.6}
.login .hint b{color:#FFB477}
.link{background:none;border:none;color:var(--orange-d);font-weight:700;font-size:12.5px;cursor:pointer;font-family:inherit;padding:0}
.empty{text-align:center;color:var(--ink3);font-size:13px;padding:26px 10px}
.empty .big{font-size:34px;margin-bottom:8px}
.notif{padding:12px 0;border-bottom:1px solid var(--line)}
.notif:last-child{border-bottom:none}
.notif b{font-size:13px;display:block;margin-bottom:3px}
.notif p{font-size:12px;color:var(--ink2);white-space:pre-line;line-height:1.55}
.notif .when{font-size:10.5px;color:var(--ink3);margin-top:4px}
.notif.unread b:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--orange);margin-right:6px;vertical-align:1px}
.spin{display:inline-block;width:16px;height:16px;border:2.5px solid rgba(0,0,0,.12);border-top-color:var(--orange);border-radius:50%;animation:sp .7s linear infinite;vertical-align:-3px;margin-right:6px}
@keyframes sp{to{transform:rotate(360deg)}}
.loading{padding:60px 0;text-align:center;color:var(--ink3);font-size:13px}
.stars-in{display:flex;gap:6px;margin:6px 0 12px}
.stars-in button{border:none;background:none;font-size:28px;cursor:pointer;color:#D6DAE1;font-family:inherit;padding:0}
.stars-in button.on{color:#F5A623}
textarea{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:12px;font-size:14px;font-family:inherit;min-height:90px;resize:vertical}
textarea:focus{outline:none;border-color:var(--orange)}
.lead{padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}
.lead:last-child{border-bottom:none}
.lead .l1{display:flex;align-items:center;gap:8px}
.lead .l1 b{font-size:13.5px}
.lead .l1 .st{margin-left:auto}
.lead .l2{font-size:11.5px;color:var(--ink2);margin-top:3px}
.lead.overdue .l1 b:after{content:' ⏰';}
.admin-tabs{display:flex;gap:6px;padding:0 14px 10px;margin-top:-40px;position:relative;z-index:2}
.admin-tabs button{flex:1;border:none;border-radius:11px;padding:9px 4px;font-size:12px;font-weight:800;cursor:pointer;background:rgba(255,255,255,.16);color:#DDE3EE;font-family:inherit}
.admin-tabs button.on{background:#fff;color:var(--navy)}
.admin-tabs .grp{flex:none;background:transparent;color:#8FA0BE;font-size:11px;letter-spacing:.3px}
.admin-tabs .tools{display:contents}
.admin-tabs .tools.hide{display:none}
.period-bar{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;margin:-4px 0 10px;grid-column:1/-1;width:100%}
.period-bar .period{margin-top:0}
.period-bar .period button{background:#E8EDF7;color:var(--navy)}
.period-bar .period button.on{background:var(--orange);color:#fff}
.period-custom{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink2)}
.period-custom input{border:1.5px solid var(--line);border-radius:9px;padding:6px 8px;font-size:12px;font-family:inherit;background:#fff}
.admin-body.tabbed{margin-top:0}
.kv{display:flex;justify-content:space-between;font-size:12.5px;padding:5px 0;color:var(--ink2)}
.kv b{color:var(--ink)}
.small{font-size:11px;color:var(--ink3)}
.pill-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.pill{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:6px 11px;font-size:11.5px;font-weight:700;color:var(--ink2);cursor:pointer;font-family:inherit}
.pill.on{background:var(--navy);border-color:var(--navy);color:#fff}
.bar-chart{display:flex;align-items:flex-end;gap:8px;height:130px;padding:0 4px}
.bar-chart .bc{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.bar-chart .bc .v{font-size:10.5px;font-weight:700;color:var(--ink2);margin-bottom:3px}
.bar-chart .bc .b{width:100%;max-width:34px;background:#C9D2E3;border-radius:4px 4px 0 0;min-height:3px}
.bar-chart .bc.cur .b{background:var(--orange)}
.bar-chart .bc.cur .v{color:var(--orange-d)}
.bar-chart .bc .l{font-size:10.5px;color:var(--ink3);margin-top:5px}
.sheet .fld{margin-bottom:10px}

/* ===== native (Capacitor) ===== */
html.native,html.native body{height:100%;overflow:hidden;overscroll-behavior:none}
html.native body{padding:0;background:var(--bg);min-height:0}
html.native .phone{width:100%;max-width:none;height:100%;max-height:none;border-radius:0;border:none;box-shadow:none}
html.native .topbar,html.native .subbar,html.native .admin-top,html.native .login{padding-top:calc(env(safe-area-inset-top) + 14px)}
html.native .nav{height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}
html.native body.has-nav .screen{bottom:calc(66px + env(safe-area-inset-bottom))}
html.native .fab{bottom:calc(82px + env(safe-area-inset-bottom))}
.admin-tabs{gap:4px;padding:0 10px 10px}
.admin-tabs button{font-size:11px;padding:8px 2px;border-radius:9px;white-space:nowrap;letter-spacing:-.3px}

/* ===== 관리자 데스크톱 레이아웃 (PC 브라우저, 폭 1024px+ 에서 관리자 화면일 때) ===== */
@media (min-width: 1024px){
  body.admin-desktop{padding:0;background:#EEF0F4;align-items:stretch}
  body.admin-desktop .phone{width:100%;max-width:none;height:100vh;max-height:none;border-radius:0;border:none;box-shadow:none;background:#EEF0F4}
  body.admin-desktop .screen{bottom:0}
  body.admin-desktop .admin-top{position:fixed;left:0;top:0;bottom:0;width:240px;padding:22px 18px;display:flex;flex-direction:column;gap:14px;z-index:5;box-sizing:border-box}
  body.admin-desktop .admin-top .hd button{align-self:flex-start}
  body.admin-desktop .admin-top .hd{flex-direction:column;align-items:flex-start;gap:10px}
  body.admin-desktop .admin-top .hd h2{font-size:20px}
  body.admin-desktop .period{flex-wrap:nowrap;gap:5px}
  body.admin-desktop .period button{padding:6px 8px;font-size:11px}
  body.admin-desktop .admin-tabs{position:fixed;left:0;top:214px;width:240px;flex-direction:column;padding:0 14px;margin:0;gap:6px;z-index:6}
  body.admin-desktop .admin-tabs button{text-align:left;padding:11px 14px;font-size:13.5px;border-radius:10px;background:transparent;color:#C6CFDF}
  body.admin-desktop .admin-tabs button.on{background:rgba(255,255,255,.14);color:#fff}
  body.admin-desktop .admin-tabs .grp{margin-top:10px;padding:6px 14px;border-top:1px solid rgba(255,255,255,.1);color:#8FA0BE;font-size:11px}
  body.admin-desktop .admin-tabs .tools{display:flex;flex-direction:column;gap:4px}
  body.admin-desktop .admin-tabs .tools.hide{display:none}
  body.admin-desktop .admin-tabs .tools button{padding:8px 14px;font-size:12.5px}
  body.admin-desktop .admin-body.tabbed{margin:0 0 0 240px;padding:26px 28px 60px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
  body.admin-desktop .admin-body.tabbed > .kpis{grid-column:1 / -1;grid-template-columns:repeat(4,1fr);margin-bottom:0}
  body.admin-desktop .admin-body.tabbed > .card{margin-bottom:0}
  body.admin-desktop .admin-body.tabbed > .pill-row{grid-column:1 / -1}
  body.admin-desktop .admin-body.tabbed > .small{grid-column:1 / -1}
  body.admin-desktop .kpi .v{font-size:26px}
  body.admin-desktop .sheet{max-width:640px;margin:0 auto;border-radius:22px;margin-bottom:40px}
  body.admin-desktop .overlay{align-items:center}
  body.admin-desktop .toast{bottom:40px}
}

/* ── AI 상담 챗봇 ── */
.ai-wrap{display:flex;flex-direction:column;height:100%}
.ai-head{display:flex;align-items:center;gap:10px;padding:12px 16px;background:linear-gradient(135deg,#1B2A4A,#2A3C63);color:#fff}
.ai-head .av{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;font-size:20px}
.ai-head b{font-size:15px;display:block}
.ai-head .st{font-size:11px;color:#B9C3D8}
.ai-msgs{flex:1;overflow-y:auto;padding:14px 14px 6px;background:#F4F6FA;scrollbar-width:none}
.ai-msgs::-webkit-scrollbar{display:none}
.bubble{max-width:82%;padding:10px 13px;border-radius:15px;font-size:13.5px;line-height:1.55;margin-bottom:9px;white-space:pre-wrap;word-break:break-word}
.bubble.ai{background:#fff;border:1px solid var(--line);border-top-left-radius:5px;color:var(--ink)}
.bubble.me{background:var(--orange);color:#fff;border-top-right-radius:5px;margin-left:auto}
.bubble.tip{background:#EEF2F8;color:var(--ink2);font-size:11.5px;max-width:100%;text-align:center;border-radius:10px}
.bubble .cta{display:inline-block;margin-top:8px;background:var(--navy);color:#fff;border:none;border-radius:10px;padding:8px 13px;font-size:12.5px;font-weight:700;cursor:pointer}
.ai-typing{display:flex;gap:4px;padding:12px 14px}
.ai-typing i{width:7px;height:7px;border-radius:50%;background:#C6CFDF;animation:aiblink 1.2s infinite}
.ai-typing i:nth-child(2){animation-delay:.2s}.ai-typing i:nth-child(3){animation-delay:.4s}
@keyframes aiblink{0%,60%,100%{opacity:.3}30%{opacity:1}}
.ai-chips{display:flex;gap:7px;overflow-x:auto;padding:8px 14px 4px;scrollbar-width:none}
.ai-chips::-webkit-scrollbar{display:none}
.ai-chips button{white-space:nowrap;border:1px solid var(--line);background:#fff;color:var(--ink2);border-radius:999px;padding:7px 13px;font-size:12px;cursor:pointer;flex:none}
.ai-input{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:#fff}
.ai-input input{flex:1;border:1.5px solid var(--line);border-radius:22px;padding:11px 15px;font-size:14px;outline:none}
.ai-input input:focus{border-color:var(--orange)}
.ai-input button{border:none;background:var(--orange);color:#fff;width:44px;border-radius:50%;font-size:18px;cursor:pointer;flex:none}
.ai-input button:disabled{opacity:.5}
.ai-home{background:linear-gradient(135deg,#F97316,#FB923C);color:#fff;border-radius:16px;padding:14px 16px;cursor:pointer;display:flex;align-items:center;gap:12px;margin-bottom:12px}
.ai-home .rob{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:22px}
.ai-home b{font-size:14.5px;display:block}
.ai-home span{font-size:11.5px;color:#FFE7D6}

/* ── 보장 관리 퀵액션 (홈) ── */
.care-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}
.care-row button{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}
.care-row button .ic{font-size:22px}
.care-row button b{font-size:12px;color:var(--ink)}
.care-row button:active{background:#F4F6FA}

/* ── 가입 여정 가이드 ── */
.jrny-hero{background:linear-gradient(135deg,#1B2A4A,#2A3C63);color:#fff;border-radius:18px;padding:18px 18px 16px;margin-bottom:14px}
.jrny-hero.done{background:linear-gradient(135deg,#0E9F6E,#12B886)}
.jrny-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.jrny-hero b{font-size:16px}
.jrny-hero .sub2{font-size:12px;color:#C6CFDF;margin-top:3px}
.jrny-hero.done .sub2{color:#D9F5E9}
.jrny-hint{background:rgba(255,255,255,.12);border-radius:10px;padding:9px 11px;font-size:11.5px;line-height:1.5;margin-top:10px;color:#EAF0FA}
.jrny-ring{width:56px;height:56px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:conic-gradient(#F97316 calc(var(--p)*1%),rgba(255,255,255,.16) 0);font-size:12px;font-weight:800}
.jrny-ring span{background:#22314f;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.jrny-hero.done .jrny-ring span{background:#0c7a56}
.jrny-steps{position:relative}
.jrny-step{display:flex;align-items:flex-start;gap:12px;padding:10px;border-radius:14px;position:relative;background:#fff;border:1px solid var(--line);margin-bottom:8px;cursor:default}
.jrny-step[data-step]:not([data-step=""]){cursor:pointer}
.jrny-step.current{border-color:var(--orange);box-shadow:0 4px 16px rgba(249,115,22,.15)}
.jrny-node{width:38px;height:38px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:18px;background:#EEF2F8;color:var(--ink2);z-index:1}
.jrny-step.done .jrny-node{background:var(--good);color:#fff}
.jrny-step.current .jrny-node{background:var(--orange);color:#fff}
.jrny-body{flex:1;padding-top:2px}
.jrny-h{display:flex;align-items:center;gap:7px;margin-bottom:2px}
.jrny-h b{font-size:14px}
.jrny-line{position:absolute;left:29px;top:48px;bottom:-8px;width:2px;background:var(--line)}
.jrny-step.done .jrny-line{background:var(--good)}
.jrny-home{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-bottom:12px;cursor:pointer}
.jrny-home .hh{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.jrny-home .hh b{font-size:14px}
.jrny-home .mini{display:flex;gap:5px}
.jrny-home .dot{flex:1;height:6px;border-radius:3px;background:#EEF2F8}
.jrny-home .dot.on{background:var(--orange)}
.jrny-home .act{font-size:12px;color:var(--orange);font-weight:700;margin-top:9px;display:flex;align-items:center;gap:4px}

/* ── 간편인증 · 결제 ── */
.prov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.prov-grid button{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:11px 4px;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--ink2);cursor:pointer}
.prov-grid button span{font-size:20px}
.prov-grid button.on{border-color:var(--orange);background:var(--orange-l,#FFF2E8);color:var(--orange)}
.pay-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.pay-grid button{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:13px 12px;display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;text-align:left}
.pay-grid button .mic{font-size:19px;width:24px;text-align:center;flex:none}
.pay-grid button.on{border-color:var(--orange);background:var(--orange-l,#FFF2E8)}
.autopay-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:12px;background:#F4F6FA;border-radius:12px;cursor:pointer}
.autopay-row input{width:20px;height:20px;flex:none}
.btn-verify{background:#fff;border:1.5px solid var(--line);color:var(--ink);font-weight:800}

/* ── 로그인/가입 구분선 ── */
.or-line{display:flex;align-items:center;gap:10px;margin:14px 0 6px;color:#7C8AA8;font-size:11.5px}
.or-line:before,.or-line:after{content:'';flex:1;height:1px;background:rgba(255,255,255,.15)}

/* ── 연동 설정 방법 가이드 ── */
.intg-guide{margin:0 0 10px;background:#F4F6FA;border-radius:10px;padding:0}
.intg-guide summary{cursor:pointer;padding:9px 12px;font-size:12.5px;font-weight:800;color:var(--navy);list-style:none;user-select:none}
.intg-guide summary::-webkit-details-marker{display:none}
.intg-guide[open] summary{border-bottom:1px solid var(--line)}
.intg-guide ol{margin:8px 0 6px;padding:0 14px 0 30px}
.intg-guide li{font-size:12px;line-height:1.6;color:var(--ink2);margin-bottom:3px}
.intg-guide .glink{display:block;padding:0 12px 10px;font-size:11.5px;color:var(--orange);word-break:break-all}

/* ── 서버 연결 상태 (로그인) ── */
.srv-line{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:14px;font-size:11.5px;color:#8FA0BE}
.srv-line #srvState{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.srv-line #srvState b{color:#FFB477}
.dotc{width:7px;height:7px;border-radius:50%;flex:none;display:inline-block}
.dotc.green{background:#12B886}.dotc.red{background:#EF4444}.dotc.gray{background:#98A1B0}

/* ============================================================
   반응형 자동 최적화 — 모바일(폰) · 태블릿(패드) · PC
   앱/관리자/공용 화면 모두 적용. dvh + 안전영역(노치) 대응.
   ============================================================ */

/* 태블릿(패드): 프레임을 조금 더 크게, 넉넉한 여백 */
@media (min-width:601px) and (max-width:1023px){
  body{padding:20px 0}
  .phone{width:min(468px,94vw);height:min(980px,calc(100dvh - 32px))}
}

/* 큰 PC 화면: 프레임을 살짝 키워 시원하게 */
@media (min-width:1280px){
  body:not(.admin-desktop) .phone{width:440px;height:min(900px,calc(100dvh - 56px))}
}

/* 모바일(폰) ≤600px: 전체 화면 채움 + 안전영역(노치) 반영 */
@media (max-width:600px){
  body{padding:0;align-items:stretch;background:var(--bg)}
  .phone{width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;border-radius:0;border:none;box-shadow:none}
  .nav{height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}
  body.has-nav .screen{bottom:calc(66px + env(safe-area-inset-bottom))}
  .fab{bottom:calc(82px + env(safe-area-inset-bottom))}
  .topbar,.subbar,.admin-top{padding-top:calc(env(safe-area-inset-top) + 16px)}
  /* 가로 스크롤 방지 */
  .admin-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* 설치형 PWA(홈 화면 추가) standalone: 노치 안전영역 */
@media (display-mode:standalone){
  .nav{height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}
  body.has-nav .screen{bottom:calc(66px + env(safe-area-inset-bottom))}
  .topbar,.subbar,.admin-top{padding-top:calc(env(safe-area-inset-top) + 16px)}
}

/* 아주 작은 폰(≤360px): 글자·여백 미세 축소로 넘침 방지 */
@media (max-width:360px){
  .kpis{gap:8px}
  .nav button{font-size:10px}
  .admin-tabs button{font-size:10.5px;padding:8px 6px}
}

/* 관리자: 태블릿 가로(≥900px)에서도 데스크톱 레이아웃 적용 */
@media (min-width:900px) and (max-width:1023px){
  body.admin-desktop{padding:0;background:#EEF0F4;align-items:stretch}
  body.admin-desktop .phone{width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;border-radius:0;border:none;box-shadow:none;background:#EEF0F4}
  body.admin-desktop .screen{bottom:0}
  body.admin-desktop .admin-top{position:fixed;left:0;top:0;bottom:0;width:210px;padding:20px 14px;display:flex;flex-direction:column;gap:12px;z-index:5;box-sizing:border-box}
  body.admin-desktop .admin-top .hd{flex-direction:column;align-items:flex-start;gap:8px}
  body.admin-desktop .admin-tabs{position:fixed;left:0;top:190px;width:210px;flex-direction:column;padding:0 12px;margin:0;gap:5px;z-index:6;overflow:visible}
  body.admin-desktop .admin-tabs button{text-align:left;padding:10px 12px;font-size:12.5px;border-radius:9px;background:transparent;color:#C6CFDF}
  body.admin-desktop .admin-tabs button.on{background:rgba(255,255,255,.14);color:#fff}
  body.admin-desktop .admin-body.tabbed{margin:0 0 0 210px;padding:20px 20px 50px;display:grid;grid-template-columns:1fr;gap:14px;align-items:start}
  body.admin-desktop .admin-body.tabbed > .kpis{grid-template-columns:repeat(2,1fr)}
  body.admin-desktop .sheet{max-width:560px;margin:0 auto 40px}
  body.admin-desktop .overlay{align-items:center}
}

/* ===== 사용자/관리자 로그인 분리 · 계정 UI ===== */
.login-foot{text-align:center;margin-top:14px}
.login .admin-entry{color:#9FB0CE;font-size:13px;background:rgba(255,255,255,.08);padding:9px 16px;border-radius:11px;border:1px solid rgba(255,255,255,.14)}
.login .admin-entry:hover{background:rgba(255,255,255,.14)}
/* 관리자 로그인 화면 — 더 짙은 콘솔 톤 */
.admin-login{background:linear-gradient(160deg,#0E1526 0%,#16213C 55%,#0B1220 100%)}
.alogo{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.alogo .ai{width:46px;height:46px;border-radius:13px;background:var(--orange);display:flex;align-items:center;justify-content:center;font-size:24px;flex:none;box-shadow:0 8px 20px rgba(249,115,22,.4)}
.alogo b{font-size:20px;font-weight:900;color:#fff;display:block;line-height:1.2}
.alogo span{font-size:12.5px;color:#AFC0DE}
/* 관리자 헤더 우측 계정 액션 */
.admin-top .hd{display:flex;align-items:center;justify-content:space-between}
.admin-top .hd-acts{display:flex;align-items:center;gap:8px}
.admin-top .hd-acts button{background:rgba(255,255,255,.12);border:none;color:#fff;font-size:12px;font-weight:700;padding:8px 12px;border-radius:10px;cursor:pointer;font-family:inherit;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}
.admin-top .hd-acts button:hover{background:rgba(255,255,255,.2)}
@media (min-width:1024px){ body.admin-desktop .admin-top .hd-acts{flex-direction:column;align-items:stretch;width:100%;gap:6px} }
@media (min-width:900px) and (max-width:1023px){ body.admin-desktop .admin-top .hd-acts{flex-direction:column;align-items:stretch;width:100%;gap:6px} }

/* ===== 홈: 유튜브 썸네일 롤링 배너 ===== */
.yt-roll{background:#111827;border-radius:var(--r);padding:12px 0 10px;margin-bottom:12px;overflow:hidden;cursor:pointer}
.yt-roll-head{display:flex;align-items:center;justify-content:space-between;padding:0 14px 9px;font-size:12px;color:#C7D0E0}
.yt-roll-head b{color:#FFB477}
.yt-roll-head .yt-logo{color:#FF4D4D;font-weight:800;font-size:11.5px}
.yt-strip{overflow:hidden;width:100%}
.yt-track{display:flex;gap:9px;padding:0 14px;width:max-content;animation:ytroll 26s linear infinite}
.yt-roll:hover .yt-track{animation-play-state:paused}
.yt-thumb-s{position:relative;width:150px;height:86px;border-radius:10px;flex:none;overflow:hidden;background:#222}
.yt-thumb-s .pl{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:22px;background:#FF0000;border-radius:6px}
.yt-thumb-s .pl:after{content:'';position:absolute;left:11px;top:6px;border-left:8px solid #fff;border-top:5px solid transparent;border-bottom:5px solid transparent}
.yt-thumb-s .tt{position:absolute;left:0;right:0;bottom:0;padding:14px 8px 6px;font-size:10.5px;color:#fff;font-weight:700;line-height:1.25;background:linear-gradient(transparent,rgba(0,0,0,.85));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes ytroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ===== 관리자 대시보드: 핵심 지표 4종 ===== */
.ins4{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:12px}
.ins-card{margin-bottom:0}
.ins-card .ic-h{font-size:13px;font-weight:800;color:var(--navy);margin-bottom:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ins-card .ic-h .small{font-size:10.5px;color:var(--ink3);font-weight:600}
.ins-card .ic-h .v2{margin-left:auto;color:var(--orange-d);font-weight:900;font-size:15px}
.rk{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid #F1F3F7;font-size:12.5px}
.rk:last-child{border-bottom:0}
.rk .rn{width:18px;height:18px;border-radius:5px;background:var(--navy);color:#fff;font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.rk .rl{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rk .rv{font-weight:800;color:var(--ink)}
.ba{display:flex;gap:8px;margin-top:2px}
.ba .bb{flex:1;background:#F4F6FA;border-radius:10px;padding:9px 10px;text-align:center}
.ba .bb.after{background:var(--orange-l)}
.ba .bb span{display:block;font-size:11px;color:var(--ink2);margin-bottom:3px}
.ba .bb b{font-size:17px;font-weight:900;color:var(--navy)}
.ba .bb.after b{color:var(--orange-d)}
@media (min-width:1024px){ body.admin-desktop .ins4{grid-column:1 / -1;grid-template-columns:repeat(4,1fr)} }

/* ===== 관리자 보험상품 관리 리스트 ===== */
.cprow{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid #F1F3F7}
.cprow:last-child{border-bottom:0}
.cprow .ccheck{width:17px;height:17px;flex:none}
.cpthumb{width:46px;height:46px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--orange-d)}
.cpinfo{flex:1;min-width:0}
.cpinfo b{font-size:13.5px;display:block}
.cpinfo span{font-size:11.5px;color:var(--ink2);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cpinfo .small{color:var(--ink3)}
.cpacts{display:flex;align-items:center;gap:6px;flex:none}
.cpacts .tgpub{border:none;cursor:pointer;font-family:inherit}
.ord{display:flex;flex-direction:column;gap:2px}
.ord .obtn{width:22px;height:16px;border:1px solid var(--line);background:#fff;border-radius:4px;font-size:8px;cursor:pointer;color:var(--ink2);line-height:1}
.ord .obtn:disabled{opacity:.3;cursor:default}
.cprow.ythide{opacity:.5}
.cprow .ythg{border:none;cursor:pointer;font-family:inherit}

/* ===== 스토어 후기 (앱 홈 4줄 · 관리자 관리) ===== */
.srcard{padding:13px 14px}
.srcard .srtop{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.srcard .srtop .stars{color:#F5A524;font-size:12px}
.srcard .srtop b{font-size:12.5px}
.srcard .srtop .src{margin-left:auto;font-size:10.5px;color:var(--ink3)}
.srcard p{font-size:12.5px;color:var(--ink2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.srrow{display:flex;align-items:flex-start;gap:10px;padding:10px 2px;border-bottom:1px solid #F1F3F7}
.srrow:last-child{border-bottom:0}
.srrow .srchk{width:17px;height:17px;flex:none;margin-top:3px}
.srrow .srinfo{flex:1;min-width:0}
.srrow .srh{display:flex;align-items:center;gap:6px;margin-bottom:3px;font-size:12px}
.srrow .srinfo p{font-size:12.5px;color:var(--ink2);line-height:1.5}

/* ── 관리자 컨텐츠 서식 편집기 ── */
.editor-sheet{max-height:82vh;overflow-y:auto;padding-right:2px}
body.admin-desktop .sheet:has(.editor-sheet){max-width:900px}
.rte-tools{display:flex;flex-wrap:wrap;gap:4px;padding:6px;border:1.5px solid var(--line);border-bottom:none;border-radius:12px 12px 0 0;background:#F8FAFC;position:sticky;top:0;z-index:2}
.rte-tools .tbtn{border:1px solid var(--line);background:#fff;border-radius:7px;min-width:30px;height:28px;padding:0 7px;font-size:13px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;gap:3px;color:var(--ink)}
.rte-tools .tbtn:hover{background:var(--orange-l)}
.rte-tools .tbtn input[type=color]{width:16px;height:16px;border:none;padding:0;background:none;cursor:pointer}
.rte-tools .tsel{border:1px solid var(--line);border-radius:7px;height:28px;font-size:12px;font-family:inherit;background:#fff;padding:0 4px}
.rte{min-height:320px;border:1.5px solid var(--line);border-radius:0 0 12px 12px;padding:14px;font-size:14px;line-height:1.7;background:#fff;outline:none;overflow:auto}
.rte:focus{border-color:var(--orange)}
.rte table{border-collapse:collapse;width:100%;margin:8px 0} .rte td,.rte th{border:1px solid #D5D9E2;padding:6px 8px;font-size:13px} .rte th{background:#F2F4F7}
.rte img{max-width:100%;border-radius:10px} .rte h1,.rte h2,.rte h3{margin:10px 0 6px;font-weight:800} .rte p{margin:0 0 6px}
.thumb-pick .cpthumb{display:flex;align-items:center;justify-content:center;font-size:26px;border-radius:12px}
.vid-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.vid-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:#fff}
.vid-row img{width:56px;height:36px;object-fit:cover;border-radius:6px;background:#222} .vid-row span{flex:1;font-size:12px;font-family:ui-monospace,Menlo,monospace;color:var(--ink2)}
/* 고객 앱: 서식 본문 */
.rich{font-size:13.5px;line-height:1.75;word-break:break-word} .rich table{border-collapse:collapse;width:100%;margin:8px 0;font-size:12.5px} .rich td,.rich th{border:1px solid #D5D9E2;padding:6px 8px} .rich th{background:#F2F4F7}
.rich img{max-width:100%;height:auto;border-radius:10px;margin:6px 0} .rich h1,.rich h2,.rich h3,.rich h4{margin:14px 0 6px;font-weight:800;color:var(--navy)} .rich p{margin:0 0 8px} .rich ul,.rich ol{margin:4px 0 8px 18px} .rich a{color:var(--orange-d)}
.alim-prev{background:#FEE500;border-radius:14px;padding:12px;color:#191919;font-size:13px} .alim-prev b{display:block;font-size:13.5px} .alim-btn{background:#fff;border-radius:8px;text-align:center;padding:8px;font-weight:700;font-size:12.5px;margin-top:6px}

/* ── 관리자: 서버 자동 연결 칩 · 데이터 분석 탭 ── */
.link-chip{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.1);color:#C6CFDF;font-size:11px;cursor:pointer;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.link-chip .tx{overflow:hidden;text-overflow:ellipsis}
.link-chip.green{color:#D9F8EA}.link-chip.red{color:#FFD5D5;background:rgba(239,68,68,.18)}
.an-kpis{grid-template-columns:repeat(3,1fr)}
.an-wide{grid-column:1 / -1}
.an-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px}
.an-status .an-link{display:flex;align-items:center;gap:7px;font-size:12.5px;flex-wrap:wrap}
.an-status .an-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.an-status .an-tbls{width:100%;color:var(--ink3);font-size:10.5px}
.an-sub{margin-bottom:4px}.an-sub button{font-size:12px;padding:8px 4px;white-space:nowrap}
.an-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.an-scroll .tbl{min-width:520px}
.an-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.an-metrics{display:flex;gap:4px;flex-wrap:wrap}
.an-metrics button{border:1px solid #E1E5EC;background:#fff;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;color:var(--ink2);cursor:pointer;font-family:inherit}
.an-metrics button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.an-legend{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:6px;font-size:11.5px;color:var(--ink2)}
.an-legend .lg{display:inline-flex;align-items:center;gap:5px}.an-legend .lg i{width:10px;height:10px;border-radius:3px;display:inline-block}
.an-svg{width:100%;height:200px;display:block}
.an-vbars{display:flex;align-items:flex-end;gap:3px;height:90px}
.an-vbars .vb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.an-vbars .vb .b{width:100%;border-radius:3px 3px 0 0;min-height:2px;opacity:.75}
.an-vbars .vb.hi .b{opacity:1;background:var(--orange)!important}
.an-vbars .vb .l{font-size:9px;color:var(--ink3);margin-top:3px;overflow:hidden;white-space:nowrap}
.an-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.an-stat{background:#F6F7FA;border-radius:10px;padding:9px 11px;display:flex;flex-direction:column;gap:3px}
.an-stat span{font-size:11px;color:var(--ink2);font-weight:700}.an-stat b{font-size:15px;font-weight:900}.an-stat b small{font-size:11px;color:var(--ink3);font-weight:600}
.an-ins{display:flex;align-items:flex-start;gap:10px;border:1.5px solid;border-radius:12px;padding:10px 12px;margin-bottom:8px}
.an-ins .ic{font-size:18px;flex:none}.an-ins > div{flex:1;min-width:0}.an-ins b{display:block;font-size:13px;margin-bottom:2px}.an-ins span:not(.badge){font-size:11.5px;color:var(--ink2);line-height:1.5}
.an-ins .badge{align-self:center;white-space:nowrap}
.clk{cursor:pointer}.hbar.clk:hover .lb b,.an-ins.clk:hover b,.an-stat.clk:hover b{color:var(--orange-d)}
.an-tbl tr.clk:hover td{background:#FFF7ED}
.an-cell{position:relative;display:block;min-width:90px}.an-cell span{position:relative;z-index:1}.an-cell i{position:absolute;left:-6px;top:-3px;bottom:-3px;background:#EEF2FA;border-radius:6px;z-index:0}
.an-scope{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.an-list{max-height:52vh;overflow:auto;border-top:1px solid #EEF0F4}
.an-row{padding:9px 2px;border-bottom:1px solid #F1F3F7;cursor:pointer}.an-row:hover{background:#FAFBFD}
.an-row .l1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.an-row .l2{font-size:11px;color:var(--ink2);margin-top:3px;line-height:1.5}
@media (min-width: 1024px){
  body.admin-desktop .admin-body.tabbed > .an-kpis{grid-template-columns:repeat(6,1fr)}
  body.admin-desktop .admin-body.tabbed > .an-sub{grid-column:1 / -1;max-width:720px}
  body.admin-desktop .admin-tabs{top:232px}
  body.admin-desktop .link-chip{margin-top:0}
}

/* ── v2.28 고객 앱 수정사항: 홈 조회 버튼 · 진단 탭 그룹 목록 · 보험 상품별 특약 · 소셜 세그먼트 ── */
.lookup .done{display:block;font-size:10.5px;font-weight:700;color:rgba(255,255,255,.85);margin-top:3px}
.ins-logo{width:36px;height:36px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:11px;letter-spacing:-.3px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.25)}
.ins-logo.lg{width:46px;height:46px;font-size:13px}
.dg-sum{padding:14px 16px}
.dg-sum .dg-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;font-size:13.5px;color:var(--ink2)}
.dg-sum .dg-row+.dg-row{border-top:1px dashed var(--line)}
.dg-sum .dg-row b{font-size:17px;color:var(--ink);font-weight:900}
.dg-sum .dg-row small{font-size:11px;color:var(--ink3);margin-left:3px}
.dg-sum .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;vertical-align:1px}
.dg-sum .dot.g{background:#16A34A}.dg-sum .dot.o{background:#F59E0B}
.dg-group{margin:14px 0 4px}
.dg-ghead{display:flex;align-items:center;justify-content:space-between;padding:0 2px 6px}
.dg-ghead h3{font-size:15.5px;font-weight:900}
.dg-ghead h3 em{font-style:normal;color:var(--orange);margin-left:4px;font-size:14px}
.dg-tg{background:none;border:none;font-size:18px;color:var(--ink3);cursor:pointer;padding:0 4px;font-family:inherit}
.dg-desc{font-size:11.5px;color:var(--ink3);margin:-2px 2px 8px}
.dg-group.closed .dg-list{display:none}
.dg-list{background:#fff;border-radius:var(--r);box-shadow:var(--shadow, 0 2px 10px rgba(16,24,40,.06))}
.dg-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer}
.dg-item:last-child{border-bottom:none}
.dg-item:active{background:#FFF7ED}
.dg-item .dg-txt{flex:1;min-width:0}
.dg-item .dg-txt b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dg-item .m{font-size:11.5px;color:var(--ink2);margin-top:1px}
.dg-item .prem{font-size:13px;font-weight:800;color:var(--ink);margin-top:3px}
.dg-item .arr{color:var(--ink3);font-size:20px;flex:none}
.dg-empty{padding:16px;text-align:center;font-size:12.5px;color:var(--ink3)}
.pol-card{padding:16px}
.pol-head{display:flex;gap:12px;align-items:flex-start}
.pol-tt{flex:1;min-width:0}
.pol-tt b{font-size:14.5px}
.pol-tt .m{font-size:12px;color:var(--ink2);margin-top:2px;line-height:1.4}
.pol-tt .prem{font-size:18px;font-weight:900;margin-top:4px}
.pol-tt .prem small{font-size:11px;font-weight:600;color:var(--ink3)}
.pc-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.pc-cell{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12.5px}
.pc-cell span{color:var(--ink3)}.pc-cell b{font-weight:700;text-align:right}
.sec-title h3 em.cnt{font-style:normal;color:var(--orange);margin-left:4px}
.rider{padding:14px 16px}
.rider .nm{font-size:14px;margin-bottom:10px;line-height:1.45}
.rider .nm b{font-weight:800}
.rd-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.rd-grid>div{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12.5px}
.rd-grid span{color:var(--ink3)}.rd-grid b{font-weight:700;text-align:right}
.rd-grid b.ok{color:#16A34A}.rd-grid b.warn{color:#DC2626}
.seg.seg-video button{font-size:13.5px}
.pill-row .pill{white-space:nowrap}

/* =====================================================================
   고객 앱 디자인 v2 (Stitch 시안 반영, 2026-10) — body.cust 에만 적용 (관리자 앱 영향 없음)
   - 동작(JS)은 그대로, 겉모양만 변경. 아이콘은 UI.ic() 인라인 SVG.
   ===================================================================== */
body.cust{--bg:#F7F8FA;--line:#E2E8F0;--ink:#0B1C30;--ink2:#45464E;--ink3:#64748B;--r:16px;--shadow:0 4px 20px rgba(11,28,48,.06);--shadow2:0 8px 24px rgba(27,42,74,.14);letter-spacing:-.01em}
.cust .phone{background:var(--bg)}
.cust .ic-svg{display:inline-block;vertical-align:middle;flex:none}
/* 상단 바 */
.cust .topbar{padding:14px 18px;box-shadow:0 2px 12px rgba(4,21,52,.18)}
.cust .logo{font-size:21px;font-weight:900;letter-spacing:-.6px}
.cust .topbtns{gap:4px;align-items:center}
.cust .iconbtn{width:38px;height:38px;border-radius:12px;background:transparent;display:flex;align-items:center;justify-content:center;padding:0}
.cust .iconbtn:active{background:rgba(255,255,255,.12)}
.cust .iconbtn.me{width:34px;height:34px;border-radius:50%;background:#0A1530;border:1.5px solid rgba(255,255,255,.25);margin-left:4px}
.cust .iconbtn .dot{top:7px;right:8px;width:8px;height:8px}
.cust .subbar{padding:12px 14px;gap:6px;box-shadow:0 1px 0 var(--line);border-bottom:none}
.cust .subbar .back{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin-left:-6px;border-radius:10px;color:var(--ink)}
.cust .subbar h2{font-size:17px;font-weight:800;letter-spacing:-.4px}
.cust .subbar .right{font-size:12.5px}
/* 공통 */
.cust .wrap{padding:16px 20px 100px}
.cust .card{border-radius:16px;box-shadow:var(--shadow);padding:18px;margin-bottom:14px}
.cust .card .sub{font-size:13px;color:var(--ink3);line-height:1.5}
.cust .sec-title{margin:26px 2px 12px}
.cust .sec-title h3{font-size:19px;font-weight:800;letter-spacing:-.5px;display:flex;align-items:center;gap:6px}
.cust .sec-title a{font-size:13px;color:var(--ink3)}
.cust .sec-title.sec-sub{flex-direction:column;align-items:flex-start;gap:3px}
.cust .sec-title.sec-sub p{font-size:13.5px;color:var(--ink3)}
.cust .badge{font-size:11px;padding:4px 9px}
.cust .btn{border-radius:12px;min-height:52px;padding:14px 16px;font-size:16px;letter-spacing:-.3px}
.cust .btn.sm{min-height:40px;padding:9px 14px;font-size:13.5px;border-radius:10px}
.cust .btn.orange{box-shadow:0 6px 16px rgba(249,115,22,.28)}
.cust .btn.ghost{border:1px solid var(--line);color:var(--navy)}
.cust .small{font-size:12px}
/* 입력창: iOS 자동 확대 방지(16px 이상) */
.cust .fld label{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:8px}
.cust .fld input,.cust .fld select,.cust textarea{font-size:16px;border:1px solid var(--line);border-radius:12px;padding:0 16px;height:52px;background:#fff;color:var(--ink)}
.cust textarea{height:auto;padding:12px 16px}
.cust .fld input::placeholder{color:#94A3B8}
.cust .fld input:focus,.cust .fld select:focus,.cust textarea:focus{border:2px solid var(--navy);padding:0 15px}
.cust .agree{font-size:14px;color:var(--ink2);gap:10px;line-height:1.5}
.cust .agree input[type=checkbox]{width:22px;height:22px;accent-color:var(--navy);flex:none}
/* 하단 탭 (4개) */
.cust .nav{height:66px;box-shadow:0 -2px 12px rgba(11,28,48,.04)}
.cust .nav button{font-size:11.5px;font-weight:600;color:var(--ink3);gap:4px;position:relative}
.cust .nav button .nic{font-size:20px;line-height:1}
.cust .nav button.on{color:var(--orange);font-weight:800}
/* 상담 신청 플로팅 버튼 */
.cust .fab{padding:0 22px;height:52px;font-size:16px;gap:8px;box-shadow:0 8px 24px rgba(249,115,22,.4)}
/* ---------- 홈 ---------- */
.cust .hero-yt{background:var(--navy);border-radius:18px;padding:16px 16px 12px;box-shadow:var(--shadow2);margin-bottom:16px;overflow:hidden}
.cust .hero-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#C9D3E8;font-size:13px;font-weight:600;margin-bottom:12px}
.cust .hero-head b{color:var(--orange)}
.cust .yt-pill{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.1);color:#fff;border-radius:999px;padding:5px 10px 5px 7px;font-size:12px;font-weight:800;cursor:pointer;flex:none}
.cust .hero-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:12px;scrollbar-width:none}
.cust .hero-track::-webkit-scrollbar{display:none}
.cust .hero-slide{flex:0 0 100%;scroll-snap-align:start;aspect-ratio:16/9;position:relative;cursor:pointer;border-radius:12px;overflow:hidden}
.cust .hero-slide:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.72))}
.cust .hero-play{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:rgba(249,115,22,.95);color:#fff;display:flex;align-items:center;justify-content:center;padding-left:3px;z-index:1;box-shadow:0 6px 16px rgba(0,0,0,.3)}
.cust .hero-tt{position:absolute;left:14px;right:14px;bottom:12px;color:#fff;font-size:15px;font-weight:800;line-height:1.35;z-index:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cust .hero-dots{display:flex;justify-content:center;gap:5px;margin-top:11px}
.cust .hero-dots i{width:6px;height:6px;border-radius:99px;background:rgba(255,255,255,.3);transition:.25s}
.cust .hero-dots i.on{width:20px;background:var(--orange)}
.cust .hero-empty{display:flex;align-items:center;justify-content:center;gap:10px;color:#fff;height:120px;border-radius:12px;background:rgba(255,255,255,.06);font-weight:700;cursor:pointer}
.cust .lookup2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cust .lookup2 button{border:none;border-radius:16px;background:linear-gradient(160deg,#FB923C,var(--orange));color:#fff;padding:18px 10px 16px;display:flex;flex-direction:column;align-items:center;gap:4px;font-family:inherit;cursor:pointer;box-shadow:0 8px 20px rgba(249,115,22,.28)}
.cust .lookup2 .lk-ic{width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.cust .lookup2 b{font-size:17px;font-weight:800;letter-spacing:-.4px}
.cust .lookup2 .lk-sub{font-size:12.5px;opacity:.9}
.cust .score-card{background:linear-gradient(135deg,#1B2A4A,#2A3C63);color:#fff;cursor:pointer}
.cust .score-card .nm{font-size:16px;font-weight:800;color:#fff;display:block}
.cust .score-nums .pt{font-size:14px;color:#C9D3E8;margin-top:2px}
.cust .score-nums .save{font-size:13px;color:#C9D3E8;margin-top:6px}
.cust .score-nums .save b{color:#FFB477;font-size:16px}
.cust .row-card{display:flex;align-items:center;gap:12px;cursor:pointer}
.cust .rc-ic{width:44px;height:44px;border-radius:12px;background:#EFF4FF;color:var(--navy);display:flex;align-items:center;justify-content:center;flex:none}
.cust .rc-body{flex:1;min-width:0}
.cust .rc-body b{font-size:15px;display:block}
.cust .rc-body .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cust .grid3{gap:10px}
.cust .ins-item{border-radius:14px;padding:14px 12px 12px;min-height:88px;display:flex;flex-direction:column;justify-content:space-between}
.cust .ins-item b{font-size:15px;margin-bottom:8px}
.cust .ins-item .ic{align-self:flex-end;font-size:24px;line-height:1}
.cust .rv-avg{font-size:14px;color:var(--orange);font-weight:800}
.cust .hscroll{display:flex;gap:12px;overflow-x:auto;margin:0 -20px;padding:2px 20px 8px;scroll-snap-type:x mandatory;scroll-padding:0 20px;scrollbar-width:none}
.cust .hscroll::-webkit-scrollbar{display:none}
.cust .rv-card{flex:0 0 82%;scroll-snap-align:start;background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:16px}
.cust .rv-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cust .rv-top b{font-size:15px}
.cust .rv-card .stars,.cust .srcard .stars{color:#F59E0B;font-size:13px;letter-spacing:1px}
.cust .rv-card p{font-size:14px;line-height:1.6;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;min-height:90px}
.cust .rv-card .when{display:block;font-size:12px;color:var(--ink3);margin-top:8px}
.cust .srcard p{font-size:14px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.cust .vlist{display:flex;flex-direction:column;gap:10px}
.cust .vrow{display:flex;gap:12px;align-items:center;background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:10px;cursor:pointer}
.cust .vthumb{width:120px;aspect-ratio:16/9;border-radius:10px;flex:none;position:relative;overflow:hidden}
.cust .vplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center;padding-left:2px}
.cust .vthumb .dur{position:absolute;right:5px;bottom:5px;background:rgba(0,0,0,.78);color:#fff;font-size:11px;font-weight:700;padding:1px 5px;border-radius:4px}
.cust .vtxt{flex:1;min-width:0}
.cust .vtxt b{font-size:14.5px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cust .vtxt span{font-size:12px;color:var(--ink3);display:block;margin-top:4px}
.cust .more-btn{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px}
.cust .mini-gauge{width:80px;height:80px}
/* ---------- 소셜 ---------- */
.cust .yt-chan{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;color:var(--ink2);margin:-2px 2px 12px}
.cust .yt-chan .live{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--orange);margin-right:7px;vertical-align:1px}
.cust .yt-chan a{color:var(--navy);background:#EFF4FF;border-radius:999px;padding:5px 11px;text-decoration:none;font-size:12.5px}
.cust .seg{background:#E5EEFF;border-radius:14px;padding:5px;margin-bottom:16px}
.cust .seg button{font-size:15px;padding:11px 6px;border-radius:10px;color:var(--ink2)}
.cust .seg button.on{color:var(--navy);font-weight:800;box-shadow:0 2px 8px rgba(11,28,48,.08)}
.cust .yt2{border-radius:16px;margin-bottom:16px}
.cust .yt2 .yt-thumb{height:auto;aspect-ratio:16/9}
.cust .yt2 .play2{width:58px;height:58px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;padding-left:3px;box-shadow:0 6px 18px rgba(0,0,0,.3)}
.cust .yt2 .dur{font-size:12px;font-weight:700;padding:2px 7px}
.cust .yt2-body{padding:14px 16px 16px}
.cust .yt2-tt{font-size:16px;line-height:1.45;font-weight:800;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cust .yt2-meta{font-size:13px;color:var(--ink3);margin-top:5px}
.cust .yt2-acts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.cust .yt2-btn{display:flex;align-items:center;justify-content:center;gap:6px;height:44px;border-radius:12px;border:none;background:#F1F5F9;color:var(--navy);font-size:14px;font-weight:800;font-family:inherit;cursor:pointer;text-decoration:none}
.cust .yt2-btn.sub{background:#E5EEFF}
.cust .yt-player .sub{font-size:13px}
/* ---------- 로그인 ---------- */
.cust .login2{justify-content:flex-start;padding:48px 20px 28px;gap:0;background:radial-gradient(120% 60% at 100% 0%,#2A3C63 0%,rgba(42,60,99,0) 60%),linear-gradient(170deg,#1B2A4A 0%,#14203A 100%)}
.cust .lg-brand{text-align:center;margin-bottom:22px}
.cust .lg-chip{display:inline-block;background:rgba(255,255,255,.1);color:#C9D3E8;border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:700;margin-bottom:14px}
.cust .login2 .logo{font-size:34px;font-weight:900;letter-spacing:-1px}
.cust .login2 .tag{font-size:15px;color:#A9B6D0;margin:6px 0 0}
.cust .lg-card{background:#fff;border-radius:18px;padding:20px 18px 14px;box-shadow:0 16px 36px rgba(0,0,0,.25);color:var(--ink)}
.cust .login2 .lg-card .fld label{color:var(--ink)}
.cust .ifld{position:relative;display:flex;align-items:center}
.cust .ifld>.ic-svg{position:absolute;left:14px;color:#75777F;pointer-events:none}
.cust .login2 .fld .ifld input{padding-left:44px;background:#F1F5FD;border-color:transparent}
.cust .login2 .fld .ifld input:focus{padding-left:43px;border-color:var(--navy)}
.cust .pw-eye{position:absolute;right:8px;border:none;background:none;color:var(--ink3);font-size:13px;font-weight:700;padding:8px;cursor:pointer;font-family:inherit}
.cust .lg-links{display:flex;justify-content:center;margin-top:12px}
.cust .lg-links .link{font-size:15px;color:var(--orange-d);padding:6px 10px}
.cust .lg-or{margin:22px 0 12px;color:#A9B6D0;font-size:13px}
.cust .login2 .btn{margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:8px}
.cust .login2 .btn.kakao{color:#191600}
.cust .lg-apple{background:#000;color:#fff}
.cust .lg-verify{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.16)}
.cust .lg-staff{display:flex;align-items:center;gap:12px;margin-top:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:13px 14px;text-decoration:none;color:#fff}
.cust .lg-staff-ic{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;flex:none}
.cust .lg-staff-t{flex:1;min-width:0}
.cust .lg-staff-t b{display:block;font-size:14px}
.cust .lg-staff-t span{font-size:12.5px;color:#A9B6D0}
.cust .lg-staff-go{background:#fff;color:var(--navy);border-radius:10px;padding:7px 12px;font-size:13px;font-weight:800;flex:none}
.cust .login2 .srv-line{margin-top:18px;font-size:12px}
.cust .login2 .srv-line .link{color:#8FA0BE;font-size:12px}
.cust .login2 .hint{text-align:center;margin:2px 0 4px}
/* ---------- 회원가입 ---------- */
.cust .signup2{padding-top:18px}
.cust .su-hero{background:linear-gradient(135deg,#1B2A4A,#2A3C63);border-radius:16px;padding:18px;color:#fff;margin-bottom:22px}
.cust .su-hero b{display:block;font-size:19px;line-height:1.45;margin-top:10px;letter-spacing:-.5px}
.cust .req{color:var(--bad);font-style:normal}
.cust .pw-rules{display:flex;gap:14px;margin-top:10px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:10px}
.cust .pw-rules span{display:flex;align-items:center;gap:4px;font-size:13px;color:#94A3B8;font-weight:600}
.cust .pw-rules span.ok{color:var(--good)}
.cust .terms2{background:#fff;border-radius:16px;box-shadow:var(--shadow);overflow:hidden;margin:20px 0 20px}
.cust .terms2 label{display:flex;align-items:center;gap:12px;padding:15px 16px;cursor:pointer;font-size:15px;color:var(--ink)}
.cust .terms2 input{width:22px;height:22px;accent-color:var(--navy);flex:none}
.cust .terms2 .t-all{background:#EFF4FF}
.cust .terms2 .t-all span,.cust .terms2 .t-row span{flex:1;min-width:0}
.cust .terms2 .t-all b{display:block;font-size:16px}
.cust .terms2 small{display:block;font-size:12.5px;color:var(--ink3);margin-top:2px}
.cust .terms2 .t-row{border-top:1px solid var(--line)}
.cust .terms2 em{font-style:normal;color:var(--orange-d);font-weight:800}
.cust .terms2 a{font-size:13px;color:var(--ink3);text-decoration:none;flex:none}
.cust .su-foot{text-align:center;margin-top:18px;font-size:15px;color:var(--ink2)}
.cust .su-foot .link{font-size:15px;text-decoration:underline;margin-left:4px}
.cust .su-safe{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:14px;font-size:13px;color:var(--ink3)}
/* ---------- 계정 ---------- */
.cust .acct2{padding-top:20px}
.cust .ac-h{font-size:24px;font-weight:800;letter-spacing:-.6px}
.cust .ac-p{font-size:14px;color:var(--ink3);margin:4px 0 16px}
.cust .ac-prof{display:flex;align-items:center;gap:14px}
.cust .ac-prof .pic{width:64px;height:64px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:900;flex:none;box-shadow:inset 0 0 0 3px rgba(255,255,255,.1)}
.cust .ac-who{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.cust .ac-who b{font-size:19px;letter-spacing:-.4px}
.cust .ac-who .em{flex-basis:100%;font-size:14px;color:var(--ink3);overflow:hidden;text-overflow:ellipsis}
.cust .ac-sec{font-size:13.5px;font-weight:800;color:var(--ink2);margin:22px 4px 8px}
.cust .ac-grp{background:#fff;border-radius:16px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:12px}
.cust .ac-row{display:flex;align-items:center;gap:13px;padding:15px 16px;cursor:pointer;min-height:64px}
.cust .ac-row+.ac-row{border-top:1px solid var(--line)}
.cust .ac-ic{width:40px;height:40px;border-radius:11px;background:#EFF4FF;color:var(--navy);display:flex;align-items:center;justify-content:center;flex:none}
.cust .ac-row.k .ac-ic{background:var(--kakao);color:#191600}
.cust .ac-t{flex:1;min-width:0}
.cust .ac-t b{display:block;font-size:16px;font-weight:700;letter-spacing:-.3px}
.cust .ac-t small{display:block;font-size:13px;color:var(--ink3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cust .ac-row .arr{color:#94A3B8;display:flex}
.cust .ac-row .val{font-size:14px;color:var(--ink3);font-weight:700}
.cust .ac-row.danger .ac-ic{background:#FEECEC;color:var(--bad)}
.cust .ac-row.muted .ac-ic{background:#F1F5F9;color:var(--ink3)}
.cust .ac-row.muted .ac-t b{color:var(--ink3)}
.cust .toggle{width:50px;height:30px}
.cust .toggle:after{width:25px;height:25px}
/* ---------- 알림함 ---------- */
.cust .ntf{padding:16px 18px}
.cust .ntf-t{display:block;font-size:16px;line-height:1.4;letter-spacing:-.3px;margin-bottom:6px}
.cust .ntf.unread .ntf-t:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--orange);margin-right:8px;vertical-align:2px}
.cust .ntf p{font-size:14.5px;line-height:1.6;color:var(--ink2);white-space:pre-line}
.cust .ntf-btn{margin-top:12px;width:100%}
.cust .ntf .when{font-size:12.5px;color:var(--ink3);margin-top:10px}
/* ---------- 내 보험 조회 ---------- */
.cust .agree b{color:var(--ink)}
.cust .diag-ic{border-radius:12px}
/* ---------- 보험상품 콘텐츠 ---------- */
.cust .rich,.cust .rich p,.cust .rich li{font-size:15px;line-height:1.75}
.cust #cVids .card{border-radius:14px}

/* 2026-10-12 회의 반영: 로그인 카카오 메인 · 이메일 로그인 접기 · 홈 조회 카드 원래 디자인 */
.cust .login2 .lg-main{margin-top:6px}
.cust .login2 .lg-links .lg-email-tg{color:#C9D3E8;font-size:14px;text-decoration:underline;text-underline-offset:3px}
.cust .login2 #emailBox{margin-top:6px}
.cust .home2 .lookup{margin:14px 0 6px}
.cust .st-rate{display:flex;padding:14px 8px}
.cust .st-rate-i{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px}
.cust .st-rate-i+.st-rate-i{border-left:1px solid var(--line)}
.cust .st-rate-i .st-name{font-size:12.5px;color:var(--ink3);font-weight:700}
.cust .st-rate-i b{font-size:22px;color:#F59E0B;font-weight:900;letter-spacing:-.3px}
.cust .st-rate-i .st-cnt{font-size:12px;color:var(--ink3)}
.adm-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 12px}
.adm-form textarea,.adm-form .full{grid-column:1/-1}
.adm-form input,.adm-form select,.adm-form textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font:inherit;font-size:13px;background:#fff}
.adm-form textarea{min-height:70px;resize:vertical}
.cust .rv-empty{font-size:13.5px;color:var(--ink2);text-align:center;padding:18px 14px;line-height:1.5}
/* 홈 조회 카드 세로 축소 (아이콘을 글자 옆으로) */
.cust .home2 .lookup button{padding:14px 6px 13px;line-height:1.3}
.cust .home2 .lookup .ic{display:block;font-size:20px;margin:0 0 4px}
.cust .home2 .lookup b{font-size:15.5px}
.cust .home2 .lookup .done{margin-top:2px}
.cust .vrow[hidden]{display:none}

/* 관리자 · 보험상품 썸네일 (600×600 정사각형) */
.tp2{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.tp2-prev{width:150px;height:150px;border-radius:14px;background:#111 center/cover no-repeat;flex:none}
.tp2-prev.empty{background:#1A1D24}
.tp2-side{flex:1;min-width:220px}
.tp2-spec{font-size:13px;line-height:1.7;color:var(--ink3)} .tp2-spec span{font-size:12px}
.tp2-file{display:flex;align-items:center;gap:10px;margin-top:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:#fff;font-size:13px;color:var(--ink2)}
.tp2-btn{flex:none;padding:5px 10px;border:1px solid var(--line);border-radius:8px;background:#F7F8FA;font-weight:700;color:var(--ink)}
#cThumbName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 고객 앱 · 보험 리스트/상세 썸네일 */
.cust .ins-item .ic.thumb,.ins-item .ic.thumb{width:34px;height:34px;border-radius:9px;background:center/cover no-repeat;align-self:flex-end;margin-left:auto}
.diag-ic.thumb{background-size:cover!important;background-position:center!important}

/* 관리자 · 서식 편집기 팝업 (표 칸 고르기 · 특수문자) */
.rte-pop{position:absolute;z-index:5;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.16);padding:8px}
.tg-label{font-size:12px;color:var(--ink3);margin-bottom:6px} .tg-label b{color:#2563EB}
.tg-grid{display:grid;grid-template-columns:repeat(8,20px);gap:3px}
.tg-grid span{width:20px;height:20px;border:1px solid #D5D9E2;border-radius:3px;cursor:pointer;background:#fff}
.tg-grid span.on{background:#DBEAFE;border-color:#60A5FA}
.tg-more{margin-top:8px;width:100%;border:none;background:#F2F4F7;border-radius:6px;padding:6px;font-size:12px;cursor:pointer;font-family:inherit}
.sp-grid{display:grid;grid-template-columns:repeat(10,26px);gap:3px}
.sp-grid button{width:26px;height:26px;border:1px solid var(--line);background:#fff;border-radius:5px;cursor:pointer;font-size:14px;padding:0;font-family:inherit}
.sp-grid button:hover{background:var(--orange-l)}
.rich blockquote,.rte blockquote{margin:0 0 0 40px;border:none;padding:0}
.rte-tools .tsel{width:auto;flex:none;max-width:140px}
.rte-tools .tsel[data-cmd="fontPx"]{max-width:110px}
/* 고객 앱 로그인: 로고·버튼 묶음을 화면 세로 가운데, 서버 상태 줄은 맨 아래 (이전 앱 배치) — 화면 전체를 덮어 아래쪽 빈 띠 없음 */
.cust .login2{position:fixed;inset:0;z-index:30;overflow-y:auto;justify-content:center;padding:48px 24px calc(env(safe-area-inset-bottom) + 64px)}
.cust .login2 .lg-brand{margin-bottom:44px}
.cust .login2 .lg-chip{margin-bottom:18px}
.cust .login2 .logo{font-size:40px}
.cust .login2 .btn.lg-main,.cust .login2 .lg-apple{width:100%;max-width:420px;margin-left:auto;margin-right:auto;min-height:56px;font-size:17px}
.cust .login2 .srv-line{position:absolute;left:24px;right:24px;bottom:calc(env(safe-area-inset-bottom) + 18px);margin:0}
/* 로그인 배경: 아이폰 상·하단 여백(앱 바탕색 #1B2A4A)과 같은 색으로 끝나게 → 아래쪽 띠가 보이지 않음 */
.cust .login2{background:radial-gradient(120% 60% at 100% 0%,#2A3C63 0%,rgba(42,60,99,0) 60%),linear-gradient(180deg,#1B2A4A 0%,#16233F 55%,#1B2A4A 100%)}

/* 진단 탭 — 내 보장 현황 */
.cov-card{padding:14px 16px}
.cov-core{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.cov-chip{font-size:12px;font-weight:700;padding:5px 10px;border-radius:999px}
.cov-chip.ok{background:#E8F7EE;color:#12804A}.cov-chip.no{background:#FDECEC;color:#C62828}
.cov-g{border-top:1px solid var(--line,#EEF0F3);padding-top:8px;margin-top:8px}
.cov-gh{font-size:11.5px;font-weight:700;color:var(--ink3,#8A94A6);margin-bottom:2px}
.cov-it summary{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;font-size:13.5px;cursor:pointer;list-style:none}
.cov-it summary::-webkit-details-marker{display:none}
.cov-it summary b{white-space:nowrap}
.cov-src{background:var(--bg2,#F6F7F9);border-radius:10px;padding:6px 10px;margin:0 0 6px}
.cov-src div{display:flex;justify-content:space-between;gap:10px;font-size:11.5px;color:var(--ink2,#555);padding:3px 0}
.cov-src em{font-style:normal;white-space:nowrap}
.cov-rec{display:block;font-size:11px;color:var(--ink3,#8A94A6);font-weight:400;margin-top:1px}
.cov-it summary span{display:flex;flex-direction:column}
.cov-j{font-style:normal;font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;margin-left:4px}
.cov-j.j-충분{background:#E8F7EE;color:#12804A}.cov-j.j-보통{background:#FFF4E0;color:#B26A00}.cov-j.j-부족{background:#FDECEC;color:#C62828}
.cov-judged{display:flex;gap:6px;margin:-2px 0 8px}
