/* SHIRELAND 관리자 / 后台样式 — 기능 우선, 군더더기 없음 */
:root{
  --ink:#101720; --ink-2:#18212C; --paper:#F4F3F0; --white:#fff;
  --text:#1A2430; --muted:#68737F; --line:#DEDBD5; --line-2:#EDEBE7;
  --accent:#B0762F; --accent-wash:#FBF4E9;
  --ok:#2E7D57; --warn:#B4741F; --danger:#B23A32;
  --f:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic","PingFang SC","Microsoft YaHei",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--f);font-size:14px;line-height:1.6;
  -webkit-font-smoothing:antialiased;word-break:keep-all}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;line-height:1.25;letter-spacing:-.02em}
img{max-width:100%;display:block}
ul{margin:0;padding:0;list-style:none}

.wrap{display:grid;grid-template-columns:228px 1fr;min-height:100vh}
@media(max-width:860px){.wrap{grid-template-columns:1fr}.side{position:static!important;height:auto!important}}

.side{background:var(--ink);color:#D9DDE2;padding:22px 16px;position:sticky;top:0;height:100vh;overflow:auto}
.side__brand{font-weight:700;letter-spacing:.16em;font-size:15px;color:#fff;padding:0 8px 18px;
  border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:16px}
.side__brand small{display:block;letter-spacing:0;font-weight:400;font-size:11px;color:#7C8894;margin-top:5px}
.side nav a{display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:9px 10px;border-radius:5px;color:#B9C1CA;font-size:13.5px;margin-bottom:2px}
.side nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.side nav a.on{background:var(--accent);color:#fff;font-weight:600}
.side__foot{margin-top:22px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;color:#7C8894}
.badge{background:var(--accent);color:#fff;border-radius:99px;padding:1px 7px;font-size:11px;font-weight:700}
.side nav a.on .badge{background:rgba(255,255,255,.28)}

.main{padding:26px clamp(16px,3vw,34px) 60px;max-width:1180px}
.head{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;justify-content:space-between;margin-bottom:22px}
.head h1{font-size:24px}
.head .sub{color:var(--muted);font-size:13px}

.card{background:var(--white);border:1px solid var(--line);border-radius:7px;padding:20px;margin-bottom:16px}
.card h2{font-size:15px;margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid var(--line-2)}
.card h2 .hint{float:right;font-weight:400;font-size:12px;color:var(--muted)}

.grid{display:grid;gap:14px}
.g2{grid-template-columns:1fr 1fr}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:760px){.g2,.g3,.g4{grid-template-columns:1fr}}

label{display:block;font-size:12.5px;font-weight:600;margin-bottom:5px;color:#3A4552}
label .zh{color:var(--muted);font-weight:400}
input[type=text],input[type=password],input[type=email],input[type=number],select,textarea{
  width:100%;font:inherit;font-size:13.5px;padding:8px 10px;border:1px solid var(--line);
  border-radius:5px;background:#fff;color:var(--text)}
textarea{min-height:78px;resize:vertical;line-height:1.55}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}
.field{margin-bottom:13px}
.hint{font-size:11.5px;color:var(--muted);margin-top:4px}

.btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13px;font-weight:600;
  padding:8px 15px;border:1px solid transparent;border-radius:5px;cursor:pointer;background:var(--text);color:#fff}
.btn:hover{background:#000}
.btn--sm{padding:5px 10px;font-size:12px}
.btn--ghost{background:#fff;border-color:var(--line);color:var(--text)}
.btn--ghost:hover{background:#FAF9F7;border-color:#C8C4BC}
.btn--danger{background:#fff;border-color:#E4C4C1;color:var(--danger)}
.btn--danger:hover{background:#FCF4F3}
.btnrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line-2);vertical-align:top}
th{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#FAF9F7}
tbody tr:hover{background:#FCFBFA}

.pill{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:99px;white-space:nowrap}
.pill--new{background:#FBEFE0;color:var(--warn)}
.pill--seen{background:#E9EDF2;color:#4A5866}
.pill--contacted{background:#E4F1EA;color:var(--ok)}
.pill--closed{background:#EEEDEA;color:#7A7368}

.note{background:var(--accent-wash);border:1px solid #EBDCC3;border-radius:6px;padding:12px 14px;font-size:13px;color:#7A5320}
.note--ok{background:#E9F5EF;border-color:#C6E3D5;color:#1F6046}

.sec{border:1px solid var(--line);border-radius:7px;background:#fff;margin-bottom:10px;overflow:hidden}
.sec__hd{display:flex;align-items:center;gap:10px;padding:11px 14px;background:#FAF9F7;cursor:pointer}
.sec__hd:hover{background:#F5F3F0}
.sec__t{font-weight:600;font-size:13.5px}
.sec__type{font-size:11px;color:var(--muted);background:#EEEDE9;padding:1px 7px;border-radius:99px}
.sec__off{font-size:11px;color:var(--danger);font-weight:600}
.sec__sp{margin-left:auto;display:flex;gap:5px;align-items:center}
.sec__bd{padding:18px;border-top:1px solid var(--line-2);display:none}
.sec.open .sec__bd{display:block}
.sec.open .sec__hd{background:#fff}

.list{border:1px dashed var(--line);border-radius:6px;padding:12px;margin-bottom:12px;background:#FCFBFA}
.list__row{background:#fff;border:1px solid var(--line-2);border-radius:5px;padding:12px;margin-bottom:9px;position:relative}
.list__row .rm{position:absolute;top:8px;right:8px}
.list__hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
.list__hd strong{font-size:12.5px}

.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px}
.media-item{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}
.media-item img{width:100%;height:120px;object-fit:cover;background:#EFEDE9}
.media-item .mi{padding:9px 10px}
.media-item .fn{font-size:11px;color:var(--muted);word-break:break-all;margin-bottom:6px}

.mediapick{display:flex;gap:10px;align-items:center}
.mediapick img{width:56px;height:44px;object-fit:cover;border:1px solid var(--line);border-radius:4px;background:#EFEDE9}

.login{min-height:100vh;display:grid;place-items:center;padding:24px}
.login .card{width:100%;max-width:370px}
.login h1{font-size:19px;letter-spacing:.14em;margin-bottom:4px}
.err{background:#FCF2F1;border:1px solid #E9CFCC;color:var(--danger);border-radius:5px;padding:10px 12px;font-size:13px;margin-bottom:14px}
.kv{display:grid;grid-template-columns:130px 1fr;gap:8px 16px;font-size:13.5px}
.kv dt{color:var(--muted);font-size:12.5px}
.kv dd{margin:0;word-break:break-word}

/* 번역 누락 표시 — 경고만 하고 저장은 막지 않는다 */
.field.is-missing input,.field.is-missing textarea,.field.is-missing select{
  border-color:#D9A441;background:#FFFBF2}
.field.is-missing input:focus,.field.is-missing textarea:focus{
  border-color:#B4741F;box-shadow:0 0 0 3px rgba(217,164,65,.18)}
.miss{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:700;letter-spacing:.02em;
  color:#8A5A12;background:#FBEFD8;border:1px solid #E8D3A6;border-radius:99px;padding:1px 7px;vertical-align:middle}
.sec__miss{font-size:11px;font-weight:600;color:#8A5A12;background:#FBEFD8;
  border:1px solid #E8D3A6;border-radius:99px;padding:1px 8px;white-space:nowrap}
.i18n-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;
  background:#FBEFD8;border:1px solid #E8D3A6;border-radius:6px;padding:11px 14px;
  font-size:13px;color:#7A5320;margin-bottom:16px}
.i18n-bar .n{font-weight:700}
.i18n-ok{background:#E9F5EF;border-color:#C6E3D5;color:#1F6046}
