/* 등록자동화 화면. 색·크기는 docs/화면-시안.html(D6 승인)을 따른다. 폰 가로 375px 기준 */
:root{
  --leaf:#234B37; --leaf-2:#2F6247; --leaf-soft:#E6EEE8;
  --bg:#F3F5F2; --card:#FFFFFF; --ink:#1C221E; --mute:#69716B; --line:#E1E6E1;
  --ask:#B7791F; --ask-soft:#FCF1DC;   /* 질문 대기 */
  --wait:#2F5FA8; --wait-soft:#E5EDF8; /* 확인 대기 */
  --err:#B83A2E; --err-soft:#F8E4E1;
  --ok:#2F7A4A; --ok-soft:#E3F2E8;
  --x:#C2410C;   /* 대조 표시 X(근거와 다름) */
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none !important}
html,body{background:var(--bg)}
body{font-family:"Noto Sans KR","Malgun Gothic","Apple SD Gothic Neo",sans-serif;color:var(--ink);
  -webkit-font-smoothing:antialiased;word-break:keep-all;font-size:15px;line-height:1.45}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
.page{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}
.bar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;
  padding:14px 18px 10px;background:var(--card);border-bottom:1px solid var(--line)}
.brand{font-family:"Grandiflora One",Georgia,serif;font-size:21px;color:var(--leaf);-webkit-text-stroke:.5px currentColor}
.bar .who{font-size:12.5px;color:var(--mute)}
.title{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;padding:14px 18px 10px;
  background:var(--card);border-bottom:1px solid var(--line)}
.title b{font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.title .back{font-size:22px;color:var(--mute);padding:0 4px}
.body{flex:1;padding:14px 14px 96px}
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:5;max-width:480px;margin:0 auto;display:grid;
  grid-auto-flow:column;grid-auto-columns:1fr;background:var(--card);border-top:1px solid var(--line);
  padding:6px 0 calc(10px + env(safe-area-inset-bottom))}
.tabs a,.tabs button{text-align:center;font-size:11.5px;color:var(--mute)}
.tabs button{background:none;border:0;padding:0;cursor:pointer}
.tabs a i,.tabs button i{display:block;font-style:normal;font-size:19px;line-height:1.3}
.tabs .on{color:var(--leaf);font-weight:700}
.sticky{position:sticky;bottom:calc(64px + env(safe-area-inset-bottom));padding:10px 0 14px;background:linear-gradient(transparent,var(--bg) 30%)}
.btn{display:block;width:100%;padding:14px;border:0;border-radius:12px;background:var(--leaf);color:#fff;
  font-weight:700;font-size:16px;text-align:center;cursor:pointer}
