*{box-sizing:border-box}
:root{font-family:Segoe UI,Arial,sans-serif;color:#17324f;background:#eef3f8}
body{margin:0;background:linear-gradient(180deg,#e8f2fc,#f7f9fb 190px,#eef3f8)}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
.admin-topbar{height:72px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #d1deea;box-shadow:0 3px 10px rgba(10,60,110,.05)}
.admin-brand{display:flex;align-items:center;gap:14px}
.admin-brand img{height:44px;max-width:150px;object-fit:contain}
.admin-brand strong,.admin-brand small{display:block}
.admin-brand strong{color:#0a4d90;font-size:18px}
.admin-brand small{font-size:10px;color:#74859a;margin-top:3px}
.admin-topbar nav{display:flex;gap:8px}
.admin-topbar nav a{padding:9px 12px;border-radius:6px;color:#0b5fb8;font-weight:800;font-size:12px}
.admin-topbar nav a:hover{background:#edf6ff}
.admin-shell{max-width:1180px;margin:0 auto;padding:26px 22px 50px}
.admin-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;background:linear-gradient(120deg,#073e7d,#0b6abd);color:#fff;border-radius:12px;padding:25px 28px;box-shadow:0 12px 30px rgba(7,61,120,.16);margin-bottom:18px}
.admin-hero span{font-size:10px;letter-spacing:1.8px;font-weight:900;color:#bfe2ff}
.admin-hero h1{font-size:30px;margin:6px 0 7px}
.admin-hero p{margin:0;max-width:720px;color:#e1effc;font-size:13px;line-height:1.5}
.save-state{flex:0 0 auto;padding:7px 10px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.10);border-radius:20px;font-size:11px;font-weight:800}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.admin-card{background:#fff;border:1px solid #d2deea;border-radius:10px;padding:19px;box-shadow:0 7px 20px rgba(20,63,103,.07)}
.admin-card.wide{grid-column:1/-1}
.admin-card h2{margin:0 0 14px;color:#0a4d90;font-size:17px}
.admin-card hr{border:0;border-top:1px solid #e1e8f0;margin:22px 0}
label{display:block;margin:12px 0;color:#53677e;font-size:11px;font-weight:800}
label small{font-weight:500;color:#8a99a9}
input,textarea{width:100%;margin-top:5px;border:1px solid #bacbdb;border-radius:6px;background:#fbfdff;color:#17324f;padding:10px 11px;outline:none}
input:focus,textarea:focus{border-color:#0b6abd;box-shadow:0 0 0 3px rgba(11,106,189,.12)}
textarea{resize:vertical}
.card-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.card-title-row h2{margin-bottom:3px}
.card-title-row p{margin:0;color:#7d8d9e;font-size:11px}
.announcement-row{display:grid;grid-template-columns:2fr .6fr 1.5fr auto;gap:8px;align-items:end;padding:10px 0;border-top:1px solid #e9eef4}
.announcement-row:first-child{border-top:0}
.announcement-row label{margin:0}
.remove-row{height:38px;border:1px solid #e2c7c7;background:#fff5f5;color:#9e3d3d;border-radius:6px;cursor:pointer;font-weight:800}
.form-actions{position:sticky;bottom:0;margin-top:18px;background:rgba(238,243,248,.94);backdrop-filter:blur(8px);border:1px solid #d2deea;border-radius:10px;padding:12px;display:flex;justify-content:space-between;gap:12px}
.primary,.secondary{border-radius:6px;padding:10px 14px;font-weight:900;cursor:pointer}
.primary{background:linear-gradient(#147bd7,#0a59aa);color:#fff;border:1px solid #084d92}
.secondary{background:#fff;color:#0b5fb8;border:1px solid #c5d7e8}
button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:780px){.admin-grid{grid-template-columns:1fr}.admin-card.wide{grid-column:auto}.admin-hero{align-items:flex-start;flex-direction:column}.announcement-row{grid-template-columns:1fr}.form-actions{align-items:stretch;flex-direction:column}.form-actions>div{display:grid;gap:7px}}

/* Phase 5D.1 save-feedback repair */
.admin-status-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.preview-link{padding:7px 10px;border-radius:20px;background:#fff;color:#0b5fb8;font-size:11px;font-weight:900}
.save-state.saved{background:#dff6e8;color:#176b37;border-color:#a7dfbd}
.save-state.error{background:#fff0f0;color:#9b2d2d;border-color:#efbcbc}
.save-state.dirty{background:#fff7df;color:#8b5b00;border-color:#efd595}
.save-toast{
  position:fixed;right:22px;bottom:22px;z-index:1200;max-width:420px;
  padding:14px 17px;border-radius:8px;color:#fff;font-size:13px;font-weight:800;
  box-shadow:0 15px 40px rgba(0,0,0,.24);background:#19713b
}
.save-toast.error{background:#9f3030}
.save-toast[hidden]{display:none}


/* Phase 5D.2 — persistent save confirmation */
.last-save-panel{
  margin-top:8px;
  padding:9px 11px;
  border-radius:7px;
  border:1px solid #9fd4b4;
  background:#e7f7ed;
  color:#195f36;
  min-width:230px;
}
.last-save-panel strong,.last-save-panel span{display:block}
.last-save-panel strong{font-size:12px}
.last-save-panel span{font-size:10px;margin-top:3px;color:#39704f}
.last-save-panel.error{
  border-color:#e2a9a9;
  background:#fff0f0;
  color:#8f2525;
}
.last-save-panel.error span{color:#9d4c4c}

/* Phase 5D.3 — direct-save diagnostics */
.save-diagnostics{
  max-width:1180px;margin:0 auto 26px;padding:11px 14px;background:#fff;
  border:1px solid #cfdce8;border-radius:8px;color:#486178;font-size:11px;
}
.save-diagnostics strong,.save-diagnostics span{display:block}
.save-diagnostics strong{color:#0a4d90;margin-bottom:4px}
.save-diagnostics.ok{border-color:#a8dabb;background:#f0faf4;color:#276440}
.save-diagnostics.error{border-color:#e6b4b4;background:#fff4f4;color:#8f3030}

/* Phase 5E — managed data editors */
.managed-row{
  display:grid;
  gap:8px;
  align-items:end;
  padding:10px 0;
  border-top:1px solid #e9eef4;
}
.service-row{grid-template-columns:1.1fr 1.7fr 1.5fr .8fr .5fr auto}
.news-category-row{grid-template-columns:1fr 2fr auto}
.managed-row label{margin:0}
.managed-row select{
  width:100%;
  margin-top:5px;
  border:1px solid #bacbdb;
  border-radius:6px;
  background:#fbfdff;
  color:#17324f;
  padding:10px 8px;
}
@media(max-width:900px){
  .service-row,.news-category-row{grid-template-columns:1fr}
}

.field-help{margin:-7px 0 12px;color:#7a8b9e;font-size:10px;line-height:1.45}

/* Phase 5G — service health editor */
.service-row{grid-template-columns:1fr 1.5fr 1.35fr 1.35fr .8fr .45fr auto}
@media(max-width:1100px){.service-row{grid-template-columns:1fr}}
