/* Ringo's editing interface deliberately uses a neutral, self-contained palette. */
body.admin-visible { padding-right: 210px; }

.ringo-admin,
.ringo-block-controls {
  --ringo-ink: #263238;
  --ringo-muted: #61727a;
  --ringo-paper: #ffffff;
  --ringo-surface: #f1f4f5;
  --ringo-line: #d9e0e3;
  --ringo-primary: #176b72;
  --ringo-danger: #9e3028;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.ringo-admin .admin-panel { position: fixed; z-index: 80; top: 0; right: 0; bottom: 0; width: 210px; padding: 1.4rem; display: flex; flex-direction: column; gap: .35rem; color: #fff; background: var(--ringo-ink); box-shadow: -5px 0 25px rgb(0 0 0 / .14); }
.ringo-admin .admin-heading { display: flex; flex-direction: column; margin-bottom: .6rem; padding-bottom: 1rem; border-bottom: 1px solid rgb(255 255 255 / .16); }
.ringo-admin .admin-heading span { font-size: 1.25rem; font-weight: 700; }.ringo-admin .admin-heading small { opacity: .68; }
.ringo-admin .admin-panel button { width: 100%; padding: .7rem; border: 0; color: inherit; background: transparent; text-align: left; font: inherit; font-size: .78rem; cursor: pointer; }.ringo-admin .admin-panel .admin-primary { margin-bottom: .35rem; color: var(--ringo-ink); background: var(--ringo-surface); }.ringo-admin .admin-panel form:last-child { margin-top: auto; }
.ringo-admin .admin-mobile-toggle { display: none; }

.ringo-block-controls { position: absolute; z-index: 5; top: .8rem; right: .8rem; display: flex; gap: .2rem; padding: .25rem; color: #fff; background: #263238; box-shadow: 0 4px 14px rgb(0 0 0 / .15); }.ringo-block-controls button { padding: .35rem .55rem; border: 0; color: #fff; background: transparent; font: inherit; font-size: .68rem; cursor: pointer; }.ringo-block-controls button:hover { background: rgb(255 255 255 / .12); }
.ringo-undo-notice { position: fixed; z-index: 90; right: 1rem; bottom: 1rem; display: flex; align-items: center; gap: .7rem; max-width: calc(100% - 2rem); padding: .8rem 1rem; color: #fff; background: var(--ringo-ink, #263238); font: 600 .85rem/1.2 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; box-shadow: 0 5px 18px rgb(0 0 0 / .25); }.ringo-undo-notice button { min-width: 44px; min-height: 44px; padding: .55rem .7rem; border: 1px solid rgb(255 255 255 / .65); color: #fff; background: transparent; font: inherit; cursor: pointer; touch-action: manipulation; -webkit-appearance: none; appearance: none; }.ringo-undo-countdown { min-width: 1.2em; text-align: right; color: rgb(255 255 255 / .72); }

.ringo-admin .admin-dialog { width: min(calc(100% - 2rem), 720px); max-height: 88vh; overflow-y: auto; padding: 0; border: 0; color: var(--ringo-ink); background: var(--ringo-paper); font: inherit; box-shadow: 0 20px 60px rgb(0 0 0 / .32); }.ringo-admin .admin-dialog-small { width: min(calc(100% - 2rem), 470px); }.ringo-admin .admin-dialog::backdrop { background: rgb(15 25 20 / .68); }
.ringo-admin .admin-dialog > header { display: flex; justify-content: space-between; align-items: start; padding: 1.4rem 1.6rem; border-bottom: 1px solid var(--ringo-line); }.ringo-admin .admin-dialog > header h2 { margin: 0; font-size: 2rem; line-height: 1.15; }.ringo-admin .eyebrow { margin-bottom: .6rem; color: var(--ringo-primary); font-size: .75rem; font-weight: 750; letter-spacing: .12em; line-height: 1.4; text-transform: uppercase; }.ringo-admin .dialog-close { border: 0; color: inherit; background: none; font: inherit; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.ringo-admin .dialog-header-actions { display: flex; align-items: center; gap: .5rem; }.ringo-admin .editor-undo { min-width: 88px; min-height: 44px; padding: .6rem .8rem; border: 1px solid var(--ringo-line); color: var(--ringo-ink); background: var(--ringo-surface); font: 650 .82rem/1 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; cursor: pointer; touch-action: manipulation; -webkit-appearance: none; appearance: none; }.ringo-admin .editor-undo span { margin-right: .25rem; font-size: 1.15em; }.ringo-admin .editor-undo:disabled { color: var(--ringo-muted); cursor: default; opacity: .5; }
.ringo-admin .admin-dialog .admin-form, .ringo-admin .admin-dialog > #new-user-row { padding: 0 1.6rem 1.6rem; }.ringo-admin .admin-dialog > .button-secondary { margin: 1rem 1.6rem 0; }
.ringo-admin .admin-form { display: grid; gap: 1rem; margin-top: 2rem; }.ringo-admin .admin-form label { display: grid; gap: .35rem; font-size: .74rem; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }.ringo-admin .admin-form input, .ringo-admin .admin-form textarea, .ringo-admin .admin-form select { width: 100%; padding: .72rem; border: 1px solid var(--ringo-line); color: inherit; background: #fff; font: inherit; }
.ringo-admin .button-primary, .ringo-admin .button-secondary, .ringo-admin .button-danger { display: inline-flex; justify-content: center; padding: .72rem 1rem; border: 0; font: inherit; cursor: pointer; }.ringo-admin .button-primary { color: #fff; background: var(--ringo-primary); }.ringo-admin .button-secondary { color: var(--ringo-ink); background: var(--ringo-surface); }.ringo-admin .button-danger { color: var(--ringo-danger); background: #f9e8e6; }.ringo-admin .admin-form footer { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1rem; }
.ringo-admin .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }.ringo-admin .checkbox-row { display: flex !important; grid-template-columns: auto 1fr; align-items: center; gap: .6rem !important; }.ringo-admin .checkbox-row input { width: auto; }.ringo-admin .block-choices { display: grid; gap: .7rem; padding: 1.5rem; }.ringo-admin .block-choices button { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--ringo-line); color: inherit; background: #fff; font: inherit; text-align: left; cursor: pointer; }.ringo-admin .block-choices span { margin-top: .25rem; color: var(--ringo-muted); font-size: .78rem; }
.ringo-admin .form-error { min-height: 1.2em; padding: .8rem 1rem; color: var(--ringo-danger); background: #fbe9e7; }.ringo-admin .users-list { margin-top: 1rem; border-top: 1px solid var(--ringo-line); }.ringo-admin .user-summary { width: 100%; display: grid; grid-template-columns: 1fr auto 1.5rem; gap: 1rem; padding: 1rem 1.6rem; border: 0; border-bottom: 1px solid var(--ringo-line); color: inherit; background: #fff; font: inherit; text-align: left; cursor: pointer; }.ringo-admin .user-summary span { color: var(--ringo-muted); font-size: .73rem; }.ringo-admin .user-summary b { justify-self: end; }.ringo-admin .user-expanded { padding: 1rem 1.6rem; border-bottom: 1px solid var(--ringo-line); background: var(--ringo-surface); }.ringo-admin .user-actions { display: flex; gap: .5rem; }.ringo-admin .user-actions form { margin: 0; }
.ringo-admin .gallery-editor-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }.ringo-admin .gallery-editor-heading span, .ringo-admin .field-help { margin: 0; color: var(--ringo-muted); font-size: .78rem; }.ringo-admin #gallery-current-images:empty::before { content: "No images yet."; display: block; padding: 1rem; border: 1px dashed var(--ringo-line); color: var(--ringo-muted); font-size: .82rem; }
.ringo-admin .permission-editor { display: grid; gap: .7rem; margin-top: 1rem; }.ringo-admin .permission-editor > label { display: grid; gap: .35rem; font-size: .74rem; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }.ringo-admin .permission-editor select { width: 100%; padding: .72rem; border: 1px solid var(--ringo-line); color: inherit; background: #fff; font: inherit; }.ringo-admin .permission-form { margin-top: 0; }.ringo-admin .permission-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: .8rem; }.ringo-admin .permission-groups fieldset { min-width: 0; margin: 0; padding: .8rem; border: 1px solid var(--ringo-line); background: #fff; }.ringo-admin .permission-groups legend { padding: 0 .3rem; color: var(--ringo-primary); font-size: .78rem; font-weight: 750; }.ringo-admin .permission-choice { display: grid !important; grid-template-columns: auto 1fr; gap: .6rem !important; align-items: start; padding: .45rem 0; letter-spacing: normal !important; text-transform: none !important; }.ringo-admin .permission-choice input { width: auto; margin-top: .2rem; }.ringo-admin .permission-choice span { display: grid; gap: .12rem; }.ringo-admin .permission-choice small { color: var(--ringo-muted); font-weight: 400; line-height: 1.35; }
.ringo-admin .gallery-admin-item { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding: .8rem 0; border-bottom: 1px solid var(--ringo-line); }.ringo-admin .gallery-preview { display: grid; gap: .3rem; }.ringo-admin .gallery-preview img { width: 90px; height: 68px; object-fit: cover; }.ringo-admin .gallery-position { color: var(--ringo-muted); font-size: .7rem; }.ringo-admin .gallery-admin-item > div:nth-child(2) { display: grid; grid-template-columns: 1fr 1fr auto; gap: .5rem; align-items: end; }.ringo-admin .gallery-admin-item input { min-width: 0; padding: .45rem; border: 1px solid var(--ringo-line); }.ringo-admin .gallery-item-actions { display: grid; gap: .5rem; }.ringo-admin .gallery-order-controls { display: flex; gap: .25rem; }.ringo-admin .gallery-order-controls button { min-width: 2.35rem; padding: .5rem; border: 1px solid var(--ringo-line); color: var(--ringo-ink); background: var(--ringo-surface); font: inherit; cursor: pointer; }.ringo-admin .gallery-order-controls button:disabled { cursor: default; opacity: .35; }.ringo-admin .gallery-item-actions .button-danger { padding: .5rem; }

@media (max-width: 820px) { body.admin-visible { padding-right: 0; }.ringo-admin .admin-mobile-toggle { display: block; position: fixed; z-index: 82; right: 1rem; bottom: 1rem; padding: .75rem 1rem; border: 0; color: #fff; background: var(--ringo-ink); font: inherit; box-shadow: 0 4px 15px rgb(0 0 0 / .25); cursor: pointer; }.ringo-admin .admin-panel { transform: translateX(100%); transition: transform .2s; }.ringo-admin .form-grid { grid-template-columns: 1fr; }.ringo-undo-notice { right: .5rem; bottom: 4.75rem; max-width: calc(100% - 1rem); } }
@media (max-width: 560px) { .ringo-admin .admin-dialog { width: calc(100% - 1rem); max-height: calc(100dvh - 1rem); }.ringo-admin .admin-dialog > header { position: sticky; z-index: 1; top: 0; padding: 1.15rem 1.2rem; background: var(--ringo-paper); }.ringo-admin .admin-dialog .admin-form, .ringo-admin .admin-dialog > #new-user-row { padding: 0 1.2rem 1.2rem; }.ringo-admin .admin-dialog > .button-secondary { margin: 1rem 1.2rem 0; }.ringo-admin .user-summary, .ringo-admin .user-expanded { padding-right: 1.2rem; padding-left: 1.2rem; }.ringo-admin .user-actions { flex-direction: column; align-items: stretch; }.ringo-admin .user-actions form, .ringo-admin .user-actions button { width: 100%; }.ringo-admin .admin-form footer { flex-direction: column-reverse; }.ringo-admin .admin-form footer button { width: 100%; }.ringo-admin .gallery-editor-heading { display: grid; }.ringo-admin .gallery-admin-item { grid-template-columns: 1fr; }.ringo-admin .gallery-preview img { width: 100%; height: auto; max-width: 240px; }.ringo-admin .gallery-admin-item > div:nth-child(2) { grid-template-columns: 1fr; }.ringo-admin .gallery-item-actions { display: flex; justify-content: space-between; align-items: center; } }

.ringo-admin .admin-panel > a { display: block; padding: .7rem; color: inherit; font-size: .78rem; text-decoration: none; }
.ringo-admin .admin-panel > a:hover { background: rgb(255 255 255 / .1); }

/* Persistent contextual application shell. Controls appear only during Page Editing. */
body.admin-visible { padding-right: 0; }
body.ringo-sidebar-open { padding-left: 240px; }
.ringo-admin .admin-panel { left: 0; right: auto; top: 84px; width: 240px; overflow-y: auto; padding: 1rem; background: var(--ringo-shell-ink, #263238); }
.ringo-admin [hidden], .ringo-block-controls { display: none !important; }
body.ringo-editing .ringo-block-controls { display: flex !important; }
.ringo-admin .admin-panel nav a { display: block; padding: .7rem; color: inherit; text-decoration: none; font-size: .85rem; }
.ringo-admin .admin-panel nav button { font-size: .85rem; }
.ringo-admin .admin-panel nav a:hover, .ringo-admin .admin-panel nav button:hover { background: #ffffff1a; }
.ringo-admin .admin-panel-actions { display: flex; gap: .4rem; }
.ringo-admin .admin-panel-actions button { width: auto; min-width: 44px; }
.ringo-admin .admin-help { padding: .7rem; font-size: .8rem; line-height: 1.6; opacity: .8; }
.ringo-admin .admin-restore { position: fixed; left: .5rem; bottom: 1rem; z-index: 80; padding: .7rem; border: 0; border-radius: .4rem; background: var(--ringo-shell-ink, #263238); color: white; cursor: pointer; }
.ringo-admin-toggle { border: 0; background: none; color: inherit; font: inherit; cursor: pointer; min-height: 44px; }
.ringo-management-row { border: 1px solid var(--ringo-line, #d9e0e3); border-radius: .65rem; margin-block: .7rem; overflow: hidden; }
.ringo-management-summary { cursor: pointer; padding: 1rem; }
.ringo-management-detail { padding: 1rem; }
.ringo-admin .inline-block-editor { position: relative; inset: auto; margin: 1rem auto; width: min(calc(100% - 2rem), 900px); max-height: none; border: 1px solid var(--ringo-line); border-radius: .65rem; }
@media (max-width: 820px) {
  body.ringo-sidebar-open { padding-left: 0; }
  .ringo-admin .admin-panel { top: 72px; width: min(280px, 85vw); transform: none; box-shadow: 5px 0 25px #0003; }
}

.ringo-admin .admin-panel { top: var(--ringo-header-height, 84px); }
.ringo-admin .admin-panel .admin-help { color: inherit; background: transparent; border: 0; }
.ringo-admin .form-error:empty { display: none; }
body.ringo-sidebar-open [data-ringo-shell-header] { position: sticky; top: 0; z-index: 81; margin-left: -240px; width: calc(100% + 240px); }
@media (max-width: 820px) { body.ringo-sidebar-open [data-ringo-shell-header] { margin-left: 0; width: 100%; } }