.btn.ghost{background:var(--card);color:var(--leaf);border:1.5px solid var(--leaf)}
.btn.small{padding:10px;font-size:14px}
.btn:disabled{background:#B9C2BC;cursor:default}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.card{background:var(--card);border-radius:14px;padding:14px;margin-bottom:10px}
.lbl{display:block;font-size:12.5px;font-weight:700;color:var(--mute);margin-bottom:6px}
.field{display:block;width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:16px;background:#fff}
.field:focus{outline:2px solid var(--leaf-soft);border-color:var(--leaf)}
.hint{font-size:12px;color:var(--mute);margin-top:6px;line-height:1.5}
.chip{display:inline-block;padding:3px 9px;border-radius:20px;font-size:12px;font-weight:700;white-space:nowrap}
.c-asking{background:var(--ask-soft);color:var(--ask)} .c-review{background:var(--wait-soft);color:var(--wait)}
.c-error,.c-stopped{background:var(--err-soft);color:var(--err)} .c-done{background:var(--ok-soft);color:var(--ok)}
.c-running,.c-queued,.c-registering,.c-draft{background:var(--leaf-soft);color:var(--leaf)} .c-gray{background:#ECEEEC;color:#5f665f}
.errors{background:var(--err-soft);color:var(--err);border-radius:12px;padding:12px 14px;margin-bottom:10px;font-size:14px}
.errors li{margin-left:18px}
.notice{background:var(--leaf-soft);color:var(--leaf);border-radius:12px;padding:12px 14px;margin-bottom:10px;font-size:14px}

/* 1 로그인 */
.login{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 28px;background:linear-gradient(170deg,#F3F5F2 55%,#E3ECE5)}
.login .brand{font-size:44px;text-align:center}
.login p.sub{text-align:center;color:var(--mute);font-size:13.5px;margin:6px 0 34px}

/* 2 목록 */
.banner{display:flex;justify-content:space-between;align-items:center;background:var(--ask-soft);color:var(--ask);border-radius:12px;padding:12px 14px;font-weight:700;font-size:14px;margin-bottom:10px}
.banner.err{background:var(--err-soft);color:var(--err)}
.banner.err small{font-weight:400;display:block;margin-top:2px}
.filters{display:flex;gap:6px;margin-bottom:10px;overflow-x:auto;scrollbar-width:none}
/* 9 설정 — 연결 점검 */
.checks .ck{font-size:12.5px;font-weight:700;text-align:right;max-width:58%}
.ck-ok{color:var(--ok)} .ck-warn{color:var(--ask)} .ck-err{color:var(--err)}
.filters a{flex:none;padding:6px 11px;border-radius:20px;background:#fff;border:1px solid var(--line);font-size:12.5px;color:var(--mute)}
.filters .on{background:var(--ink);color:#fff;border-color:var(--ink)}
.job{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center}
.thumb{width:56px;height:56px;border-radius:10px;background:#cfd8d0 center/cover;object-fit:cover}
.job b{display:block;font-size:15px}
.job small{display:block;font-size:12px;color:var(--mute);margin-top:3px}
.mk{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;font-size:11.5px;color:var(--mute)}
.empty{text-align:center;color:var(--mute);padding:40px 0;font-size:14px}

/* 3 입력 */
.opt{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr) 26px;gap:6px;align-items:center;margin-top:6px}
.opt .field{padding:8px 9px;font-size:15px;min-width:0}
.opt .unit{min-width:0}
#rows:not(.multi) .opt-del{visibility:hidden}
.opt-del{border:0;background:none;color:#B44;font-size:20px;line-height:1;padding:4px 0;cursor:pointer}
.unit{display:flex;align-items:center;gap:6px}
.unit span{color:var(--mute)}
.checks{display:flex;gap:16px;flex-wrap:wrap}
.checks label{display:flex;gap:6px;align-items:center;font-size:15px}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:#E7EBE7;border-radius:10px;padding:3px}
.seg label{text-align:center;padding:8px 4px;font-size:13px;color:var(--mute);border-radius:8px;cursor:pointer}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg label:has(input:focus-visible){outline:2px solid var(--leaf)}
.seg label:has(input:checked){background:#fff;color:var(--ink);font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.preview{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.preview img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px}

/* 4 진행 */
.steps{list-style:none}
.steps li{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;padding:7px 0;font-size:14px;border-bottom:1px solid #F0F2EF}
.steps li:last-child{border-bottom:0}
.dot{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff}
.d-done{background:var(--ok)} .d-running{background:#fff;border:3px solid var(--leaf)}
.d-asking{background:#fff;border:3px solid var(--ask)} .d-error{background:var(--err)} .d-todo{background:#E2E6E2}
.steps .muted{color:#9aa29c}
.q{background:var(--ask-soft);border-radius:14px;padding:14px;margin-bottom:10px}
.q b{display:block;font-size:14.5px;line-height:1.5;color:#5b3d07}
/* 대화 칸: 질문·알림은 그 단계 바로 밑에(설계 3-3 시안 A) */
.steps li.talk-row{display:block;border-bottom:0;padding:2px 0 6px 34px}
.talk{border-radius:12px;padding:8px 10px;font-size:13.5px;line-height:1.5;overflow-wrap:anywhere}
.talk small{color:#8a918c;font-size:11.5px}
.talk.say,.talk.ask.done{background:#F3F5F2;color:#4b524d}
.talk.ask.done .ans{margin-top:4px;color:#2f5d3a}
.talk.ask.open{background:var(--ask-soft);padding:12px}
.talk.ask.open b{display:block;font-size:14.5px;line-height:1.5;color:#5b3d07}
.talk .opts{display:grid;gap:6px;margin-top:10px}
.talk .opts button{background:#fff;border-radius:10px;padding:10px 12px;font-size:14px;border:1px solid #EBD9B4;text-align:left;cursor:pointer}
.talk .own{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:6px}
.talk .own .btn{width:auto}
.talk .own.two{grid-template-columns:minmax(0,1fr)}
.err-box{background:var(--err-soft);border-radius:14px;padding:14px;margin-bottom:10px;color:var(--err)}
.res{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;padding:6px 0}
.res small{font-size:12px;color:var(--mute)}
.log{font-size:12.5px;color:var(--mute)}
.log li{list-style:none;padding:3px 0;border-bottom:1px solid #F0F2EF}

/* 9 설정 */
.menu div{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.menu div:last-child{border-bottom:0}
.menu small{color:var(--mute);font-size:12.5px}
.detail-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.detail-strip a{position:relative;display:block;aspect-ratio:860/1300;overflow:hidden;border-radius:6px;border:1px solid var(--line);background:#fff}
.detail-strip img{width:100%;height:100%;object-fit:cover;object-position:top}
.detail-strip span{position:absolute;left:4px;bottom:4px;font-size:10.5px;font-weight:700;background:rgba(28,34,30,.7);color:#fff;padding:1px 5px;border-radius:5px}
.sfield{padding:8px 0;border-bottom:1px solid #F0F2EF}
.sfield:last-child{border-bottom:0}
.sfield.ex .field{background:#FFF8D6;border-color:#E8D27A}
.sfoot{display:flex;justify-content:space-between;align-items:center;margin-top:4px}
.sfoot .ok{display:flex;gap:5px;align-items:center;font-size:12.5px;color:var(--ask)}
.cnt{font-size:11.5px;color:var(--mute)}
.cnt.over{color:var(--err);font-weight:700}
textarea.field{resize:vertical;line-height:1.5}
.link-sm{font-size:13px;font-weight:700;color:var(--leaf)}
/* 5·6 확인 대기 */
.todo{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.blk-row{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:start}
.blk-thumb{display:block;width:64px;height:84px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}
.blk-thumb img{width:100%;height:100%;object-fit:cover;object-position:top}
.blk-row b{font-size:14px}
.acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.acts a,.acts button{font-size:12px;padding:5px 9px;border-radius:8px;border:1px solid var(--line);color:var(--ink);background:#fff;cursor:pointer}
.acts form{display:inline}
.accent-row{display:flex;gap:10px;align-items:center}
.accent-row input[type=color]{width:48px;height:36px;border:1px solid var(--line);border-radius:8px;background:#fff}
.accent-row .btn{width:auto}
.blk-preview{display:block;padding:6px}
.blk-preview img{width:100%;display:block;border-radius:6px}
.issue{display:flex;gap:8px;font-size:13.5px;line-height:1.5;padding:7px 0;border-bottom:1px solid #F0F2EF}
.issue:last-child{border-bottom:0}
.ai-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
/* 농장 카탈로그 */
.search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-bottom:10px}
.search .btn{width:auto}
.banner.pause .btn{width:auto;flex:none;margin-left:8px}
.same{color:var(--ask);font-weight:700}
.found{margin:0 2px 8px;font-size:12.5px;line-height:1.8;color:var(--mute);overflow-wrap:anywhere}
.found .chip{margin-right:6px}
.srcs{list-style:none;margin-top:8px;font-size:12.5px;color:var(--mute)}
.srcs li{padding:4px 0;overflow-wrap:anywhere}
.srcs a{color:var(--wait);text-decoration:underline}
.keep{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.keep label{position:relative;display:block;cursor:pointer}
.keep img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px;display:block}
.keep label:has(input:not(:checked)) img{opacity:.35}
.keep label:has(input:focus-visible){outline:2px solid var(--leaf);outline-offset:2px;border-radius:9px}
.keep .photo-x{display:flex;align-items:center;justify-content:center}
.keep + .photo-pick{margin-top:10px}
.photo-cut{display:none;position:absolute;left:0;right:0;bottom:0;padding:4px 0;border-radius:0 0 9px 9px;background:rgba(28,34,30,.72);color:#fff;font-size:13px;font-weight:700;text-align:center}
.keep label:has(input:not(:checked)) .photo-cut{display:block}
/* 설정 — 메뉴마다 접는 칸(<details>)과 다른 화면으로 가는 줄 */
.fold,.fold-link{padding:0}
.fold>summary,.fold-link{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:14px;cursor:pointer;list-style:none}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary::after{content:"›";display:block;color:var(--mute);font-size:20px;line-height:1;transform:rotate(90deg)}
.fold[open]>summary::after{transform:rotate(-90deg)}
.fold>summary b,.fold-link b{display:block;font-size:15px}
.fold>summary small,.fold-link small{display:block;font-size:12.5px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fold-link em{font-style:normal;font-size:20px;color:var(--mute)}
.fold>.in{padding:0 14px 14px}
.menu.checks{display:block}   /* 연결 점검 줄은 한 줄씩(.checks의 가로 배치는 체크칸용) */
.fold>summary:focus-visible,.fold-link:focus-visible{outline:2px solid var(--leaf);border-radius:14px}
/* 설정 — 자료 찾을 사이트 */
.sites .menu span{min-width:0;overflow-wrap:anywhere}
.sites .menu .btn{width:auto;flex:none;margin-left:10px;padding:8px 14px}
.sites summary{cursor:pointer}
/* 식물 화면 칸(설계-식물화면개편 6-3): 칸마다 이름 + 대조 표시 하나(누르면 까닭) */
.p02-cell{padding:10px 0;border-top:1px solid var(--line);margin-top:10px}
.mark>summary{list-style:none;cursor:pointer;display:flex;gap:6px;align-items:baseline}
.mark>summary::-webkit-details-marker{display:none}
.mark>summary .lbl{margin:0}
.mark .hint{margin:0 0 6px}
.m-ok{color:var(--ok)} .m-diff{color:var(--x)} .m-none{color:var(--err)}
.hint.warn{color:var(--ask)}
/* 사진 고르기·올리기(폰 사진 올리기) — 파일 칸은 화면에서만 숨기고 라벨로 연다(hidden이면 라벨이 못 엶) */
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.photo-pick label:has(+ input:focus-visible){outline:2px solid var(--leaf);outline-offset:2px}
.photo-pick label[aria-disabled=true]{opacity:.45;pointer-events:none}
.photo-item{position:relative}
.photo-item img{display:block}
.photo-x{position:absolute;top:2px;right:2px;width:32px;height:32px;border:0;border-radius:50%;background:rgba(28,34,30,.72);color:#fff;font-size:20px;line-height:1;cursor:pointer}
.photo-x:disabled{opacity:.4;cursor:default}
.photo-progress{margin-bottom:8px;font-size:14px}
.photo-progress progress{display:block;width:100%;height:10px;margin-bottom:4px;accent-color:var(--leaf)}
/* 출고목록 */
.ship-read{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:6px}
.ship-read .btn{width:auto}
.ship-nokey{margin:0 2px 8px}
.ship-group .res{padding:0}
.ship-orders summary{cursor:pointer;margin:0}
.ship-order{padding:8px 0;border-top:1px solid var(--line, #e5e5e5);font-size:14px;overflow-wrap:anywhere}
.ship-order small{display:block;margin-top:2px}
.cam{position:fixed;inset:0;z-index:50;background:#000;color:#fff}
.cam[hidden],.cam-fallback[hidden]{display:none}
.cam video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cam-done{position:absolute;top:12px;right:12px;min-height:40px;padding:0 16px;border:0;border-radius:20px;background:rgba(0,0,0,.55);color:#fff;font:inherit}
.cam-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:16px;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:rgba(0,0,0,.4)}
.cam-count{min-width:56px;font-weight:700}
.cam-shot{width:72px;height:72px;border-radius:50%;border:4px solid #fff;background:#e8e8e8;color:transparent;font-size:0;padding:0}
.cam-shot:disabled{opacity:.4}
.cam-msg{min-width:56px;font-size:.85em}
.cam.flash::after{content:"";position:absolute;inset:0;background:#fff;opacity:.7;pointer-events:none}
.cam-strip{display:flex;gap:4px;max-width:90px;overflow-x:auto}
.cam-strip img{width:36px;height:36px;flex:none;object-fit:cover;border-radius:6px}
/* 설정 — 무리 자료 목록 줄(누르면 고치기 칸이 펼쳐짐) */
.care-g{border-bottom:1px solid var(--line)}
.care-g>summary{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;list-style:none;cursor:pointer;font-size:14.5px}
.care-g>summary::-webkit-details-marker{display:none}
.care-g>summary small{color:var(--mute);font-size:12.5px}
.seg label:has(input:disabled){opacity:.45;cursor:default}   /* 개화시기면 보는 부위 고르기를 흐리게 */
/* 아침 출고(설계-아침출고 4장): 접히는 칸 ①②③, 받는 사람 체크 목록, 버튼 줄, 송장 표 */
.ship-sec summary{cursor:pointer;margin:0}
.ship-sec[open] summary{margin-bottom:8px}
.ship-btn{margin-top:10px}
.ship-all{display:flex;gap:8px;align-items:center;font-size:15px;font-weight:700;padding:6px 0}
.ship-rcp{display:flex;gap:10px;align-items:flex-start}
.ship-rcp input{margin-top:3px;flex:none}
.ship-rcp small{display:block}
.ship-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ship-btns .btn{width:auto;flex:1 1 140px}
.ship-invoice{margin-top:14px;padding-top:10px;border-top:1px solid var(--line,#e5e5e5)}
.ship-invoice input[type=file]{max-width:100%;font-size:14px}
.ship-table{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed;margin:4px 0 10px}
.ship-table td,.ship-table th{padding:8px 4px;border-top:1px solid var(--line,#e5e5e5);text-align:left;vertical-align:top;overflow-wrap:anywhere}
.ship-table td:first-child,.ship-table th:first-child{width:44px}
.ship-mark{font-size:18px} .ship-mark--ok{color:var(--ok)} .ship-mark--err{color:var(--err)}
