/* Review comments overlay, ported from Trust the Locals. */
.review-ui { --review-z: 2147483000; --color-ink: #111; --color-ink-soft: #6b6f76; --color-line: #e3e5e8; --color-line-soft: #eef0f2; --color-surface: #f4f5f7; --kit-face: #fff; --kit-selected-face: #eef0f2; --kit-card-shadow: 0 1px 2px #0000000f, 0 2px 8px -2px #0000001a; --kit-button-shadow: 0 1px 0 #000, 0 8px 18px -8px #0008; font-family: 'Suisse Intl', 'Helvetica Neue', Arial, sans-serif; color: var(--color-ink); font-size: 14px; line-height: 1.4; -webkit-font-smoothing: antialiased; }
.review-ui *, .review-ui *::before, .review-ui *::after { box-sizing: border-box; letter-spacing: normal; text-transform: none; }
.review-ui button { font: inherit; cursor: pointer; }
.review-ui ol { list-style: none; margin: 0; }
.review-ui p { margin: 0; }
.review-ui [hidden] { display: none !important; }
.review-name { width: 100%; }
html.review-commenting, html.review-commenting * { cursor: crosshair !important; }
html.review-commenting .review-ui, html.review-commenting .review-ui * { cursor: auto !important; }
html.review-commenting .review-ui button { cursor: pointer !important; }

.review-hover { position: fixed; z-index: var(--review-z); pointer-events: none; border: 2px solid #2f6bff; border-radius: 6px; background: #2f6bff14; transition: all .08s ease-out; }
.review-hint { position: fixed; z-index: var(--review-z); top: 12px; left: 50%; transform: translateX(-50%); padding: 8px 14px; border-radius: 999px; background: #151515; color: #fff; font-size: 13px; box-shadow: var(--kit-button-shadow); white-space: nowrap; }
.review-hint kbd { padding: 1px 6px; border-radius: 5px; background: #ffffff24; font: inherit; font-size: 12px; }

.review-fab { position: fixed; z-index: var(--review-z); right: 20px; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); display: flex; gap: 8px; align-items: center; }
.review-fab button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; border-radius: 999px; font-size: 14px; font-weight: 500; }
.review-fab-main { position: relative; padding: 0 18px; border: 0; background: linear-gradient(#393939, #242424); color: #fff; box-shadow: var(--kit-button-shadow); }
.review-fab-main.is-on { background: #2f6bff; box-shadow: 0 2px 0 #1d4fd1, 0 8px 18px -8px #2f6bffaa; }
.review-fab-list { justify-content: center; width: 44px; border: 1px solid var(--color-line); background: var(--kit-face); box-shadow: var(--kit-card-shadow); color: var(--color-ink); }
.review-fab-list[aria-pressed="true"] { background: var(--kit-selected-face); }
.review-count { position: absolute; top: -6px; right: -6px; display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: #2f6bff; color: #fff; font-size: 11px; font-weight: 600; border: 2px solid #fff; }

.review-pin { position: fixed; z-index: var(--review-z); display: grid; place-items: center; width: 26px; height: 26px; padding: 0; border: 2px solid #fff; border-radius: 999px 999px 999px 4px; background: #2f6bff; color: #fff; font-size: 12px; font-weight: 600; box-shadow: 0 4px 12px -4px #0006; cursor: pointer; transition: transform .15s; }
.review-pin:hover, .review-pin.is-open { transform: scale(1.15); }
.review-pin.is-resolved { background: #9aa0a6; }

.review-card { position: fixed; z-index: var(--review-z); display: flex; flex-direction: column; gap: 10px; width: min(340px, calc(100vw - 24px)); max-height: calc(100vh - 24px); overflow: auto; padding: 14px; border: 1px solid var(--color-line); border-radius: 16px; background: #fff; box-shadow: 0 24px 60px -24px #0005, var(--kit-card-shadow); font-size: 14px; }
.review-card header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.review-target { font-size: 12px; color: var(--color-ink-soft); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.review-card textarea, .review-card input { width: 100%; padding: 10px 12px; border: 1px solid var(--color-line); border-radius: 12px; background: var(--color-surface); font: inherit; font-size: 14px; line-height: 1.45; resize: vertical; color: var(--color-ink); }
.review-card textarea:focus, .review-card input:focus { outline: 2px solid #2f6bff55; border-color: #2f6bff; background: #fff; }
.review-label { margin-bottom: -4px; font-size: 12px; font-weight: 600; color: var(--color-ink-soft); }
.review-card footer { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.review-card form { display: flex; flex-direction: column; gap: 8px; }
.review-tabs { display: flex; gap: 4px; padding: 3px; border-radius: 999px; background: var(--color-surface); }
.review-tabs button { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 32px; border: 0; border-radius: 999px; background: none; font-size: 13px; color: var(--color-ink-soft); }
.review-tabs button[aria-selected="true"] { background: #fff; color: var(--color-ink); box-shadow: var(--kit-card-shadow); }
.review-primary { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border: 0; border-radius: 999px; background: linear-gradient(#393939, #242424); color: #fff; font-size: 13px; font-weight: 500; box-shadow: var(--kit-button-shadow); }
.review-primary:disabled { opacity: .45; cursor: not-allowed; }
.review-quiet { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px; border: 1px solid var(--color-line); border-radius: 999px; background: var(--kit-face); font-size: 13px; color: var(--color-ink); }
.review-icon { display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 999px; background: none; color: var(--color-ink-soft); }
.review-icon:hover { background: var(--color-surface); }
.review-error { font-size: 12.5px; color: #b42318; }
.review-suggest-block { display: grid; gap: 3px; padding: 10px 12px; border-radius: 12px; background: var(--color-surface); font-size: 13px; }
.review-suggest-block span { font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--color-ink-soft); }
.review-suggest-block s { color: var(--color-ink-soft); }
.review-suggest-block p { font-weight: 500; }
.review-thread-body { line-height: 1.5; white-space: pre-wrap; }
.review-reply { padding-left: 10px; border-left: 2px solid var(--color-line); font-size: 13px; line-height: 1.5; }
.review-reply small { display: block; font-size: 11px; color: var(--color-ink-soft); }

.review-panel { position: fixed; z-index: var(--review-z); top: 12px; right: 12px; bottom: 80px; display: flex; flex-direction: column; width: min(360px, calc(100vw - 24px)); border: 1px solid var(--color-line); border-radius: 18px; background: #fff; box-shadow: 0 24px 60px -24px #0005; overflow: hidden; }
.review-panel header { display: flex; align-items: center; gap: 10px; padding: 12px 12px 10px 16px; border-bottom: 1px solid var(--color-line-soft); }
.review-panel header strong { font-size: 15px; }
.review-scope { display: flex; gap: 2px; margin-left: auto; padding: 3px; border-radius: 999px; background: var(--color-surface); }
.review-scope button { min-height: 28px; padding: 0 10px; border: 0; border-radius: 999px; background: none; font-size: 12px; color: var(--color-ink-soft); }
.review-scope button[aria-selected="true"] { background: #fff; color: var(--color-ink); box-shadow: var(--kit-card-shadow); }
.review-panel ol { flex: 1; overflow: auto; padding: 6px; }
.review-panel li button { display: grid; gap: 4px; width: 100%; padding: 10px; border: 0; border-radius: 12px; background: none; text-align: left; font-size: 13.5px; line-height: 1.45; color: var(--color-ink); }
.review-panel li button:hover { background: var(--color-surface); }
.review-panel li.is-resolved { opacity: .55; }
.review-meta { font-size: 11.5px; color: var(--color-ink-soft); }
.review-meta em { margin-right: 6px; font-style: normal; font-weight: 600; color: #2f6bff; }
.review-suggest s { color: var(--color-ink-soft); }
.review-empty { padding: 20px 16px; font-size: 13.5px; color: var(--color-ink-soft); }

@media (max-width: 600px) {
  .review-fab { right: 12px; bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
  .review-hint { top: auto; bottom: calc(140px + env(safe-area-inset-bottom, 0px)); white-space: normal; width: calc(100vw - 24px); text-align: center; }
  .review-panel { top: auto; left: 12px; right: 12px; width: auto; height: 60vh; bottom: calc(140px + env(safe-area-inset-bottom, 0px)); }
}
/* Night Agenda: the site's global type and form rules stay out of the comment tool */
html:root body [data-review-ui],html:root body [data-review-ui] *{font-family:'Helvetica Neue',Arial,sans-serif!important;text-transform:none!important;letter-spacing:normal!important}
html:root body [data-review-ui] :is(input,textarea){color:#111!important;background:#f4f5f7!important;border:1px solid #e3e5e8!important;border-radius:12px!important;font-size:14px!important;padding:10px 12px!important;min-height:0!important;height:auto!important}
html:root body [data-review-ui] :is(input,textarea)::placeholder{color:#8a8e95!important;opacity:1!important}
html:root body [data-review-ui] button{font-size:13px!important}
html:root body [data-review-ui] .review-target{font-size:12px!important;color:#6b6f76!important}
