/* SitePass v23.7.428 split step 1
   - index.html에서 분리한 전체 화면 디자인/CSS입니다.
   - 기능 JavaScript는 assets/js/app.bundle.js로 분리했습니다.
*/
:root {
      --bg:#f3f6fb;
      --card:#ffffff;
      --ink:#172033;
      --muted:#667085;
      --line:#d7dfed;
      --primary:#2457d6;
      --primary-dark:#173f9f;
      --soft:#eef4ff;
      --danger:#c7362f;
      --ok:#0f7a4f;
      --warn:#b86400;
      --warn-bg:#fff7e6;
      --warn-line:#ffd591;
      --radius:18px;
      --shadow:0 10px 28px rgba(23,32,51,.08);
    }
    * { box-sizing:border-box; }
    body {
      margin:0;
      font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",Arial,sans-serif;
      background:var(--bg);
      color:var(--ink);
    }
    body.sitepass-booting .screen,
    body.sitepass-booting .top-actions,
    body.sitepass-booting .topbar {
      display:none !important;
    }
    body.sitepass-booting::before {
      content:'로그인 확인 중입니다...';
      position:fixed;
      inset:0;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:24px;
      background:var(--bg);
      color:#26334d;
      font-weight:950;
      font-size:15px;
      z-index:999999;
    }
    .app {
      max-width:780px;
      margin:0 auto;
      min-height:100vh;
      padding:16px 12px 34px;
    }
    .topbar {
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:10px;
      margin-bottom:14px;
      position:sticky;
      top:0;
      z-index:50;
      padding:10px 0 8px;
      background:rgba(243,246,251,.94);
      backdrop-filter:blur(10px);
    }
    .brand strong { display:block; font-size:21px; letter-spacing:-.5px; }
    .brand span { display:block; margin-top:3px; font-size:13px; color:var(--muted); }


    /* SitePass 상단 로고 */
    .brand.logo-brand {
      min-width:0;
      flex:1 1 auto;
    }
    .sitepass-logo {
      display:inline-flex;
      align-items:center;
      gap:7px;
      min-width:0;
      white-space:nowrap;
    }
    .brand.logo-brand,
    .sitepass-logo {
      cursor:pointer;
    }
    .sitepass-logo-mark {
      width:62px;
      height:62px;
      flex:0 0 62px;
      display:block;
      filter:drop-shadow(0 7px 14px rgba(23,32,51,.10));
    }
    .brand .sitepass-logo-word {
      display:inline-block;
      margin:0;
      font-size:50px;
      line-height:1;
      letter-spacing:-2.2px;
      font-weight:950;
      white-space:nowrap;
      color:#0b357f;
      background:linear-gradient(90deg,#0b357f 0 47%,#20bd66 47% 100%);
      -webkit-background-clip:text;
      background-clip:text;
      -webkit-text-fill-color:transparent;
    }
    .brand.logo-brand .brand-subtitle {
      margin-top:4px;
      margin-left:69px;
      font-size:13px;
      color:var(--muted);
      line-height:1.35;
      white-space:nowrap;
    }
    .pill {
      flex:0 0 auto;
      padding:8px 10px;
      border-radius:999px;
      background:var(--soft);
      color:var(--primary-dark);
      font-size:12px;
      font-weight:900;
      white-space:nowrap;
    }
    .pill.ok { background:#eaf8f1; color:var(--ok); }
    .pill.warn { background:#fff7e6; color:var(--warn); }
    .pill.danger { background:#fff1f0; color:var(--danger); }
    .screen.hidden { display:none; }
    .card {
      background:var(--card);
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
      padding:17px;
      margin-bottom:14px;
    }
    h1,h2,h3,p { margin-top:0; }
    h1 { font-size:27px; line-height:1.22; letter-spacing:-.8px; margin-bottom:9px; }
    h2 { font-size:21px; letter-spacing:-.5px; margin-bottom:10px; }
    h3 { font-size:17px; letter-spacing:-.3px; margin:0 0 10px; }
    p { color:var(--muted); line-height:1.55; font-size:14px; }
    .menu-grid, .actions {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      margin-top:14px;
    }
    .full { grid-column:1/-1; }
    button, .file-button {
      border:0;
      border-radius:14px;
      padding:13px 12px;
      min-height:48px;
      font-size:15px;
      font-weight:900;
      text-align:center;
      cursor:pointer;
      line-height:1.25;
    }
    .primary { background:var(--primary); color:white; }
    .primary:hover { background:var(--primary-dark); }
    .secondary { background:#eef2f8; color:#26334d; border:1px solid var(--line); }
    .ghost { background:white; color:var(--primary-dark); border:1px solid #b9c9f3; }
    .dangerBtn { background:#fff1f0; color:var(--danger); border:1px solid #ffccc7; }
    .okBtn { background:#eaf8f1; color:var(--ok); border:1px solid #a8e6c8; }
    .notice {
      background:var(--warn-bg);
      border:1px solid var(--warn-line);
      border-radius:15px;
      padding:12px;
      margin-top:12px;
      color:#694000;
      line-height:1.5;
      font-size:14px;
    }
    .blue-note {
      background:#f3f7ff;
      border:1px solid #cfe0ff;
      color:#18418f;
    }
    .ad-box {
      min-height:110px;
      height:auto;
      border:1px dashed #aab8cf;
      border-radius:16px;
      background:#f8fbff;
      color:#667085;
      display:flex;
      align-items:center;
      justify-content:center;
      font-weight:900;
      margin-top:14px;
    }
    .home-company-card {
      margin-top:8px;
      padding:9px 10px;
      border:1px solid #d8e0ef;
      border-radius:16px;
      background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
      text-align:center;
      box-shadow:0 12px 28px rgba(17,24,39,.06);
    }
    .home-company-title {
      font-size:14px;
      font-weight:900;
      color:#0b357f;
      margin-bottom:4px;
      letter-spacing:-.2px;
    }
    .home-company-logo {
      width:min(100%,130px);
      display:block;
      margin:0 auto 5px;
      border-radius:12px;
    }

    .js-construction-logo-inline {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:9px;
      max-width:100%;
      min-height:48px;
      padding:8px 12px;
      margin:0 auto 7px;
      border:1px solid #d7dfed;
      border-radius:14px;
      background:linear-gradient(135deg,#ffffff 0%,#eef7ff 100%);
      box-shadow:0 8px 20px rgba(23,32,51,.07);
      color:#172033;
      text-align:left;
    }
    .js-construction-logo-inline .js-mark {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:42px;
      height:42px;
      border-radius:12px;
      background:linear-gradient(135deg,#2457d6 0%,#20bd66 100%);
      color:white;
      font-size:20px;
      font-weight:950;
      letter-spacing:-1px;
      flex:0 0 42px;
    }
    .js-construction-logo-inline .js-text {
      display:flex;
      flex-direction:column;
      gap:2px;
      min-width:0;
    }
    .js-construction-logo-inline .js-name {
      display:block;
      color:#0b357f;
      font-size:17px;
      font-weight:950;
      line-height:1.08;
      letter-spacing:-.5px;
      white-space:nowrap;
    }
    .js-construction-logo-inline .js-sub {
      display:block;
      color:#667085;
      font-size:10px;
      font-weight:900;
      letter-spacing:.5px;
      white-space:nowrap;
    }
    .home-company-card p {
      margin:0 0 7px;
      font-size:12px;
      color:#475467;
      line-height:1.5;
    }
    .home-company-button {
      max-width:230px;
      margin:0 auto;
    }
    .form-grid {
      display:grid;
      grid-template-columns:1fr;
      gap:12px;
      margin-top:10px;
    }
    .field label, .date-field label {
      display:block;
      margin-bottom:6px;
      font-size:14px;
      color:#26334d;
      font-weight:900;
    }
    input, select, textarea {
      width:100%;
      min-height:50px;
      border:1px solid #c9d3e4;
      border-radius:14px;
      padding:12px;
      background:white;
      color:var(--ink);
      font-size:16px;
      outline:none;
    }
    input:focus, select:focus, textarea:focus {
      border-color:var(--primary);
      box-shadow:0 0 0 3px rgba(36,87,214,.12);
    }
    .validation-focus-highlight {
      border-color:#c7362f !important;
      box-shadow:0 0 0 4px rgba(199,54,47,.14) !important;
      background:#fffafa !important;
      transition:box-shadow .18s ease, border-color .18s ease, background .18s ease;
    }
    input.validation-focus-highlight,
    textarea.validation-focus-highlight,
    select.validation-focus-highlight {
      border-color:#c7362f !important;
      box-shadow:0 0 0 4px rgba(199,54,47,.14) !important;
      background:#fffafa !important;
    }
    .doc-card.validation-focus-highlight,
    .field.validation-focus-highlight,
    .date-field.validation-focus-highlight,
    .clean-date-picker.validation-focus-highlight {
      outline:2px solid rgba(199,54,47,.22);
      outline-offset:3px;
    }
    .doc-check-title {
      display:flex;
      align-items:center;
      gap:9px;
      margin-bottom:12px;
      padding:11px 12px;
      border-radius:15px;
      background:#eaf8f1;
      color:#0f7a4f;
      font-weight:900;
      line-height:1.35;
    }
    .doc-card {
      border:2px solid #c9d3e4;
      border-radius:17px;
      padding:14px;
      background:#fbfcff;
      margin-bottom:12px;
    }
    .doc-card.required { border-color:#b9c9f3; }
    .doc-head {
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:8px;
      margin-bottom:10px;
    }
    .doc-title {
      font-size:17px;
      font-weight:950;
      letter-spacing:-.3px;
    }
    .badge {
      flex:0 0 auto;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width:48px;
      padding:6px 9px;
      border-radius:999px;
      background:#eef2f8;
      color:#344054;
      font-size:12px;
      font-weight:950;
      white-space:nowrap;
    }
    .badge.need { background:#fff1f0; color:var(--danger); }
    .badge.done { background:#eaf8f1; color:var(--ok); }
    .file-row {
      display:grid;
      grid-template-columns:1fr 1fr 1fr;
      gap:9px;
      margin-bottom:4px;
    }
    .file-button {
      display:flex;
      align-items:center;
      justify-content:center;
      background:white;
      color:#26334d;
      border:1px solid #c9d3e4;
    }
    .file-button input { display:none; }
    .selected-file {
      min-height:22px;
      font-size:13px;
      color:var(--muted);
      line-height:1.45;
      margin:2px 0 12px;
      word-break:break-all;
    }
    .date-note {
      font-size:13px;
      color:var(--muted);
      background:white;
      border:1px solid #edf0f5;
      border-radius:12px;
      padding:10px;
      line-height:1.45;
    }
    .date-grid {
      display:grid;
      grid-template-columns:1fr;
      gap:9px;
      margin-top:8px;
    }
    .preview-wrap {
      display:none;
      margin:8px 0 12px;
      padding:10px;
      border:1px solid #d7dfed;
      border-radius:14px;
      background:white;
    }
    .preview-wrap.show { display:block; }
    .preview-title {
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:8px;
      margin-bottom:8px;
      font-size:13px;
      color:#26334d;
      font-weight:950;
    }
    .preview-title span:last-child {
      color:var(--muted);
      font-weight:800;
      word-break:break-all;
      text-align:right;
    }
    .preview-pdf {
      padding:16px;
      border-radius:12px;
      background:#f6f8fc;
      border:1px solid #edf0f5;
      text-align:center;
      font-weight:950;
      color:#344054;
      line-height:1.55;
    }
    .pdf-preview-actions {
      margin-top:10px;
      display:flex;
      justify-content:center;
    }
    .pdf-preview-actions button {
      min-width:128px;
      min-height:38px;
      border-radius:999px;
      font-size:13px;
      font-weight:950;
      background:#1d4ed8;
      color:white;
    }
    .compare-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      margin-top:8px;
    }
    .compare-card {
      border:1px solid #d7dfed;
      border-radius:14px;
      background:#fbfcff;
      padding:9px;
    }
    .compare-card.selected {
      border-color:#0f7a4f;
      background:#f3fff8;
    }
    .compare-label {
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:6px;
      min-height:28px;
      margin-bottom:7px;
      font-size:13px;
      font-weight:950;
      color:#26334d;
    }
    .selected-chip {
      display:none;
      padding:4px 7px;
      border-radius:999px;
      background:#eaf8f1;
      color:#0f7a4f;
      font-size:11px;
      font-weight:950;
      white-space:nowrap;
    }
    .compare-card.selected .selected-chip { display:inline-flex; }
    .paper-frame {
      display:grid;
      place-items:center;
      width:min(100%,220px);
      height:312px;
      margin:0 auto;
      overflow:hidden;
      border-radius:14px;
      border:1px dashed #b9c9f3;
      background:linear-gradient(135deg,#f8fbff,#eef4ff);
      padding:10px;
    }
    .compare-grid .paper-frame {
      width:min(100%,190px);
      height:270px;
    }
    .preview-img {
      display:block;
      width:auto;
      height:auto;
      max-width:100%;
      max-height:100%;
      object-fit:contain;
      border-radius:12px;
      background:white;
      border:1px solid #edf0f5;
      cursor:pointer;
      box-shadow:0 8px 22px rgba(23,32,51,.12);
    }
    .preview-actions {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
      margin-top:8px;
    }
    .mini-button {
      min-height:38px;
      padding:9px 8px;
      border-radius:11px;
      font-size:13px;
      font-weight:950;
      background:white;
      border:1px solid #c9d3e4;
      color:#26334d;
    }
    .mini-button.use {
      background:#eef4ff;
      border-color:#b9c9f3;
      color:#173f9f;
    }
    .mini-button.use.active {
      background:#0f7a4f;
      border-color:#0f7a4f;
      color:white;
    }
    .ai-status, .fit-note {
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:8px;
      margin-top:8px;
      padding:8px 10px;
      border-radius:12px;
      background:#f3f7ff;
      color:#18418f;
      font-size:12px;
      font-weight:900;
      line-height:1.35;
    }
    .fit-note {
      background:#eaf8f1;
      color:#0f7a4f;
    }
    .ai-status span:last-child, .fit-note span:last-child {
      color:#667085;
      font-weight:800;
      text-align:right;
    }
    .list-item {
      border:1px solid var(--line);
      border-radius:15px;
      padding:14px;
      background:#fbfcff;
      margin-bottom:10px;
    }
    .list-item strong { display:block; font-size:16px; margin-bottom:5px; }
    .archive-title-search-row {
      display:grid;
      grid-template-columns:auto minmax(0, 1fr);
      align-items:center;
      gap:12px;
      margin-bottom:12px;
    }
    .archive-title-search-row h2 { margin:0; white-space:nowrap; }
    .archive-search-box {
      position:relative;
      display:block;
      width:100%;
      min-width:0;
      height:44px;
      border:1px solid #cfd8ea;
      border-radius:13px;
      background:#fff;
      overflow:hidden;
    }
    .archive-search-box:focus-within {
      border-color:#4b74d8;
      box-shadow:0 0 0 3px rgba(75,116,216,.12);
    }
    .archive-search-button {
      position:absolute;
      left:8px;
      top:50%;
      transform:translateY(-50%);
      z-index:2;
      width:30px;
      min-width:30px;
      min-height:30px;
      padding:0;
      border:0;
      border-radius:50%;
      background:transparent;
      color:#52647f;
      font-size:18px;
      line-height:1;
    }
    .archive-search-button:hover,
    .archive-search-button:active { background:#eef3fb; }
    .archive-search-input {
      width:100%;
      min-width:0;
      height:42px;
      border:0;
      border-radius:13px;
      background:transparent;
      padding:0 13px 0 44px;
      font-size:14px;
      font-weight:800;
      color:#15233d;
      outline:none;
    }
    .archive-list-summary {
      display:block;
      margin:0 0 10px;
      padding:0 2px;
      background:transparent;
      border:0;
      color:#173f9f;
      font-size:13px;
      font-weight:900;
    }
    .archive-list-summary b { color:#173f9f; }
    .archive-search-clear {
      margin-left:auto;
      min-height:30px;
      padding:5px 9px;
      border-radius:9px;
      font-size:12px;
      background:#edf2ff;
      color:#173f9f;
    }
    .archive-pagination {
      display:grid;
      grid-template-columns:minmax(86px, 1fr) auto minmax(86px, 1fr);
      align-items:center;
      gap:10px;
      margin-top:14px;
    }
    .archive-pagination span {
      min-width:72px;
      text-align:center;
      font-size:14px;
      color:#4d5b70;
    }
    .archive-pagination button { min-height:44px; }
    .archive-pagination button:disabled { opacity:.42; cursor:default; }
    .list-select-toolbar {
      border:1px solid #cfe0ff;
      border-radius:16px;
      background:#f3f7ff;
      padding:12px;
      margin:0 0 12px;
    }
    .list-select-toolbar .actions { margin-top:10px; }
    .list-share-actions {
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:8px;
      margin-top:10px;
    }
    .list-share-actions button {
      min-width:0;
      padding:12px 6px;
      font-size:13px;
      line-height:1.25;
      word-break:keep-all;
    }
    .list-item-head {
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:10px;
      margin-bottom:4px;
    }
    .list-select-label {
      flex:0 0 auto;
      display:inline-flex;
      align-items:center;
      gap:7px;
      min-height:34px;
      padding:7px 10px;
      border:1px solid #b9c9f3;
      border-radius:999px;
      background:white;
      color:#173f9f;
      font-size:13px;
      font-weight:950;
      cursor:pointer;
      white-space:nowrap;
    }
    .list-select-label input {
      width:18px;
      min-height:18px;
      margin:0;
    }
    .archive-card-actions {
      display:grid;
      grid-template-columns:repeat(4, minmax(0, 1fr));
      gap:8px;
      margin-top:14px;
    }
    .archive-card-actions button {
      min-width:0;
      min-height:46px;
      padding:11px 5px;
      font-size:13px;
      line-height:1.2;
      word-break:keep-all;
    }
    .small { color:var(--muted); font-size:13px; line-height:1.5; }
    .line {
      display:flex;
      justify-content:space-between;
      gap:10px;
      padding:9px 0;
      border-bottom:1px solid #edf0f5;
      font-size:14px;
    }
    .line b { color:#26334d; }
    .line span { text-align:right; color:var(--muted); word-break:break-all; }
    .deadline-alert-box {
      border:1px solid #ffd591;
      border-radius:14px;
      background:#fff7e6;
      color:#694000;
      padding:10px 12px;
      margin:8px 0 10px;
      font-size:13px;
      line-height:1.55;
      font-weight:850;
    }
    .deadline-alert-box b { display:block; margin-bottom:4px; color:#7a4b00; }
    .deadline-alert-box ul { margin:4px 0 0 18px; padding:0; }
    .deadline-alert-box li { margin:2px 0; }
    .qr-box {
      display:grid;
      place-items:center;
      border:1px solid var(--line);
      border-radius:16px;
      padding:14px;
      background:#fbfcff;
      margin:12px 0;
      text-align:center;
      cursor:pointer;
    }
    .qr-box img { width:180px; height:180px; }
    .qr-hint {
      margin-top:8px;
      padding:9px 11px;
      border-radius:999px;
      background:#eef4ff;
      color:var(--primary-dark);
      font-size:13px;
      font-weight:950;
    }
    .empty {
      text-align:center;
      color:var(--muted);
      padding:20px 8px;
      line-height:1.55;
    }
    .preview-modal {
      position:fixed;
      inset:0;
      display:none;
      align-items:center;
      justify-content:center;
      padding:16px;
      background:rgba(0,0,0,.72);
      z-index:1000;
    }
    .preview-modal.show { display:flex; }
    .preview-modal img {
      max-width:100%;
      max-height:86vh;
      border-radius:14px;
      background:white;
    }
    .preview-modal iframe {
      width:min(96vw, 920px);
      height:86vh;
      border:0;
      border-radius:14px;
      background:white;
      display:none;
    }
    .preview-modal.pdf img { display:none; }
    .preview-modal.pdf iframe { display:block; }
    .preview-modal button {
      position:fixed;
      top:14px;
      right:14px;
      min-height:42px;
      border-radius:999px;
      background:white;
      color:#172033;
      padding:10px 14px;
    }
    .manager-access-box {
      border:2px solid #b9c9f3;
      border-radius:18px;
      background:#f8fbff;
      padding:14px;
      margin-top:12px;
    }
    .manager-expire-box {
      border:1px solid #ffd591;
      border-radius:15px;
      background:#fff7e6;
      color:#694000;
      padding:12px;
      margin:12px 0;
      font-size:14px;
      line-height:1.5;
      font-weight:850;
    }
    .download-toolbar {
      display:grid;
      grid-template-columns:1fr 1fr 1fr;
      gap:8px;
      margin:12px 0;
    }
    .manager-doc-card {
      border:1px solid #d7dfed;
      border-radius:15px;
      background:#fbfcff;
      padding:12px;
      margin-bottom:10px;
    }
    .manager-doc-row {
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:10px;
    }
    .manager-doc-row label {
      display:flex;
      align-items:flex-start;
      gap:8px;
      font-weight:950;
      line-height:1.35;
    }
    .manager-doc-row input {
      width:20px;
      min-height:20px;
      margin-top:1px;
    }
    .manager-doc-actions {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
      margin-top:10px;
    }

    @media (max-width:560px) {
      .app { padding:13px 10px 28px; }
      .card { padding:15px; border-radius:16px; }
      h1 { font-size:24px; }
      .menu-grid, .actions, .file-row, .compare-grid, .preview-actions { grid-template-columns:1fr; }
      .archive-title-search-row { grid-template-columns:auto minmax(0, 1fr); gap:8px; }
      .archive-title-search-row h2 { font-size:20px; }
      .archive-search-box { height:42px; }
      .archive-search-button { left:7px; width:28px; min-width:28px; min-height:28px; font-size:17px; }
      .archive-search-input { height:40px; padding:0 10px 0 40px; font-size:13px; }
      .archive-list-summary { gap:5px 7px; }
      .archive-search-clear { margin-left:0; }
      .archive-pagination { grid-template-columns:1fr auto 1fr; gap:7px; }
      .archive-card-actions { grid-template-columns:repeat(4, minmax(0, 1fr)); gap:5px; }
      .archive-card-actions button { min-height:43px; padding:9px 2px; font-size:11px; letter-spacing:-.35px; }
      .list-share-actions { grid-template-columns:repeat(3, minmax(0, 1fr)); gap:6px; }
      .list-share-actions button { font-size:12px; padding:11px 4px; }
      .paper-frame { width:min(100%,210px); height:298px; }
      .compare-grid .paper-frame { width:min(100%,210px); height:298px; }
      input, select { font-size:15px; }
      .topbar { align-items:flex-start; flex-direction:column; gap:8px; }
      .brand.logo-brand { width:100%; }
      .sitepass-logo { gap:6px; }
      .brand .sitepass-logo-word { font-size:42px; letter-spacing:-1.8px; }
      .sitepass-logo-mark { width:54px; height:54px; flex-basis:54px; }
      .brand.logo-brand .brand-subtitle { margin-left:60px; font-size:12px; white-space:normal; }
    }
  
    .camera-modal{position:fixed;inset:0;background:rgba(15,23,42,.92);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}
    .camera-modal.hidden{display:none}
    .camera-sheet{width:min(520px,100%);background:#0f172a;border-radius:24px;padding:14px;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 40px rgba(0,0,0,.35);color:#fff}
    .camera-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
    .camera-top h3{margin:0;font-size:18px;color:#fff}
    .camera-top p{margin:4px 0 0;color:#cbd5e1;font-size:13px;line-height:1.45}
    .camera-close{background:#334155;border:none;color:#fff;border-radius:12px;padding:10px 12px;font-weight:700}
    .camera-view{position:relative;border-radius:20px;overflow:hidden;background:#020617;aspect-ratio:3/4;border:1px solid rgba(255,255,255,.08)}
    .camera-video{width:100%;height:100%;object-fit:cover;display:block;background:#000}
    .camera-guide{position:absolute;inset:0;pointer-events:none}
    .camera-guide .guide-rect{position:absolute;left:10%;top:8%;width:80%;height:84%;border:4px solid #facc15;border-radius:14px;box-shadow:0 0 0 9999px rgba(0,0,0,.28)}
    .camera-guide.detected .guide-rect{border-color:rgba(250,204,21,.45);box-shadow:0 0 0 9999px rgba(0,0,0,.18)}
    .camera-guide .auto-rect{position:absolute;display:none;border:4px solid #22c55e;border-radius:14px;box-shadow:0 0 0 2px rgba(255,255,255,.62),0 0 24px rgba(34,197,94,.42);transition:left .12s linear,top .12s linear,width .12s linear,height .12s linear}
    .camera-guide.detected .auto-rect{display:block}
    .camera-guide .guide-text{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);background:rgba(15,23,42,.74);color:#fde68a;border:1px solid rgba(250,204,21,.45);border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800;white-space:nowrap}
    .camera-guide.detected .guide-text{color:#bbf7d0;border-color:rgba(34,197,94,.55)}
    .camera-scan-status{position:absolute;left:50%;top:14px;transform:translateX(-50%);background:rgba(2,6,23,.72);color:#e2e8f0;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900;white-space:nowrap}
    .camera-actions{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:8px;margin-top:12px}
    .camera-btn{min-height:46px;border:none;border-radius:14px;font-weight:800}
    .camera-btn.secondary{background:#334155;color:#fff}
    .camera-btn.capture{background:#facc15;color:#111827}
    .camera-btn.usefile{background:#fff;color:#111827}
    .camera-note{margin-top:10px;color:#cbd5e1;font-size:12px;line-height:1.5}


    /* v23.7.428 - 초록 자동인식 의존을 줄이고 노란 촬영틀 기준으로 저장 */
    .camera-guide .guide-rect {
      display:block !important;
      left:10% !important;
      top:7% !important;
      width:80% !important;
      height:86% !important;
      border:4px solid #facc15 !important;
      border-radius:16px !important;
      box-shadow:0 0 0 9999px rgba(0,0,0,.32),0 0 22px rgba(250,204,21,.34) !important;
    }
    .camera-guide.card-mode .guide-rect {
      left:7% !important;
      top:27% !important;
      width:86% !important;
      height:41% !important;
      border-radius:18px !important;
    }
    .camera-guide .guide-rect::before,
    .camera-guide .guide-rect::after {
      content:'';
      position:absolute;
      inset:10px;
      border:1px dashed rgba(255,255,255,.62);
      border-radius:12px;
    }
    .camera-guide .auto-rect,
    .camera-guide.detected .auto-rect {
      display:none !important;
    }
    .camera-scan-status {
      display:block !important;
      top:12px !important;
      background:rgba(2,6,23,.78) !important;
      color:#ffffff !important;
      border:1px solid rgba(250,204,21,.55) !important;
    }
    .camera-guide .guide-text {
      left:50% !important;
      right:auto !important;
      bottom:16px !important;
      transform:translateX(-50%) !important;
      width:calc(100% - 28px) !important;
      max-width:420px !important;
      text-align:center !important;
      white-space:normal !important;
      background:rgba(15,23,42,.82) !important;
      color:#ffffff !important;
      border:1px solid rgba(255,255,255,.25) !important;
      border-radius:16px !important;
      padding:10px 12px !important;
      line-height:1.35 !important;
    }
    .camera-guide.detected .guide-text {
      color:#ffffff !important;
      border-color:rgba(255,255,255,.25) !important;
      background:rgba(15,23,42,.82) !important;
    }


    /* v23.7.428 - 사진찍기 모드 명확화: 사업자등록증은 A4, 신분증/면허증/이수증만 카드 */
    .camera-mode-label {
      margin:8px 0 0;
      padding:8px 10px;
      border-radius:12px;
      background:rgba(250,204,21,.12);
      border:1px solid rgba(250,204,21,.35);
      color:#fde68a;
      font-size:12px;
      font-weight:950;
      line-height:1.4;
    }
    .camera-mode-switch {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
      margin:9px 0 0;
    }
    .camera-mode-switch.hidden { display:none !important; }
    .camera-mode-chip {
      min-height:38px;
      padding:8px 10px;
      border-radius:12px;
      border:1px solid rgba(255,255,255,.22);
      background:#1e293b;
      color:#cbd5e1;
      font-size:13px;
      font-weight:950;
    }
    .camera-mode-chip.active {
      background:#facc15;
      border-color:#facc15;
      color:#111827;
    }
    .camera-guide.scan-a4 .guide-rect {
      left:10% !important;
      top:7% !important;
      width:80% !important;
      height:86% !important;
      border-radius:16px !important;
    }
    .camera-guide.scan-card .guide-rect {
      left:7% !important;
      top:29% !important;
      width:86% !important;
      height:36% !important;
      border-radius:18px !important;
    }
    .camera-guide .guide-rect .frame-label { display:none; }

    .roadmap-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      margin-top:12px;
    }
    .roadmap-card {
      border:1px solid #d7dfed;
      border-radius:15px;
      background:#fbfcff;
      padding:12px;
      min-height:96px;
    }
    .roadmap-card b { display:block; font-size:14px; margin-bottom:6px; color:#26334d; }
    .roadmap-card span { display:block; font-size:13px; color:#667085; line-height:1.45; }
    .roadmap-button {
      width:100%;
      text-align:left;
      cursor:pointer;
      transition:transform .12s ease, border-color .12s ease, box-shadow .12s ease;
    }
    .roadmap-button:hover,
    .roadmap-button:focus {
      border-color:#b9c9f3;
      box-shadow:0 10px 24px rgba(23,32,51,.08);
      transform:translateY(-1px);
      outline:none;
    }
    .step-guide-list {
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
      margin-top:12px;
    }
    .step-guide-item {
      display:flex;
      gap:10px;
      align-items:flex-start;
      border:1px solid #d7dfed;
      border-radius:15px;
      background:#fbfcff;
      padding:12px;
    }
    .step-guide-num {
      flex:0 0 auto;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:30px;
      height:30px;
      border-radius:999px;
      background:#eef4ff;
      color:#173f9f;
      font-weight:950;
      font-size:14px;
    }
    .step-guide-item b { display:block; color:#26334d; margin-bottom:4px; }
    .step-guide-item span { display:block; color:#667085; font-size:13px; line-height:1.5; }
    .price-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      margin-top:12px;
    }
    .price-card {
      border:2px solid #b9c9f3;
      border-radius:17px;
      background:#f8fbff;
      padding:14px;
    }
    .price-card strong { display:block; font-size:17px; margin-bottom:6px; }
    .price-card .price { font-size:22px; font-weight:950; color:#173f9f; margin:6px 0; }
    .copy-code-box {
      border:2px dashed #b9c9f3;
      border-radius:16px;
      background:#f8fbff;
      padding:14px;
      text-align:center;
      margin:12px 0;
    }
    .copy-code-box strong { font-size:24px; letter-spacing:.8px; color:#173f9f; }

    .shortcut-panel {
      border:1px solid #b9c9f3;
      border-radius:17px;
      background:#f8fbff;
      padding:14px;
      margin:12px 0;
    }
    .shortcut-panel b { display:block; font-size:16px; color:#173f9f; margin-bottom:6px; }
    .shortcut-name {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:34px;
      padding:7px 10px;
      border-radius:999px;
      background:white;
      border:1px solid #d7dfed;
      color:#172033;
      font-weight:950;
      margin:6px 0;
      word-break:break-all;
    }
    .code-strong {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      max-width:100%;
      padding:6px 9px;
      border-radius:12px;
      background:#eef4ff;
      color:#173f9f;
      font-weight:950;
      word-break:break-all;
      line-height:1.35;
    }

    .bundle-toggle-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      margin-top:12px;
    }
    .bundle-toggle {
      display:flex;
      gap:10px;
      align-items:flex-start;
      border:1px solid #d7dfed;
      background:#fbfcff;
      border-radius:15px;
      padding:12px;
      cursor:pointer;
    }
    .bundle-toggle input {
      width:22px;
      min-height:22px;
      margin-top:2px;
    }
    .bundle-toggle b { display:block; color:#26334d; margin-bottom:3px; }
    .bundle-toggle span { display:block; color:#667085; font-size:13px; line-height:1.4; }
    .bundle-group {
      border:2px solid #d7dfed;
      border-radius:18px;
      padding:12px;
      margin:14px 0;
      background:#ffffff;
    }
    .bundle-group.inactive {
      opacity:.65;
      background:#f8fafc;
    }
    .bundle-group-head {
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:10px;
      margin-bottom:10px;
    }
    .bundle-group-title b { display:block; font-size:18px; letter-spacing:-.3px; }
    .bundle-group-title span { display:block; margin-top:4px; color:#667085; font-size:13px; line-height:1.45; }
    .bundle-group-body.hidden { display:none; }
    .bundle-summary {
      display:grid;
      grid-template-columns:1fr 1fr 1fr;
      gap:8px;
      margin-top:12px;
    }
    .bundle-summary div {
      border:1px solid #d7dfed;
      border-radius:14px;
      background:#fbfcff;
      padding:10px;
      text-align:center;
    }
    .bundle-summary b { display:block; color:#173f9f; font-size:18px; }
    .bundle-summary span { display:block; color:#667085; font-size:12px; margin-top:3px; }
    .sponsor-box {
      border:1px solid #d7dfed;
      border-radius:16px;
      background:#fbfcff;
      padding:13px;
      margin-top:14px;
      text-align:center;
    }
    .sponsor-box a {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      margin-top:8px;
      min-height:42px;
      padding:10px 14px;
      border-radius:999px;
      background:#eef4ff;
      color:#173f9f;
      font-weight:950;
      text-decoration:none;
      border:1px solid #b9c9f3;
    }


    .print-toolbar {
      display:grid;
      grid-template-columns:1fr 1fr 1fr 1fr;
      gap:8px;
      margin:12px 0 14px;
      padding:12px;
      border:1px solid #cfe0ff;
      border-radius:16px;
      background:#f3f7ff;
    }
    .print-toolbar button { min-height:42px; padding:10px; font-size:13px; }
    .print-help {
      grid-column:1/-1;
      color:#18418f;
      font-size:13px;
      line-height:1.45;
      font-weight:800;
    }
    .print-select-row {
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      margin:8px 0 10px;
      padding:10px 12px;
      border:1px solid #d7dfed;
      border-radius:14px;
      background:#fbfcff;
    }
    .print-check-label {
      display:flex;
      align-items:center;
      gap:8px;
      font-size:14px;
      color:#26334d;
      font-weight:950;
    }
    .print-check-label input {
      width:20px;
      min-height:20px;
      margin:0;
    }
    .public-doc-card.printable { border-width:2px; }
    .public-doc-card .doc-head { align-items:center; }
    .public-doc-actions {
      display:grid;
      grid-template-columns:1fr 1fr 1fr;
      gap:8px;
      margin-top:10px;
    }
    .public-doc-actions button { min-height:38px; padding:9px 8px; font-size:13px; }
    .print-disabled-note {
      margin-top:8px;
      padding:9px 10px;
      border-radius:12px;
      background:#fff7e6;
      border:1px solid #ffd591;
      color:#694000;
      font-size:12px;
      line-height:1.45;
      font-weight:800;
    }

    .multi-page-hint {
      margin:8px 0 10px;
      padding:9px 10px;
      border-radius:12px;
      background:#f3f7ff;
      border:1px solid #cfe0ff;
      color:#18418f;
      font-size:12px;
      line-height:1.45;
      font-weight:800;
    }
    .page-list {
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
      margin-top:8px;
    }
    .page-item {
      border:1px solid #d7dfed;
      border-radius:14px;
      background:#fbfcff;
      padding:10px;
    }
    .clean-page-list {
      margin-top:0;
      gap:8px;
    }
    .clean-page-item {
      border:0;
      background:transparent;
      padding:0;
    }
    .page-head {
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:8px;
      margin-bottom:8px;
      font-size:13px;
      color:#26334d;
      font-weight:950;
    }
    .page-head span:last-child {
      color:#667085;
      font-weight:800;
      text-align:right;
      word-break:break-all;
    }
    .page-actions {
      display:grid;
      grid-template-columns:1fr 1fr 1fr;
      gap:7px;
      margin-top:8px;
    }
    .page-actions button {
      min-height:36px;
      padding:8px 6px;
      border-radius:10px;
      font-size:12px;
      font-weight:950;
    }
    .simple-page-actions {
      grid-template-columns:1fr;
    }
    .simple-update-page .page-choice-note {
      text-align:center;
    }
    .page-count-badge {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:5px 8px;
      border-radius:999px;
      background:#eef4ff;
      color:#173f9f;
      font-size:12px;
      font-weight:950;
      margin-left:6px;
      white-space:nowrap;
    }

    .update-panel {
      margin:12px 0 14px;
      padding:13px;
      border:1px solid #cfe0ff;
      border-radius:16px;
      background:#f3f7ff;
    }
    .update-panel b { display:block; color:#18418f; margin-bottom:6px; }
    .update-panel span { display:block; color:#667085; font-size:13px; line-height:1.45; }
    .update-panel .update-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
    .page-edit-modal {
      position:fixed;
      inset:0;
      z-index:1200;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:14px;
      background:rgba(15,23,42,.82);
    }
    .page-edit-modal.hidden { display:none; }
    .page-edit-sheet {
      width:min(720px,100%);
      max-height:94vh;
      overflow:auto;
      border-radius:22px;
      background:#ffffff;
      border:1px solid #d7dfed;
      box-shadow:0 22px 60px rgba(0,0,0,.32);
      padding:14px;
    }
    .page-edit-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:10px; }
    .page-edit-head h3 { margin:0 0 4px; }
    .page-edit-head p { margin:0; font-size:13px; }
    .page-edit-preview {
      display:grid;
      place-items:center;
      min-height:360px;
      border:1px solid #d7dfed;
      border-radius:18px;
      background:#f8fbff;
      overflow:hidden;
      padding:12px;
    }
    .page-edit-preview img {
      display:block;
      max-width:100%;
      max-height:68vh;
      border-radius:12px;
      background:white;
      box-shadow:0 8px 24px rgba(23,32,51,.14);
    }

    .page-crop-panel {
      margin-top:12px;
      padding:11px;
      border:1px solid #cfe0ff;
      border-radius:15px;
      background:#f8fbff;
    }
    .page-crop-title {
      color:#173f9f;
      font-size:14px;
      font-weight:950;
      margin-bottom:5px;
    }
    .page-crop-help {
      color:#667085;
      font-size:12px;
      line-height:1.45;
      font-weight:850;
      margin-bottom:9px;
    }
    .page-crop-controls {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:7px;
    }
    .page-control-pair {
      display:grid;
      grid-template-columns:1fr 0.82fr;
      gap:6px;
      align-items:stretch;
    }
    .page-crop-controls button { min-height:34px; padding:7px 5px; font-size:11px; border-radius:11px; }
    .page-control-pair .ghost { background:#f6f8fc; color:#526070; border-color:#d9e0ea; }

    .page-edit-controls {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:7px;
      margin-top:12px;
    }
    .page-edit-controls button { min-height:36px; padding:8px 6px; font-size:12px; border-radius:11px; }
    .page-save-row { grid-column:1 / -1; }
    .page-save-row button { width:100%; min-height:50px; font-size:16px; font-weight:950; border-radius:15px; }
    .page-edit-info {
      margin-top:10px;
      padding:10px 12px;
      border-radius:13px;
      background:#eaf8f1;
      color:#0f7a4f;
      font-size:13px;
      font-weight:900;
      line-height:1.45;
    }
    .manager-access-box {
      border:2px solid #b9c9f3;
      border-radius:18px;
      background:#f8fbff;
      padding:14px;
      margin-top:12px;
    }
    .manager-expire-box {
      border:1px solid #ffd591;
      border-radius:15px;
      background:#fff7e6;
      color:#694000;
      padding:12px;
      margin:12px 0;
      font-size:14px;
      line-height:1.5;
      font-weight:850;
    }
    .download-toolbar {
      display:grid;
      grid-template-columns:1fr 1fr 1fr;
      gap:8px;
      margin:12px 0;
    }
    .manager-doc-card {
      border:1px solid #d7dfed;
      border-radius:15px;
      background:#fbfcff;
      padding:12px;
      margin-bottom:10px;
    }
    .manager-doc-row {
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:10px;
    }
    .manager-doc-row label {
      display:flex;
      align-items:flex-start;
      gap:8px;
      font-weight:950;
      line-height:1.35;
    }
    .manager-doc-row input {
      width:20px;
      min-height:20px;
      margin-top:1px;
    }
    .manager-doc-actions {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
      margin-top:10px;
    }

    @media (max-width:560px) {
      .print-toolbar, .public-doc-actions, .page-actions, .update-panel .update-actions, .download-toolbar, .manager-doc-actions { grid-template-columns:1fr; }
      .print-select-row { flex-direction:column; align-items:stretch; }
    }
    @media print {
      body { background:white; }
      .topbar, .actions, .print-toolbar, .print-select-row, .public-doc-actions, .sponsor-box, .notice, .qr-hint { display:none !important; }
      .card, .public-doc-card, .doc-card { box-shadow:none; border-color:#ddd; break-inside:avoid; }
      .app { max-width:none; padding:0; }
    }


    .id-phone-input {
      margin-top:10px;
      padding:10px;
      border:1px solid #d7dfed;
      border-radius:14px;
      background:#ffffff;
    }
    .id-phone-input label {
      display:block;
      margin-bottom:6px;
      font-size:14px;
      color:#26334d;
      font-weight:950;
    }
    .id-phone-strip {
      margin:8px auto 0;
      width:min(100%,220px);
      padding:10px 12px;
      border:1px solid #d7dfed;
      border-radius:0 0 14px 14px;
      background:#ffffff;
      color:#172033;
      font-size:15px;
      font-weight:950;
      text-align:center;
      letter-spacing:.2px;
      box-shadow:0 6px 16px rgba(23,32,51,.06);
    }
    .page-file-label {
      display:inline-flex;
      align-items:center;
      justify-content:flex-start;
      max-width:100%;
      margin:0 0 6px 0;
      padding:7px 10px;
      border:1px solid #d7dfed;
      border-radius:11px;
      background:#ffffff;
      color:#172033;
      font-size:13px;
      font-weight:950;
      line-height:1.25;
      box-shadow:0 4px 12px rgba(23,32,51,.05);
    }
    .doc-expiry-strip {
      margin:8px auto 0;
      width:min(100%,260px);
      padding:10px 12px;
      border:1px solid #ffd591;
      border-radius:13px;
      background:#fffaf0;
      color:#694000;
      text-align:center;
      font-size:14px;
      font-weight:950;
      line-height:1.35;
    }
    .doc-expiry-strip b { display:block; color:#8a5a00; font-size:13px; margin-bottom:2px; }
    .doc-expiry-strip span { display:block; color:#172033; font-size:15px; }
    .public-doc-card {
      border:1px solid #d7dfed;
      border-radius:15px;
      padding:12px;
      background:#fbfcff;
      margin:10px 0;
    }

    .worker-control-box {
      border:1px solid #d7dfed;
      border-radius:16px;
      background:#f8fbff;
      padding:12px;
      margin-bottom:12px;
    }
    .worker-control-box .small { margin-bottom:10px; }
    .worker-add-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
    }
    .worker-person-card {
      border:2px solid #b9c9f3;
      border-radius:18px;
      background:#fbfcff;
      padding:12px;
      margin:12px 0;
    }
    .worker-person-head {
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:10px;
      margin-bottom:10px;
    }
    .worker-person-title b { display:block; font-size:17px; color:#172033; }
    .worker-person-title span { display:block; margin-top:4px; color:#667085; font-size:13px; }
    .worker-type-row {
      display:grid;
      grid-template-columns:1fr auto;
      gap:8px;
      align-items:end;
      margin-bottom:10px;
    }
    .id-extra-strip {
      margin:8px auto 0;
      width:min(100%,260px);
      padding:10px 12px;
      border:1px solid #d7dfed;
      border-radius:0 0 14px 14px;
      background:#ffffff;
      color:#172033;
      font-size:14px;
      font-weight:950;
      text-align:center;
      line-height:1.45;
      box-shadow:0 6px 16px rgba(23,32,51,.06);
    }
    .id-extra-strip div + div { margin-top:4px; }


    .company-kakao-box {
      border:2px solid #fee500;
      border-radius:17px;
      background:#fffbe8;
      padding:14px;
      margin:14px 0;
    }
    .company-kakao-box strong { display:block; font-size:17px; color:#172033; margin-bottom:6px; }
    .company-kakao-box span { display:block; color:#667085; font-size:13px; line-height:1.45; }
    .company-kakao-actions {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
      margin-top:10px;
    }
    .company-kakao-button {
      background:#fee500;
      color:#111827;
      border:1px solid #e6cf00;
    }



    .auth-lock-panel {
      border:1px solid #ffd591;
      border-radius:15px;
      background:#fff7e6;
      padding:12px;
      margin:10px 0 12px;
      color:#694000;
    }
    .auth-lock-panel.verified {
      border-color:#a8e6c8;
      background:#eaf8f1;
      color:#0f7a4f;
    }
    .auth-lock-title { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:14px; font-weight:950; margin-bottom:7px; }
    .auth-lock-desc { color:inherit; font-size:12px; line-height:1.45; margin-bottom:9px; font-weight:800; }
    .auth-lock-grid { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:end; margin-top:8px; }
    .auth-lock-grid input { min-height:42px; font-size:14px; border-radius:12px; padding:9px 10px; }
    .auth-lock-grid button { min-height:42px; padding:9px 10px; border-radius:12px; font-size:13px; white-space:nowrap; }
    .auth-status { margin-top:8px; padding:8px 10px; border-radius:12px; background:rgba(255,255,255,.7); font-size:12px; line-height:1.45; font-weight:900; }
    .person-auth-panel {
      border:2px solid #b9c9f3;
      border-radius:18px;
      background:#f8fbff;
      padding:14px;
      margin:0 0 14px;
    }
    .person-auth-panel.verified { border-color:#a8e6c8; background:#f3fff8; color:#0f7a4f; }
    .person-auth-panel.rejected { border-color:#ffccc7; background:#fff1f0; color:#c7362f; }
    .person-auth-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:8px; }
    .person-auth-head b { display:block; font-size:16px; color:#172033; }
    .person-auth-head span { display:block; margin-top:4px; color:#667085; font-size:13px; line-height:1.45; }
    .person-auth-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
    .person-auth-grid.three { grid-template-columns:1fr 1fr auto; align-items:end; }
    .person-auth-check { display:flex; align-items:flex-start; gap:8px; margin-top:10px; padding:10px; border:1px solid #d7dfed; border-radius:13px; background:white; color:#26334d; font-size:13px; font-weight:900; line-height:1.45; cursor:pointer; }
    .person-auth-check input { width:20px; min-height:20px; margin:0; flex:0 0 20px; }
    .person-auth-actions { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; margin-top:10px; }
    .person-auth-actions button { min-height:42px; padding:9px 10px; font-size:13px; }
    .person-auth-panel input, .person-auth-panel select { min-height:44px; font-size:14px; border-radius:12px; padding:9px 10px; }
    .sms-preview-box {
      margin-top:10px;
      border:1px solid #cfe0ff;
      border-radius:15px;
      background:white;
      overflow:hidden;
    }
    .sms-preview-head {
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:8px;
      padding:10px 12px;
      background:#eef4ff;
      color:#173f9f;
      font-size:13px;
      font-weight:950;
    }
    .sms-preview-content {
      padding:12px;
      color:#344054;
      font-size:13px;
      line-height:1.55;
      white-space:pre-line;
      border-top:1px solid #edf0f5;
    }
    .sms-preview-content b { display:block; color:#172033; margin:8px 0 0; }
    .sms-preview-text {
      margin:7px 0 0;
      padding:10px;
      border-radius:12px;
      background:#f8fbff;
      border:1px solid #edf0f5;
      color:#172033;
      font-weight:850;
      line-height:1.55;
      white-space:pre-line;
      word-break:break-all;
    }
    .file-button.auth-locked, .camera-launch.auth-locked, input[type="file"].auth-locked { opacity:.48; cursor:not-allowed; filter:grayscale(.2); }
    button:disabled, .file-button.disabled { opacity:.48; cursor:not-allowed; }

    .hidden { display:none !important; }
    .top-actions {
      display:flex;
      align-items:center;
      justify-content:flex-end;
      gap:8px;
      flex-wrap:wrap;
    }
    .top-admin-button {
      min-height:34px;
      padding:8px 10px;
      border-radius:999px;
      background:white;
      color:#26334d;
      border:1px solid #c9d3e4;
      font-size:12px;
      font-weight:950;
      white-space:nowrap;
    }
    .top-admin-button.active {
      background:#172033;
      color:white;
      border-color:#172033;
    }
    .home-top-button {
      background:#2457d6;
      color:#ffffff;
      border-color:#2457d6;
    }
    .home-top-button:hover {
      background:#173f9f;
      border-color:#173f9f;
    }

    .auth-start-grid {
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
      margin:14px 0;
    }
    .auth-start-button {
      display:flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      min-height:54px;
      border-radius:15px;
      font-size:16px;
      font-weight:950;
      border:1px solid #d7dfed;
    }
    .auth-start-button.kakao { background:#fee500; color:#191919; border-color:#fee500; }
    .auth-start-button.naver { background:#03c75a; color:white; border-color:#03c75a; }
    .auth-start-button.sitepass { background:#eef4ff; color:#173f9f; border-color:#b9c9f3; }
    .auth-divider {
      display:flex;
      align-items:center;
      gap:10px;
      color:#667085;
      font-size:13px;
      font-weight:900;
      margin:16px 0 8px;
    }
    .auth-divider:before, .auth-divider:after { content:''; height:1px; background:#d7dfed; flex:1; }
    .verify-row {
      display:grid;
      grid-template-columns:1fr auto;
      gap:8px;
      align-items:end;
    }
    .verify-row button { min-width:118px; }
    .auth-mini-note {
      margin-top:10px;
      padding:10px 12px;
      border-radius:14px;
      background:#f8fbff;
      border:1px solid #d7dfed;
      color:#667085;
      font-size:13px;
      line-height:1.5;
    }



    #signupScreen .card {
      max-width:560px;
      margin:0 auto;
      padding:28px 22px 24px;
    }
    .login-auth-shell {
      text-align:center;
      padding:6px 0 2px;
    }
    .login-auth-brand {
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:10px;
      margin-bottom:10px;
    }
    .login-auth-brand .sitepass-logo-mark {
      width:70px;
      height:70px;
      flex:0 0 70px;
    }
    .login-auth-word {
      font-size:34px;
      font-weight:950;
      line-height:1;
      letter-spacing:-1.5px;
      color:#172033;
    }
    .login-auth-title {
      margin:14px 0 8px;
      font-size:28px;
      letter-spacing:-.8px;
      color:#172033;
    }
    .login-auth-subtitle {
      margin:0 0 18px;
      color:#667085;
      font-size:15px;
      line-height:1.55;
    }
    .login-auth-form {
      display:grid;
      grid-template-columns:minmax(0, 1fr) 104px;
      grid-template-rows:44px 44px;
      gap:8px;
      margin:0 auto;
      max-width:430px;
      align-items:stretch;
    }
    .login-auth-form input {
      min-height:44px;
      height:44px;
      border-radius:10px;
      font-size:15px;
      background:#fff;
    }
    .login-auth-form input:first-child { grid-column:1; grid-row:1; }
    .login-auth-form input:nth-child(2) { grid-column:1; grid-row:2; }
    .login-continue-button {
      grid-column:2;
      grid-row:1 / span 2;
      min-height:96px;
      height:96px;
      border-radius:12px;
      background:#26334d;
      color:#ffffff;
      font-size:17px;
      font-weight:950;
    }
    .login-continue-button:hover { background:#172033; }
    .login-password-show {
      display:flex !important;
      align-items:center !important;
      justify-content:flex-start !important;
      gap:6px !important;
      width:100%;
      max-width:430px;
      margin:7px auto 0 !important;
      padding-left:0;
      padding-right:112px;
      box-sizing:border-box;
      color:#64748b;
      font-size:12px;
      line-height:1.2;
      text-align:left;
      white-space:nowrap;
      cursor:pointer;
      -webkit-user-select:none;
      user-select:none;
    }
    .login-password-show input[type="checkbox"] {
      width:16px !important;
      min-width:16px !important;
      max-width:16px !important;
      height:16px !important;
      min-height:16px !important;
      max-height:16px !important;
      flex:0 0 16px !important;
      margin:0 !important;
      padding:0 !important;
      appearance:auto;
      -webkit-appearance:checkbox;
      box-sizing:border-box;
      border-radius:3px;
    }
    .login-password-show span {
      display:inline-block;
      white-space:nowrap;
      word-break:keep-all;
    }
    .login-divider {
      display:flex;
      align-items:center;
      gap:12px;
      margin:18px auto 16px;
      max-width:454px;
      color:#98a2b3;
      font-size:13px;
      font-weight:900;
    }
    .login-divider::before,
    .login-divider::after {
      content:'';
      flex:1;
      height:1px;
      background:#d0d5dd;
    }
    .login-social-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      max-width:454px;
      margin:0 auto;
    }
    .login-social-button {
      min-height:48px;
      border-radius:12px;
      border:1px solid #d0d5dd;
      background:#ffffff;
      color:#172033;
      font-size:14px;
      font-weight:900;
      padding:12px 10px;
    }
    .login-social-button.kakao { background:#fee500; border-color:#e6cf00; color:#191919; }
    .login-social-button.naver { background:#03c75a; border-color:#03c75a; color:#ffffff; }
    .oauth-redirect-help {
      display:none;
      max-width:454px;
      margin:12px auto 0;
      padding:12px;
      border-radius:14px;
      border:1px solid #fedf89;
      background:#fffbeb;
      color:#7a4d00;
      font-size:13px;
      font-weight:800;
      line-height:1.45;
      text-align:left;
    }
    .oauth-redirect-help.show { display:block; }
    .oauth-redirect-help b { display:block; color:#172033; margin-bottom:4px; }
    .oauth-redirect-help a {
      display:inline-flex;
      margin-top:8px;
      padding:9px 12px;
      border-radius:10px;
      background:#172033;
      color:#fff;
      text-decoration:none;
      font-weight:900;
    }
    .login-link-row {
      margin-top:18px;
      color:#475467;
      font-size:15px;
      font-weight:800;
    }
    .login-link-row.secondary {
      margin-top:12px;
      font-size:14px;
      color:#667085;
    }
    .login-text-link {
      background:none;
      border:0;
      padding:0;
      min-height:auto;
      color:#2457d6;
      font-size:inherit;
      font-weight:950;
      cursor:pointer;
      text-decoration:none;
    }

    .login-help-row {
      display:flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      margin:10px auto 0;
      max-width:454px;
      color:#667085;
      font-size:14px;
      font-weight:850;
    }
    .login-help-row .divider-dot {
      color:#c9d3e4;
      font-weight:950;
    }
    .account-find-panel {
      max-width:454px;
      margin:14px auto 0;
      padding:14px;
      border:1px solid #cfe0ff;
      border-radius:16px;
      background:#f8fbff;
      text-align:left;
    }
    .account-find-panel.hidden {
      display:none;
    }
    .account-find-head {
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:10px;
      margin-bottom:10px;
    }
    .account-find-head b {
      display:block;
      color:#173f9f;
      font-size:16px;
      margin-bottom:4px;
    }
    .account-find-head span {
      display:block;
      color:#667085;
      font-size:12px;
      line-height:1.45;
      font-weight:800;
    }
    .account-find-close {
      min-height:34px;
      padding:7px 10px;
      border-radius:999px;
      background:white;
      border:1px solid #d7dfed;
      color:#26334d;
      font-size:12px;
      font-weight:950;
    }
    .account-find-tabs {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
      margin:10px 0 12px;
    }
    .account-find-tabs button {
      min-height:40px;
      padding:9px 8px;
      border-radius:12px;
      font-size:13px;
      font-weight:950;
      background:white;
      color:#26334d;
      border:1px solid #d7dfed;
    }
    .account-find-tabs button.active {
      background:#2457d6;
      color:white;
      border-color:#2457d6;
    }
    .account-find-form {
      display:grid;
      grid-template-columns:1fr;
      gap:9px;
    }
    .account-find-form.hidden {
      display:none;
    }
    .account-find-form input {
      min-height:46px;
      border-radius:12px;
      font-size:15px;
    }
    .account-find-form button {
      min-height:44px;
      border-radius:12px;
      font-size:14px;
    }
    .find-step-panel {
      display:grid;
      grid-template-columns:1fr;
      gap:9px;
      padding:10px;
      border:1px solid #d7dfed;
      border-radius:14px;
      background:#ffffff;
    }
    .find-step-panel.hidden {
      display:none;
    }
    .find-step-title b {
      display:block;
      color:#173f9f;
      font-size:14px;
      margin-bottom:3px;
    }
    .find-step-title span {
      display:block;
      color:#667085;
      font-size:12px;
      line-height:1.45;
      font-weight:850;
    }
    .find-verify-row {
      display:grid;
      grid-template-columns:1fr auto;
      gap:8px;
      align-items:end;
    }
    .find-verify-row button {
      min-width:96px;
      white-space:nowrap;
    }
    @media (max-width:560px) {
      .find-verify-row { grid-template-columns:1fr; }
      .find-verify-row button { min-width:0; }
    }
    .account-find-result {
      margin-top:10px;
      padding:10px 12px;
      border-radius:13px;
      background:white;
      border:1px solid #d7dfed;
      color:#344054;
      font-size:13px;
      line-height:1.5;
      font-weight:850;
      white-space:pre-line;
    }
    .join-choice-box {
      margin-top:24px;
      padding-top:20px;
      border-top:1px solid #e4e7ec;
    }
    .join-choice-head {
      margin-bottom:12px;
      text-align:left;
    }
    .join-choice-head h3 {
      margin:0 0 6px;
      font-size:22px;
      letter-spacing:-.5px;
      color:#172033;
    }
    .join-choice-head p {
      margin:0;
      font-size:14px;
      color:#667085;
      line-height:1.5;
    }


    .terms-box {
      border:2px solid #b9c9f3;
      border-radius:18px;
      background:#f8fbff;
      padding:14px;
      margin:14px 0;
    }
    .terms-box h3 {
      margin:0 0 8px;
      font-size:17px;
      color:#172033;
    }
    .terms-guide {
      margin:0 0 12px;
      color:#667085;
      font-size:13px;
      line-height:1.5;
    }
    .terms-check {
      display:flex;
      align-items:flex-start;
      gap:9px;
      padding:10px 8px;
      border-radius:13px;
      color:#26334d;
      font-size:14px;
      font-weight:950;
      cursor:pointer;
    }
    .terms-check.all {
      background:#eef4ff;
      border:1px solid #b9c9f3;
      margin-bottom:10px;
    }
    .terms-check input {
      width:21px;
      min-height:21px;
      height:21px;
      flex:0 0 21px;
      margin:0;
      accent-color:#2457d6;
    }
    .terms-required {
      color:#c7362f;
      font-size:12px;
      margin-left:4px;
    }
    .terms-optional {
      color:#667085;
      font-size:12px;
      margin-left:4px;
    }
    .terms-list {
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
    }
    .terms-item {
      border:1px solid #d7dfed;
      border-radius:15px;
      background:white;
      overflow:hidden;
    }
    .terms-item details {
      border-top:1px solid #edf0f5;
      padding:0;
    }
    .terms-item summary {
      padding:10px 12px;
      color:#173f9f;
      font-size:13px;
      font-weight:950;
      cursor:pointer;
      list-style:none;
    }
    .terms-item summary::-webkit-details-marker { display:none; }
    .terms-content {
      max-height:280px;
      overflow:auto;
      padding:0 12px 12px;
      color:#667085;
      font-size:12px;
      line-height:1.55;
      white-space:pre-line;
    }
    .terms-ok-note {
      display:none;
      margin-top:10px;
      padding:10px 12px;
      border-radius:13px;
      background:#eaf8f1;
      color:#0f7a4f;
      font-size:13px;
      font-weight:950;
      line-height:1.45;
    }
    .terms-ok-note.show { display:block; }


    .admin-login-box {
      display:grid;
      grid-template-columns:1fr;
      gap:12px;
      margin-top:12px;
    }
    .admin-locked-box {
      padding:14px;
      border-radius:16px;
      background:#f8fbff;
      border:1px solid #d7dfed;
      color:#26334d;
      font-size:14px;
      line-height:1.55;
    }

    .manager-access-box {
      border:2px solid #b9c9f3;
      border-radius:18px;
      background:#f8fbff;
      padding:14px;
      margin-top:12px;
    }
    .manager-expire-box {
      border:1px solid #ffd591;
      border-radius:15px;
      background:#fff7e6;
      color:#694000;
      padding:12px;
      margin:12px 0;
      font-size:14px;
      line-height:1.5;
      font-weight:850;
    }
    .download-toolbar {
      display:grid;
      grid-template-columns:1fr 1fr 1fr;
      gap:8px;
      margin:12px 0;
    }
    .manager-doc-card {
      border:1px solid #d7dfed;
      border-radius:15px;
      background:#fbfcff;
      padding:12px;
      margin-bottom:10px;
    }
    .manager-doc-row {
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:10px;
    }
    .manager-doc-row label {
      display:flex;
      align-items:flex-start;
      gap:8px;
      font-weight:950;
      line-height:1.35;
    }
    .manager-doc-row input {
      width:20px;
      min-height:20px;
      margin-top:1px;
    }
    .manager-doc-actions {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
      margin-top:10px;
    }

    @media (max-width:560px) {
      .roadmap-grid, .price-grid, .bundle-toggle-grid, .bundle-summary, .worker-add-grid, .worker-type-row, .auth-lock-grid, .person-auth-grid, .person-auth-grid.three, .person-auth-actions, .login-social-grid, .install-action-grid { grid-template-columns:1fr; }
      .topbar { align-items:flex-start; }
      .top-actions { flex-direction:row; align-items:center; justify-content:flex-start; width:100%; }
      #signupScreen .card { padding:24px 16px 20px; }
      .login-auth-brand .sitepass-logo-mark { width:62px; height:62px; }
      .login-auth-word { font-size:30px; }
      .login-auth-title { font-size:26px; }
      .login-auth-subtitle { font-size:14px; }
      .login-link-row { font-size:14px; }
      .login-auth-form {
        max-width:100%;
        grid-template-columns:minmax(0, 1fr) 92px;
        grid-template-rows:42px 42px;
        gap:7px;
      }
      .login-auth-form input {
        min-height:42px;
        height:42px;
        font-size:14px;
      }
      .login-continue-button {
        min-height:91px;
        height:91px;
        font-size:15px;
      }
      .login-password-show {
        max-width:100%;
        padding-right:99px;
        margin-top:7px !important;
      }
      .login-password-show input[type="checkbox"] {
        width:16px !important;
        min-width:16px !important;
        height:16px !important;
        min-height:16px !important;
      }
      .join-choice-head h3 { font-size:20px; }
    }


    /* v23.7.428 - Evernote 참고형 깔끔한 상단/첫화면 정리 */
    .sitepass-clean-header {
      align-items:center;
      gap:18px;
      padding:14px 16px;
      margin:0 0 18px;
      border:1px solid rgba(215,223,237,.88);
      border-radius:0 0 22px 22px;
      background:rgba(255,255,255,.97);
      box-shadow:0 10px 30px rgba(23,32,51,.06);
    }
    .sitepass-clean-header .brand.logo-brand {
      flex:0 0 auto;
      min-width:0;
    }
    .sitepass-clean-header .sitepass-logo {
      display:inline-flex;
      align-items:center;
      gap:8px;
      white-space:nowrap;
    }
    .sitepass-clean-header .sitepass-logo-mark {
      width:62px;
      height:62px;
      flex:0 0 62px;
    }
    .sitepass-clean-header .sitepass-logo-word {
      display:inline-block;
      margin:0;
      font-size:50px;
      line-height:.96;
      letter-spacing:-2.3px;
      font-weight:950;
      white-space:nowrap;
      color:#0b357f;
      background:linear-gradient(90deg,#0b357f 0 47%,#20bd66 47% 100%);
      -webkit-background-clip:text;
      background-clip:text;
      -webkit-text-fill-color:transparent;
    }
    .sitepass-clean-header .brand-subtitle { display:none; }
    .sitepass-header-actions {
      flex:1 1 auto;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:8px;
      flex-wrap:nowrap;
      min-width:0;
    }
    .top-account-actions {
      margin-left:auto;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      gap:6px;
      flex-wrap:wrap;
    }
    .top-home-button {
      margin-right:auto;
      min-width:58px;
    }
    /* 담당자 전용 화면에서는 상단 홈/로그아웃 버튼을 숨깁니다. */
    body.manager-view-mode .sitepass-header-actions {
      display:none !important;
    }
    .top-nav-button,
    .top-login-button,
    .top-withdraw-button {
      min-height:36px;
      padding:8px 11px;
      border-radius:999px;
      font-size:13px;
      font-weight:950;
      white-space:nowrap;
      border:1px solid #d7dfed;
    }
    .top-login-button,
    .top-withdraw-button {
      min-height:31px;
      padding:6px 9px;
      font-size:11.5px;
      letter-spacing:-.2px;
    }
    .top-nav-button {
      background:white;
      color:#26334d;
    }
    .top-nav-button:hover {
      background:#f3f7ff;
      border-color:#b9c9f3;
      color:#173f9f;
    }
    .top-login-button {
      background:#172033;
      color:white;
      border-color:#172033;
    }
    .top-login-button:hover { background:#26334d; }
    .top-withdraw-button {
      background:#fff1f0;
      color:var(--danger);
      border-color:#ffccc7;
    }
    .top-withdraw-button:hover { background:#ffe4e1; }
    @media (max-width: 560px) {
      .sitepass-header-actions { width:100%; }
      .top-home-button { min-width:54px; }
      .top-login-button, .top-withdraw-button { min-height:30px; padding:5px 8px; font-size:11px; }
    }
    .home-hero-card {
      padding:28px 22px;
      overflow:hidden;
      background:linear-gradient(135deg,#ffffff 0%,#f8fbff 56%,#eef7ff 100%);
    }
    .hero-eyebrow {
      display:inline-flex;
      align-items:center;
      min-height:32px;
      padding:7px 11px;
      margin-bottom:13px;
      border-radius:999px;
      background:#eaf8f1;
      color:#0f7a4f;
      font-size:13px;
      font-weight:950;
    }
    .home-hero-card h1 {
      font-size:34px;
      line-height:1.16;
      letter-spacing:-1.15px;
      margin-bottom:10px;
      color:#101828;
    }
    .home-hero-card p {
      max-width:610px;
      font-size:15px;
      color:#475467;
    }
    @media (max-width:560px) {
      .sitepass-clean-header {
        flex-direction:column;
        align-items:flex-start;
        gap:10px;
        padding:13px 12px;
        border-radius:0 0 18px 18px;
      }
      .sitepass-clean-header .sitepass-logo { gap:7px; }
      .sitepass-clean-header .sitepass-logo-mark {
        width:54px;
        height:54px;
        flex-basis:54px;
      }
      .sitepass-clean-header .sitepass-logo-word {
        font-size:42px;
        letter-spacing:-1.9px;
      }
      .sitepass-header-actions {
        width:100%;
        justify-content:flex-start;
        gap:6px;
      }
      .top-nav-button,
      .top-login-button {
        min-height:36px;
        padding:8px 10px;
        font-size:12px;
      }
      .home-hero-card { padding:23px 16px; }
      .home-hero-card h1 { font-size:28px; letter-spacing:-.9px; }
    }



    /* v23.7.428 - 자동로그인 제거 / 홈화면 설치 간편로그인 / 결제연장 / 재인증 */
    .auto-login-note {
      max-width:454px;
      margin:12px auto 0;
      padding:12px;
      border:1px solid #cfe0ff;
      border-radius:15px;
      background:#f3f7ff;
      text-align:left;
      color:#18418f;
      font-size:13px;
      line-height:1.5;
      font-weight:850;
    }
    .auto-login-note b { display:block; margin-bottom:4px; color:#173f9f; }
    .install-guide-box {
      margin-top:10px;
      padding:11px 12px;
      border:1px solid #cfe0ff;
      border-radius:15px;
      background:#f8fbff;
    }
    .install-guide-box b { display:block; color:#173f9f; font-size:16px; margin-bottom:5px; }
    .install-guide-title {
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:8px;
      margin-bottom:6px;
      color:#173f9f;
      font-size:16px;
      font-weight:950;
      line-height:1.25;
    }
    .install-guide-desc {
      margin:0;
      padding:0;
      color:#475467;
      font-size:13px;
      line-height:1.42;
      font-weight:850;
      text-align:left;
    }
    .install-guide-desc span {
      display:block;
    }
    .install-guide-desc b {
      display:inline;
      margin:0;
      font-size:inherit;
      color:#173f9f;
    }
    .install-action-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:7px;
      margin:8px 0 6px;
    }
    .install-action-grid button {
      min-height:40px;
      border-radius:12px;
      font-size:13px;
    }
    .install-primary-button {
      background:#2457d6;
      color:#ffffff;
      border:1px solid #2457d6;
    }
    .install-help-button {
      background:#ffffff;
      color:#173f9f;
      border:1px solid #b9c9f3;
    }
    .install-mini-note {
      margin-top:6px;
      padding:8px 9px;
      border-radius:11px;
      background:#eef4ff;
      color:#18418f;
      font-size:12px;
      line-height:1.38;
      font-weight:850;
    }
    .install-expanded-guide {
      margin-top:8px;
      padding:10px;
      border-radius:14px;
      background:#ffffff;
      border:1px solid #cfe0ff;
      color:#26334d;
      font-size:13px;
      line-height:1.55;
      font-weight:850;
    }
    .install-expanded-guide b {
      color:#173f9f;
      margin-bottom:8px;
    }
    .install-expanded-guide .install-mini-note {
      background:#f8fbff;
      border-color:#d7dfed;
      color:#667085;
    }
    .install-guide-box ol {
      margin:8px 0 0 19px;
      padding:0;
      color:#475467;
      font-size:13px;
      line-height:1.55;
      font-weight:800;
    }
    .install-guide-box li + li { margin-top:4px; }
    .security-step-box {
      margin-top:12px;
      padding:12px;
      border:1px solid #ffd591;
      border-radius:15px;
      background:#fff7e6;
      color:#694000;
      font-size:13px;
      line-height:1.5;
      font-weight:850;
    }
    .plan-select-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      margin-top:12px;
    }
    .plan-select-card {
      display:block;
      border:2px solid #d7dfed;
      border-radius:18px;
      background:#fbfcff;
      padding:10px;
      cursor:pointer;
    }
    .plan-select-card input { width:20px; min-height:20px; margin:0 0 8px; accent-color:#2457d6; }
    .plan-select-card:has(input:checked) {
      border-color:#2457d6;
      background:#eef4ff;
      box-shadow:0 8px 20px rgba(36,87,214,.10);
    }
    .plan-select-card strong { display:block; font-size:18px; color:#172033; margin-bottom:5px; }
    .plan-select-card .plan-price { font-size:23px; font-weight:950; color:#173f9f; margin-bottom:5px; }
    .plan-select-card span { display:block; color:#667085; font-size:13px; line-height:1.45; font-weight:800; }
    .payment-easy-box {
      margin-top:12px;
      padding:13px;
      border:1px solid #cfe0ff;
      border-radius:16px;
      background:#f8fbff;
    }
    .payment-easy-box b { display:block; color:#173f9f; margin-bottom:6px; font-size:15px; }
    .payment-easy-box ul { margin:6px 0 0 19px; padding:0; color:#344054; font-size:13px; line-height:1.55; font-weight:850; }
    .payment-easy-box li + li { margin-top:4px; }
    .payment-price-table {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      margin-top:12px;
    }
    .payment-price-card {
      border:2px solid #d7dfed;
      border-radius:18px;
      background:#ffffff;
      padding:13px;
    }
    .payment-price-card.highlight {
      border-color:#2457d6;
      background:#eef4ff;
    }
    .payment-price-card strong { display:block; font-size:17px; color:#172033; margin-bottom:6px; }
    .payment-price-card .pay-line { display:flex; justify-content:space-between; gap:10px; padding:7px 0; border-bottom:1px solid #edf0f5; font-size:14px; font-weight:900; }
    .payment-price-card .pay-line:last-child { border-bottom:0; }
    .payment-price-card .pay-line span:last-child { color:#173f9f; font-weight:950; }
    .pricing-target-list { margin-top:14px; }
    .renew-panel {
      margin:12px 0;
      padding:13px;
      border:1px solid #cfe0ff;
      border-radius:16px;
      background:#f3f7ff;
    }
    .renew-panel b { display:block; color:#18418f; margin-bottom:5px; }
    .renew-panel span { display:block; color:#667085; font-size:13px; line-height:1.45; }
    .renew-actions {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
      margin-top:10px;
    }
    .auto-pay-link {
      display:flex;
      align-items:center;
      justify-content:center;
      min-height:46px;
      border-radius:14px;
      padding:12px 10px;
      font-size:14px;
      font-weight:950;
      text-align:center;
      text-decoration:none;
      line-height:1.25;
    }
    .auto-pay-link.monthly { background:#eef4ff; color:#173f9f; border:1px solid #b9c9f3; }
    .auto-pay-link.annual { background:#2457d6; color:white; border:1px solid #2457d6; }
    .renew-chip {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      margin:8px 0 0;
      padding:6px 9px;
      border-radius:999px;
      background:#fff7e6;
      color:#b86400;
      font-size:12px;
      font-weight:950;
    }
    @media (max-width:560px) {
      .plan-select-grid, .renew-actions { grid-template-columns:1fr; }
    }



    /* v23.7.428 - QR 받은 담당자 화면 + 장비명/번호 공유문 강조 */
    .manager-demo-note {
      margin-top:12px;
      padding:13px;
      border:1px solid #cfe0ff;
      border-radius:16px;
      background:#f3f7ff;
      color:#18418f;
      font-size:13px;
      line-height:1.5;
      font-weight:850;
      text-align:left;
    }
    .manager-demo-note b { display:block; margin-bottom:5px; color:#173f9f; }
    .company-channel-note {
      margin-top:12px;
      padding:15px;
      border:1px solid #fee500;
      border-radius:18px;
      background:linear-gradient(135deg,#fffdf0 0%,#ffffff 72%);
      color:#172033;
      text-align:center;
    }
    .js-company-logo {
      display:flex;
      align-items:center;
      justify-content:center;
      margin-bottom:8px;
    }
    .js-company-logo-image {
      width:min(100%,100px);
      display:block;
      margin:0 auto;
      border-radius:10px;
    }
    .company-channel-note p {
      margin:7px 0 10px;
      font-size:13px;
      color:#344054;
      line-height:1.45;
    }
    .kakao-channel-button {
      width:100%;
      background:#fee500;
      color:#191919;
      border:1px solid #f2d600;
      border-radius:14px;
      font-weight:950;
    }
    .kakao-channel-button:hover { background:#ffe812; }
    .share-message-box {
      margin:14px 0;
      padding:14px;
      border:2px solid #b9c9f3;
      border-radius:18px;
      background:linear-gradient(135deg,#f8fbff 0%,#ffffff 70%);
    }
    .share-message-box b { display:block; color:#173f9f; font-size:16px; margin-bottom:6px; }
    .share-main-title {
      display:flex;
      align-items:center;
      justify-content:center;
      min-height:44px;
      padding:10px 12px;
      margin:8px 0 10px;
      border-radius:15px;
      background:#172033;
      color:#ffffff;
      font-size:18px;
      font-weight:950;
      letter-spacing:-.2px;
      text-align:center;
      word-break:keep-all;
    }
    .share-copy-preview {
      margin-top:10px;
      padding:11px 12px;
      border:1px solid #d7dfed;
      border-radius:14px;
      background:#ffffff;
      color:#344054;
      font-size:13px;
      line-height:1.55;
      white-space:pre-line;
      word-break:break-all;
    }
    .manager-received-hero {
      margin:0 0 14px;
      padding:16px;
      border-radius:18px;
      background:linear-gradient(135deg,#172033 0%,#173f9f 100%);
      color:#ffffff;
      box-shadow:0 10px 24px rgba(23,32,51,.16);
    }
    .manager-received-hero .eyebrow {
      display:inline-flex;
      align-items:center;
      min-height:28px;
      padding:6px 9px;
      border-radius:999px;
      background:rgba(255,255,255,.14);
      color:#dbeafe;
      font-size:12px;
      font-weight:950;
      margin-bottom:8px;
    }
    .manager-received-hero h3 {
      margin:0 0 7px;
      color:#ffffff;
      font-size:25px;
      line-height:1.22;
      letter-spacing:-.7px;
    }
    .manager-received-hero p {
      margin:0;
      color:#e5edff;
      font-size:14px;
      line-height:1.5;
    }
    .manager-status-grid {
      display:grid;
      grid-template-columns:1fr 1fr 1fr;
      gap:8px;
      margin:12px 0 0;
    }
    .manager-status-grid div {
      padding:9px;
      border-radius:13px;
      background:rgba(255,255,255,.12);
      border:1px solid rgba(255,255,255,.18);
      text-align:center;
      font-size:12px;
      font-weight:900;
      color:#eaf2ff;
    }
    @media (max-width:560px) {
      .manager-status-grid { grid-template-columns:1fr; }
      .share-main-title { font-size:16px; }
      .manager-received-hero h3 { font-size:22px; }
    }

  
    .admin-member-toolbar {
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
      margin:12px 0;
    }
    .admin-member-toolbar input {
      min-height:46px;
      border-radius:14px;
      font-size:15px;
    }
    .admin-folder-tabs {
      display:grid;
      grid-template-columns:repeat(5, minmax(0, 1fr));
      gap:7px;
      overflow:visible;
      padding:2px 0 8px;
      margin-top:8px;
    }
    .admin-folder-tabs button {
      width:100%;
      min-height:38px;
      padding:7px 6px;
      font-size:11px;
      border-radius:999px;
      border:1px solid #cfe0ff;
      background:#fff;
      color:#18418f;
      font-weight:950;
      white-space:nowrap;
      letter-spacing:-.4px;
    }
    .admin-folder-tabs button.active {
      background:#172033;
      color:#fff;
      border-color:#172033;
    }
    .admin-member-row {
      border:1px solid #d6e1f5;
      background:#fbfdff;
      border-radius:18px;
      padding:12px;
      margin-top:10px;
    }
    .admin-member-summary {
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
      margin-top:9px;
      color:#475467;
      font-size:13px;
      line-height:1.45;
    }
    .admin-member-summary span {
      display:flex;
      justify-content:space-between;
      gap:10px;
      padding:8px 10px;
      border-radius:12px;
      background:#ffffff;
      border:1px solid #edf2fb;
    }
    .admin-member-summary b {
      color:#172033;
      white-space:nowrap;
    }
    .admin-member-detail {
      margin-top:10px;
      padding:12px;
      border-radius:16px;
      background:#ffffff;
      border:1px solid #e6edf8;
    }
    .admin-member-row > .actions,
    .admin-member-detail > .actions {
      grid-template-columns:repeat(2, minmax(0, 180px));
      justify-content:start;
      gap:8px;
    }
    .admin-member-row > .actions button,
    .admin-member-detail > .actions button {
      min-height:40px;
      padding:8px 10px;
      font-size:13px;
      border-radius:12px;
    }
    .admin-mini-grid {
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:8px;
      margin:10px 0;
    }
    .admin-mini-grid .line {
      margin:0;
      min-height:42px;
    }
    .admin-signup-method-board {
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
      margin:10px 0 12px;
    }
    .admin-signup-method-card {
      border:1px solid #d7e4fb;
      background:#f8fbff;
      border-radius:16px;
      padding:12px;
      min-height:76px;
      display:flex;
      flex-direction:column;
      justify-content:center;
      gap:4px;
    }
    .admin-signup-method-card b {
      color:#172033;
      font-size:13px;
      letter-spacing:-.3px;
    }
    .admin-signup-method-card strong {
      color:#0f2f78;
      font-size:24px;
      line-height:1.05;
      font-weight:950;
    }
    .admin-signup-method-card span {
      color:#667085;
      font-size:12px;
      line-height:1.35;
    }
    .admin-pager {
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:8px;
      margin-top:12px;
      flex-wrap:wrap;
    }
    @media (min-width:720px) {
      .admin-member-toolbar { grid-template-columns:1.2fr .7fr .6fr; align-items:center; }
      .admin-member-summary { grid-template-columns:repeat(2, minmax(0, 1fr)); }
      .admin-mini-grid { grid-template-columns:repeat(4, minmax(0, 1fr)); }
      .admin-signup-method-board { grid-template-columns:repeat(4, minmax(0, 1fr)); }
    }
    @media (max-width:420px) {
      .admin-member-row > .actions,
      .admin-member-detail > .actions {
        grid-template-columns:1fr 1fr;
      }
    }

  
    .admin-summary-rows {
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
      margin:10px 0;
    }
    .admin-summary-row {
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:8px;
      align-items:stretch;
    }
    .admin-summary-row .line {
      margin:0;
      min-height:42px;
    }
    .admin-payment-window {
      margin-top:12px;
      padding:12px;
      border:1px solid #cfe0ff;
      border-radius:16px;
      background:#f8fbff;
    }
    .admin-payment-window h4 {
      margin:0 0 8px;
      font-size:15px;
      color:#18418f;
    }
    .admin-payment-current {
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
      margin:8px 0 10px;
    }
    .admin-payment-current span {
      display:flex;
      justify-content:space-between;
      gap:10px;
      padding:8px 10px;
      border-radius:12px;
      background:#ffffff;
      border:1px solid #edf2fb;
      font-size:13px;
    }
    .admin-payment-current b {
      color:#172033;
      white-space:nowrap;
    }
    .admin-payment-current button {
      width:100%;
      min-height:39px;
      padding:8px 10px;
      border-radius:12px;
      font-size:13px;
    }
    @media (min-width:720px) {
      .admin-summary-row { grid-template-columns:repeat(4, minmax(0, 1fr)); }
      .admin-payment-current { grid-template-columns:repeat(3, minmax(0, 1fr)); }
    }

      @media (max-width:420px) {
      .admin-folder-tabs { gap:5px; }
      .admin-folder-tabs button {
        min-height:36px;
        padding:6px 3px;
        font-size:10px;
        letter-spacing:-.7px;
      }
    }

  
    .admin-search-actions {
      margin:0;
      align-items:stretch;
    }
    .admin-search-actions button {
      flex:1 1 0;
      min-height:46px;
    }
    .admin-quick-line {
      width:100%;
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:10px;
      padding:11px 12px;
      border-radius:14px;
      border:1px solid #d6e1f5;
      background:#ffffff;
      color:#26334d;
      font-size:14px;
      font-weight:900;
      min-height:auto;
      box-shadow:none;
    }
    .admin-quick-line:hover {
      background:#f7faff;
      border-color:#b9c9f3;
    }
    .admin-quick-line b {
      color:#26334d;
      text-align:left;
    }
    .admin-quick-line span {
      color:#18418f;
      text-align:right;
      word-break:break-all;
    }
    .admin-filter-note {
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:8px;
      flex-wrap:wrap;
    }
    .inline-mini-button {
      min-height:34px;
      padding:6px 10px;
      font-size:12px;
      border-radius:10px;
    }

  
    .admin-payment-section {
      padding:10px;
      border-radius:14px;
      background:#ffffff;
      border:1px solid #e6edf8;
      margin-top:9px;
    }
    .admin-payment-section-title {
      display:block;
      font-size:13px;
      font-weight:950;
      color:#18418f;
      margin-bottom:7px;
    }
    .admin-payment-input-grid {
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
      margin-bottom:8px;
    }
    .admin-payment-input-grid input {
      min-height:44px;
      border-radius:13px;
      font-size:14px;
    }
    .admin-login-time {
      color:#18418f;
      font-weight:900;
    }
    @media (min-width:720px) {
      .admin-payment-input-grid { grid-template-columns:1fr 1.4fr; }
    }

  
    .admin-payment-status-board {
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
      margin:12px 0;
    }
    .admin-payment-status-card {
      padding:12px;
      border-radius:16px;
      background:#ffffff;
      border:1px solid #e6edf8;
    }
    .admin-payment-status-card strong {
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:8px;
      color:#172033;
      font-size:14px;
    }
    .admin-payment-status-card .small {
      margin-top:5px;
      line-height:1.45;
    }
    .admin-payment-status-card .actions {
      margin-top:8px;
    }
    @media (min-width:720px) {
      .admin-payment-status-board { grid-template-columns:repeat(3, minmax(0, 1fr)); }
    }



    /* v23.7.428 - 날짜칸 깜박임 완전 제거: 보이는 칸은 읽기전용 표시, 실제 달력 input은 숨김 */
    .clean-date-picker {
      position:relative;
      display:block;
      width:100%;
    }
    .clean-date-display {
      cursor:pointer;
      caret-color:transparent !important;
      -webkit-user-select:none;
      user-select:none;
      -webkit-user-select:none;
      background:#ffffff;
    }
    .clean-date-display:focus {
      caret-color:transparent !important;
    }
    .clean-date-display::selection {
      background:transparent;
    }
    .clean-date-real {
      position:absolute;
      left:12px;
      bottom:8px;
      width:1px;
      height:1px;
      min-height:1px;
      padding:0;
      border:0;
      opacity:0;
      pointer-events:none;
      caret-color:transparent;
    }
    input[type="date"] {
      caret-color:transparent;
    }


    /* v23.7.428 - 홈화면 앱 전용 간편번호/지문 로그인 */
    .quick-login-panel,
    .quick-auth-settings-box {
      max-width:454px;
      margin:14px auto 0;
      padding:13px;
      border:1px solid #cfe0ff;
      border-radius:16px;
      background:#f8fbff;
      text-align:left;
    }
    .quick-auth-settings-box {
      max-width:none;
      margin-top:14px;
      background:#f3f7ff;
    }
    .quick-login-head,
    .quick-auth-head {
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:10px;
      margin-bottom:10px;
    }
    .quick-login-head b,
    .quick-auth-head b {
      display:block;
      color:#173f9f;
      font-size:16px;
      margin-bottom:4px;
    }
    .quick-login-head span,
    .quick-auth-head span,
    .quick-auth-settings-box p {
      display:block;
      margin:0;
      color:#667085;
      font-size:13px;
      line-height:1.45;
    }
    .quick-mode-badge {
      flex:0 0 auto;
      padding:6px 8px;
      border-radius:999px;
      background:#eaf8f1;
      color:#0f7a4f;
      font-size:11px;
      font-weight:950;
      white-space:nowrap;
    }
    .quick-login-grid,
    .quick-auth-action-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
      margin-top:10px;
    }
    .quick-auth-action-grid.three {
      grid-template-columns:1fr 1fr 1fr;
    }
    .quick-login-grid button,
    .quick-auth-action-grid button {
      min-height:44px;
      border-radius:13px;
      padding:10px;
      font-size:14px;
      font-weight:950;
    }
    .quick-pin-panel {
      margin-top:10px;
      padding:11px;
      border:1px solid #d7dfed;
      border-radius:14px;
      background:white;
    }
    .quick-pin-panel input {
      min-height:46px;
      text-align:center;
      letter-spacing:5px;
      font-size:20px;
      font-weight:950;
    }
    .quick-pin-panel .actions {
      margin-top:8px;
      grid-template-columns:1fr 1fr;
    }
    .quick-login-status,
    .quick-auth-status {
      margin-top:10px;
      padding:10px 11px;
      border-radius:13px;
      background:#eef4ff;
      color:#18418f;
      font-size:12px;
      line-height:1.45;
      font-weight:850;
      white-space:pre-line;
    }
    .quick-login-status.warn,
    .quick-auth-status.warn {
      background:#fff7e6;
      color:#694000;
      border:1px solid #ffd591;
    }
    .quick-login-status.ok,
    .quick-auth-status.ok {
      background:#eaf8f1;
      color:#0f7a4f;
      border:1px solid #a8e6c8;
    }
    .quick-browser-note {
      max-width:454px;
      margin:12px auto 0;
      padding:10px 12px;
      border:1px dashed #d7dfed;
      border-radius:14px;
      background:#ffffff;
      color:#667085;
      font-size:12px;
      line-height:1.45;
      text-align:left;
    }


    /* v23.7.428 - 홈화면 앱으로 실행하면 일반 로그인 전에 간편번호/지문을 먼저 표시 */
    body.quick-first-mode #signupScreen .login-auth-title::after {
      content:'홈화면 앱 간편로그인';
      display:block;
      margin-top:6px;
      color:#0f7a4f;
      font-size:13px;
      font-weight:950;
      letter-spacing:0;
    }
    body.quick-first-mode #signupScreen .login-auth-subtitle {
      display:none;
    }
    body.quick-first-mode #signupScreen .normal-login-area {
      display:none !important;
    }
    body.quick-first-mode.show-normal-login #signupScreen .normal-login-area {
      display:grid !important;
    }
    body.quick-first-mode.show-normal-login #signupScreen .login-help-row,
    body.quick-first-mode.show-normal-login #signupScreen .login-divider,
    body.quick-first-mode.show-normal-login #signupScreen .login-link-row,
    body.quick-first-mode.show-normal-login #signupScreen .company-channel-note {
      display:block !important;
    }
    body.quick-first-mode #quickLoginPanel {
      display:block !important;
      margin-top:12px;
      border:2px solid #a8e6c8;
      background:#f3fff8;
      box-shadow:0 12px 28px rgba(15,122,79,.08);
    }
    .quick-fallback-button {
      width:100%;
      margin-top:10px;
      min-height:40px;
      border-radius:12px;
      background:#ffffff;
      color:#173f9f;
      border:1px solid #b9c9f3;
      font-size:13px;
      font-weight:950;
    }
    .quick-login-main-buttons button {
      min-height:52px;
      font-size:15px;
    }



    /* v23.7.428 - 홈화면 앱 첫 로그인 후 간편로그인 즉시 등록창 */
    .quick-setup-overlay {
      position:fixed;
      inset:0;
      z-index:1400;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:16px;
      background:rgba(15,23,42,.76);
    }
    .quick-setup-overlay.hidden { display:none !important; }
    .quick-setup-sheet {
      width:min(520px,100%);
      max-height:92vh;
      overflow:auto;
      border-radius:22px;
      background:#ffffff;
      border:1px solid #d7dfed;
      box-shadow:0 24px 70px rgba(0,0,0,.32);
      padding:18px;
    }
    .quick-setup-head {
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:10px;
      margin-bottom:12px;
    }
    .quick-setup-head b {
      display:block;
      font-size:20px;
      color:#172033;
      letter-spacing:-.4px;
      margin-bottom:5px;
    }
    .quick-setup-head span {
      display:block;
      color:#667085;
      font-size:13px;
      line-height:1.5;
    }
    .quick-setup-step {
      border:1px solid #d7dfed;
      border-radius:17px;
      background:#fbfcff;
      padding:13px;
      margin-top:10px;
    }
    .quick-setup-step.hidden { display:none !important; }
    .quick-setup-step-title {
      display:flex;
      align-items:center;
      gap:8px;
      margin-bottom:8px;
      color:#26334d;
      font-weight:950;
    }
    .quick-setup-step-title em {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:26px;
      height:26px;
      border-radius:999px;
      background:#2457d6;
      color:#ffffff;
      font-style:normal;
      font-size:13px;
      font-weight:950;
      flex:0 0 26px;
    }
    .quick-setup-inputs {
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
      margin-top:10px;
    }
    .quick-setup-inputs input {
      text-align:center;
      letter-spacing:6px;
      font-size:22px;
      font-weight:950;
    }
    .quick-setup-actions {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
      margin-top:12px;
    }
    .quick-setup-status {
      margin-top:11px;
      padding:10px 12px;
      border-radius:13px;
      background:#f3f7ff;
      color:#18418f;
      font-size:13px;
      line-height:1.5;
      font-weight:850;
      white-space:pre-line;
    }
    .quick-setup-status.ok { background:#eaf8f1; color:#0f7a4f; }
    .quick-setup-status.warn { background:#fff7e6; color:#694000; border:1px solid #ffd591; }

    .my-account-status {
      margin-top:10px;
      padding:10px 12px;
      border-radius:13px;
      background:#f8fbff;
      border:1px solid #dbe6ff;
      color:#18418f;
      font-size:13px;
      line-height:1.5;
      font-weight:800;
      white-space:pre-line;
    }
    .my-account-status.ok { background:#eaf8f1; border-color:#bee9d1; color:#0f7a4f; }
    .my-account-status.warn { background:#fff7e6; border-color:#ffd591; color:#694000; }

    @media (max-width:560px) {
      .quick-setup-sheet { padding:16px; border-radius:20px; }
      .quick-setup-actions { grid-template-columns:1fr; }
    }

    @media (max-width:560px) {
      .quick-login-grid,
      .quick-auth-action-grid,
      .quick-auth-action-grid.three,
      .quick-pin-panel .actions { grid-template-columns:1fr; }
      .quick-login-head,
      .quick-auth-head { flex-direction:column; }
      .quick-mode-badge { align-self:flex-start; }
    }


/* v23.7.428 결제 본인확인 화면 보정 */
.pending-pay-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.pending-pay-head b{font-size:16px}
.pending-pay-head span{font-size:13px;color:#64748b;font-weight:800}
.pay-pending-summary{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;background:#fff;border:1px solid #dbeafe;border-radius:14px;margin:8px 0}
.pay-pending-summary b{font-size:16px}.pay-pending-summary span{color:#475569;font-weight:800}
.payment-owner-verify-box{margin-top:12px;padding:12px;border:1px solid #d7e3f7;border-radius:16px;background:#f8fbff}
.payment-owner-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.payment-owner-title b{font-size:16px}.payment-owner-title span{font-size:13px;color:#2563eb;font-weight:900}
.payment-method-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 12px}
.payment-method-buttons button{border:1px solid #cbd5e1;background:#fff;border-radius:12px;padding:11px 8px;font-weight:950;color:#334155;cursor:pointer}
.payment-method-buttons button.active{background:#0f172a;color:#fff;border-color:#0f172a;box-shadow:0 8px 18px rgba(15,23,42,.16)}
#paymentOwnerVerifyStatus.ok{background:#ecfdf5;border-color:#bbf7d0;color:#166534}
#paymentOwnerVerifyStatus.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
@media(max-width:520px){.payment-method-buttons{grid-template-columns:1fr}.person-auth-grid.three{grid-template-columns:1fr}}

/* v23.7.428 결제화면 보정 */
.payment-owner-verify-box .person-auth-grid select,
.payment-owner-verify-box .person-auth-grid input,
.payment-owner-verify-box > input,
#paymentOwnerPhoneBox > input { width:100%; box-sizing:border-box; }
#paymentOwnerCardBox,
#paymentOwnerPhoneBox,
#paymentOwnerAccountBox { margin-top:10px; }
#paymentOwnerCardBox .auth-mini-note { margin-top:8px; }
.payment-method-buttons button.active { transform:translateY(-1px); }

/* v23.7.428 SENS 인증/신분증 하단 검증정보 */
.sp351-id-extra-strip{border-top:1px dashed #cbd5e1;margin-top:8px;padding:8px 10px;background:#f8fafc;border-radius:10px;text-align:left;font-size:12px;line-height:1.45;color:#172033}.sp351-id-extra-strip b{color:#475569}.sp351-id-extra-strip .small{font-size:11px;color:#b86400;margin-top:4px}.sp351-locked{background:#f8fafc!important;color:#475569!important}

/* v23.7.428 기사/인부 발송 전 필수 동의 체크 */
.person-auth-consent-check{display:block;margin:8px 0;padding:10px 12px;border:1px solid #dbe3ef;border-radius:12px;background:#f8fafc;font-size:12px;line-height:1.5;color:#172033}
.person-auth-consent-check input{margin-right:6px;vertical-align:middle}
.person-auth-consent-check a{margin-left:6px;text-decoration:underline;font-weight:700}

/* v23.7.428 - 첫 화면 로고 자연스럽게 통합 */
#signupScreen .sitepass-first-card {
  max-width: 640px;
  margin: 0 auto;
  padding: 30px 22px 28px;
  border-radius: 30px;
  background: #ffffff;
  border: 1px solid rgba(215,223,237,.9);
  box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
}
.sitepass-first-landing {
  text-align: center;
  padding: 0;
}
.sitepass-first-hero img {
  width: min(100%, 520px);
  max-height: 315px;
  object-fit: contain;
  display: block;
  margin: -4px auto 8px;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  filter: drop-shadow(0 16px 20px rgba(15,23,42,.06));
}
.sitepass-first-title {
  margin: 14px 0 10px;
  font-size: clamp(30px, 6.8vw, 42px);
  line-height: 1.2;
  letter-spacing: -1.2px;
  font-weight: 950;
  color: #111827;
}
.sitepass-first-subtitle {
  margin: 0 auto 26px;
  color: #222b3a;
  font-size: clamp(16px, 4.1vw, 20px);
  line-height: 1.55;
  letter-spacing: -.35px;
}
.sitepass-first-login-form {
  width: min(100%, 520px);
  margin: 0 auto 18px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 132px;
  gap: 14px;
  align-items: stretch;
}
.sitepass-first-login-left {
  display: grid;
  gap: 12px;
}
.sitepass-first-field {
  min-height: 66px;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 0 18px;
  border-radius: 18px;
  background: #ffffff;
  border: 1px solid #e0e5ee;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 8px 18px rgba(15,23,42,.045);
}
.sitepass-first-field-icon {
  width: 36px;
  flex: 0 0 36px;
  text-align: center;
  font-size: 30px;
  line-height: 1;
  color: #111827;
  font-weight: 900;
}

.sitepass-first-field-icon svg {
  width: 30px;
  height: 30px;
  display: block;
  margin: 0 auto;
  stroke: currentColor;
  stroke-width: 2.3;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sitepass-first-lock-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.sitepass-first-field input {
  min-width: 0;
  width: 100%;
  height: 48px;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: clamp(18px, 4.2vw, 24px);
  font-weight: 700;
  color: #111827;
  letter-spacing: -.3px;
}
.sitepass-first-field input::placeholder {
  color: #64748b;
  opacity: .9;
}
.sitepass-first-eye {
  border: 0;
  background: transparent;
  color: #111827;
  font-size: 28px;
  font-weight: 900;
  padding: 0;
  width: 38px;
  height: 38px;
  line-height: 1;
  box-shadow: none;
}
.sitepass-first-login {
  min-height: 144px;
  border-radius: 22px;
  background: linear-gradient(180deg, #ffc928 0%, #ffb800 100%);
  color: #111827;
  font-size: clamp(23px, 5vw, 31px);
  font-weight: 950;
  letter-spacing: -.6px;
  box-shadow: 0 14px 22px rgba(245, 158, 11, .24);
  border: 1px solid #f2ad00;
}
.sitepass-first-link-row {
  width: min(100%, 520px);
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  color: #111827;
  font-size: clamp(16px, 3.8vw, 20px);
  font-weight: 800;
  letter-spacing: -.3px;
}
.sitepass-first-link-row button {
  border: 0;
  background: transparent;
  padding: 4px 0;
  color: inherit;
  font: inherit;
  box-shadow: none;
}
.sitepass-first-install {
  width: min(100%, 420px);
  min-height: 52px;
  margin: 0 auto;
  border-radius: 15px;
  background: #ffffff;
  color: #111827;
  border: 1px solid #d0d5dd;
  box-shadow: 0 6px 14px rgba(15,23,42,.045);
  font-size: clamp(16px, 4vw, 20px) !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.sitepass-first-install span {
  font-size: 24px;
  line-height: 1;
  font-weight: 950;
}
.sitepass-first-company {
  width: 100%;
  margin: 26px auto 0;
  padding: 0 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  color: #3f4754;
  font-size: 13px;
  line-height: 1.35;
  white-space: nowrap;
}
.sitepass-first-company img {
  width: 132px;
  max-width: 34%;
  height: auto;
  border-radius: 12px;
  flex: 0 0 auto;
}
.sitepass-company-divider {
  width: 1px;
  height: 28px;
  background: #d0d5dd;
  flex: 0 0 auto;
}
#signupScreen .login-auth-shell.hidden { display: none !important; }
#signupScreen .login-divider.normal-login-area,
#signupScreen .login-social-grid.normal-login-area,
#signupScreen .company-channel-note.normal-login-area,
#signupScreen .login-link-row.normal-login-area { display: none !important; }
#signupScreen .login-auth-shell {
  padding-top: 0;
}
#signupScreen .login-continue-button {
  background: linear-gradient(180deg, #ffc928 0%, #ffb800 100%);
  color: #111827;
  border: 1px solid #f2ad00;
  box-shadow: 0 12px 22px rgba(245,158,11,.20);
}
#signupScreen .login-auth-form input {
  background: #ffffff;
  border-color: #dfe5ef;
  box-shadow: 0 6px 16px rgba(15,23,42,.04);
}
@media (max-width: 620px) {
  #signupScreen .sitepass-first-card { padding: 22px 14px 20px; border-radius: 24px; }
  .sitepass-first-hero img { max-height: 250px; margin-bottom: 6px; }
  .sitepass-first-title { font-size: 30px; }
  .sitepass-first-subtitle { font-size: 16px; margin-bottom: 22px; }
  .sitepass-first-login-form { grid-template-columns: minmax(0, 1fr) 104px; gap: 10px; }
  .sitepass-first-login { min-height: 132px; border-radius: 18px; font-size: 24px; }
  .sitepass-first-field { min-height: 60px; border-radius: 16px; padding: 0 12px; gap: 10px; }
  .sitepass-first-field-icon { width: 30px; flex-basis: 30px; font-size: 24px; }
  .sitepass-first-field input { font-size: 19px; }
  .sitepass-first-eye { font-size: 24px; width: 30px; }
  .sitepass-first-link-row { gap: 11px; font-size: 16px; }
  .sitepass-first-company {
    flex-wrap: wrap;
    gap: 8px 12px;
    font-size: 12px;
    white-space: normal;
  }
  .sitepass-first-company img { width: 128px; max-width: 56%; }
  .sitepass-company-divider { display: none; }
}
@media (max-width: 390px) {
  .sitepass-first-title { font-size: 27px; }
  .sitepass-first-hero img { max-height: 220px; }
  .sitepass-first-login-form { grid-template-columns: minmax(0, 1fr) 92px; }
  .sitepass-first-login { font-size: 22px; }
  .sitepass-first-link-row { font-size: 14px; gap: 8px; }
}
body.sitepass-first-screen-active .topbar {
  display: none !important;
}
body.sitepass-first-screen-active .app {
  max-width: 980px;
  padding-top: 10px;
}

/* v23.7.428 first-screen cleanup */
#signupScreen .auth-start-grid.single-signup-choice,
#signupScreen .auth-mini-note,
#signupScreen .notice.blue-note { display:none !important; }


/* v23.7.428 first-screen full package: hero blend + no ID heart */
#signupScreen .sitepass-first-hero,
#signupScreen .sitepass-first-hero::before,
#signupScreen .sitepass-first-hero::after{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  outline:0!important;
}
#signupScreen .sitepass-first-hero img{
  width:min(100%,560px)!important;
  max-height:340px!important;
  display:block!important;
  margin:0 auto 10px!important;
  object-fit:contain!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  outline:0!important;
  mix-blend-mode:normal!important;
  filter:none!important;
}
#signupScreen .sitepass-first-login-left>.sitepass-first-field:first-child{
  padding-left:0!important;
  gap:0!important;
}
#signupScreen #sitepassFirstLoginIdentifier{
  padding-left:18px!important;
}
#signupScreen .auth-start-grid.single-signup-choice,
#signupScreen .auth-mini-note,
#signupScreen .notice.blue-note{
  display:none!important;
}
@media(max-width:768px){
  #signupScreen .sitepass-first-hero img{
    width:min(100%,500px)!important;
    max-height:300px!important;
  }
}

/* v23.7.428 - first screen: title removed, subtitle changed, compact login, no password icons */
#signupScreen .sitepass-first-title{display:none!important;}
#signupScreen .sitepass-first-subtitle{font-size:clamp(18px,3vw,21px)!important;line-height:1.45!important;margin:2px auto 22px!important;letter-spacing:-.4px!important;}
#signupScreen .sitepass-first-card{padding-top:16px!important;padding-bottom:16px!important;}
#signupScreen .sitepass-first-field{min-height:60px!important;height:60px!important;border-radius:17px!important;padding:0 18px!important;gap:0!important;}
#signupScreen .sitepass-first-field input{height:58px!important;min-height:58px!important;font-size:24px!important;}
#signupScreen #sitepassFirstLoginPassword{padding-left:18px!important;padding-right:18px!important;}
#signupScreen .sitepass-first-lock-icon,#signupScreen .sitepass-first-eye{display:none!important;width:0!important;min-width:0!important;height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;pointer-events:none!important;}
#signupScreen .sitepass-first-login{min-height:132px!important;height:132px!important;border-radius:20px!important;font-size:30px!important;}
#signupScreen .sitepass-first-login-form{gap:14px!important;margin-bottom:14px!important;}
#signupScreen .sitepass-first-link-row{margin-bottom:12px!important;}
body.sitepass-first-screen-active{overflow-x:hidden!important;}
body.sitepass-first-screen-active .app{min-height:100svh!important;padding-top:8px!important;padding-bottom:8px!important;}
@media(max-width:620px){#signupScreen .sitepass-first-card{padding-top:14px!important;padding-bottom:14px!important;}#signupScreen .sitepass-first-hero img{max-height:240px!important;margin-bottom:4px!important;}#signupScreen .sitepass-first-subtitle{font-size:17px!important;margin-bottom:18px!important;}#signupScreen .sitepass-first-field{min-height:56px!important;height:56px!important;padding:0 14px!important;}#signupScreen .sitepass-first-field input{height:54px!important;min-height:54px!important;font-size:21px!important;}#signupScreen .sitepass-first-login{min-height:122px!important;height:122px!important;font-size:25px!important;}}




/* v23.7.428 - subtitle font polish, input alignment, remember ID checkbox */
#signupScreen .sitepass-first-subtitle {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  font-family: "Pretendard", "SUIT", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: clamp(19px, 3.2vw, 23px) !important;
  line-height: 1.32 !important;
  font-weight: 850 !important;
  letter-spacing: -0.65px !important;
  color: #172033 !important;
  margin: 0 auto 22px !important;
  text-align: center !important;
}
#signupScreen .sitepass-first-subtitle span {
  display: block !important;
}
#signupScreen .sitepass-first-login-left {
  gap: 10px !important;
  align-content: start !important;
}
#signupScreen .sitepass-first-field,
#signupScreen .sitepass-first-login-left > .sitepass-first-field:first-child {
  padding: 0 !important;
  gap: 0 !important;
  min-height: 58px !important;
  height: 58px !important;
  box-sizing: border-box !important;
}
#signupScreen .sitepass-first-field input,
#signupScreen #sitepassFirstLoginIdentifier,
#signupScreen #sitepassFirstLoginPassword {
  box-sizing: border-box !important;
  height: 56px !important;
  min-height: 56px !important;
  padding: 0 18px !important;
  margin: 0 !important;
  font-size: 23px !important;
  line-height: 1 !important;
  font-weight: 750 !important;
}
#signupScreen .sitepass-first-remember-id {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  min-height: 24px !important;
  padding: 0 2px 0 4px !important;
  margin: -1px 0 0 0 !important;
  font-family: "Pretendard", "SUIT", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 15px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  color: #334155 !important;
  cursor: pointer !important;
  user-select: none !important;
}
#signupScreen .sitepass-first-remember-id input {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  border-radius: 5px !important;
  border: 1.8px solid #cbd5e1 !important;
  background: #fff !important;
  display: inline-grid !important;
  place-content: center !important;
  margin: 0 !important;
  box-shadow: 0 3px 8px rgba(15,23,42,.05) !important;
}
#signupScreen .sitepass-first-remember-id input::before {
  content: "" !important;
  width: 9px !important;
  height: 9px !important;
  border-radius: 3px !important;
  transform: scale(0) !important;
  transition: transform .12s ease !important;
  background: #ffb800 !important;
}
#signupScreen .sitepass-first-remember-id input:checked {
  border-color: #ffb800 !important;
  background: #fff9df !important;
}
#signupScreen .sitepass-first-remember-id input:checked::before {
  transform: scale(1) !important;
}
#signupScreen .sitepass-first-login {
  min-height: 150px !important;
  height: 150px !important;
  align-self: start !important;
}
@media (max-width: 620px) {
  #signupScreen .sitepass-first-subtitle {
font-size: 18px !important;
line-height: 1.34 !important;
margin-bottom: 18px !important;
  }
  #signupScreen .sitepass-first-field,
  #signupScreen .sitepass-first-login-left > .sitepass-first-field:first-child {
min-height: 54px !important;
height: 54px !important;
  }
  #signupScreen .sitepass-first-field input,
  #signupScreen #sitepassFirstLoginIdentifier,
  #signupScreen #sitepassFirstLoginPassword {
height: 52px !important;
min-height: 52px !important;
padding: 0 15px !important;
font-size: 21px !important;
  }
  #signupScreen .sitepass-first-remember-id {
font-size: 14px !important;
min-height: 22px !important;
  }
  #signupScreen .sitepass-first-login {
min-height: 140px !important;
height: 140px !important;
font-size: 25px !important;
  }
}


/* v23.7.428 - 자동 로그인 체크박스: 작게, V 체크표시, 문구 앞줄 맞춤 */
#signupScreen .sitepass-first-subtitle {
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  width: max-content !important;
  max-width: calc(100% - 32px) !important;
  margin: 0 auto 22px !important;
  text-align: left !important;
  font-family: "Pretendard", "SUIT", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: clamp(19px, 3.2vw, 23px) !important;
  line-height: 1.34 !important;
  font-weight: 900 !important;
  letter-spacing: -0.7px !important;
  color: #111827 !important;
    }
#signupScreen .sitepass-first-subtitle span {
  display: block !important;
  width: 100% !important;
  text-align: left !important;
    }
#signupScreen .sitepass-first-auto-login,
#signupScreen .sitepass-first-remember-id {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 5px !important;
  min-height: 18px !important;
  padding: 0 2px 0 3px !important;
  margin: -2px 0 0 0 !important;
  font-family: "Pretendard", "SUIT", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 13.5px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  color: #334155 !important;
  cursor: pointer !important;
  user-select: none !important;
    }
#signupScreen .sitepass-first-auto-login input {
  position: absolute !important;
  opacity: 0 !important;
  width: 1px !important;
  height: 1px !important;
  min-width: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none !important;
    }
#signupScreen .sitepass-first-checkmark {
  width: 12px !important;
  height: 12px !important;
  min-width: 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  border: 1.4px solid #cbd5e1 !important;
  border-radius: 3px !important;
  background: #ffffff !important;
  color: transparent !important;
  font-size: 8px !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  box-shadow: none !important;
  transform: translateY(0) !important;
    }
#signupScreen .sitepass-first-auto-login input:checked + .sitepass-first-checkmark {
  border-color: #ffb800 !important;
  background: #fff4bf !important;
  color: #111827 !important;
    }
#signupScreen .sitepass-first-auto-login input:checked + .sitepass-first-checkmark::after {
  content: "V" !important;
  display: block !important;
  font-size: 8.5px !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  transform: translateY(-0.2px) !important;
    }
/* 기존 아이디 저장 input이 캐시에 남아도 작게 보이도록 보조 */
#signupScreen .sitepass-first-remember-id input {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 12px !important;
  height: 12px !important;
  min-width: 12px !important;
  border-radius: 3px !important;
  border: 1.4px solid #cbd5e1 !important;
  background: #fff !important;
  display: inline-grid !important;
  place-content: center !important;
  margin: 0 !important;
  box-shadow: none !important;
    }
#signupScreen .sitepass-first-remember-id input::before {
  content: "V" !important;
  width: auto !important;
  height: auto !important;
  background: transparent !important;
  color: #111827 !important;
  font-size: 8.5px !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  transform: scale(0) !important;
    }
#signupScreen .sitepass-first-remember-id input:checked::before {
  transform: scale(1) !important;
    }
@media (max-width: 620px) {
  #signupScreen .sitepass-first-subtitle {
    font-size: 18px !important;
    line-height: 1.34 !important;
    margin-bottom: 18px !important;
  }
  #signupScreen .sitepass-first-auto-login,
  #signupScreen .sitepass-first-remember-id {
    gap: 5px !important;
    min-height: 17px !important;
    font-size: 13px !important;
  }
  #signupScreen .sitepass-first-checkmark,
  #signupScreen .sitepass-first-remember-id input {
    width: 12px !important;
    height: 12px !important;
    min-width: 12px !important;
  }
    }


/* v23.7.428 auth refresh hash fix */

/* v23.7.428 safe auth back button */

/* v23.7.428 home button behavior */

/* v23.7.428 clean auth sub screens */

/* v23.7.428 hide login on auth sub screens */

/* v23.7.428 signup terms next button */

/* v23.7.428 signup next button fixed */

/* v23.7.428 signup/account terms separated */

/* v23.7.428 logout to first login */

/* v23.7.428 member storage scope fix */

/* v23.7.428 beta stable structure baseline - no functional redesign */

/* v23.7.428 step1 big frame baseline - no runtime behavior change */

/* v23.7.428 compact middle frame baseline - under 100 files */

/* v23.7.428 compact small frame baseline - under 100 files */



/* v23.7.460 - 등록 기본정보 상단 압축 / 모바일 2칸+3칸 */
#registerScreen > .card:first-of-type > h2:first-child,
#registerScreen > .card:first-of-type > h2:first-child + p {
  display: none !important;
}
#registerScreen > .card:first-of-type {
  padding-top: 14px !important;
}
#registerScreen > .card:first-of-type .form-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 8px !important;
  margin-top: 6px !important;
}
#registerScreen > .card:first-of-type .field label {
  font-size: 12px !important;
  margin-bottom: 4px !important;
  letter-spacing: -0.2px !important;
  white-space: nowrap !important;
}
#registerScreen > .card:first-of-type #equipmentNo,
#registerScreen > .card:first-of-type #equipmentName {
  min-height: 42px !important;
  height: 42px !important;
  border-radius: 12px !important;
  padding: 0 9px !important;
  font-size: 13px !important;
  font-weight: 850 !important;
}
#registerScreen > .card:first-of-type #equipmentNo::placeholder {
  font-size: 11px !important;
}
#registerScreen > .card:first-of-type .bundle-toggle-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 6px !important;
  margin-top: 8px !important;
}
#registerScreen > .card:first-of-type .bundle-toggle {
  min-width: 0 !important;
  min-height: 54px !important;
  padding: 7px 4px !important;
  border-radius: 12px !important;
  gap: 4px !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  flex-direction: column !important;
}
#registerScreen > .card:first-of-type .bundle-toggle input {
  width: 15px !important;
  min-height: 15px !important;
  height: 15px !important;
  margin: 0 !important;
}
#registerScreen > .card:first-of-type .bundle-toggle b {
  margin: 0 !important;
  display: block !important;
  font-size: 12px !important;
  line-height: 1.05 !important;
  letter-spacing: -0.45px !important;
  white-space: nowrap !important;
}
#registerScreen > .card:first-of-type .bundle-toggle span {
  display: none !important;
}
#registerScreen > .card:first-of-type .bundle-summary {
  margin-top: 8px !important;
}
@media (max-width: 420px) {
  #registerScreen > .card:first-of-type {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  #registerScreen > .card:first-of-type .form-grid {
    gap: 6px !important;
  }
  #registerScreen > .card:first-of-type #equipmentNo,
  #registerScreen > .card:first-of-type #equipmentName {
    font-size: 12px !important;
    padding-left: 7px !important;
    padding-right: 7px !important;
  }
  #registerScreen > .card:first-of-type .bundle-toggle b {
    font-size: 11px !important;
    letter-spacing: -0.6px !important;
  }
}




/* v23.7.460 - 등록 상단 입력칸/요약칸 가로 정렬 보정 */
#registerScreen > .card:first-of-type {
  padding-left: 14px !important;
  padding-right: 14px !important;
}
#registerScreen > .card:first-of-type .form-grid {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.05fr) !important;
  gap: 8px !important;
  width: 100% !important;
}
#registerScreen > .card:first-of-type .field {
  min-width: 0 !important;
}
#registerScreen > .card:first-of-type #equipmentNo,
#registerScreen > .card:first-of-type #equipmentName {
  width: 100% !important;
  min-height: 46px !important;
  height: 46px !important;
  border-radius: 14px !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
  font-size: 14px !important;
}
#registerScreen > .card:first-of-type .bundle-toggle-grid,
#registerScreen > .card:first-of-type .bundle-summary {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
}
#registerScreen > .card:first-of-type .bundle-toggle-grid {
  margin-top: 8px !important;
}
#registerScreen > .card:first-of-type .bundle-summary {
  margin-top: 8px !important;
}
#registerScreen > .card:first-of-type .bundle-toggle,
#registerScreen > .card:first-of-type .bundle-summary > div {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 58px !important;
  border-radius: 14px !important;
  box-sizing: border-box !important;
}
#registerScreen > .card:first-of-type .bundle-toggle {
  padding: 8px 5px !important;
}
#registerScreen > .card:first-of-type .bundle-summary > div {
  padding: 8px 5px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}
#registerScreen > .card:first-of-type .bundle-summary b {
  font-size: 18px !important;
  line-height: 1.05 !important;
}
#registerScreen > .card:first-of-type .bundle-summary span {
  font-size: 11px !important;
  line-height: 1.05 !important;
  margin-top: 4px !important;
  white-space: nowrap !important;
}
@media (max-width: 420px) {
  #registerScreen > .card:first-of-type {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  #registerScreen > .card:first-of-type .form-grid {
    gap: 6px !important;
  }
  #registerScreen > .card:first-of-type .bundle-toggle-grid,
  #registerScreen > .card:first-of-type .bundle-summary {
    gap: 6px !important;
  }
  #registerScreen > .card:first-of-type #equipmentNo,
  #registerScreen > .card:first-of-type #equipmentName {
    height: 44px !important;
    min-height: 44px !important;
    padding-left: 9px !important;
    padding-right: 9px !important;
    font-size: 13px !important;
  }
  #registerScreen > .card:first-of-type .bundle-toggle,
  #registerScreen > .card:first-of-type .bundle-summary > div {
    min-height: 56px !important;
    padding-left: 3px !important;
    padding-right: 3px !important;
  }
}




/* v23.7.460 - 등록 상단 가로폭 원위치 / 세로폭만 보정 */
#registerScreen > .card:first-of-type {
  padding-left: 12px !important;
  padding-right: 12px !important;
}
#registerScreen > .card:first-of-type .form-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 8px !important;
  width: 100% !important;
}
#registerScreen > .card:first-of-type #equipmentNo,
#registerScreen > .card:first-of-type #equipmentName {
  min-height: 50px !important;
  height: 50px !important;
  border-radius: 14px !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
  font-size: 13px !important;
}
#registerScreen > .card:first-of-type .bundle-toggle-grid,
#registerScreen > .card:first-of-type .bundle-summary {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
}
#registerScreen > .card:first-of-type .bundle-toggle,
#registerScreen > .card:first-of-type .bundle-summary > div {
  min-height: 66px !important;
  border-radius: 14px !important;
  box-sizing: border-box !important;
}
#registerScreen > .card:first-of-type .bundle-toggle {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}
#registerScreen > .card:first-of-type .bundle-summary > div {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}
@media (max-width: 420px) {
  #registerScreen > .card:first-of-type {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  #registerScreen > .card:first-of-type .form-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 6px !important;
  }
  #registerScreen > .card:first-of-type #equipmentNo,
  #registerScreen > .card:first-of-type #equipmentName {
    min-height: 48px !important;
    height: 48px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    font-size: 12px !important;
  }
  #registerScreen > .card:first-of-type .bundle-toggle-grid,
  #registerScreen > .card:first-of-type .bundle-summary {
    gap: 6px !important;
  }
  #registerScreen > .card:first-of-type .bundle-toggle,
  #registerScreen > .card:first-of-type .bundle-summary > div {
    min-height: 64px !important;
  }
}

/* v23.7.470-test 사업자등록증 미리보기 전체 보존 */
.doc-card[data-doc-key="businessLicense"] .paper-frame {
  overflow: visible;
  background: #f8fbff;
}
.doc-card[data-doc-key="businessLicense"] .preview-img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain !important;
  object-position: center center;
}


/* v23.7.473-test 등록화면 A4 서류 미리보기 확대
   저장본(약 778x1100px)은 그대로 두고 화면 표시 크기만 키웁니다. */
#registerScreen .doc-card .page-item:not(.simple-update-page) > .paper-frame {
  width: min(94%, 300px);
  height: auto;
  aspect-ratio: 778 / 1100;
  padding: 8px;
}
#registerScreen .doc-card .page-item:not(.simple-update-page) > .paper-frame .preview-img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain !important;
}
@media (max-width: 560px) {
  #registerScreen .doc-card .page-item:not(.simple-update-page) > .paper-frame {
    width: min(100%, 286px);
    height: auto;
    aspect-ratio: 778 / 1100;
  }
}


/* v23.7.474-test
   A4형 서류는 JS 저장단계에서 사업자등록증과 동일한 전체용지 맞춤을 사용합니다.
   미리보기 틀은 v473 크기를 유지하고 내부에 중복 생성되던 흰 여백만 제거합니다. */

/* v23.7.477-test - 월 이동과 날짜 확정을 분리한 만료날짜 달력 */
.sitepass-clean-calendar-overlay475{
  position:fixed;
  inset:0;
  z-index:2147483600;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(15,23,42,.46);
  backdrop-filter:blur(2px);
}
.sitepass-clean-calendar-overlay475.hidden{display:none!important;}
.sitepass-clean-calendar475{
  width:min(100%,390px);
  border:1px solid #cbdaf2;
  border-radius:20px;
  background:#fff;
  box-shadow:0 24px 70px rgba(15,23,42,.28);
  padding:16px;
}
.sitepass-clean-calendar-head475{
  display:grid;
  grid-template-columns:48px 1fr 48px;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
}
.sitepass-clean-calendar-head475 strong{
  text-align:center;
  font-size:18px;
  color:#0f172a;
}
.sitepass-clean-calendar-nav475{
  width:44px;
  height:44px;
  border:1px solid #cbdaf2;
  border-radius:13px;
  background:#f8fbff;
  color:#1d4ed8;
  font-size:30px;
  line-height:1;
  cursor:pointer;
}
.sitepass-clean-calendar-week475,
.sitepass-clean-calendar-days475{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:5px;
}
.sitepass-clean-calendar-week475{
  margin-bottom:5px;
  color:#64748b;
  font-size:12px;
  font-weight:800;
  text-align:center;
}
.sitepass-clean-calendar-week475 span{padding:7px 0;}
.sitepass-clean-calendar-day475,
.sitepass-clean-calendar-empty475{
  min-width:0;
  aspect-ratio:1/1;
}
.sitepass-clean-calendar-day475{
  border:1px solid transparent;
  border-radius:11px;
  background:#fff;
  color:#1e293b;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
}
.sitepass-clean-calendar-day475:hover,
.sitepass-clean-calendar-day475:focus-visible{
  border-color:#8fb2ff;
  background:#eef5ff;
  outline:none;
}
.sitepass-clean-calendar-day475.today{
  border-color:#93c5fd;
  color:#1d4ed8;
}
.sitepass-clean-calendar-day475.selected{
  border-color:#2563eb;
  background:#2563eb;
  color:#fff;
}
.sitepass-clean-calendar-actions475{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:14px;
}
.sitepass-clean-calendar-actions475 button{
  min-height:44px;
  border-radius:12px;
}
@media (max-width:420px){
  .sitepass-clean-calendar-overlay475{padding:10px;align-items:flex-end;}
  .sitepass-clean-calendar475{width:100%;border-radius:20px 20px 12px 12px;padding:14px;}
  .sitepass-clean-calendar-day475{font-size:14px;}
}


/* v23.7.480-test - 건설기계조종사 안전교육 이수일 + 3년 자동 D-DAY */
.education-expiry-note-v478{
  margin-top:8px;
  padding:10px 12px;
  border:1px solid #d9e4f7;
  border-radius:12px;
  background:#f7faff;
  color:#53657d;
  font-size:13px;
  font-weight:700;
  line-height:1.45;
}
.education-expiry-note-v478.ready{
  border-color:#a9c8ff;
  background:#edf5ff;
  color:#174ea6;
}


/* v23.7.493 - 상세보기 장비/기사/인부 폴더 */
.doc-folders-v486{margin-top:10px}
.doc-folder-tabs-v486{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:10px;border-bottom:2px solid #d9e4f5;padding:0 4px}
.doc-folder-tab-v486{min-height:46px;padding:10px 7px 9px;border:1px solid #d7e2f5;border-bottom:0;border-radius:14px 14px 0 0;background:#f4f7fc;color:#63728c;font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px}
.doc-folder-tab-v486 b{display:inline-grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:999px;background:#e4eaf4;color:#56657d;font-size:12px}
.doc-folder-tab-v486.active{background:#fff;color:#1748bd;border-color:#86a9ff;box-shadow:0 -2px 0 #2c5bd7 inset}
.doc-folder-tab-v486.active b{background:#2c5bd7;color:#fff}
.doc-folder-panel-v486.hidden{display:none!important}
.doc-folder-panel-v486>.doc-card:last-child{margin-bottom:0}
@media(max-width:520px){
  .doc-folder-tabs-v486{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:0}
  .doc-folder-tab-v486{min-height:44px;padding:9px 3px;font-size:12px;gap:4px;word-break:keep-all}
  .doc-folder-tab-v486 b{min-width:20px;height:20px;padding:0 4px;font-size:11px}
}


/* v23.7.493 - 보관함 상단 단순화 / 서버 불러오기 상태 */
.archive-list-summary {
  display:flex;
  align-items:center;
  min-height:36px;
  padding:8px 10px;
  border:1px solid #cfe0ff;
  border-radius:13px;
  background:#fff;
  margin-bottom:10px;
}
.archive-list-summary b { color:#173f9f; }
.archive-share-help-v491 {
  margin-top:9px;
  color:#5f6f89;
  font-size:12px;
  line-height:1.45;
}
.sitepass-server-loading-v491 {
  position:relative;
  padding-top:52px !important;
}
.sitepass-server-loading-v491::before {
  content:'';
  position:absolute;
  top:18px;
  left:50%;
  width:22px;
  height:22px;
  margin-left:-11px;
  border:3px solid #d9e5ff;
  border-top-color:#2d5bdd;
  border-radius:50%;
  animation:sitepass-loading-spin-v491 .8s linear infinite;
}
@keyframes sitepass-loading-spin-v491 { to { transform:rotate(360deg); } }


/* v23.7.493-test - 보관함 돋보기 확실한 표시 / 장비등록 대수 흰색 긴 박스 제거 */
.archive-search-button {
  display:grid !important;
  place-items:center !important;
  cursor:pointer;
  color:#405677 !important;
}
.archive-search-icon {
  display:block;
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}
.archive-list-summary {
  display:block !important;
  min-height:0 !important;
  margin:0 0 10px !important;
  padding:0 2px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.archive-list-summary b {
  display:inline !important;
  color:#173f9f !important;
}


/* v23.7.494-test - 모바일 빠른 시작: 화면을 먼저 보여주고 모듈 준비는 뒤에서 완료 */
body.sitepass-fast-shell-loading::after {
  content:'';
  position:fixed;
  top:0;
  left:0;
  width:38%;
  height:3px;
  border-radius:0 4px 4px 0;
  background:#2457d6;
  z-index:1000001;
  pointer-events:none;
  animation:sitepass-fast-shell-progress-v494 1.05s ease-in-out infinite;
}
@keyframes sitepass-fast-shell-progress-v494 {
  0% { transform:translateX(-110%); opacity:.35; }
  55% { opacity:1; }
  100% { transform:translateX(275%); opacity:.25; }
}


/* v23.7.553-test - 달력 6주 고정 (담당자 화면 강제 고정 제거) */
.sitepass-clean-calendar-days475{
  grid-template-rows:repeat(6,minmax(0,1fr));
  height:282px;
  min-height:282px;
}
.sitepass-clean-calendar-day475,
.sitepass-clean-calendar-empty475{
  aspect-ratio:auto;
  min-height:0;
}
@media (max-width:420px){
  .sitepass-clean-calendar-days475{height:252px;min-height:252px;}
}
