.admin-body { min-height: 100vh; background: #eef2ed; }
.admin-topbar { position: sticky; z-index: 100; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 70px; padding: .65rem 1.25rem; color: #fff; background: var(--forest-950); }
.admin-topbar > div { display: flex; gap: .5rem; }
.admin-topbar .button-soft { background: rgba(255,255,255,.1); }
.admin-shell { display: grid; grid-template-columns: 230px minmax(0, 1fr); min-height: calc(100vh - 70px); }
.admin-sidebar { padding: 1.1rem .8rem; color: #d8e6dc; background: #113c2c; }
.admin-sidebar > p { margin: 0 .5rem 1rem; font-size: .8rem; }
.admin-sidebar nav { display: grid; gap: .25rem; }
.admin-sidebar a { display: flex; align-items: center; gap: .55rem; padding: .7rem .75rem; color: #d8e6dc; border-radius: 9px; font-size: .84rem; font-weight: 800; text-decoration: none; }
.admin-sidebar a:hover, .admin-sidebar a.is-active { color: #fff; background: rgba(255,255,255,.12); }
.admin-content { min-width: 0; padding: clamp(1rem, 3vw, 2rem); }
.admin-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.admin-page-heading h1 { margin: 0; font-size: clamp(2rem, 3vw, 2.8rem); text-transform: uppercase; }
.admin-page-heading p:last-child { margin: .2rem 0 0; color: var(--muted); }
.admin-alert, .form-error { margin-bottom: 1rem; padding: .7rem .9rem; background: #e4f2e6; border: 1px solid #a7cbaa; border-radius: 9px; font-weight: 700; }
.form-error { color: #7d1f1a; background: #fde9e7; border-color: #e7aaa4; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; }
.admin-stat-grid article { display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: .1rem .7rem; padding: 1rem; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.admin-stat-grid svg { grid-row: span 2; width: 30px; height: 30px; color: var(--forest-700); }
.admin-stat-grid strong { font-family: var(--display); font-size: 1.45rem; text-transform: uppercase; }
.admin-stat-grid span { color: var(--muted); font-size: .75rem; }
.admin-grid-two { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; margin-top: .8rem; }
.admin-panel { padding: 1rem; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 3px 12px rgba(12,48,30,.04); }
.admin-panel h2 { margin: 0 0 .7rem; text-transform: uppercase; }
.admin-panel ol, .admin-panel p { color: var(--muted); }
.form-section { margin-bottom: .8rem; }
.form-help { margin: -.3rem 0 .8rem; color: var(--muted); font-size: .8rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
.form-grid.three { grid-template-columns: repeat(3, 1fr); }
.form-grid .full { grid-column: 1 / -1; }
.form-section label, .stack-form label, .governance-edit-card label { display: grid; gap: .28rem; font-size: .79rem; font-weight: 800; }
textarea { resize: vertical; }
.code-textarea { width: 100%; color: #e7f0ea; background: #14241b; font-family: Consolas, monospace; font-size: .75rem; }
.toggle-row { display: flex !important; align-items: flex-start; gap: .65rem; padding: .65rem; background: #f6f8f5; border: 1px solid #e0e6e1; border-radius: 9px; }
.toggle-row input { min-height: auto; margin-top: .2rem; accent-color: var(--forest-700); }
.toggle-row small { display: block; color: var(--muted); font-weight: 400; }
.sticky-save { position: sticky; bottom: .8rem; display: flex; justify-content: flex-end; padding: .6rem; background: rgba(238,242,237,.92); border-radius: 12px; backdrop-filter: blur(8px); }
.narrow-panel { max-width: 560px; }
.stack-form { display: grid; gap: .8rem; }
.form-actions { display: flex; gap: .5rem; margin-top: .8rem; }
.table-panel { margin-top: .8rem; padding: 0; overflow: hidden; }
.table-panel > header { display: flex; align-items: center; justify-content: space-between; padding: .8rem 1rem; border-bottom: 1px solid var(--line); }
.table-panel h2 { margin: 0; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .78rem; }
th { color: #fff; background: var(--forest-800); text-align: left; }
th, td { padding: .65rem .7rem; border-bottom: 1px solid var(--line); vertical-align: top; }
td small { display: block; color: var(--muted); }
.actions-cell { display: flex; gap: .3rem; }
.actions-cell form { margin: 0; }
.icon-button.danger { color: var(--danger); }
.governance-admin-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; }
.governance-edit-card { display: grid; gap: .7rem; border-top: 7px solid var(--card-accent); }
.governance-edit-card > header { display: flex; align-items: center; justify-content: space-between; color: var(--card-accent); font-family: var(--display); font-size: 1.1rem; font-weight: 800; text-transform: uppercase; }
.media-heading { align-items: flex-end; }
.media-heading > div { max-width: 780px; }
.media-count { min-width: 130px; padding: .7rem 1rem; color: #fff; background: var(--forest-800); border-radius: 9px 9px 9px 2px; font-size: .72rem; text-align: center; text-transform: uppercase; }
.media-count strong { display: block; color: #f3a51f; font-family: var(--display); font-size: 2rem; line-height: 1; }
.media-admin-grid { display: grid; grid-template-columns: 1.25fr .95fr; gap: .9rem; }
.media-upload-panel, .kml-upload-panel { position: relative; overflow: hidden; padding-top: 3rem; }
.panel-index { position: absolute; top: 0; left: 0; right: 0; padding: .55rem 1rem; color: #fff; background: var(--forest-900); font-family: var(--display); font-size: .8rem; letter-spacing: .09em; }
.media-upload-panel select { width: 100%; }
.media-warning { display: flex; align-items: flex-start; gap: .4rem; padding: .55rem .65rem; color: #6a4911 !important; background: #fff3cd; border: 1px solid #ead18b; border-radius: 8px; font-size: .75rem; }
.media-warning svg { flex: 0 0 auto; width: 17px; }
.kml-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.kml-title p { margin: -.35rem 0 .8rem; font-size: .8rem; }
.kml-swatch { flex: 0 0 48px; width: 48px; height: 12px; margin-top: .5rem; background: #f28c00; border-radius: 99px; }
.kml-status { display: grid; gap: .1rem; margin: 0 0 .9rem; background: #f2f5f0; border: 1px solid #dce4dc; border-radius: 9px; }
.kml-status div { display: grid; grid-template-columns: 120px 1fr; gap: .5rem; padding: .5rem .65rem; border-bottom: 1px solid #dce4dc; }
.kml-status div:last-child { border: 0; }
.kml-status dt { color: var(--muted); font-size: .7rem; }
.kml-status dd { min-width: 0; margin: 0; overflow: hidden; font-size: .75rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.media-contact-sheet { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; margin-top: .9rem; }
.media-slot-card { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.media-preview { position: relative; height: 190px; overflow: hidden; background: #173d2f; }
.media-preview img { width: 100%; height: 100%; object-fit: cover; }
.media-preview > span { position: absolute; right: 0; bottom: 0; padding: .45rem .65rem; color: #fff; background: var(--forest-900); font-family: var(--display); font-size: 1.1rem; }
.media-slot-copy { display: flex; align-items: flex-end; justify-content: space-between; gap: .7rem; min-height: 145px; padding: .8rem; }
.media-slot-copy h2 { margin: .15rem 0 .3rem; font-size: 1rem; text-transform: uppercase; }
.media-slot-copy p { margin: 0; color: var(--muted); font-size: .72rem; }
.media-state { display: inline-block; padding: .15rem .38rem; color: #496052 !important; background: #edf1ec; border-radius: 3px; font-size: .6rem !important; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.media-state.is-custom { color: #8a4800 !important; background: #fff0d9; }
.media-slot-copy form { flex: 0 0 auto; }
.media-slot-copy .button { padding: .45rem .55rem; font-size: .66rem; }
.profile-override-panel { margin-top: .9rem; }
.profile-override-panel > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; padding-bottom: .7rem; border-bottom: 1px solid var(--line); }
.profile-override-panel > header h2 { margin: 0; }
.profile-override-panel > header span { color: var(--muted); font-size: .7rem; }
.profile-override-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.profile-override-row { display: grid; grid-template-columns: 46px 1fr auto; align-items: center; gap: .55rem; min-width: 0; padding: .5rem; background: #f5f7f4; border-left: 4px solid #cad5cb; border-radius: 7px; }
.profile-override-row.has-override { border-left-color: #f28c00; }
.profile-override-icon { display: grid; place-items: center; width: 46px; height: 46px; overflow: hidden; color: var(--forest-700); background: #dfe8e0; border-radius: 5px; }
.profile-override-icon img { width: 100%; height: 100%; object-fit: cover; }
.profile-override-row strong, .profile-override-row small, .profile-override-row em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-override-row strong { font-size: .75rem; }.profile-override-row small { color: var(--muted); font-size: .65rem; }.profile-override-row em { color: #8a5c15; font-size: .6rem; font-style: normal; font-weight: 800; }
.login-page { display: grid; place-items: center; min-height: 100vh; padding: 1rem; color: #fff; background: var(--forest-950); }
.login-card { width: min(440px, 100%); padding: 2rem; color: var(--ink); background: #fff; border-radius: 18px; box-shadow: 0 22px 60px rgba(0,0,0,.3); }
.login-card h1 { margin: 0; font-size: 2.3rem; text-transform: uppercase; }
.login-card > p { color: var(--muted); }
.login-card > a { display: block; margin-top: 1rem; color: var(--forest-700); font-size: .8rem; font-weight: 800; text-align: center; }
.login-mark { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: .7rem; color: #fff; background: var(--forest-700); border-radius: 50% 50% 50% 12%; }
.login-mark svg { width: 30px; height: 30px; }
@media (max-width: 1000px) { .admin-stat-grid, .governance-admin-grid { grid-template-columns: repeat(2, 1fr); }.form-grid.three { grid-template-columns: repeat(2, 1fr); }.media-contact-sheet, .profile-override-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 760px) { .admin-shell { grid-template-columns: 1fr; }.admin-sidebar { padding: .5rem; }.admin-sidebar > p { display: none; }.admin-sidebar nav { display: flex; overflow-x: auto; }.admin-sidebar a { min-width: max-content; }.admin-content { padding: .8rem; }.admin-page-heading { align-items: stretch; flex-direction: column; }.admin-stat-grid, .admin-grid-two, .governance-admin-grid, .form-grid, .form-grid.three, .media-admin-grid, .media-contact-sheet, .profile-override-grid { grid-template-columns: 1fr; }.form-grid .full { grid-column: 1; }.admin-topbar .brand small { display: none; }.admin-topbar .button { padding: .5rem; }.admin-topbar .button svg + * { display:none; }.media-slot-copy { align-items: flex-start; flex-direction: column; }.profile-override-panel > header { align-items: flex-start; flex-direction: column; } }
