:root{--navy:#1B2A5B;--green:#4FA88B;--ink:#222a38;--grey:#5a6478;--line:#e2e7f0;--bg:#f4f6fb;--li:#0a66c2}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--li);text-decoration:none}
.topbar{background:var(--navy);color:#fff;padding:12px 20px;display:flex;align-items:center;gap:16px}
.topbar .brand{font-weight:700;letter-spacing:.3px}
.topbar .brand small{opacity:.7;font-weight:400;margin-left:6px}
.topbar nav{margin-left:auto;display:flex;gap:18px;align-items:center}
.topbar nav a{color:#cfd8ee}
.topbar nav a.active,.topbar nav a:hover{color:#fff}
.pill{font-size:12px;padding:4px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:6px}
.pill.on{background:rgba(79,168,139,.18);color:#bff0dd}
.pill.off{background:rgba(255,120,120,.18);color:#ffc9c9}
.dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}
.wrap{max-width:1120px;margin:22px auto;padding:0 20px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px}
.calhead{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.calhead h1{font-size:22px;margin:0;color:var(--navy)}
.btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 12px;color:var(--ink);cursor:pointer}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal .dow{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--grey);text-align:center;padding:4px 0}
.cell{background:#fff;border:1px solid var(--line);border-radius:10px;min-height:104px;padding:6px}
.cell.empty{background:transparent;border:none}
.cell .num{font-size:12px;color:var(--grey);font-weight:600}
.cell.today{border-color:var(--green);box-shadow:0 0 0 1px var(--green) inset}
.ev{display:block;margin-top:5px;font-size:12px;line-height:1.25;background:#eef4ff;border-left:3px solid var(--li);border-radius:5px;padding:4px 6px;color:var(--ink);overflow:hidden}
.ev .t{font-weight:600;color:var(--navy);font-size:11px}
.ev.s-posted{background:#eafaf1;border-color:var(--green)}
.ev.s-failed{background:#fdecec;border-color:#e05656}
.ev.s-pending_approval,.ev.s-approved{background:#fff7e6;border-color:#e0a53f}
.badge{font-size:11px;padding:2px 8px;border-radius:999px;text-transform:capitalize}
.b-draft{background:#eceff5;color:#5a6478}.b-scheduled{background:#eef4ff;color:#2c5bd6}
.b-posted{background:#eafaf1;color:#1b6e3b}.b-failed{background:#fdecec;color:#b42318}
.b-pending_approval,.b-approved{background:#fff7e6;color:#8a5a12}
/* LinkedIn-style preview */
.lipost{max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.lihead{display:flex;gap:12px;padding:14px 16px}
.avatar{width:48px;height:48px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex:0 0 auto}
.liname{font-weight:600;color:#000}
.lisub{font-size:12px;color:var(--grey)}
.litext{padding:0 16px 12px;white-space:pre-wrap;line-height:1.45}
.limedia img,.limedia video{width:100%;display:block;background:#000}
.limedia embed{width:100%;height:520px}
.liactions{display:flex;justify-content:space-around;padding:8px;border-top:1px solid var(--line);color:var(--grey);font-size:13px}
.meta{max-width:560px;margin:14px auto 0;font-size:13px;color:var(--grey)}
.meta b{color:var(--ink)}
.login{max-width:340px;margin:12vh auto;padding:28px}
.login h1{color:var(--navy);font-size:20px;margin:0 0 4px}
.login input{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;margin-top:10px}
.login button{width:100%;margin-top:14px;background:var(--navy);color:#fff;border:none;padding:11px;border-radius:8px;font-weight:600;cursor:pointer}
.err{color:#b42318;font-size:13px;margin-top:10px}
.note{background:#fff7e6;border:1px solid #f0d9a8;border-radius:10px;padding:12px 14px;color:#8a5a12;font-size:13px}
code{background:#eef1f8;padding:2px 6px;border-radius:5px;font-size:12px}

/* ---- Authoring UI ---- */
.spacer{margin-left:auto}
.calhead.actionbar{flex-wrap:wrap;row-gap:8px}
.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn.danger{color:#b42318;border-color:#f3c9c5}
.btn.danger:hover{background:#fdecec}
.btn[disabled]{opacity:.45;cursor:not-allowed}
form.inline{display:inline}
.b-changes_requested{background:#fdf0e6;color:#9a4f14}
.ev.s-changes_requested{background:#fdf0e6;border-color:#d9822b}
.b-publishing{background:#eef4ff;color:#2c5bd6}
.ev.s-publishing{background:#eef4ff;border-color:var(--li)}

.flash{border-radius:10px;padding:10px 14px;font-size:13px;margin:12px 0}
.flash.ok{background:#eafaf1;border:1px solid #bfe7d0;color:#1b6e3b}
.flash.bad{background:#fdecec;border:1px solid #f3c9c5;color:#b42318}

.form{padding:20px 22px;display:flex;flex-direction:column}
.form label{font-weight:600;color:var(--navy);font-size:13px;margin-top:16px}
.form label:first-of-type{margin-top:0}
.form .hint-inline{font-weight:400;color:var(--grey);font-size:12px;margin-left:6px}
.form .hint{color:var(--grey);font-size:12px;margin:6px 0 0}
.form textarea,.form input[type=text],.form input[type=datetime-local],.form select{
  width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;margin-top:6px;
  font-family:inherit;font-size:14px;color:var(--ink);background:#fff}
.form textarea{resize:vertical;line-height:1.5}
.form textarea:focus,.form input:focus,.form select:focus{outline:none;border-color:var(--li);box-shadow:0 0 0 3px rgba(10,102,194,.12)}
.form input[type=file]{margin-top:6px;font-size:13px}
.form .check{font-weight:400;color:var(--ink);font-size:13px;margin-top:10px;display:flex;align-items:center;gap:7px}
.mediabox{margin-top:8px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fafbfe}
.mediabox img,.mediabox video{max-width:100%;max-height:260px;display:block;border-radius:6px}
.filechip{font-size:13px;color:var(--grey)}
.formactions{display:flex;gap:10px;align-items:center;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.formactions .btn{padding:9px 18px;font-weight:600}

.empty-state{background:#fff;border:1px dashed var(--line);border-radius:12px;padding:34px;text-align:center;margin-top:16px;color:var(--grey)}
.empty-state p{margin:0 0 14px}

@media (max-width:640px){
  /* The topbar is a single non-wrapping flex row, so on a phone "Log out" was pushed off the
     right edge and clipped — the one control you cannot reach any other way. */
  .topbar{flex-wrap:wrap;row-gap:8px}
  .topbar nav{gap:14px}
  .cal{grid-template-columns:repeat(2,1fr)}
  .cal .dow{display:none}
  .cell{min-height:auto}
  .calhead{flex-wrap:wrap}
  .spacer{margin-left:0;flex-basis:100%}
}
