:root{--g:#2e7d32;--g2:#e8f5e9;--b:#d0d7de;--t:#1f2328;--m:#57606a;--r:#c62828;--y:#f9a825}
*{box-sizing:border-box}body{margin:0;font-family:"Noto Sans KR","Malgun Gothic",system-ui,sans-serif;color:var(--t);background:#f6f8fa;font-size:15px}
a{color:#0b57d0;text-decoration:none}a:hover{text-decoration:underline}
header{background:var(--g);color:#fff;padding:10px 16px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;position:sticky;top:0;z-index:5}
header a{color:#fff;font-weight:600}header .brand{font-size:18px;margin-right:auto}
main{max-width:1200px;margin:0 auto;padding:16px}
h1{font-size:22px;margin:4px 0 14px}h2{font-size:18px;margin:22px 0 10px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.card{background:#fff;border:1px solid var(--b);border-radius:10px;padding:14px}
.card.off{opacity:.6}.card .ic{font-size:30px}.card h3{margin:6px 0}
.badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:10px;background:var(--g2);color:var(--g);font-weight:600}
.badge.off{background:#eee;color:#666}.badge.err{background:#fdecea;color:var(--r)}.badge.warn{background:#fff8e1;color:#8a6d00}
table{border-collapse:collapse;width:100%;background:#fff}th,td{border:1px solid var(--b);padding:6px 8px;text-align:left;vertical-align:top}
th{background:#f0f3f6;font-weight:600;white-space:nowrap}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:8px;border:1px solid var(--b)}
.scroll table{border:0}.grid input{width:100%;min-width:90px;border:1px solid transparent;padding:4px;font:inherit;background:transparent}
.grid input:focus{border-color:#0b57d0;background:#fff;outline:0}.grid tr.new td{background:#f1f8ff}.grid tr.bad td{background:#fff4f4}
.grid td.p{color:var(--r);font-size:12px;min-width:110px}.grid td.n{color:var(--m);width:36px}
.btn{display:inline-block;background:var(--g);color:#fff;border:0;border-radius:8px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer}
.btn.s{background:#fff;color:var(--g);border:1px solid var(--g)}.btn.d{background:var(--r)}.btn.sm{padding:5px 10px;font-size:13px}
form.inline{display:inline}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
label{display:block;font-size:13px;color:var(--m);margin:8px 0 3px}
input[type=text],input[type=email],input[type=tel],input[type=search],input[type=password],input[type=date],input[type=number],select,textarea{font:inherit;padding:8px;border:1px solid var(--b);border-radius:6px;width:100%;background:#fff}
.f2{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 14px}
.msg{padding:10px 12px;border-radius:8px;margin:8px 0}.msg.err{background:#fdecea;color:var(--r)}.msg.warn{background:#fff8e1;color:#6b5400}.msg.ok{background:var(--g2);color:var(--g)}
ul.l{margin:6px 0;padding-left:20px}.muted{color:var(--m);font-size:13px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 12px}.tabs a{padding:6px 12px;border:1px solid var(--b);border-radius:16px;background:#fff;font-size:14px}
.tabs a.on{background:var(--g);color:#fff;border-color:var(--g)}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.thumbs img{width:100%;border:1px solid var(--b);background:#fff}
pre.ocr{white-space:pre-wrap;background:#fff;border:1px solid var(--b);padding:10px;max-height:300px;overflow:auto;font-size:12px}
details{background:#fff;border:1px solid var(--b);border-radius:8px;padding:8px 12px;margin:8px 0}summary{cursor:pointer;font-weight:600}
@media (max-width:640px){main{padding:10px}h1{font-size:19px}header{padding:8px 10px;gap:10px}header .brand{font-size:16px;width:100%}
 th,td{padding:5px 6px;font-size:14px}.btn{width:100%;margin:4px 0;text-align:center}form.inline .btn{width:auto}.hide-m{display:none}}

.grid input.c-tag,.grid input.c-mother{min-width:140px}.grid input.c-product,.grid input.c-place,.grid input.c-counterpart,.grid input.c-note{min-width:220px}
.grid input.c-birth,.grid input.c-date,.grid input.c-tx_date,.grid input.c-supply_date,.grid input.c-fattening_from{min-width:105px}
.grid input.c-sex,.grid input.c-kind,.grid input.c-grade,.grid input.c-qty{min-width:56px}.grid td{white-space:nowrap}.grid td.p{white-space:normal}

.upbar{background:#fff3cd;color:#664d03;padding:8px 16px;text-align:center;font-size:14px;border-bottom:1px solid #f0d78c}.upbar a{font-weight:700}
.ver{font-size:28px;font-weight:700;color:var(--g)}
.tag{display:inline-block;font-size:12px;padding:1px 8px;margin:1px 3px 1px 0;border-radius:10px;background:#e8f1fb;color:#1d4f86;font-weight:600;white-space:nowrap}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 8px}.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--b);border-radius:20px;background:#fff;cursor:pointer;font-size:15px}
.chip input{width:18px;height:18px;margin:0}.chip:has(input:checked){background:var(--g2);border-color:var(--g)}
.filt{gap:8px;margin:6px 0 10px;flex-wrap:wrap}.filt select,.filt input{padding:8px;font-size:15px}
td.low,input.low{background:#fff4b3!important}td.bad,input.bad{background:#fdd!important}
.msg.big{font-size:16px;padding:14px;border-width:2px}
header .logo{width:22px;height:22px;vertical-align:-5px;margin-right:2px}form.inline{display:inline;margin:0}
.linkbtn{background:none;border:0;color:#fff;font:inherit;cursor:pointer;padding:0;opacity:.9}.linkbtn:hover{text-decoration:underline}
.authbox{max-width:460px;margin:10px auto}.authbox h1{text-align:center}.steps{display:flex;gap:4px;margin:6px 0 12px;flex-wrap:wrap}
.steps span{flex:1;min-width:70px;text-align:center;font-size:13px;padding:6px 4px;border-radius:6px;background:#eee;color:#666}.steps span.on{background:var(--g);color:#fff;font-weight:700}
label.chk{display:flex;gap:8px;align-items:flex-start;margin:10px 0;font-weight:normal}label.chk input{width:20px;height:20px;flex:none;margin-top:1px}
input.code{font-size:28px;letter-spacing:10px;text-align:center;font-family:monospace}b.code{font-family:monospace;font-size:18px;letter-spacing:3px}
.consent table th{width:32%;text-align:left;background:#f4f8f4;vertical-align:top}.consent td,.consent th{padding:8px;border-bottom:1px solid #e5e5e5;font-size:14px}
.links{text-align:center}.doc{max-width:860px}.doc h2{font-size:17px;margin-top:18px}.qrs{display:flex;gap:16px;flex-wrap:wrap}.qr svg{width:180px;height:180px}
footer{text-align:center;padding:20px;font-size:13px}.members td.act form{display:inline-block;margin:1px}tr.pending{background:#fffbea}
@media print{header,footer,.noprint{display:none}.print table{font-size:11px}}

/* 가축사육일지 통합 화면: 자료 준비 목록 */
.ready details.rk{padding:0;margin:6px 0;overflow:hidden}.ready details.rk>summary{list-style:none;display:grid;grid-template-columns:28px minmax(150px,1.3fr) 110px 190px 2fr auto;gap:8px;align-items:center;padding:10px 12px}
.ready details.rk>summary::-webkit-details-marker{display:none}.ready .rk-body{padding:4px 12px 12px;border-top:1px solid var(--b)}
.ready .st-ok{border-left:5px solid #2e7d32}.ready .st-warn{border-left:5px solid #e0a800}.ready .st-none{border-left:5px solid #bbb}
.ready .rk-t{font-weight:700}.ready .rk-c{font-size:13px;color:#444}.ready .rk-a{font-size:13px;color:var(--g);white-space:nowrap}.ready details[open] .rk-a{color:#666}
.ready .upl{background:#f6faf6;border-radius:8px;padding:8px 10px;margin:8px 0}.sm{font-size:13px}.btn.big{font-size:17px;padding:12px 22px}
table.files tr.new td{background:#eef7ee}
@media (max-width:760px){.ready details.rk>summary{grid-template-columns:26px 1fr auto;grid-template-areas:"i t n" "i c c" "i x x" "i a a";row-gap:2px}
 .ready .rk-ic{grid-area:i}.ready .rk-t{grid-area:t}.ready .rk-n{grid-area:n}.ready .rk-c{grid-area:c}.ready .rk-x{grid-area:x}.ready .rk-a{grid-area:a}}
.ready .rk-body .scroll{max-height:65vh;overflow:auto}.ready .rk-body thead th{position:sticky;top:0;z-index:1}
.lib{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px}.libsp h3{margin:0 0 6px}
.librow{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 0;border-top:1px solid var(--b)}.librow .liba{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
@media (max-width:640px){.lib{grid-template-columns:1fr}.librow{flex-direction:column;align-items:stretch}.librow .liba{align-items:stretch}}
table.sec td.fx{white-space:nowrap}table.sec tr.flash td{background:#eef7ee;transition:background .3s}
dialog.fixdlg{border:1px solid var(--b);border-radius:10px;max-width:520px;width:calc(100% - 24px);padding:16px}dialog.fixdlg::backdrop{background:rgba(0,0,0,.35)}dialog.fixdlg ol{padding-left:20px}dialog.fixdlg li{margin:4px 0}
.linkbtn{background:none;border:0;color:var(--g);text-decoration:underline;cursor:pointer;padding:0 4px}
@media (max-width:640px){table.sec td.fx{white-space:normal}table.sec td.fx .btn{width:auto}}

.badge.role-admin{background:#fde7e7;color:#b3261e}.badge.role-operator{background:#e3f0ff;color:#1a4fa0}.badge.role-worker{background:#eee;color:#555}
.rolebox{margin-top:4px}.rolef{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin:4px 0}.rolef input[type=password]{width:130px}
.addr{font-size:22px;font-weight:700;font-family:monospace}.addrs .qr{display:inline-block;text-align:center;margin:6px 12px 6px 0}.addrs .qr svg{width:150px;height:150px}


/* ================= 시안5 파스텔 포인트 (pastel) — 흰 바탕에 메뉴·카드마다 다른 파스텔 색 — 메뉴를 색으로 바로 구분하는 산뜻한 느낌 =================
   적용: 이 파일을 app/static/style.css 로 교체 + themes/fonts/*.woff2 를 app/static/fonts/ 에 복사
   (+ base.html.patch: 메뉴의 이모지를 <span class="ico"> 로 감싸 아이콘과 겹치지 않게) */
/* ================= 공통 다듬기 (모든 시안 공통) ================= */
@font-face{font-family:"Pretendard";font-weight:400;font-display:swap;src:url(/static/fonts/Pretendard-Regular.woff2) format("woff2")}
@font-face{font-family:"Pretendard";font-weight:500;font-display:swap;src:url(/static/fonts/Pretendard-Medium.woff2) format("woff2")}
@font-face{font-family:"Pretendard";font-weight:600;font-display:swap;src:url(/static/fonts/Pretendard-SemiBold.woff2) format("woff2")}
@font-face{font-family:"Pretendard";font-weight:700;font-display:swap;src:url(/static/fonts/Pretendard-Bold.woff2) format("woff2")}
body{font-family:"Pretendard","Noto Sans KR","Malgun Gothic",system-ui,sans-serif;background:var(--bg);color:var(--t);font-size:15.5px;line-height:1.55;-webkit-font-smoothing:antialiased;letter-spacing:-.1px}
a{color:var(--link)}
header{background:var(--hd);color:var(--hdt);padding:10px 16px;gap:0;box-shadow:var(--hdsh);border-bottom:var(--hdb)}
header a,header .linkbtn{color:var(--hdt);font-weight:500;font-size:14px;padding:7px 6px;border-radius:9px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;opacity:1;text-decoration:none}
header a:hover,header .linkbtn:hover{background:var(--hdhov);text-decoration:none}
header a.brand{font-size:18px;font-weight:700;color:var(--brand);padding-left:0;margin-right:auto;gap:8px;letter-spacing:-.4px}header a.brand:hover{background:none}
header .logo{width:28px;height:28px;border-radius:8px;vertical-align:middle;margin:0}
header .ico{display:none}
header a:not(.brand)::before,header .linkbtn::before{content:"";width:16px;height:16px;flex:none;background:var(--ic,currentColor);-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat;opacity:.9}
header .badge{font-size:11.5px;padding:1px 7px}
main{padding:26px 24px}
h1{font-size:25px;font-weight:700;letter-spacing:-.5px;margin:2px 0 18px;color:var(--h)}
h2{font-size:19px;font-weight:700;letter-spacing:-.3px;margin:30px 0 12px;color:var(--h)}
.cards{gap:16px;grid-template-columns:repeat(auto-fill,minmax(255px,1fr))}
.card{background:var(--card);border:1px solid var(--cardb);border-radius:var(--rad);padding:20px 20px 22px;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;align-items:flex-start}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow2)}
.card .ic{width:54px;height:54px;border-radius:var(--icrad);display:grid;place-items:center;background:var(--icbg);font-size:28px;line-height:1}
.card h3{font-size:17.5px;font-weight:700;margin:14px 0 4px;color:var(--h)}
.card p.muted{flex:1;margin:0 0 14px;font-size:14px;line-height:1.55}
.card.off{opacity:.62}.card.off .ic{filter:grayscale(.6)}
.muted{color:var(--m)}
.btn{background:var(--g);border-radius:var(--brad);padding:10px 18px;font-weight:600;box-shadow:var(--bsh);transition:filter .15s}
.btn:hover{filter:brightness(1.07);text-decoration:none}
.btn.s{background:var(--card);color:var(--g);border:1.5px solid var(--g);box-shadow:none}
.badge{background:var(--g2);color:var(--gd)}.badge.off{background:var(--offbg);color:var(--m)}
.scroll{border:1px solid var(--cardb);border-radius:var(--rad);box-shadow:var(--shadow);background:var(--card)}
table{background:var(--card)}
th,td{border:0;border-bottom:1px solid var(--line);padding:11px 14px;vertical-align:middle}
th{background:var(--th);color:var(--tht);font-weight:600;font-size:14px}
tr:last-child td{border-bottom:0}
.scroll table tr:hover td{background:var(--rowhov)}
td a b{color:var(--link);white-space:nowrap}
.tag{background:var(--tagbg);color:var(--tagt);border-radius:999px;padding:2px 10px;font-size:12.5px}
input[type=text],input[type=email],input[type=tel],input[type=search],input[type=password],input[type=date],input[type=number],select,textarea{border:1px solid var(--inb);border-radius:var(--inrad);padding:10px 12px;background:var(--card);transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--g);box-shadow:0 0 0 3px var(--ring)}
.filt{align-items:center}.filt select{width:auto;min-width:170px}.filt input{padding:10px 12px}
.tabs a{border-color:var(--cardb);background:var(--card)}.tabs a.on{background:var(--g);border-color:var(--g)}
.msg.ok{background:var(--g2);color:var(--gd)}
details{background:var(--card);border-color:var(--cardb);border-radius:var(--rad)}
footer{color:var(--m)}footer a{color:var(--m)}
.steps span.on{background:var(--g)}
.ver{color:var(--g)}
@media (max-width:640px){
 header{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:8px 12px;gap:2px;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
 header::-webkit-scrollbar{display:none}
 header a,header .linkbtn{white-space:nowrap;flex:none;font-size:14.5px;padding:7px 9px}
 header a.brand{width:auto;font-size:17px;margin-right:6px}
 main{padding:16px 14px}h1{font-size:21px}
 .cards{grid-template-columns:1fr 1fr;gap:10px}
 .card{padding:14px}.card .ic{width:44px;height:44px;font-size:23px}.card h3{font-size:15.5px;margin:10px 0 2px}.card p.muted{font-size:12.5px;margin-bottom:10px}
 .card .btn,.card .badge{width:100%;text-align:center;margin:0;white-space:nowrap}
 .btn{padding:10px 12px}
 th,td{padding:9px 10px}
 .filt select{width:100%}
}
header a[href="/farms"]{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V10l9-6 9 6v11z'/%3E%3Cpath d='M9 21v-6h6v6'/%3E%3Cpath d='M8 11h8'/%3E%3C/svg%3E")}
header a[href="/m/hanwoo_weekly/"]{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M9 7h6M9 11h6M9 15h4'/%3E%3C/svg%3E")}
header a[href="/m/haccp_manual/"]{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='14' height='17' rx='2'/%3E%3Cpath d='M9 4V2.5h6V4'/%3E%3Cpath d='m9 13 2 2 4-4'/%3E%3C/svg%3E")}
header a[href="/library"]{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3C/svg%3E")}
header a[href="/m/hanwoo_weekly/rules"]{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h9M17 6h3M4 12h3M11 12h9M4 18h11M19 18h1'/%3E%3Ccircle cx='15' cy='6' r='2'/%3E%3Ccircle cx='9' cy='12' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E")}
header a[href="/backup"]{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='5' rx='8' ry='3'/%3E%3Cpath d='M4 5v14c0 1.7 3.6 3 8 3s8-1.3 8-3V5'/%3E%3Cpath d='M4 12c0 1.7 3.6 3 8 3s8-1.3 8-3'/%3E%3C/svg%3E")}
header a[href="/update"]{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12a8 8 0 1 1-2.3-5.7L20 8.5'/%3E%3Cpath d='M20 3.5v5h-5'/%3E%3C/svg%3E")}
header a[href="/admin/members"]{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0'/%3E%3Cpath d='M16 4.6a3.5 3.5 0 0 1 0 6.8M18 14a6 6 0 0 1 3.5 6'/%3E%3C/svg%3E")}
header a[href="/security"]{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4 6v6c0 5 3.5 8 8 9 4.5-1 8-4 8-9V6z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E")}
header a[href="/system"]{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h4l3-7 4 14 3-7h4'/%3E%3C/svg%3E")}
header a[href="/me"]{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E")}
header .linkbtn{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 4h3a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-3'/%3E%3Cpath d='M10 17l-5-5 5-5M5 12h11'/%3E%3C/svg%3E")}
/* ---- 테마 색·모양 ---- */
:root{--g:#4f63e6;--gd:#3a4bc0;--g2:#eceffe;--bg:#fafbfe;--t:#222634;--h:#1d2140;--m:#646a80;--link:#3f53d6;
 --hd:#fff;--hdt:#353a52;--brand:#1d2140;--hdhov:#f3f4fb;--hdsh:0 1px 0 #eceef6;--hdb:0;
 --card:#fff;--cardb:#eceef5;--rad:18px;--icrad:16px;--icbg:#eef0ff;--shadow:0 4px 14px rgba(60,70,130,.06);--shadow2:0 10px 26px rgba(60,70,130,.12);
 --brad:12px;--bsh:0 3px 10px rgba(79,99,230,.25);--offbg:#f1f2f6;--line:#f0f1f6;--th:#f7f8fc;--tht:#4a5068;--rowhov:#f8f9ff;
 --tagbg:#fff1e3;--tagt:#9a4f12;--inb:#dfe2ee;--inrad:12px;--ring:rgba(79,99,230,.16)}
header a:not(.brand)::before,header .linkbtn::before{display:none}
header a:not(.brand),header .linkbtn{position:relative}
header a:not(.brand)::after,header .linkbtn::after{content:"";order:-1;width:23px;height:23px;border-radius:7px;flex:none;
 background:var(--c) ;-webkit-mask:none}
header a:not(.brand),header .linkbtn{padding-left:3px;gap:5px}
@media (min-width:641px){header{padding-left:12px;padding-right:12px}}
@media (min-width:641px) and (max-width:1366px){header a:not(.brand),header .linkbtn{font-size:13.5px;gap:4px;padding-right:5px}}
header a:not(.brand) > *,header .linkbtn > *{position:relative}
header a[href="/farms"]{--c:#d9f2e3;--cc:#23864a}header a[href="/m/hanwoo_weekly/"]{--c:#ffe7cf;--cc:#b25c12}header a[href="/m/haccp_manual/"]{--c:#dfe9ff;--cc:#2f5bd1}
header a[href="/library"]{--c:#fff3bf;--cc:#8a6a00}header a[href="/m/hanwoo_weekly/rules"]{--c:#ece2ff;--cc:#6c3fd1}header a[href="/backup"]{--c:#d8f3f6;--cc:#127884}
header a[href="/update"]{--c:#e3f5d5;--cc:#4b7d1c}header a[href="/admin/members"]{--c:#ffe0ea;--cc:#c0336a}header a[href="/security"]{--c:#ffe1dc;--cc:#c0392b}
header a[href="/system"]{--c:#e5ecf3;--cc:#45607a}header a.me{--c:#efe7dc;--cc:#7a5c3a}header .linkbtn{--c:#eef0f4;--cc:#5a6072}
.card{border:1px solid var(--cardb);position:relative;overflow:hidden}
.card::before{content:"";position:absolute;left:0;top:0;right:0;height:5px;background:var(--pc,#c9d0ff)}
.cards .card:nth-child(1){--pc:#ffb985;--icbg:#ffeedd}.cards .card:nth-child(2){--pc:#9fb6ff;--icbg:#e6edff}
.cards .card:nth-child(3){--pc:#d5c4f7;--icbg:#f1eaff}.cards .card:nth-child(4){--pc:#8fdcae;--icbg:#e0f6e9}
.tag:nth-of-type(2n){background:#e6f6ee;color:#1e7a47}
th{font-size:13.5px}

header a:not(.brand)::before,header .linkbtn::before{display:block;position:absolute;left:7.5px;width:14px;height:14px;background:var(--cc);opacity:1;z-index:1}
header .badge{position:static}
@media (max-width:640px){header a:not(.brand)::before,header .linkbtn::before{left:7.5px}}

/* 1.5.0: 체크한 칸은 어디서나 같은 빨간색(체크 강조) */
:root{--chk:#e03131;--chk2:#fff0f0}
input[type=checkbox],input[type=radio]{accent-color:var(--chk)}
.chip:has(input:checked),.opt:has(input:checked),.yc:has(input:checked),label.bx:has(input:checked){border-color:var(--chk)!important;background:var(--chk2)!important;color:#b42318}

/* 1.5.0: 위 메뉴 가운데 정렬(로고 왼쪽 · 농장관리~자가진단 가운데 · 내 정보/로그아웃 오른쪽) */
header{flex-wrap:nowrap}
header a.brand{flex:1 1 0;min-width:max-content;margin-right:0}
header .mnav{flex:0 1 auto;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px;min-width:0}
header .mright{flex:1 1 0;min-width:max-content;display:flex;justify-content:flex-end;align-items:center;gap:2px}
.star{color:#f59f00;font-weight:800;margin-right:2px;font-size:.92em}
header .staff .star{color:#f59f00}
@media (max-width:1100px){header{flex-wrap:wrap;row-gap:4px}header .mnav{order:3;flex:1 1 100%}header a.brand,header .mright{flex:1 1 auto}}
@media (max-width:640px){header{flex-wrap:nowrap}header .mnav{order:0;flex:none;flex-wrap:nowrap}header a.brand,header .mright{flex:none;min-width:0}}
@media (min-width:1101px){header .mnav a{padding:6px 5px;font-size:13.5px;gap:3px}header .mnav a::before{width:14px;height:14px}header .mright a,header .mright .linkbtn{font-size:13.5px;padding:6px 5px}header a.brand{font-size:17px}}
@media (min-width:1101px) and (max-width:1440px){header .mnav a{font-size:13px;gap:4px;padding-right:3px;letter-spacing:-.35px}header .mnav a::after{width:15px;height:21px;background:none!important}header .mnav a::before{left:4px;width:13px;height:13px}header .mnav .star{margin-right:1px}}
:root{--hdh:54px}@media (max-width:1100px){:root{--hdh:96px}}@media (max-width:640px){:root{--hdh:50px}}
/* 1.52 가입 신청·동의 한 줄 */
label.consent1{background:#f6f8ff;border:1px solid #dbe2f6;border-radius:8px;padding:9px 10px;font-size:.9rem;line-height:1.45}
.dlgback{position:fixed;inset:0;background:rgba(20,24,40,.45);z-index:50}
dialog.dlg{position:fixed;top:12vh;left:50%;transform:translateX(-50%);margin:0;z-index:51;width:min(560px,94vw);border:0;border-radius:14px;padding:20px 22px;box-shadow:0 18px 60px rgba(0,0,0,.3);background:#fff}
dialog.dlg h3{margin-top:0}.lbl{font-weight:600;margin:10px 0 6px}
label.rolechoice{display:flex;gap:10px;align-items:flex-start;border:1px solid #e3e6ef;border-radius:10px;padding:10px;margin:6px 0;font-weight:normal;cursor:pointer}
label.rolechoice:has(input:checked){border-color:#4f63e6;background:#f4f6ff}label.rolechoice.off{opacity:.65;cursor:not-allowed;background:#fafafa}
label.rolechoice input{width:18px;height:18px;flex:none;margin-top:2px}.oppw{border-left:3px solid #f0b429;padding:6px 10px;margin:6px 0 0 28px}
tr.sel td{background:#fff8e1}
.myfarm dl{display:grid;grid-template-columns:120px 1fr;gap:6px 12px;margin:0}.myfarm dt{color:#667;font-weight:600}.myfarm dd{margin:0}
/* 1.52 승인 대기 화면 */
.pendbox{max-width:560px;margin:40px auto;text-align:left}
.pendbox h1{font-size:1.6em;margin-bottom:12px}
.pendmsg{font-size:1.15em;font-weight:600;padding:16px 18px}
.pendbox .withdraw{margin-top:22px;border-top:1px solid #e5e7eb;padding-top:12px}
.pendbox .withdraw summary{cursor:pointer;color:#6b7280}
.badge.role-pending{background:#fef3c7;color:#92400e}
.checks{display:flex;flex-wrap:wrap;gap:4px 14px;margin:4px 0}.checks .chk{margin:0}.checks input:disabled+*{opacity:.5}.maxnote{color:#a15c00}
.msg.lastwarn{background:#fff4e5;border:2px solid #e8590c;color:#8a3b00;font-size:1.05em;padding:12px 14px}.msg.lastwarn a{margin-left:6px;font-weight:600}
.upbar.maint{background:#fff1d6;color:#7a4300;border-bottom:2px solid #f0a020;font-size:1.02em}.upbar.updfail{background:#ffe3e3;color:#9b1c1c}
.schedbox{margin:10px 0}.schedf{background:#f4f7ff;border:1px solid #c9d5ff;border-radius:12px;padding:10px 12px;margin-bottom:10px}.schedf input[type=datetime-local]{max-width:240px;display:inline-block;margin:6px 6px 6px 0}
.member-upd{font-size:1.05em}
