:root {
      --brand: #4122C3;
      --brand-2: #5A39D7;
      --brand-soft: #F2EEFF;
      --coral: #F55542;
      --wine: #3E0B32;
      --ink: #171522;
      --muted: #6F6B7A;
      --line: #E8E5F0;
      --panel: #FFFFFF;
      --bg: #F7F7FB;
      --success: #1E8E62;
      --warning: #B76A00;
      --danger: #C63D30;
      --shadow: 0 18px 50px rgba(34, 22, 73, 0.08);
      --radius-xl: 24px;
      --radius-lg: 18px;
      --radius-md: 12px;
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      font-family: Pretendard, "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      background: var(--bg);
      color: var(--ink);
      line-height: 1.6;
    }
    button, input, select, textarea { font: inherit; }
    button { cursor: pointer; }
    img { display: block; max-width: 100%; }

    .container {
      width: min(1180px, calc(100% - 40px));
      margin: 0 auto;
    }

    .header {
      position: sticky;
      top: 0;
      z-index: 20;
      backdrop-filter: blur(14px);
      background: rgba(255,255,255,0.88);
      border-bottom: 1px solid rgba(232,229,240,0.9);
    }
    .header-inner {
      height: 74px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
    }
    .brand {
      display: flex;
      align-items: center;
      gap: 12px;
      text-decoration: none;
    }
    .brand img {
      width: 250px;
      height: auto;
    }
    .nav {
      display: flex;
      align-items: center;
      gap: 28px;
      font-size: 14px;
      color: #4D4958;
    }
    .nav a {
      color: inherit;
      text-decoration: none;
      font-weight: 600;
    }
    .nav a:hover { color: var(--brand); }
    .guide-btn {
      border: 1px solid var(--line);
      background: white;
      color: var(--ink);
      padding: 10px 14px;
      border-radius: 10px;
      font-weight: 700;
    }

    .hero {
      padding: 82px 0 52px;
      background:
        radial-gradient(circle at 78% 20%, rgba(65,34,195,0.09), transparent 30%),
        linear-gradient(180deg, #FFFFFF 0%, #FAF9FE 100%);
      border-bottom: 1px solid var(--line);
    }
    .hero-grid {
      display: grid;
      grid-template-columns: 1.1fr 0.9fr;
      gap: 56px;
      align-items: center;
    }
    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: var(--brand-soft);
      color: var(--brand);
      border-radius: 999px;
      padding: 8px 12px;
      font-size: 13px;
      font-weight: 800;
    }
    .hero h1 {
      margin: 20px 0 16px;
      font-size: clamp(38px, 5vw, 62px);
      line-height: 1.12;
      letter-spacing: -0.045em;
    }
    .hero h1 span { color: var(--brand); }
    .hero p {
      margin: 0;
      color: var(--muted);
      font-size: 18px;
      max-width: 640px;
    }
    .hero-actions {
      margin-top: 30px;
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
    }
    .primary-btn, .secondary-btn {
      border: none;
      border-radius: 12px;
      min-height: 50px;
      padding: 0 20px;
      font-weight: 800;
    }
    .primary-btn {
      background: linear-gradient(135deg, var(--brand), var(--brand-2));
      color: white;
      box-shadow: 0 12px 26px rgba(65,34,195,0.22);
    }
    .primary-btn:hover { transform: translateY(-1px); }
    .secondary-btn {
      background: white;
      color: var(--ink);
      border: 1px solid var(--line);
    }
    .hero-note {
      margin-top: 16px;
      color: var(--muted);
      font-size: 13px;
    }
    .symbol-panel {
      position: relative;
      min-height: 360px;
      display: grid;
      place-items: center;
    }
    .symbol-wrap {
      width: min(420px, 90%);
      aspect-ratio: 1 / 0.85;
      border-radius: 34px;
      background: rgba(255,255,255,0.78);
      border: 1px solid rgba(232,229,240,0.9);
      box-shadow: var(--shadow);
      display: grid;
      place-items: center;
      position: relative;
      overflow: hidden;
    }
    .symbol-wrap::before {
      content: "";
      position: absolute;
      inset: 28px;
      border-radius: 50%;
      border: 32px solid rgba(65,34,195,0.045);
    }
    .symbol-wrap img {
      width: 72%;
      position: relative;
      z-index: 2;
    }

    .services {
      padding: 64px 0 32px;
    }
    .section-head {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 20px;
      margin-bottom: 22px;
    }
    .section-head h2 {
      margin: 0;
      font-size: 30px;
      letter-spacing: -0.03em;
    }
    .section-head p {
      margin: 6px 0 0;
      color: var(--muted);
    }
    .service-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px;
    }
    .service-card {
      background: white;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      padding: 24px;
      min-height: 218px;
      text-align: left;
      position: relative;
      transition: .2s ease;
      display: flex;
      flex-direction: column;
      gap: 18px;
    }
    .service-card.active {
      border-color: rgba(65,34,195,0.42);
      box-shadow: 0 18px 38px rgba(65,34,195,0.08);
    }
    .service-card.active:hover {
      transform: translateY(-3px);
      border-color: var(--brand);
    }
    .service-card.disabled {
      opacity: .72;
      background: #FCFCFD;
    }
    .service-icon {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      display: grid;
      place-items: center;
      background: var(--brand-soft);
      color: var(--brand);
      font-size: 24px;
      font-weight: 900;
    }
    .service-card h3 {
      margin: 0;
      font-size: 21px;
      letter-spacing: -0.02em;
    }
    .service-card p {
      margin: 6px 0 0;
      color: var(--muted);
      font-size: 14px;
    }
    .status {
      display: inline-flex;
      width: fit-content;
      align-items: center;
      padding: 6px 10px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 800;
      margin-top: auto;
    }
    .status.live { background: #EBF8F2; color: var(--success); }
    .status.soon { background: #F0EFF3; color: #777381; }

    .review-area {
      padding: 32px 0 90px;
    }
    .review-shell {
      background: white;
      border: 1px solid var(--line);
      border-radius: var(--radius-xl);
      box-shadow: var(--shadow);
      overflow: hidden;
    }
    .review-top {
      padding: 28px 30px;
      border-bottom: 1px solid var(--line);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
    }
    .review-top h2 { margin: 0; font-size: 24px; }
    .review-top p { margin: 4px 0 0; color: var(--muted); font-size: 14px; }

    .steps {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
      min-width: 500px;
    }
    .step {
      display: flex;
      align-items: center;
      gap: 9px;
      font-size: 13px;
      color: #8A8695;
      font-weight: 700;
    }
    .step span {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: #F1EFF6;
      color: #8A8695;
    }
    .step.active { color: var(--brand); }
    .step.active span { background: var(--brand); color: white; }
    .step.done { color: var(--success); }
    .step.done span { background: #E7F6EF; color: var(--success); }

    .review-body {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 300px;
      gap: 0;
    }
    .form-panel {
      padding: 34px 30px 36px;
      border-right: 1px solid var(--line);
    }
    .summary-panel {
      padding: 30px 24px;
      background: #FBFAFE;
    }
    .stage { display: none; }
    .stage.active { display: block; }
    .stage h3 {
      margin: 0 0 8px;
      font-size: 26px;
      letter-spacing: -0.03em;
    }
    .stage-intro {
      color: var(--muted);
      margin: 0 0 26px;
    }

    .field-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0,1fr));
      gap: 18px;
    }
    .application-info-fields {
      margin-bottom: 14px;
    }
    .field {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .field.full { grid-column: 1 / -1; }
    .field label {
      font-size: 14px;
      font-weight: 800;
    }
    .required { color: var(--coral); }
    .input, .select, .textarea {
      width: 100%;
      border: 1px solid var(--line);
      border-radius: 11px;
      background: white;
      min-height: 48px;
      padding: 0 14px;
      color: var(--ink);
      outline: none;
    }
    .textarea {
      min-height: 138px;
      padding: 14px;
      resize: vertical;
    }
    .input:focus, .select:focus, .textarea:focus {
      border-color: var(--brand);
      box-shadow: 0 0 0 4px rgba(65,34,195,.08);
    }
    .helper {
      color: var(--muted);
      font-size: 12px;
    }

    .category-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0,1fr));
      gap: 12px;
    }
    .category-card {
      border: 1px solid var(--line);
      background: white;
      border-radius: 14px;
      padding: 18px;
      text-align: left;
      min-height: 108px;
      transition: .18s ease;
    }
    .category-card:hover { border-color: rgba(65,34,195,.45); }
    .category-card.selected {
      border-color: var(--brand);
      background: var(--brand-soft);
      box-shadow: inset 0 0 0 1px var(--brand);
    }
    .category-card strong { display: block; font-size: 17px; }
    .category-card small { color: var(--muted); }

    .upload-list {
      display: grid;
      gap: 14px;
    }
    .upload-item {
      border: 1px solid var(--line);
      border-radius: 15px;
      padding: 16px;
      background: #fff;
    }
    .upload-head {
      display: flex;
      justify-content: space-between;
      gap: 16px;
      align-items: center;
      margin-bottom: 12px;
    }
    .upload-head strong { font-size: 15px; }
    .tag {
      font-size: 11px;
      padding: 5px 8px;
      border-radius: 999px;
      background: var(--brand-soft);
      color: var(--brand);
      font-weight: 800;
      white-space: nowrap;
    }
    .dropzone {
      border: 1.5px dashed #CFC9DD;
      background: #FBFAFE;
      border-radius: 12px;
      min-height: 104px;
      display: grid;
      place-items: center;
      text-align: center;
      padding: 18px;
      color: var(--muted);
      transition: .18s ease;
      position: relative;
      cursor: pointer;
    }
    .dropzone.dragover {
      border-color: var(--brand);
      background: var(--brand-soft);
    }
    .dropzone input {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      clip-path: inset(50%);
      white-space: nowrap;
      border: 0;
      opacity: 0;
      pointer-events: none;
    }
    .file-name {
      color: var(--success);
      font-weight: 800;
      margin-top: 6px;
      word-break: break-all;
    }

    .consent-box {
      border: 1px solid var(--line);
      border-radius: 15px;
      overflow: hidden;
      margin-bottom: 14px;
    }
    .consent-row {
      padding: 17px 18px;
      border-bottom: 1px solid var(--line);
      background: white;
    }
    .consent-row:last-child { border-bottom: 0; }
    .consent-row summary {
      cursor: pointer;
      font-weight: 800;
    }
    .consent-row p {
      color: var(--muted);
      font-size: 13px;
      margin: 10px 0 0;
      white-space: pre-line;
    }
    .checkline {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      margin-top: 14px;
      font-size: 14px;
    }
    .checkline input {
      width: 18px;
      height: 18px;
      margin-top: 3px;
      accent-color: var(--brand);
    }


    .category-toolbar {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 22px;
    }
    .category-search {
      width: 100%;
      min-height: 48px;
      border: 1px solid var(--line);
      border-radius: 12px;
      padding: 0 15px;
      outline: none;
      background: #fff;
    }
    .category-search:focus {
      border-color: var(--brand);
      box-shadow: 0 0 0 4px rgba(65,34,195,.08);
    }
    .category-group {
      margin-top: 24px;
    }
    .category-group:first-of-type {
      margin-top: 0;
    }
    .category-group-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 10px;
    }
    .category-group-head h4 {
      margin: 0;
      font-size: 15px;
      letter-spacing: -0.01em;
    }
    .category-group-head span {
      color: var(--muted);
      font-size: 12px;
    }
    .category-grid.full-list {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .category-card.compact {
      min-height: 88px;
      padding: 15px 16px;
    }
    .category-card.compact strong {
      font-size: 15px;
      line-height: 1.35;
    }
    .category-card.compact small {
      display: block;
      margin-top: 5px;
      line-height: 1.45;
    }
    .category-card.hidden {
      display: none;
    }
    .labor-stage-screen { display: none; }
    .labor-stage-screen.active { display: block; }
    .labor-stage-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
    }
    .labor-stage-card {
      min-height: 156px;
      padding: 16px;
      text-align: left;
      border: 1px solid var(--line);
      border-radius: 14px;
      background: #fff;
      transition: .18s ease;
    }
    .labor-stage-card:hover {
      border-color: rgba(65,34,195,.45);
    }
    .labor-stage-card.selected {
      border-color: var(--brand);
      background: var(--brand-soft);
      box-shadow: inset 0 0 0 1px var(--brand);
    }
    .labor-stage-card strong {
      display: block;
      margin-bottom: 7px;
      font-size: 16px;
    }
    .labor-stage-card span {
      display: block;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.55;
    }
    .category-overview {
      margin: 0 0 32px;
      padding: 0 0 28px;
      border-bottom: 1px solid var(--line);
    }
    .category-overview h2 {
      margin: 0 0 12px;
      font-size: 30px;
      line-height: 1.28;
      letter-spacing: -0.035em;
    }
    .category-overview p {
      margin: 0;
      color: #514A68;
      font-size: 17px;
      line-height: 1.75;
      word-break: keep-all;
    }
    .category-overview .labor-stage-display {
      display: none;
      margin-top: 14px;
      color: var(--brand);
      font-size: 14px;
      font-weight: 800;
    }
    .category-overview .labor-stage-display.show { display: block; }
    .upload-note {
      margin-top: 6px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.5;
    }
    .tag.required {
      background: #F0ECFF;
      color: var(--brand);
    }
    .tag.conditional {
      background: #FFF2E3;
      color: var(--warning);
    }
    .tag.common {
      background: #EAF7F2;
      color: var(--success);
    }
    .empty-search {
      display: none;
      padding: 22px;
      border: 1px dashed var(--line);
      border-radius: 13px;
      text-align: center;
      color: var(--muted);
      background: #FCFBFE;
    }
    .empty-search.show {
      display: block;
    }

    .form-actions {
      margin-top: 30px;
      display: flex;
      justify-content: space-between;
      gap: 12px;
    }
    .form-actions button {
      min-height: 48px;
      padding: 0 18px;
      border-radius: 11px;
      font-weight: 800;
    }
    .back-btn {
      background: white;
      border: 1px solid var(--line);
      color: var(--ink);
    }
    .next-btn {
      background: var(--brand);
      border: 1px solid var(--brand);
      color: white;
    }
    .next-btn:disabled {
      background: #C9C4DC;
      border-color: #C9C4DC;
      cursor: not-allowed;
    }

    .summary-card {
      border: 1px solid var(--line);
      background: white;
      border-radius: 15px;
      padding: 18px;
    }
    .summary-card h4 { margin: 0 0 16px; font-size: 16px; }
    .summary-list {
      display: grid;
      gap: 12px;
    }
    .summary-row {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      font-size: 13px;
    }
    .summary-row span:first-child { color: var(--muted); }
    .summary-row span:last-child {
      text-align: right;
      font-weight: 800;
      max-width: 160px;
      word-break: break-word;
    }
    .summary-note {
      margin-top: 16px;
      border-radius: 12px;
      padding: 13px;
      background: var(--brand-soft);
      color: var(--brand);
      font-size: 12px;
      font-weight: 700;
    }

    .result-box {
      display: none;
      margin-top: 24px;
      border: 1px solid #F0D3CE;
      background: #FFF9F7;
      border-radius: 16px;
      padding: 22px;
    }
    .result-box.show { display: block; }
    .result-box h4 {
      margin: 0 0 10px;
      color: var(--danger);
      font-size: 20px;
    }
    .result-item {
      background: white;
      border: 1px solid #F0DED9;
      border-radius: 12px;
      padding: 14px;
      margin-top: 10px;
    }
    .result-box.approved { border-color: #B7E3C5; background: #EFFAF2; }
    .result-box.rejected { border-color: #F0BDB8; background: #FFF1F0; }
    .result-box .result-verdict { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
    .result-box .result-verdict h4 { margin: 0; font-size: 30px; font-weight: 900; letter-spacing: -0.06em; }
    .result-box.approved .result-verdict h4 { color: #167247; }
    .result-box.rejected .result-verdict h4 { color: #BB342A; }
    .result-box .result-verdict span { border-radius: 999px; padding: 4px 9px; font-size: 12px; font-weight: 900; }
    .result-box.approved .result-verdict span { background: #D5F1DD; color: #167247; }
    .result-box.rejected .result-verdict span { background: #FFDCD8; color: #A82C25; }
    .result-lead { margin: 0; font-size: 14px; font-weight: 700; }
    .result-type-box, .result-reason-box { margin-top: 14px; background: #fff; border: 1px solid #F0D0CD; border-radius: 12px; padding: 15px; }
    .result-type-box h5, .result-reason-box h5 { margin: 0 0 10px; color: #342F42; font-size: 14px; font-weight: 900; }
    .result-type-list { display: grid; gap: 8px; }
    .result-type-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 10px; border-radius: 9px; background: #FFF8F7; font-size: 13px; font-weight: 800; }
    .result-type-row strong { color: #B72E26; font-weight: 900; }
    .result-reason-box ul { margin: 0; padding-left: 20px; }
    .result-reason-box li { margin: 7px 0; font-size: 14px; font-weight: 650; }
    .result-reason-empty { margin: 0; color: #6F6B7A; font-size: 13px; font-weight: 650; }

    .toast {
      position: fixed;
      left: 50%;
      bottom: 30px;
      transform: translateX(-50%) translateY(20px);
      background: #221C32;
      color: white;
      padding: 13px 18px;
      border-radius: 11px;
      opacity: 0;
      pointer-events: none;
      transition: .2s ease;
      z-index: 50;
      font-size: 14px;
      box-shadow: var(--shadow);
    }
    .toast.show {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }

    footer {
      border-top: 1px solid var(--line);
      background: white;
      padding: 30px 0 46px;
      color: var(--muted);
      font-size: 13px;
    }
    .footer-inner {
      display: flex;
      justify-content: space-between;
      gap: 20px;
      align-items: center;
    }

    @media (max-width: 920px) {
      .nav { display: none; }
      .hero-grid { grid-template-columns: 1fr; }
      .symbol-panel { min-height: 260px; }
      .service-grid { grid-template-columns: 1fr; }
      .review-top { align-items: flex-start; flex-direction: column; overflow-x: auto; }
      .review-body { grid-template-columns: 1fr; }
      .form-panel { border-right: 0; border-bottom: 1px solid var(--line); }
      .summary-panel { order: -1; }
      .field-grid, .category-grid, .category-grid.full-list, .labor-stage-grid { grid-template-columns: 1fr; }
      .brand img { width: 210px; }
    }

    @media (max-width: 560px) {
      .container { width: min(100% - 24px, 1180px); }
      .header-inner { height: 66px; }
      .hero { padding-top: 52px; }
      .hero h1 { font-size: 39px; }
      .hero p { font-size: 16px; }
      .section-head { align-items: flex-start; flex-direction: column; }
      .review-top, .form-panel, .summary-panel { padding-left: 18px; padding-right: 18px; }
      .steps { min-width: 360px; }
      .footer-inner { flex-direction: column; align-items: flex-start; }
      .brand img { width: 185px; }
    }
    /* 업무 선택 전용 첫 화면 */
    .service-tabs {
      position: sticky;
      top: 74px;
      z-index: 19;
      background: rgba(255,255,255,.94);
      border-bottom: 1px solid var(--line);
      backdrop-filter: blur(14px);
    }
    .service-tabs-inner { display: flex; gap: 8px; overflow-x: auto; }
    .service-tab {
      appearance: none;
      border: 0;
      border-bottom: 3px solid transparent;
      background: transparent;
      padding: 14px 16px 12px;
      color: var(--muted);
      font-size: 14px;
      font-weight: 800;
      white-space: nowrap;
    }
    .service-tab:hover { color: var(--brand); }
    .service-tab.active { color: var(--brand); border-bottom-color: var(--brand); }
    .service-tab.soon { color: #8A8695; }
    .landing-view { display: block; }
    .legacy-overview, .landing-view.hidden, .review-area { display: none; }
    .review-area.open { display: block; }
    .task-select-hero { padding-bottom: 44px; }
    .task-select-hero .hero-grid { grid-template-columns: minmax(0, 760px); justify-content: center; text-align: center; }
    .task-select-hero .hero-grid > div { margin: 0 auto; }
    .task-select-hero .hero-grid p { margin-inline: auto; }
    .task-select-hero .eyebrow { margin-bottom: 2px; }
    .task-select-hero h1 { font-size: clamp(36px, 4.4vw, 54px); }
    .task-select-hero .hero-note { max-width: 700px; margin: 24px auto 0; }
    .task-select-services { padding-top: 8px; }
    .task-select-services .service-card { min-height: 245px; cursor: pointer; }
    .task-select-services .service-card.disabled { cursor: not-allowed; }
    .service-card .card-action { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
    .service-card .card-action strong { color: var(--brand); font-size: 14px; }
    .service-card.disabled .card-action strong { color: #777381; }
    .review-back { border: 1px solid var(--line); background: white; color: var(--ink); border-radius: 10px; padding: 9px 12px; font-weight: 800; white-space: nowrap; }
    @media (max-width: 760px) {
      .service-tabs { top: 64px; }
      .service-tab { padding-inline: 12px; }
      .task-select-hero { padding-top: 48px; }
      .task-select-hero h1 { font-size: 35px; }
      .task-select-services .service-card { min-height: 0; }
      .review-top { align-items: flex-start; }
      .category-overview h2 { font-size: 26px; }
      .category-overview p { font-size: 16px; }
    }


    /* =========================
       5차 디자인 개선안
       ========================= */
    :root {
      --muted: #625E6E;
      --line-strong: #DCD7E8;
      --shadow: 0 12px 34px rgba(34, 22, 73, 0.065);
      --radius-xl: 20px;
      --radius-lg: 16px;
      --radius-md: 10px;
    }

    body { background: #F6F6FA; }
    .service-tabs { display: none; }
    body.review-open .service-tabs { display: block; }

    .task-select-hero {
      padding: 58px 0 34px;
      background:
        radial-gradient(circle at 50% -10%, rgba(65,34,195,.10), transparent 38%),
        linear-gradient(180deg, #FFFFFF 0%, #FAF9FE 100%);
    }
    .task-select-hero h1 {
      margin-top: 18px;
      font-size: clamp(38px, 4vw, 50px);
      letter-spacing: -.05em;
    }
    .task-select-hero .hero-grid p { max-width: 620px; font-size: 17px; }
    .task-select-services { padding: 22px 0 72px; }
    .task-select-services .service-card {
      min-height: 230px;
      box-shadow: none;
    }
    .task-select-services .service-card.active {
      box-shadow: 0 14px 34px rgba(65,34,195,.08);
    }
    .service-icon { width: 44px; height: 44px; border-radius: 12px; font-size: 16px; }
    .service-card h3 { line-height: 1.38; }

    .review-area { padding: 28px 0 96px; }
    .review-shell { overflow: visible; }
    .review-top {
      position: relative;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      grid-template-areas: "title back" "steps steps";
      gap: 22px 28px;
      padding: 28px 32px 24px;
      background: linear-gradient(180deg, #FFFFFF 0%, #FCFBFF 100%);
      border-radius: var(--radius-xl) var(--radius-xl) 0 0;
    }
    .review-title-block { grid-area: title; min-width: 0; }
    .review-kicker {
      margin-bottom: 5px;
      color: var(--brand);
      font-size: 12px;
      font-weight: 800;
      letter-spacing: .04em;
    }
    .review-top h2 { font-size: 27px; line-height: 1.25; }
    .review-back { grid-area: back; align-self: start; }
    .steps {
      grid-area: steps;
      width: min(100%, 720px);
      min-width: 0;
      gap: 0;
    }
    .step {
      position: relative;
      gap: 10px;
      font-size: 13px;
    }
    .step:not(:last-child)::after {
      content: "";
      position: absolute;
      left: 38px;
      right: 12px;
      top: 14px;
      height: 1px;
      background: #E2DDEB;
      z-index: 0;
    }
    .step span, .step b { position: relative; z-index: 1; }
    .step span { flex: 0 0 auto; box-shadow: 0 0 0 5px #FCFBFF; }
    .step b { background: #FCFBFF; padding-right: 10px; }

    .review-body { grid-template-columns: minmax(0, 1fr) 316px; }
    .form-panel { padding: 36px 32px 42px; }
    .summary-panel { padding: 26px 22px; background: #F8F7FC; }
    .summary-card { position: sticky; top: 150px; }
    .summary-title-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 18px; }
    .summary-card h4 { margin: 0; }
    .summary-live { color: var(--success); font-size: 11px; font-weight: 800; }
    .empty-value { color: #9994A5 !important; font-weight: 600 !important; }
    .summary-note { display: grid; gap: 4px; font-size: 12px; }
    .summary-note strong { font-size: 13px; }
    .summary-note span { color: #6C6680; font-weight: 500; line-height: 1.55; }
    .summary-note.active { background: #F2EEFF; }
    .summary-note.warning { background: #FFF5E8; color: #985900; }
    .summary-note.complete { background: #EAF7F2; color: #167A56; }

    .stage-heading-row { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; }
    .stage-number {
      display: inline-block;
      margin-bottom: 8px;
      color: var(--brand);
      font-size: 11px;
      line-height: 1;
      font-weight: 900;
      letter-spacing: .08em;
    }
    .selection-state {
      flex: 0 0 auto;
      margin-top: 20px;
      padding: 8px 11px;
      border: 1px solid var(--line);
      border-radius: 999px;
      color: #817D8C;
      background: #FAF9FC;
      font-size: 12px;
      font-weight: 800;
    }
    .selection-state.selected { border-color: #CFC5FF; color: var(--brand); background: var(--brand-soft); }

    .category-search { background: #FCFBFE; }
    .category-group { margin-top: 30px; }
    .category-group-head { margin-bottom: 12px; }
    .group-count { padding: 5px 8px; border-radius: 999px; background: #F2F0F5; }
    .category-grid.full-list { gap: 10px; }
    .category-card.compact {
      position: relative;
      min-height: 94px;
      padding: 17px 42px 16px 17px;
      border-color: #E4E1EA;
      box-shadow: none;
    }
    .category-card.compact:hover { transform: translateY(-1px); background: #FCFBFF; }
    .category-card.compact.selected {
      background: #F4F1FF;
      box-shadow: inset 0 0 0 1px var(--brand), 0 8px 20px rgba(65,34,195,.07);
    }
    .category-card.compact.selected::after {
      content: "✓";
      position: absolute;
      right: 15px;
      top: 15px;
      width: 22px;
      height: 22px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      color: #fff;
      background: var(--brand);
      font-size: 12px;
      font-weight: 900;
    }
    .category-card.compact small { font-size: 12.5px; }

    .category-group-toggle {
      width: 100%;
      border: 1px solid var(--line);
      border-radius: 14px;
      padding: 15px 17px;
      background: #FAF9FC;
      text-align: left;
      cursor: pointer;
    }
    .category-group-toggle > span:first-child { display: grid; gap: 3px; }
    .category-group-toggle small { color: var(--muted); font-size: 12px; font-weight: 500; }
    .group-toggle-meta { display: flex; align-items: center; gap: 10px; color: var(--muted); }
    .group-toggle-meta b { font-size: 12px; }
    .group-toggle-meta i { color: var(--brand); font-size: 12px; font-style: normal; font-weight: 800; }
    .group-toggle-meta em { font-size: 19px; font-style: normal; transition: transform .2s ease; }
    .fee-category-group.collapsed .fee-category-grid { display: none; }
    .fee-category-group:not(.collapsed) .group-toggle-meta em { transform: rotate(180deg); }
    .fee-category-grid { margin-top: 12px; }

    .application-card {
      margin-bottom: 30px;
      padding: 22px;
      border: 1px solid var(--line);
      border-radius: 16px;
      background: #FCFBFE;
    }
    .money-input-wrap { position: relative; }
    .money-input-wrap .input { padding-right: 42px; }
    .money-input-wrap > span { position: absolute; right: 15px; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 14px; font-weight: 700; }
    .textarea { min-height: 118px; }
    .upload-section-head { display: flex; justify-content: space-between; gap: 20px; align-items: end; margin-bottom: 12px; }
    .upload-section-head h4 { margin: 0; font-size: 19px; }
    .upload-section-head p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
    .upload-progress { flex: 0 0 auto; padding: 7px 10px; border-radius: 999px; background: #F0ECFF; color: var(--brand); font-size: 12px; font-weight: 900; }
    .upload-progress.complete { background: #EAF7F2; color: #167A56; }
    .bulk-drop-hint { margin-bottom: 12px; padding: 11px 13px; border-radius: 10px; background: #F7F5FB; color: var(--muted); font-size: 12px; }
    .upload-list { gap: 9px; }
    .upload-item {
      min-height: 88px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 112px 28px;
      gap: 12px;
      align-items: center;
      padding: 14px 14px 14px 16px;
      border-radius: 13px;
      transition: .18s ease;
    }
    .upload-item:hover { border-color: #D3CDE2; }
    .upload-item.dragover {
      border-color: var(--brand);
      background: var(--brand-soft);
      box-shadow: inset 0 0 0 1px var(--brand);
    }
    .upload-item.dragover .dropzone {
      border-color: var(--brand);
      background: #FFFFFF;
    }
    .upload-item.uploaded { border-color: #B9DDCE; background: #FCFFFD; }
    .upload-doc-info { min-width: 0; }
    .upload-title-line { display: flex; align-items: center; gap: 8px; min-width: 0; }
    .upload-title-line strong { min-width: 0; font-size: 14px; overflow-wrap: anywhere; }
    .upload-index { color: #9A95A7; font-size: 11px; font-weight: 800; }
    .upload-note { margin: 5px 0 0 27px; font-size: 12px; }
    .muted-note { color: #898492; }
    .file-name { display: flex; gap: 8px; align-items: center; margin: 6px 0 0 27px; font-size: 12px; }
    .file-name span { color: var(--success); font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .file-name small { flex: 0 0 auto; color: var(--muted); font-size: 11px; }
    .dropzone {
      min-height: 44px;
      padding: 0;
      border: 1px solid #D8D3E1;
      border-radius: 10px;
      background: #fff;
    }
    .upload-cta { display: flex; justify-content: center; align-items: center; gap: 5px; color: var(--brand); font-size: 12px; font-weight: 800; }
    .upload-icon { font-size: 17px; font-weight: 500; }
    .upload-item.uploaded .upload-icon { display: none; }
    .file-remove { visibility: hidden; width: 28px; height: 28px; border: 0; border-radius: 8px; background: transparent; color: #8A8594; font-size: 18px; }
    .file-remove:hover { background: #F2F0F5; color: var(--danger); }
    .upload-item.uploaded .file-remove { visibility: visible; }

    .next-btn:disabled { opacity: 1; }

    @media (max-width: 920px) {
      .review-shell { overflow: hidden; }
      .review-body { grid-template-columns: minmax(0, 1fr); }
      .review-top { display: grid; grid-template-columns: 1fr auto; align-items: start; overflow: visible; }
      .summary-card { position: static; }
      .summary-panel { order: 0; }
    }
    @media (max-width: 640px) {
      .task-select-hero { padding-top: 42px; }
      .review-top { grid-template-columns: 1fr; grid-template-areas: "title" "steps" "back"; padding: 22px 18px; }
      .review-back { justify-self: start; }
      .steps { min-width: 0; }
      .step b { font-size: 11px; }
      .step:not(:last-child)::after { right: 4px; }
      .stage-heading-row, .upload-section-head { flex-direction: column; align-items: stretch; }
      .selection-state { align-self: flex-start; margin-top: 0; }
      .application-card { padding: 17px; }
      .upload-item { grid-template-columns: minmax(0, 1fr) 96px 24px; padding: 13px 10px 13px 13px; }
      .upload-note, .file-name { margin-left: 0; }
      .upload-title-line { flex-wrap: wrap; }
      .group-toggle-meta i { display: none; }
    }


    /* 비목별 산출내역 예시 및 항목별 다중첨부 */
    .upload-item {
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: start;
    }
    .upload-actions {
      width: 128px;
      display: grid;
      gap: 8px;
    }
    .upload-actions.with-template {
      width: 268px;
      grid-template-columns: 128px 132px;
    }
    .template-download {
      min-height: 48px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0 13px;
      border: 1px solid var(--brand);
      border-radius: 10px;
      background: var(--brand-soft);
      color: var(--brand);
      font-size: 12px;
      font-weight: 900;
      text-decoration: none;
      white-space: nowrap;
    }
    .template-download:hover {
      background: var(--brand);
      color: #fff;
    }
    .template-download:focus-visible {
      outline: 3px solid rgba(65, 34, 195, .2);
      outline-offset: 2px;
    }
    .dropzone { min-height: 48px; }
    .file-name {
      display: grid;
      gap: 6px;
      margin: 9px 0 0 27px;
      color: inherit;
      font-weight: 500;
    }
    .attached-file {
      min-width: 0;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto auto;
      align-items: center;
      gap: 8px;
      padding: 7px 9px;
      border: 1px solid #DCEBE5;
      border-radius: 8px;
      background: #F8FFFB;
    }
    .attached-file-name {
      min-width: 0;
      overflow: hidden;
      color: var(--success);
      font-size: 12px;
      font-weight: 800;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .attached-file-size {
      color: var(--muted);
      font-size: 11px;
      white-space: nowrap;
    }
    .attached-file-remove {
      width: 24px;
      height: 24px;
      border: 0;
      border-radius: 6px;
      background: transparent;
      color: #8A8594;
      font-size: 16px;
      line-height: 1;
    }
    .attached-file-remove:hover { background: #F2F0F5; color: var(--danger); }
    .upload-item.uploaded .upload-icon { display: inline; }
    @media (max-width: 640px) {
      .upload-item { grid-template-columns: minmax(0, 1fr); }
      .upload-actions,
      .upload-actions.with-template {
        width: 100%;
      }
      .upload-actions.with-template {
        grid-template-columns: minmax(0, 1fr) minmax(118px, .7fr);
      }
      .file-name { margin-left: 0; }
      .attached-file { grid-template-columns: minmax(0, 1fr) auto; }
      .attached-file-size { display: none; }
    }
