  :root{
    --ink:#111111; --ink2:#2b2b2b; --mute:#8a8a8a; --line:#e3e3e3; --line2:#efefef;
    --acc:#111111; --sub:#8a8a8a; --ivory:#f4f4f4; --card:#ffffff; --bg:#fafafa;
    --rad:12px;
    --fs: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Malgun Gothic', 'Noto Sans KR', sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  header{padding-top:env(safe-area-inset-top)}
  footer{padding-bottom:calc(40px + env(safe-area-inset-bottom))}
  html{scroll-behavior:smooth}
  body{font-family:var(--fs);background:var(--bg);color:var(--ink2);line-height:1.6;-webkit-font-smoothing:antialiased}

  /* ── 상단바 ── */
  header{position:sticky;top:0;z-index:50;background:var(--ink);color:#fff}
  .bar{max-width:1560px;margin:0 auto;padding:0 16px;height:60px;display:flex;align-items:center;gap:18px}
  .brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#fff;flex:0 0 auto}
  .brand a{display:flex;align-items:center;text-decoration:none;color:inherit}
  .brand img{height:21px;width:auto;display:block}
  .brand span{font-size:12px;color:#a8a8a8;letter-spacing:.12em;font-weight:700;padding-left:11px;border-left:1px solid #3a3a3a;line-height:1}
  nav{display:flex;gap:2px;margin-left:auto;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  nav::-webkit-scrollbar{display:none}
  nav a{color:#cfcfcf;text-decoration:none;font-size:14px;font-weight:600;padding:8px 11px;border-radius:7px;white-space:nowrap}
  nav a:hover{color:#fff;background:#2a2a2a}
  nav a.on{color:var(--ink);background:#fff}
  .searchbtn{flex:0 0 auto;background:#242424;border:1px solid #3c3c3c;color:#cfcfcf;width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center}
  .searchbtn:hover{background:#333;color:#fff}
  .menubtn{display:none}

  /* ── 본문 틀 ── */
  main{max-width:1560px;margin:0 auto;padding:28px 16px 80px}
  /* 읽는 화면(손익계산서·명세서)은 너무 넓으면 눈이 피로해서 따로 묶어 둔다 */
  .읽기폭{max-width:1080px}
  .view{display:none}
  .view.on{display:block;animation:fade .18s ease}
  @keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

  .page-h{margin-bottom:22px}
  .eyebrow{font-size:11px;letter-spacing:.28em;color:var(--sub);font-weight:800;margin-bottom:7px}
  h1{font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1.25}
  .lead{margin-top:9px;color:var(--mute);font-size:15px;max-width:60ch}

  h2{font-size:20px;font-weight:800;color:var(--ink);letter-spacing:-.02em;margin:34px 0 12px;padding-bottom:7px;border-bottom:2px solid var(--ink)}
  h2:first-of-type{margin-top:8px}
  h3{font-size:16px;font-weight:800;color:var(--ink);margin:22px 0 9px}

  p{margin-bottom:10px}
  ul{list-style:none;margin-bottom:12px}
  li{position:relative;padding-left:15px;margin-bottom:6px;font-size:15px}
  li::before{content:'';position:absolute;left:2px;top:10px;width:4px;height:4px;border-radius:50%;background:var(--ink)}

  /* ── 카드 그리드 (홈) ── */
  .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  .card{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:20px 18px;text-decoration:none;color:inherit;display:block;transition:.15s}
  .card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.08)}
  .card .ic{width:34px;height:34px;border-radius:9px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;margin-bottom:11px}
  .card b{display:block;font-size:16px;color:var(--ink);margin-bottom:4px}
  .card small{color:var(--mute);font-size:13.5px;line-height:1.5;display:block}
  .card.lk{background:var(--ink);border-color:var(--ink);grid-column:1/-1;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
  .card.lk .ic{margin-bottom:0;flex:none}
  .card.lk b{margin-bottom:2px}
  .card.lk .ic{background:#fff;color:var(--ink);font-size:16px}
  .card.lk b{color:#fff}
  .card.lk small{color:rgba(255,255,255,.62)}
  .card.lk:hover{box-shadow:0 8px 22px rgba(0,0,0,.22)}

  /* ── 표 ── */
  .tw{overflow-x:auto;margin-bottom:14px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
  table{width:100%;border-collapse:collapse;min-width:420px}
  th{background:var(--ink);color:#f2f2f2;font-size:13.5px;font-weight:800;text-align:left;padding:10px 13px;white-space:nowrap}
  td{padding:10px 13px;font-size:14.5px;border-bottom:1px solid var(--line2);vertical-align:top}
  tr:last-child td{border-bottom:none}
  td.k{font-weight:700;color:var(--ink);white-space:nowrap;background:var(--ivory)}

  /* ── 박스 ── */
  .why{background:var(--card);border-left:4px solid var(--ink);border-radius:0 10px 10px 0;padding:14px 16px;margin:14px 0;font-size:14.5px;color:#4a4438}
  .why b{color:var(--ink)}
  .why .t{display:block;font-weight:800;color:var(--ink);margin-bottom:5px;font-size:13px;letter-spacing:.06em}
  .dark{background:var(--ink);color:#d8d8d8;border-radius:11px;padding:20px 22px;margin:16px 0}
  .dark .t{color:#fff;font-weight:800;font-size:18px;margin-bottom:8px}
  .dark b{color:#fff}
  .dark p{color:#d8d8d8}
  .dark li{font-size:14.5px}
  .dark li::before{background:#fff}

  /* ── 탭 ── */
  .tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:2px}
  .tabs button{border:1px solid var(--line);background:var(--card);color:var(--ink2);font-family:inherit;font-size:13.5px;font-weight:700;padding:7px 13px;border-radius:999px;cursor:pointer}
  .tabs button:hover{border-color:var(--ink)}
  .tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
  .tabview{display:none}
  .tabview.on{display:block}

  /* ── 체크리스트 ── */
  .chk{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:6px 16px 12px;margin-bottom:14px}
  .chk .hd{font-weight:800;color:var(--ink);font-size:15px;padding:11px 0 9px;border-bottom:1px solid var(--line2);margin-bottom:8px}
  .chk label{display:flex;gap:10px;align-items:flex-start;padding:6px 0;font-size:14.5px;cursor:pointer}
  .chk input{margin-top:4px;width:16px;height:16px;accent-color:var(--ink);flex:0 0 auto}
  .chk input:checked + span{color:var(--mute);text-decoration:line-through}

  /* ── 타임라인 ── */
  .tl{border-left:2px solid var(--line);padding-left:20px;margin-left:6px}
  .tl .it{position:relative;padding-bottom:22px}
  .tl .it::before{content:'';position:absolute;left:-26px;top:5px;width:11px;height:11px;border-radius:50%;background:var(--ink);border:2px solid var(--bg)}
  .tl .it b{display:block;font-size:16px;color:var(--ink);margin-bottom:4px}
  .tl .it .w{font-size:12px;letter-spacing:.1em;color:var(--sub);font-weight:800;margin-bottom:3px}

  /* ── 서식 목록 ── */
  .flist{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
  .frow{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:13px 15px;text-decoration:none;color:inherit}
  .frow:hover{border-color:var(--ink)}
  .frow .n{flex:0 0 26px;height:26px;border-radius:6px;background:var(--ivory);color:var(--ink);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}
  .frow .tx b{display:block;font-size:14.5px;color:var(--ink)}
  .frow .tx small{color:var(--mute);font-size:12.5px}
  .frow .go{margin-left:auto;color:var(--ink);font-size:13px;font-weight:800;white-space:nowrap}

  /* ── 외부 링크 카드 ── */
  .ext{display:flex;gap:14px;align-items:center;background:var(--ink);color:#fff;border-radius:12px;padding:20px 22px;text-decoration:none;margin-bottom:12px}
  .ext:hover{background:#262626}
  .ext .tx b{display:block;font-size:17px;color:#fff;margin-bottom:3px}
  .ext .tx small{color:#b0b0b0;font-size:13.5px}
  .ext .ar{margin-left:auto;color:#fff;font-size:20px}

  /* ── 공지 ── */
  .nt{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:12px}
  .nt .d{font-size:12px;color:var(--sub);font-weight:800;letter-spacing:.08em;margin-bottom:5px}
  .nt b{display:block;font-size:16px;color:var(--ink);margin-bottom:6px}
  .nt p{font-size:14.5px;color:#4a4438;margin:0}
  .tag{display:inline-block;background:var(--ink);color:#fff;font-size:11px;font-weight:800;letter-spacing:.08em;padding:3px 8px;border-radius:5px;margin-left:7px;vertical-align:2px}

  /* ── 검색 ── */
  .ov{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:100;display:none;padding:70px 20px 20px}
  .ov.on{display:block}
  .sbox{max-width:640px;margin:0 auto;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.28)}
  .sbox input{width:100%;border:none;outline:none;font-family:inherit;font-size:17px;padding:18px 20px;border-bottom:1px solid var(--line)}
  .sres{max-height:60vh;overflow-y:auto}
  .sres a{display:block;padding:13px 20px;text-decoration:none;color:inherit;border-bottom:1px solid var(--line2)}
  .sres a:hover{background:var(--ivory)}
  .sres .c{font-size:11.5px;color:var(--sub);font-weight:800;letter-spacing:.08em;margin-bottom:3px}
  .sres .t{font-size:15px;color:var(--ink);font-weight:700;margin-bottom:2px}
  .sres .s{font-size:13px;color:var(--mute);line-height:1.45}
  .sres mark{background:var(--ink);color:#fff;padding:0 2px;border-radius:2px}
  .sempty{padding:26px 20px;text-align:center;color:var(--mute);font-size:14px}

  footer{border-top:1px solid var(--line);margin-top:50px;padding:22px 20px 40px;text-align:center}
  footer .flogo{height:40px;width:auto;opacity:.72;margin:0 auto 4px;display:block}
  footer .fs{font-size:12.5px;color:var(--mute);margin-top:7px}

  /* ── 커리큘럼 표 ── */
  .tw td .sub{display:block;font-size:12px;color:var(--mute);font-weight:400;line-height:1.45;margin-top:2px}
  .tg{display:inline-block;background:var(--ink);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.06em;padding:2px 6px;border-radius:5px;margin-left:5px;vertical-align:middle}

  /* ── 내신평가 위젯 ── */
  .ev{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:14px}
  .ev .row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}
  .ev .row + .row{margin-bottom:14px}
  .ev .fld{flex:1 1 90px;min-width:0}
  .ev .fld label{display:block;font-size:11.5px;font-weight:800;letter-spacing:.08em;color:var(--sub);margin-bottom:5px}
  .ev select{width:100%;font-family:inherit;font-size:14.5px;font-weight:600;color:var(--ink);padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}
  .ev select:focus{outline:none;border-color:var(--ink)}
  .ev .now{font-size:12.5px;color:var(--mute);margin-bottom:14px}
  .ev .now b{color:var(--ink)}
  .crew{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
  .crew .c{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:13px 15px;background:#fff}
  .crew .c .nm{font-size:15.5px;font-weight:700;color:var(--ink)}
  .crew .c .bd{margin-left:auto;display:flex;align-items:center;gap:9px}
  .crew .c .done{font-size:12.5px;font-weight:800;color:var(--mute);letter-spacing:.04em;white-space:nowrap}
  .crew .c.ok{background:var(--ivory);border-color:var(--line2)}
  .crew .c.ok .nm{color:var(--mute)}
  .gobtn{background:var(--ink);color:#fff;border:none;font-family:inherit;font-size:13.5px;font-weight:800;padding:9px 15px;border-radius:8px;cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-block}
  .gobtn:hover{background:#333}
  .gobtn.re{background:#fff;color:var(--ink);border:1px solid var(--line)}
  .gobtn.re:hover{background:var(--ivory)}
  .ev .msg{padding:22px 4px;text-align:center;color:var(--mute);font-size:14px}
  .ev .err{background:#fff4f4;border:1px solid #f0d4d4;border-radius:9px;padding:14px 16px;font-size:14px;color:#8a3b3b}
  .ev .err b{color:#6d2a2a;display:block;margin-bottom:4px}
  .ev .bar2{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}
  .ev .bar2[hidden]{display:none}
  /* ── 전체 제출 현황 표 ── */
  .st table{min-width:520px}
  .st th{text-align:center}
  .st th.l{text-align:left}
  .st td{text-align:center;padding:9px 8px;font-size:14px;white-space:nowrap}
  .st td.nm{text-align:left;font-weight:700;color:var(--ink);background:var(--ivory)}
  .st td.br{text-align:left;font-size:12.5px;color:var(--mute);background:var(--ivory)}
  .st tr.me td{background:#fffbe6}
  .st tr.me td.nm,.st tr.me td.br{background:#fff5cc}
  .st tr.me td.nm::after{content:' ◂ 나';font-size:11.5px;color:var(--mute);font-weight:700}
  .st .p{display:inline-block;min-width:38px;padding:3px 7px;border-radius:6px;font-size:12.5px;font-weight:800;line-height:1.5}
  .st .p.full{background:var(--ink);color:#fff}
  .st .p.part{background:#fff;color:var(--ink);border:1px solid var(--ink)}
  .st .p.none{background:#fff;color:#b23b3b;border:1px solid #e6c4c4}
  .st .p.na{color:var(--mute);font-weight:600}
  .st .lg{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12.5px;color:var(--mute);align-items:center}
  .st .lg span.p{margin-right:5px}
  .ev .sum{font-size:13.5px;color:var(--mute)}
  .ev .sum b{color:var(--ink)}
  @media(max-width:640px){ .crew{grid-template-columns:1fr} }
  .hl{animation:hl 1.6s ease}
  @keyframes hl{0%,60%{background:#ececec}100%{background:transparent}}

  @media(max-width:820px){
    .grid{grid-template-columns:repeat(2,1fr)}
    .flist{grid-template-columns:1fr}
  }
  @media(max-width:640px){
    .bar{height:56px;gap:10px}
    .brand img{height:19px}
    .brand span{display:none}
    .brand a+a{display:none}
    nav{position:fixed;top:56px;left:0;right:0;background:var(--ink);flex-direction:column;padding:8px 14px 16px;gap:2px;display:none;border-top:1px solid #303030;max-height:calc(100vh - 56px);overflow-y:auto}
    nav.open{display:flex}
    nav a{padding:11px 12px;font-size:15px}
    .menubtn{display:flex;align-items:center;justify-content:center;margin-left:auto;background:#242424;border:1px solid #3c3c3c;color:#fff;width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:16px}
    main{padding:22px 10px 60px}
    h1{font-size:24px}
    h2{font-size:18px}
    .grid{grid-template-columns:1fr}
    .ov{padding:16px}
  }

  /* ── 급여·손익 전용 ── */
  @media(max-width:820px){
    nav{position:static;display:flex;flex-direction:row;padding:0;border-top:none;max-height:none;overflow:visible;margin-left:auto}
    nav a{padding:8px 11px;font-size:14px}
    .brand a+a{display:inline-flex}
    .brand span{display:inline}
  }
  .gate{max-width:420px;margin:56px auto;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:30px 26px;text-align:center}
  .gate h3{font-size:17px;font-weight:800;color:var(--ink);margin-bottom:8px}
  .gate p{font-size:13.5px;color:var(--mute);line-height:1.7;margin-bottom:18px}
  .gate input{width:100%;font-family:inherit;font-size:17px;text-align:center;color:var(--ink);padding:13px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}
  .gate input:focus{outline:none;border-color:var(--ink)}
  .gate button{width:100%;margin-top:11px;background:var(--ink);color:#fff;border:none;font-family:inherit;font-size:15px;font-weight:800;padding:13px;border-radius:9px;cursor:pointer}
  .gate .no{margin-top:12px;margin-bottom:0;color:#b23b3b;font-size:13.5px;min-height:19px}

  .bar3{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}
  .bar3 .f{flex:0 0 auto}
  .bar3 label{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--sub);margin-bottom:4px}
  .bar3 select{font-family:inherit;font-size:14.5px;font-weight:700;color:var(--ink);padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}
  .bar3 .sp{flex:1 1 auto}
  .bar3 .now{font-size:12.5px;color:var(--mute);align-self:center}

  .htabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto;scrollbar-width:none}
  .htabs::-webkit-scrollbar{display:none}
  .htabs button{background:none;border:none;border-radius:0;border-bottom:2px solid transparent;font-family:inherit;font-size:14.5px;font-weight:700;color:var(--mute);padding:11px 12px;cursor:pointer;white-space:nowrap}
  .htabs button.on{background:none;color:var(--ink);border-bottom-color:var(--ink)}
  .pane{display:none}
  .pane.on{display:block}

  .kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}
  .kpi>div{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 15px}
  .kpi .k{font-size:11.5px;font-weight:800;letter-spacing:.06em;color:var(--sub);margin-bottom:6px}
  .kpi .v{font-size:19px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
  .kpi .v.minus{color:#b23b3b}
  @media(max-width:760px){ .kpi{grid-template-columns:repeat(2,1fr)} }

  .pl{overflow-x:auto;max-width:1080px}   /* 폰에서 화면 밖으로 안 나가게 + 넓은 화면에서 너무 벌어지지 않게 */
  .pl table{width:100%;border-collapse:collapse;font-size:14px}
  .pl th{background:var(--ivory);color:var(--ink);text-align:left;padding:9px 11px;font-size:12.5px;font-weight:800;letter-spacing:.04em}
  .pl td{border-top:1px solid var(--line2);padding:9px 11px;font-variant-numeric:tabular-nums}
  .pl td.n{text-align:right;white-space:nowrap}
  .pl tr.sum td{font-weight:800;background:#fafafa;border-top:1px solid var(--line)}
  .pl tr.big td{font-weight:800;font-size:15px;background:var(--ivory)}
  .pl .gap td{padding:0;height:10px;border:none;background:none}

  /* 좁은 폰 — 손익계산서 표가 한 화면에 들어오도록 여백·글씨를 줄인다 */
  @media(max-width:430px){
    .pl table{font-size:13px}
    .pl th{padding:8px 6px;font-size:11.5px;letter-spacing:0}
    .pl td{padding:8px 6px}
    .pl tr.big td{font-size:13.5px}
  }
  .pl .over{color:#b23b3b;font-weight:700}
  .pl .under{color:#2c7a4b;font-weight:700}

  .gtab{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:#fff}
  .gtab table{border-collapse:collapse;font-size:13.5px;min-width:100%}
  .gtab th{background:#f1efea;color:var(--ink);padding:7px 6px;font-size:12px;font-weight:800;white-space:nowrap;text-align:left;position:sticky;top:0}
  .gtab td{border-top:1px solid var(--line2);padding:4px 4px;white-space:nowrap}
  .gtab input,.gtab select{font-family:inherit;font-size:13.5px;color:var(--ink);padding:6px 6px;border:1px solid var(--line2);border-radius:6px;background:#fff;min-width:68px;max-width:100%}
  .gtab input:focus,.gtab select:focus{outline:none;border-color:var(--ink)}
  .gtab input.num{text-align:right;font-variant-numeric:tabular-nums}
  .gtab .del{border:1px solid var(--line);background:#fff;color:#b23b3b;font-family:inherit;font-size:12.5px;font-weight:700;padding:5px 9px;border-radius:6px;cursor:pointer}
  .gtab tr.dirty td{background:#fffbe6}

  .rowform{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:14px}
  .rowform .grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
  .rowform .f label{display:block;font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--sub);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rowform .f input,.rowform .f select{width:100%;font-family:inherit;font-size:14px;color:var(--ink);padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:#fff}
  .rowform .f input.num{text-align:right;font-variant-numeric:tabular-nums}
  .rowform .f input:focus,.rowform .f select:focus{outline:none;border-color:var(--ink)}

  /* 급여 입력 — 묶음 카드 */
  .psec{border:1px solid var(--line);border-radius:10px;padding:13px 14px 12px;margin:0 0 12px;background:#fff}
  .psec h4{margin:0 0 10px;font-size:13px;font-weight:800;letter-spacing:-.01em;display:flex;align-items:baseline;gap:8px}
  .psec h4 span{font-size:11px;font-weight:600;letter-spacing:0;color:var(--sub)}
  .psec .g{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:9px 10px;align-items:start}
  .psec .c{min-width:0}
  .psec .c label{display:block;font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--sub);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .psec .c input,.psec .c select{width:100%;box-sizing:border-box;font-family:inherit;font-size:14px;color:var(--ink);padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:#fff}
  .psec .c input.num{text-align:right;font-variant-numeric:tabular-nums}
  .psec .c input:focus,.psec .c select:focus{outline:none;border-color:var(--ink)}
  .psec .c input.memo{margin-top:6px;font-size:12.5px;padding:6px 8px;text-align:left;color:var(--sub);background:rgba(255,255,255,.75)}
  .psec .c .memo.none{display:block;height:0}
  .psec.sale{background:#f6f8fa;border-color:#d3dde5}
  .psec.sale h4{color:#2b4a63}
  .psec.sale2{background:#f6f8fa;border-color:#d3dde5}
  .psec.sale2 h4{color:#2b4a63}
  .psec.pay{background:#f1f7f4;border-color:#bcd8cd}
  .psec.pay h4{color:#1F6050}
  .psec.pay .c input{border-color:#cfe1d9}
  .psec.ded{background:#fcf3f2;border-color:#e6c4c0}
  .psec.ded h4{color:#A6322A}
  .psec.ded .c input{border-color:#eed3d0}
  @media(max-width:700px){ .psec .g{grid-template-columns:repeat(2,minmax(0,1fr))} }
  @media(max-width:440px){ .psec .g{grid-template-columns:1fr} }
  .psec .c .hint{display:block;font-size:11px;color:var(--sub);margin-top:4px;line-height:1.35}
  .psec .c.ro input{background:#efeeea;color:var(--ink);font-weight:800;cursor:default}
  .slip .see{margin-left:10px;flex:none}
  .peek[hidden]{display:none!important}
  .peek{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:90;display:flex;align-items:center;justify-content:center;padding:18px}
  .peekbox{background:#fff;border-radius:12px;width:min(820px,100%);height:min(88vh,1000px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.3)}
  .peekbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line);background:#faf9f7}
  .peekbar b{font-size:14px}
  .peekbody{flex:1;overflow:auto;background:#eceae6}
  .peekbody iframe{display:block;width:100%;height:100%;border:0;background:#fff}
  .buyrow{display:grid;grid-template-columns:2fr 1fr 1.4fr auto;gap:10px;align-items:end;
          padding:9px 0;border-top:1px solid #efdcd9}
  .buyrow:first-of-type{border-top:none}
  .buyrow .c label{display:block;font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--sub);margin-bottom:4px}
  .buyrow .c input{width:100%;box-sizing:border-box;font-family:inherit;font-size:14px;color:var(--ink);
          padding:8px 9px;border:1px solid #eed3d0;border-radius:7px;background:#fff}
  .buyrow .c input.num{text-align:right;font-variant-numeric:tabular-nums}
  .buyrow .c .hint{display:block;font-size:11px;color:var(--sub);margin-top:4px}
  .buyrow .del{align-self:end;margin-bottom:2px}
  @media(max-width:620px){ .buyrow{grid-template-columns:1fr 1fr;gap:8px} .buyrow .del{grid-column:1/-1;justify-self:start} }
  .pl .ed{font-size:11px;padding:2px 7px;margin-left:7px;vertical-align:1px}
  .plbox{border:1px solid var(--ink);border-radius:11px;padding:14px 15px;margin:16px 0;background:#fff}
  .plh{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
  .plh b{font-size:15px}
  .plh .note2{flex:1}
  .plbox .eadd{background:#faf9f7}
  .eadd input.ro{background:#efeeea;font-weight:800}
  .pct{display:inline-flex;align-items:center;gap:3px}
  .pct input{width:76px}
  .pct i{font-style:normal;font-size:12.5px;font-weight:800;color:var(--sub)}
  .bprow{display:flex;gap:8px;align-items:flex-end;margin-bottom:9px;flex-wrap:wrap}
  .bprow .c{flex:1 1 220px;min-width:0}
  .bprow label{display:block;font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--sub);margin-bottom:4px}
  .bprow label .lk{color:#A6322A;margin-left:5px}
  .bprow label .ul{color:#1F6050;margin-left:5px}
  .bprow input{width:100%;box-sizing:border-box;font-family:inherit;font-size:14px;color:var(--ink);
       padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:#fff}
  .bprow input:focus{outline:none;border-color:var(--ink)}
  /* 지출 — 한 줄 입력 + 아래 누적 표 */
  .eadd{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;background:#faf9f7;border:1px solid var(--line);
        border-radius:10px;padding:11px 12px}
  .eadd .c{min-width:0}
  .eadd label{display:block;font-size:10.5px;font-weight:800;letter-spacing:.04em;color:var(--sub);margin-bottom:3px;white-space:nowrap}
  .eadd input,.eadd select{width:100%;box-sizing:border-box;font-family:inherit;font-size:13.5px;color:var(--ink);
        padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:#fff}
  .eadd input.num{text-align:right;font-variant-numeric:tabular-nums}
  .eadd input.ro{background:#efeeea;font-weight:800}
  .eadd input:focus,.eadd select:focus{outline:none;border-color:var(--ink)}
  .eadd .go{flex:0 0 auto;padding:8px 14px;font-size:13.5px;white-space:nowrap}
  .etab table{font-size:13px}
  .etab th{padding:6px 6px;font-size:11.5px}
  .etab td{padding:5px 6px;white-space:nowrap}
  .etab input,.etab select{font-family:inherit;font-size:13px;color:var(--ink);padding:5px 6px;
        border:1px solid var(--line);border-radius:6px;background:#fff;max-width:100%}
  .etab input.num{text-align:right;font-variant-numeric:tabular-nums}
  .etab td:nth-child(1) input{width:42px}
  .etab td:nth-child(3) input{width:90px}
  .etab td:nth-child(4) input{width:130px}
  .etab td:nth-child(5) input{width:52px}
  .etab td.amt{text-align:right;font-variant-numeric:tabular-nums}
  .etab td.unit{text-align:right;font-variant-numeric:tabular-nums;color:var(--sub);background:#faf9f7}
  .etab td:nth-child(7) input{width:78px}
  .etab td:nth-child(9) input{width:110px}
  .etab tr.sum td{background:#faf9f7;border-top:1px solid var(--line);font-weight:800}
  .etab tr.sum .q{font-weight:500;font-size:11.5px;color:var(--sub);margin-left:5px}
  .etab tr.dirty td{background:#fffdf4}
  @media(max-width:560px){ .eadd .c{flex:1 1 46%!important} .eadd .go{flex:1 1 100%} }
  .psec.trow{position:relative;padding-right:74px}
  .psec.trow h4{margin-bottom:9px}
  .psec.trow .rowdel{position:absolute;top:11px;right:12px}
  .psec.trow.dirty{border-color:var(--ink);box-shadow:0 0 0 2px rgba(0,0,0,.05)}
  .psec .c input[list]{background:#fff}
  @media(max-width:520px){ .psec.trow{padding-right:14px} .psec.trow .rowdel{position:static;margin-bottom:8px} }
  /* 급여계산서 */
  .cs{display:block}
  .cs-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}
  .cs-b{border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}
  .cs-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:9px 12px;font-size:12px;font-weight:800;letter-spacing:.03em;background:#f6f5f2;border-bottom:1px solid var(--line)}
  .cs-h b{font-variant-numeric:tabular-nums;font-size:13.5px}
  .cs-t{width:100%;border-collapse:collapse;font-size:13px}
  .cs-t td{padding:6px 12px;border-top:1px solid #f0efec;vertical-align:top}
  .cs-t tr:first-child td{border-top:none}
  .cs-t td.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;width:1%}
  .cs-t td.f{font-size:11.5px;color:var(--sub);white-space:nowrap;width:1%;text-align:right}
  .cs-t.memo td.f{white-space:normal;width:auto;max-width:9em;text-align:left}
  .cs-t tr.sum td{border-top:1px solid var(--line);font-weight:800;background:#faf9f7}
  .cs-t .q{font-weight:500;font-size:11px;color:var(--sub);margin-left:5px}
  .cs-b.pay{background:#f1f7f4;border-color:#bcd8cd}
  .cs-b.pay .cs-h{background:#e4f0ea;border-color:#bcd8cd;color:#1F6050}
  .cs-b.pay .cs-t td{border-color:#dbe9e2}
  .cs-b.ded{background:#fcf3f2;border-color:#e6c4c0}
  .cs-b.ded .cs-h{background:#f8e7e4;border-color:#e6c4c0;color:#A6322A}
  .cs-b.ded .cs-t td{border-color:#f0dcd9}
  .cs-rate{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 14px;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}
  .cs-rate div{display:flex;justify-content:space-between;gap:8px;font-size:12.5px}
  .cs-rate span{color:var(--sub)}
  .cs-rate b{font-variant-numeric:tabular-nums}
  .cs-tot{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 14px;border-radius:9px;background:var(--ink);color:#fff;font-size:15px;font-weight:800}
  .cs-tot b{font-size:19px;font-variant-numeric:tabular-nums}
  @media(max-width:760px){ .cs-row{grid-template-columns:1fr} }
  .calc{background:var(--ivory);border-radius:10px;padding:14px 16px;margin-top:12px}
  .calc .line{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:4px 0}
  .calc .line b{font-variant-numeric:tabular-nums}
  .calc .line.tot{border-top:1px solid var(--line);margin-top:6px;padding-top:9px;font-weight:800;font-size:15.5px}

  .go{background:var(--ink);color:#fff;border:none;font-family:inherit;font-size:15px;font-weight:800;padding:12px 20px;border-radius:9px;cursor:pointer}
  .ghost{background:#fff;color:var(--ink);border:1px solid var(--line);font-family:inherit;font-size:14px;font-weight:700;padding:10px 15px;border-radius:8px;cursor:pointer}
  .ghost.dang{color:#b23b3b;border-color:#e6c4c4}
  .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;align-items:center}
  .msg2{padding:12px 14px;border-radius:9px;font-size:14px;margin-top:12px;line-height:1.7}
  .msg2.ok{background:var(--ivory);color:var(--ink)}
  .msg2.no{background:#fff4f4;color:#8a3b3b;border:1px solid #f0d4d4}
  .asave{margin-left:10px;font-size:12px;color:#7b7b76}
  .rowbtn{white-space:nowrap}
  .pl tr.zero td{color:#aeaea8}
  .pl tr.edrow>td{padding:0;background:#faf9f7}
  .pl tr.edrow .plbox{margin:0;border-radius:0;border-left:0;border-right:0}
  .pl tr.zero .ed{opacity:.55}
  .rowbtn .ghost{padding:5px 9px;font-size:12px;margin-right:5px}
  .note2{font-size:12.5px;color:var(--mute);line-height:1.7}

  .slip{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;padding:10px 13px;margin-bottom:7px;background:#fff}
  .slip input[type=checkbox]{width:17px;height:17px;accent-color:#111;flex:0 0 auto}
  .slip .nm{font-weight:700;color:var(--ink);font-size:14.5px}
  .slip .sub{font-size:12.5px;color:var(--mute)}
  .slip .amt{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:800;color:var(--ink)}

  .chart{width:100%;height:240px;display:block}
  .tlg{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--mute);margin-top:8px}
  .tlg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:middle}

/* ══ 핸드SOS 엑셀 올리기 ══ */
.sosbox{border:1px solid var(--line);border-radius:10px;background:var(--card);margin-bottom:16px}
.sosbox>summary{cursor:pointer;padding:12px 14px;font-weight:800;font-size:14.5px;list-style:none}
.sosbox>summary::-webkit-details-marker{display:none}
.sosbox>summary::before{content:'＋ ';color:var(--mute)}
.sosbox[open]>summary::before{content:'－ '}
.sosin{padding:0 14px 14px}
.sosrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
.sosrow label{font-size:13.5px;font-weight:700;min-width:210px}
table.sost th,table.sost td{font-size:12.5px;padding:6px 7px;white-space:nowrap}
table.sost td.n{text-align:right;font-variant-numeric:tabular-nums}
table.sost tr.skip{background:#fdf0f0}
table.sost select{font-family:inherit;font-size:12.5px;padding:3px 5px;border:1px solid var(--line);border-radius:6px}
