:root { --forest:#183f32; --forest2:#102e25; --ink:#171a18; --paper:#f2f1ec; --line:rgba(23,26,24,.12); --muted:#717873; --danger:#a8443e; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Pretendard",system-ui,sans-serif; word-break:keep-all; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
.admin-shell { min-height:100dvh; display:grid; grid-template-columns:260px 1fr; }
.admin-sidebar { position:sticky; top:0; height:100dvh; padding:1.5rem 1.15rem; display:flex; flex-direction:column; color:white; background:var(--forest2); }
.admin-brand { height:60px; display:flex; align-items:center; gap:.8rem; padding:0 .7rem; border-bottom:1px solid rgba(255,255,255,.1); }
.admin-brand img { width:132px; filter:brightness(0) invert(1); opacity:.94; }
.admin-brand span { padding:.25rem .42rem; border:1px solid rgba(255,255,255,.22); border-radius:.35rem; font:600 .62rem "Outfit",sans-serif; letter-spacing:.12em; }
.admin-nav { display:grid; gap:.35rem; margin-top:1.5rem; }
.admin-nav a { min-height:50px; display:flex; align-items:center; gap:.85rem; padding:.7rem .9rem; border-radius:.75rem; color:rgba(255,255,255,.58); font-size:.93rem; font-weight:700; }
.admin-nav a:hover,.admin-nav a.active { color:white; background:rgba(255,255,255,.09); box-shadow:inset 0 1px 0 rgba(255,255,255,.08); }
.admin-nav iconify-icon { font-size:1.25rem; }
.admin-nav b { min-width:22px; margin-left:auto; padding:.15rem .38rem; border-radius:999px; color:var(--forest2); background:white; text-align:center; font-size:.7rem; }
.admin-side-bottom { display:grid; gap:.35rem; margin-top:auto; padding-top:1rem; border-top:1px solid rgba(255,255,255,.1); }
.admin-side-bottom a,.admin-side-bottom button { width:100%; min-height:44px; display:flex; align-items:center; gap:.7rem; padding:.6rem .75rem; border:0; border-radius:.6rem; color:rgba(255,255,255,.57); background:none; font-size:.85rem; font-weight:700; cursor:pointer; }
.admin-side-bottom a:hover,.admin-side-bottom button:hover { color:white; background:rgba(255,255,255,.07); }
.admin-main { min-width:0; }
.admin-topbar { min-height:106px; display:flex; align-items:center; gap:1rem; padding:1.5rem 2.5rem; border-bottom:1px solid var(--line); background:rgba(242,241,236,.88); backdrop-filter:blur(16px); }
.admin-topbar > div:first-of-type { flex:1; }
.admin-topbar span { display:block; color:var(--muted); font:600 .68rem "Outfit",sans-serif; letter-spacing:.14em; }
.admin-topbar h1 { margin:.35rem 0 0; font-size:1.55rem; letter-spacing:-.03em; }
.admin-user { display:flex; align-items:center; gap:.75rem; }
.admin-user i { width:40px; height:40px; display:grid; place-items:center; border-radius:999px; color:white; background:var(--forest); font-style:normal; font-weight:800; }
.admin-user span { font-family:"Pretendard",sans-serif; letter-spacing:0; font-weight:700; }
.admin-menu { display:none; width:44px; height:44px; border:1px solid var(--line); border-radius:.65rem; background:white; cursor:pointer; }
.admin-content { padding:2.2rem 2.5rem 4rem; }
.admin-alert { margin:1.4rem 2.5rem 0; padding:1rem 1.2rem; border-radius:.7rem; color:#265f49; background:#dfede5; font-weight:700; line-height:1.5; }
.admin-alert.error { color:#86362f; background:#f6e2df; }
.admin-alert.warning { color:#705315; background:#f4e9c8; }
.admin-alert a { text-decoration:underline; }
.stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.stat-card { min-height:160px; padding:1.4rem; border:1px solid var(--line); border-radius:1rem; background:rgba(255,255,255,.56); }
.stat-card header { display:flex; justify-content:space-between; align-items:center; color:var(--muted); font-size:.82rem; font-weight:750; }
.stat-card iconify-icon { font-size:1.35rem; color:var(--forest); }
.stat-card strong { display:block; margin-top:2rem; color:var(--forest); font:600 2.8rem/1 "Outfit",sans-serif; }
.stat-card small { display:block; margin-top:.55rem; color:var(--muted); }
.admin-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:1rem; margin-top:1rem; }
.panel { overflow:hidden; border:1px solid var(--line); border-radius:1rem; background:rgba(255,255,255,.57); }
.panel-head { min-height:66px; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.25rem; border-bottom:1px solid var(--line); }
.panel-head h2 { margin:0; font-size:1.05rem; }
.panel-head a { color:var(--forest); font-size:.82rem; font-weight:800; }
.list-row { display:grid; grid-template-columns:56px 1fr auto; gap:1rem; align-items:center; padding:.9rem 1.25rem; border-bottom:1px solid var(--line); }
.list-row:last-child { border-bottom:0; }
.list-thumb { width:56px; height:48px; overflow:hidden; border-radius:.5rem; background:#ddd; }
.list-thumb img { width:100%; height:100%; object-fit:cover; }
.list-row h3 { margin:0; font-size:.9rem; }
.list-row p { margin:.35rem 0 0; color:var(--muted); font-size:.76rem; }
.status { display:inline-flex; align-items:center; min-height:26px; padding:.25rem .55rem; border-radius:999px; color:#275f4a; background:#deede5; font-size:.7rem; font-weight:800; }
.status.new { color:#7a5514; background:#f5e9c5; }
.status.closed { color:#646966; background:#e5e7e5; }
.section-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.section-toolbar p { margin:0; color:var(--muted); font-size:.88rem; }
.primary-button,.secondary-button,.danger-button { min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:.55rem; padding:.65rem 1rem; border:0; border-radius:.7rem; font-weight:800; cursor:pointer; }
.primary-button { color:white; background:var(--forest); }
.secondary-button { color:var(--ink); border:1px solid var(--line); background:white; }
.danger-button { color:white; background:var(--danger); }
.button-row { display:flex; flex-wrap:wrap; gap:.55rem; }
.data-table { width:100%; border-collapse:collapse; }
.data-table th { padding:.8rem 1rem; color:var(--muted); background:rgba(23,26,24,.035); text-align:left; font-size:.75rem; }
.data-table td { padding:1rem; border-top:1px solid var(--line); vertical-align:middle; font-size:.86rem; }
.data-table .project-cell { display:flex; align-items:center; gap:.8rem; min-width:260px; }
.data-table .project-cell img { width:72px; height:56px; object-fit:cover; border-radius:.55rem; background:#ddd; }
.data-table strong { display:block; }
.data-table small { display:block; margin-top:.3rem; color:var(--muted); }
.filter-tabs { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:1rem; }
.filter-tabs a { padding:.55rem .8rem; border:1px solid var(--line); border-radius:999px; color:var(--muted); background:white; font-size:.78rem; font-weight:750; }
.filter-tabs a.active { color:white; border-color:var(--forest); background:var(--forest); }
.stat-bar-cell { display:flex; align-items:center; gap:.7rem; min-width:180px; }
.stat-bar-track { flex:1; height:8px; border-radius:999px; background:rgba(23,26,24,.06); overflow:hidden; }
.stat-bar-fill { height:100%; border-radius:999px; background:var(--forest); }
.admin-form { display:grid; gap:1.3rem; }
.form-columns { display:grid; grid-template-columns:1.2fr .8fr; gap:1rem; }
.form-section { padding:1.4rem; border:1px solid var(--line); border-radius:1rem; background:rgba(255,255,255,.6); }
.form-section h2 { margin:0 0 1.25rem; font-size:1.05rem; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.field.full { grid-column:1/-1; }
.field label { display:block; margin-bottom:.5rem; font-size:.8rem; font-weight:800; }
.field input,.field textarea,.field select { width:100%; min-height:46px; padding:.7rem .8rem; border:1px solid var(--line); border-radius:.6rem; outline:none; background:white; }
.field textarea { min-height:140px; resize:vertical; }
.field input:focus,.field textarea:focus,.field select:focus { border-color:var(--forest); box-shadow:0 0 0 3px rgba(24,63,50,.1); }
.field small { display:block; margin-top:.45rem; color:var(--muted); line-height:1.5; }
.check-row { display:flex; align-items:center; gap:.55rem; min-height:46px; }
.cover-preview { width:100%; aspect-ratio:4/3; overflow:hidden; border-radius:.75rem; background:#e2e1dc; }
.cover-preview img { width:100%; height:100%; object-fit:cover; }
.gallery-admin { display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; margin-top:1rem; }
.gallery-item { position:relative; aspect-ratio:4/3; overflow:hidden; border-radius:.65rem; background:#ddd; }
.gallery-item img { width:100%; height:100%; object-fit:cover; }
.gallery-item form { position:absolute; right:.45rem; top:.45rem; }
.gallery-item button { width:34px; height:34px; display:grid; place-items:center; border:0; border-radius:999px; color:white; background:rgba(140,45,40,.9); cursor:pointer; }
.inquiry-message { padding:1.3rem; border-radius:.8rem; background:#f7f7f3; white-space:pre-wrap; line-height:1.8; }
.detail-list { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; overflow:hidden; border:1px solid var(--line); border-radius:.8rem; background:var(--line); }
.detail-list div { padding:1rem; background:white; }
.detail-list span { color:var(--muted); font-size:.75rem; font-weight:700; }
.detail-list strong { display:block; margin-top:.4rem; font-size:.9rem; }
.empty { padding:2.5rem; color:var(--muted); text-align:center; }
.login-page { min-height:100dvh; display:grid; grid-template-columns:1fr 1fr; background:var(--paper); }
.login-visual { position:relative; overflow:hidden; min-height:100dvh; padding:4rem; display:flex; flex-direction:column; justify-content:space-between; color:white; background:var(--forest2); }
.login-visual::after { content:""; position:absolute; width:520px; height:520px; right:-160px; top:12%; border:1px solid rgba(255,255,255,.12); border-radius:999px; box-shadow:0 0 0 100px rgba(255,255,255,.025),0 0 0 200px rgba(255,255,255,.02); }
.login-visual img { position:relative; z-index:1; width:175px; filter:brightness(0) invert(1); }
.login-visual div { position:relative; z-index:1; }
.login-visual span { color:rgba(255,255,255,.5); font:600 .75rem "Outfit",sans-serif; letter-spacing:.16em; }
.login-visual h1 { margin:1rem 0 0; font-size:clamp(2.5rem,4vw,4.7rem); line-height:1.12; letter-spacing:-.05em; }
.login-form-wrap { display:grid; place-items:center; padding:2rem; }
.login-form { width:min(100%,430px); }
.login-form h2 { margin:0; font-size:2rem; letter-spacing:-.04em; }
.login-form > p { margin:.8rem 0 2rem; color:var(--muted); line-height:1.7; }
.login-form .field { margin-bottom:1rem; }
.login-form button { width:100%; min-height:52px; margin-top:.5rem; border:0; border-radius:.7rem; color:white; background:var(--forest); font-weight:800; cursor:pointer; }
.login-help { margin-top:1.5rem; padding:1rem; border-radius:.7rem; color:var(--muted); background:rgba(255,255,255,.55); font-size:.8rem; line-height:1.65; }
@media(max-width:980px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:fixed;z-index:50;left:0;transform:translateX(-100%);width:260px;transition:transform .3s ease}.admin-sidebar.open{transform:none}.admin-menu{display:grid;place-items:center}.admin-topbar{padding:1rem 1.25rem}.admin-content{padding:1.5rem 1.25rem 3rem}.admin-alert{margin:1rem 1.25rem 0}.admin-user span{display:none}.stats-grid,.admin-grid,.form-columns{grid-template-columns:1fr}.login-page{grid-template-columns:1fr}.login-visual{display:none}}
@media(max-width:650px){.stats-grid{grid-template-columns:1fr}.section-toolbar{align-items:flex-start;flex-direction:column}.form-grid,.detail-list{grid-template-columns:1fr}.field.full{grid-column:auto}.gallery-admin{grid-template-columns:repeat(2,1fr)}.data-table{min-width:780px}.panel.table-panel{overflow-x:auto}.admin-topbar h1{font-size:1.25rem}}
.stats-table td, .stats-table th { white-space:nowrap; }
@media(max-width:650px){
  .stats-table { min-width:auto; }
  .stats-table td, .stats-table th { padding:.7rem .6rem; font-size:.8rem; }
  .stats-table .stat-bar-cell { min-width:0; gap:0; }
  .stats-table .stat-bar-track { display:none; }
}
