.jnlsmc-app,
.jnlsmc-login-required {
    --jnlsmc-ink: #17202a;
    --jnlsmc-muted: #6c7784;
    --jnlsmc-line: #e2e7ec;
    --jnlsmc-soft: #f6f8fa;
    --jnlsmc-accent: #263f68;
    --jnlsmc-accent-soft: #edf3ff;
    --jnlsmc-boost: #a35f00;
    --jnlsmc-planned: #e2af16;
    --jnlsmc-success: #207a4a;
    --jnlsmc-awaiting-boost: #7540a8;
    --jnlsmc-danger: #b33232;
    font-family: Arial, Helvetica, sans-serif;
    color: var(--jnlsmc-ink);
    box-sizing: border-box;
}
.jnlsmc-app *, .jnlsmc-login-required * { box-sizing: border-box; }
.jnlsmc-shell { overflow: hidden; background: #fff; border: 1px solid var(--jnlsmc-line); border-radius: 18px; box-shadow: 0 14px 35px rgba(23,32,42,.08); }
.jnlsmc-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 28px 30px 22px; background: linear-gradient(135deg,#ffffff,#f6f9ff); border-bottom: 1px solid var(--jnlsmc-line); }
.jnlsmc-eyebrow { margin: 0 0 6px; color: var(--jnlsmc-accent); font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.jnlsmc-header h2, .jnlsmc-modal h3 { margin: 0; color: var(--jnlsmc-ink); font-size: 30px; line-height: 1.1; }
.jnlsmc-subtitle { max-width: 720px; margin: 10px 0 0; color: var(--jnlsmc-muted); font-size: 14px; line-height: 1.55; }
.jnlsmc-toolbar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 14px; padding: 13px 16px; background: var(--jnlsmc-soft); border-bottom: 1px solid var(--jnlsmc-line); }
.jnlsmc-toolbar-nav { display: flex; align-items: center; gap: 8px; }
.jnlsmc-current-month { margin: 0; font-size: 18px; text-align: center; }
.jnlsmc-legend { display: flex; align-items: center; justify-content: flex-end; gap: 14px; color: var(--jnlsmc-muted); font-size: 12px; }
.jnlsmc-legend span { display: inline-flex; align-items: center; gap: 5px; }
.jnlsmc-legend-dot { width: 10px; height: 10px; border-radius: 50%; }
.jnlsmc-legend-planned { background: var(--jnlsmc-planned); }
.jnlsmc-legend-urgent { background: var(--jnlsmc-danger); }
.jnlsmc-legend-posted { background: var(--jnlsmc-success); }
.jnlsmc-legend-awaiting-boost { background: var(--jnlsmc-awaiting-boost); }
.jnlsmc-legend-boost { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; padding: 0 0 1px; border-radius: 50%; color: #fff; background: var(--jnlsmc-boost); font-size: 11px; font-style: normal; font-weight: 800; line-height: 1; text-align: center; vertical-align: middle; }
.jnlsmc-button, .jnlsmc-icon-button { border: 0; border-radius: 9px; cursor: pointer; font: inherit; font-size: 13px; font-weight: 700; transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease; }
.jnlsmc-button:hover, .jnlsmc-icon-button:hover { transform: translateY(-1px); }
.jnlsmc-button:disabled { cursor: wait; opacity: .65; transform: none; }
.jnlsmc-button { padding: 10px 14px; }
.jnlsmc-button-primary { color: #fff; background: var(--jnlsmc-accent); box-shadow: 0 8px 18px rgba(38,63,104,.16); }
.jnlsmc-button-muted { color: var(--jnlsmc-ink); background: #e9edf2; }
.jnlsmc-button-danger { color: #fff; background: var(--jnlsmc-danger); }
.jnlsmc-icon-button { width: 35px; height: 35px; color: var(--jnlsmc-ink); background: #fff; border: 1px solid var(--jnlsmc-line); font-size: 24px; line-height: 1; }
.jnlsmc-weekdays, .jnlsmc-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.jnlsmc-weekdays { background: #fff; border-bottom: 1px solid var(--jnlsmc-line); }
.jnlsmc-weekdays div { padding: 11px 8px; color: var(--jnlsmc-muted); border-right: 1px solid var(--jnlsmc-line); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.jnlsmc-day { min-height: 132px; padding: 7px; background: #fff; border-right: 1px solid var(--jnlsmc-line); border-bottom: 1px solid var(--jnlsmc-line); cursor: pointer; transition: background .15s ease; }
.jnlsmc-day:hover { background: #f9fbff; }
.jnlsmc-day-outside { background: #fafbfc; color: #abb3bd; }
.jnlsmc-day-today { box-shadow: inset 0 0 0 2px var(--jnlsmc-accent); }
.jnlsmc-day-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.jnlsmc-day-number { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; font-size: 12px; font-weight: 800; }
.jnlsmc-day-today .jnlsmc-day-number { color: #fff; background: var(--jnlsmc-accent); }
.jnlsmc-day-add { width: 25px; height: 25px; opacity: 0; color: var(--jnlsmc-accent); background: transparent; border: 0; border-radius: 50%; cursor: pointer; font-size: 19px; line-height: 1; transition: opacity .15s ease, background .15s ease; }
.jnlsmc-day:hover .jnlsmc-day-add, .jnlsmc-day:focus .jnlsmc-day-add { opacity: 1; }
.jnlsmc-day-add:hover { background: var(--jnlsmc-accent-soft); }
.jnlsmc-day-posts { display: grid; gap: 5px; }
.jnlsmc-entry-pill { display: flex; align-items: center; gap: 4px; width: 100%; min-width: 0; padding: 6px 7px; border: 0; border-radius: 6px; cursor: pointer; font-size: 11px; text-align: left; }
.jnlsmc-entry-pill-planned { color: #342700; background: var(--jnlsmc-planned); }
.jnlsmc-entry-pill-urgent { color: #fff; background: var(--jnlsmc-danger); }
.jnlsmc-entry-pill-posted { color: #fff; background: var(--jnlsmc-success); }
.jnlsmc-entry-pill-awaiting-boost { color: #fff; background: var(--jnlsmc-awaiting-boost); }
.jnlsmc-entry-title { overflow: hidden; flex: 1; text-overflow: ellipsis; white-space: nowrap; }
.jnlsmc-pill-budget, .jnlsmc-pill-attachment { flex: none; font-size: 10px; font-weight: 800; }
.jnlsmc-loading { grid-column: 1 / -1; min-height: 420px; display: grid; place-items: center; color: var(--jnlsmc-muted); }
.jnlsmc-loading-error { color: var(--jnlsmc-danger); }
.jnlsmc-modal[hidden], .jnlsmc-toast[hidden] { display: none; }
.jnlsmc-modal { position: fixed; z-index: 999999; inset: 0; display: grid; place-items: center; padding: 18px; }
.jnlsmc-modal-backdrop { position: absolute; inset: 0; background: rgba(9,17,29,.62); }
.jnlsmc-modal-dialog { position: relative; width: min(760px,100%); max-height: calc(100vh - 36px); overflow: auto; padding: 26px; background: #fff; border-radius: 16px; box-shadow: 0 22px 70px rgba(0,0,0,.27); }
.jnlsmc-modal-close { position: absolute; top: 14px; right: 15px; width: 32px; height: 32px; color: var(--jnlsmc-muted); background: #eff2f5; border: 0; border-radius: 50%; cursor: pointer; font-size: 22px; line-height: 1; }
.jnlsmc-modal h3 { padding-right: 40px; font-size: 27px; }
.jnlsmc-view-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; color: var(--jnlsmc-muted); font-size: 13px; }
.jnlsmc-status-badge { display: inline-flex; align-items: center; padding: 4px 7px; border-radius: 999px; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.jnlsmc-status-badge-planned { color: #342700; background: #fff1ad; }
.jnlsmc-status-badge-urgent { color: #fff; background: var(--jnlsmc-danger); }
.jnlsmc-status-badge-posted { color: #fff; background: var(--jnlsmc-success); }
.jnlsmc-status-badge-awaiting-boost { color: #fff; background: var(--jnlsmc-awaiting-boost); }
.jnlsmc-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 18px; }
.jnlsmc-detail-card { padding: 14px; background: var(--jnlsmc-soft); border: 1px solid var(--jnlsmc-line); border-radius: 10px; }
.jnlsmc-detail-card span, .jnlsmc-detail-card strong { display: block; }
.jnlsmc-detail-card span { margin-bottom: 4px; color: var(--jnlsmc-muted); font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.jnlsmc-detail-card strong { font-size: 18px; }
.jnlsmc-detail-boost { background: #fff8ed; border-color: #f0dbb7; }
.jnlsmc-detail-boost strong { color: var(--jnlsmc-boost); }
.jnlsmc-status-panel { display: grid; gap: 12px; margin-top: 18px; padding: 14px; background: #f8fafc; border: 1px solid var(--jnlsmc-line); border-radius: 10px; }
.jnlsmc-status-panel h4 { margin: 0; font-size: 14px; }
.jnlsmc-status-panel p { margin: 4px 0 0; color: var(--jnlsmc-muted); font-size: 12px; line-height: 1.5; }
.jnlsmc-status-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.jnlsmc-status-checkbox { display: flex; align-items: center; gap: 9px; padding: 11px; background: #fff; border: 1px solid var(--jnlsmc-line); border-radius: 8px; cursor: pointer; }
.jnlsmc-status-checkbox:hover { border-color: #b7c7df; }
.jnlsmc-status-checkbox input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--jnlsmc-success); }
.jnlsmc-status-checkbox input:disabled { cursor: wait; opacity: .6; }
.jnlsmc-status-checkbox strong, .jnlsmc-status-checkbox small { display: block; }
.jnlsmc-status-checkbox strong { font-size: 13px; }
.jnlsmc-status-checkbox small { margin-top: 2px; color: var(--jnlsmc-muted); font-size: 11px; line-height: 1.35; }
.jnlsmc-performance-panel { display: grid; gap: 12px; margin-top: 18px; padding: 14px; background: #f8fafc; border: 1px solid var(--jnlsmc-line); border-radius: 10px; }
.jnlsmc-performance-panel h4 { margin: 0; font-size: 14px; }
.jnlsmc-performance-panel p { margin: 4px 0 0; color: var(--jnlsmc-muted); font-size: 12px; line-height: 1.5; }
.jnlsmc-performance-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)) auto; align-items: end; gap: 8px; }
.jnlsmc-performance-field { display: block; }
.jnlsmc-performance-field span { display: block; margin-bottom: 6px; color: var(--jnlsmc-muted); font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.jnlsmc-performance-field input { width: 100%; padding: 10px 11px; color: var(--jnlsmc-ink); background: #fff; border: 1px solid #ccd5df; border-radius: 8px; font: inherit; font-size: 15px; font-weight: 700; }
.jnlsmc-performance-save { white-space: nowrap; }
.jnlsmc-section { margin-top: 22px; }
.jnlsmc-section h4 { margin: 0 0 8px; font-size: 14px; }
.jnlsmc-description { padding: 14px; color: #394553; background: var(--jnlsmc-soft); border-radius: 9px; font-size: 14px; line-height: 1.6; white-space: normal; }
.jnlsmc-attachment-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.jnlsmc-attachment-card { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px; color: var(--jnlsmc-ink); background: #fff; border: 1px solid var(--jnlsmc-line); border-radius: 9px; text-decoration: none; transition: border .15s ease, box-shadow .15s ease; }
.jnlsmc-attachment-card:hover { border-color: #b7c7df; box-shadow: 0 8px 18px rgba(38,63,104,.08); }
.jnlsmc-attachment-card img, .jnlsmc-file-icon { flex: none; width: 42px; height: 42px; object-fit: cover; border-radius: 7px; }
.jnlsmc-file-icon { display: grid; place-items: center; color: var(--jnlsmc-accent); background: var(--jnlsmc-accent-soft); font-size: 10px; font-weight: 800; }
.jnlsmc-attachment-card span { min-width: 0; flex: 1; }
.jnlsmc-attachment-card strong, .jnlsmc-attachment-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jnlsmc-attachment-card strong { font-size: 12px; }
.jnlsmc-attachment-card small { margin-top: 3px; color: var(--jnlsmc-muted); font-size: 11px; }
.jnlsmc-attachment-card em { color: var(--jnlsmc-accent); font-size: 20px; font-style: normal; font-weight: 800; }
.jnlsmc-field { margin-top: 16px; }
.jnlsmc-field label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 800; }
.jnlsmc-field input[type="text"], .jnlsmc-field input[type="date"], .jnlsmc-field input[type="number"], .jnlsmc-field input[type="file"], .jnlsmc-field textarea { width: 100%; padding: 11px 12px; color: var(--jnlsmc-ink); background: #fff; border: 1px solid #ccd5df; border-radius: 8px; font: inherit; font-size: 14px; }
.jnlsmc-field textarea { resize: vertical; }
.jnlsmc-field small, .jnlsmc-switch-row small { display: block; margin-top: 5px; color: var(--jnlsmc-muted); font-size: 11px; line-height: 1.45; }
.jnlsmc-boost-box { display: grid; grid-template-columns: 1fr 190px; align-items: center; gap: 16px; margin-top: 18px; padding: 14px; background: #fff8ed; border: 1px solid #f0dbb7; border-radius: 10px; }
.jnlsmc-boost-box .jnlsmc-field { margin-top: 0; }
.jnlsmc-switch-row { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.jnlsmc-switch-row > input { position: absolute; opacity: 0; pointer-events: none; }
.jnlsmc-switch { position: relative; flex: none; width: 40px; height: 22px; background: #c7ced6; border-radius: 30px; transition: background .15s ease; }
.jnlsmc-switch::after { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; content: ""; background: #fff; border-radius: 50%; transition: transform .15s ease; }
.jnlsmc-switch-row input:checked + .jnlsmc-switch { background: var(--jnlsmc-boost); }
.jnlsmc-switch-row input:checked + .jnlsmc-switch::after { transform: translateX(18px); }
.jnlsmc-field-disabled { opacity: .45; }
.jnlsmc-existing-attachments { display: grid; gap: 7px; }
.jnlsmc-delete-attachment { display: flex; align-items: center; gap: 9px; padding: 10px; background: var(--jnlsmc-soft); border: 1px solid var(--jnlsmc-line); border-radius: 8px; cursor: pointer; }
.jnlsmc-delete-attachment span { min-width: 0; flex: 1; }
.jnlsmc-delete-attachment strong, .jnlsmc-delete-attachment small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jnlsmc-delete-attachment strong { font-size: 12px; }
.jnlsmc-delete-attachment small { color: var(--jnlsmc-muted); font-size: 11px; }
.jnlsmc-delete-attachment em { color: var(--jnlsmc-danger); font-size: 11px; font-style: normal; font-weight: 800; }

.jnlsmc-copy-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; color: #3b2a00; background: #fff4c7; border-bottom: 1px solid #eed487; font-size: 12px; }
.jnlsmc-copy-bar[hidden] { display: none; }
.jnlsmc-copy-bar span { min-width: 0; }
.jnlsmc-copy-title { font-style: normal; font-weight: 700; }
.jnlsmc-copy-clear { flex: none; padding: 0; color: #725100; background: transparent; border: 0; cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; text-decoration: underline; }
.jnlsmc-copy-preview { margin-top: 18px; padding: 14px; background: #fff8df; border: 1px solid #eed487; border-radius: 10px; }
.jnlsmc-copy-preview span, .jnlsmc-copy-preview strong, .jnlsmc-copy-preview small { display: block; }
.jnlsmc-copy-preview span { color: #725100; font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.jnlsmc-copy-preview strong { margin-top: 4px; font-size: 17px; }
.jnlsmc-copy-preview small { margin-top: 8px; color: var(--jnlsmc-muted); font-size: 12px; line-height: 1.5; }
.jnlsmc-modal-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.jnlsmc-empty { margin: 0; color: var(--jnlsmc-muted); font-size: 13px; }
.jnlsmc-toast { position: fixed; z-index: 1000000; right: 20px; bottom: 20px; max-width: min(360px,calc(100vw - 40px)); padding: 13px 15px; color: #fff; background: #1c6b48; border-radius: 9px; box-shadow: 0 10px 30px rgba(0,0,0,.18); font-size: 13px; font-weight: 700; }
.jnlsmc-toast-error { background: var(--jnlsmc-danger); }
.jnlsmc-modal-open { overflow: hidden; }
.jnlsmc-login-required { padding: 24px; background: #fff; border: 1px solid var(--jnlsmc-line); border-radius: 12px; }
.jnlsmc-login-required p { color: var(--jnlsmc-muted); }
.jnlsmc-login-button { display: inline-block; padding: 10px 14px; color: #fff; background: var(--jnlsmc-accent); border-radius: 8px; text-decoration: none; font-weight: 800; }
@media (max-width: 840px) {
    .jnlsmc-toolbar { grid-template-columns: 1fr; }
    .jnlsmc-current-month { grid-row: 1; }
    .jnlsmc-toolbar-nav, .jnlsmc-legend { justify-content: center; }
    .jnlsmc-day { min-height: 105px; padding: 5px; }
    .jnlsmc-entry-pill { padding: 5px; }
}
@media (max-width: 640px) {
    .jnlsmc-header { display: block; padding: 22px 18px; }
    .jnlsmc-header .jnlsmc-button { margin-top: 14px; }
    .jnlsmc-header h2 { font-size: 26px; }
    .jnlsmc-calendar-wrap { overflow-x: auto; }
    .jnlsmc-weekdays, .jnlsmc-calendar-grid { min-width: 760px; }
    .jnlsmc-modal-dialog { padding: 20px; }
    .jnlsmc-detail-grid, .jnlsmc-attachment-grid, .jnlsmc-boost-box, .jnlsmc-status-options, .jnlsmc-performance-fields { grid-template-columns: 1fr; }
}

/* Password-gated frontend access. */
.jnlsmc-password-required {
    --jnlsmc-ink: #17202a;
    --jnlsmc-muted: #6c7784;
    --jnlsmc-line: #e2e7ec;
    --jnlsmc-accent: #263f68;
    --jnlsmc-danger: #a12525;
    max-width: 520px;
    padding: 32px;
    color: var(--jnlsmc-ink);
    background: #fff;
    border: 1px solid var(--jnlsmc-line);
    border-radius: 18px;
    box-shadow: 0 14px 35px rgba(23,32,42,.08);
    font-family: Arial, Helvetica, sans-serif;
}
.jnlsmc-password-required * { box-sizing: border-box; }
.jnlsmc-password-required h2 { margin: 0; color: var(--jnlsmc-ink); font-size: 30px; line-height: 1.1; }
.jnlsmc-password-required p:not(.jnlsmc-eyebrow) { margin: 12px 0 0; color: var(--jnlsmc-muted); font-size: 14px; line-height: 1.55; }
.jnlsmc-password-icon { width: 46px; height: 46px; display: grid; place-items: center; margin-bottom: 14px; background: #edf3ff; border-radius: 50%; font-size: 20px; }
.jnlsmc-password-form { display: grid; gap: 9px; margin-top: 20px; }
.jnlsmc-password-form label { font-size: 13px; font-weight: 800; }
.jnlsmc-password-form input[type="password"] { width: 100%; padding: 11px 12px; color: var(--jnlsmc-ink); background: #fff; border: 1px solid #ccd5df; border-radius: 8px; font: inherit; font-size: 14px; }
.jnlsmc-password-form .jnlsmc-button { justify-self: start; margin-top: 3px; }
.jnlsmc-password-error { margin-top: 16px; padding: 10px 12px; color: var(--jnlsmc-danger); background: #fff4f4; border: 1px solid #efd0d0; border-radius: 8px; font-size: 13px; font-weight: 700; }
.jnlsmc-header-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 9px; flex: none; }
.jnlsmc-lock-link { color: var(--jnlsmc-muted); font-size: 12px; font-weight: 700; text-decoration: none; }
.jnlsmc-lock-link:hover { color: var(--jnlsmc-accent); text-decoration: underline; }
@media (max-width: 640px) {
    .jnlsmc-header-actions { align-items: flex-start; }
    .jnlsmc-password-required { padding: 24px 20px; }
}


/* Theme-independent public calendar route: /social-media-calendar/ */
.jnlsmc-standalone-body { margin: 0; min-height: 100vh; background: #f3f6fa; }
.jnlsmc-standalone-page { max-width: 1500px; margin: 0 auto; padding: 28px 18px; }
.jnlsmc-standalone-page .jnlsmc-password-required { margin: 7vh auto 0; }
@media (max-width: 640px) {
    .jnlsmc-standalone-page { padding: 14px 8px; }
    .jnlsmc-standalone-page .jnlsmc-password-required { margin-top: 4vh; }
}
