/* Local-only review controls. The published page does not initialize them. */
.review-launcher,
.review-panel,
.review-note-wrap { font-family: Arial, Helvetica, sans-serif; }
.review-launcher { position: fixed; right: 18px; bottom: 18px; z-index: 1000; border: 0; border-radius: 999px; padding: 13px 18px; background: #173d2b; color: #fff; font-size: 13px; font-weight: 800; box-shadow: 0 8px 28px rgba(0,0,0,.2); cursor: pointer; }
.review-launcher:hover { background: #256d45; }
.review-launcher:focus-visible,
.review-panel button:focus-visible,
.review-note-wrap button:focus-visible,
.review-editable:focus-visible { outline: 3px solid #dca840; outline-offset: 3px; }
.review-panel { position: fixed; z-index: 999; right: 18px; bottom: 72px; width: min(390px, calc(100vw - 36px)); max-height: min(620px, calc(100vh - 100px)); overflow: auto; padding: 19px; border-radius: 16px; border: 1px solid #cbd9c9; background: #fff; color: #173d2b; box-shadow: 0 15px 55px rgba(0,0,0,.2); }
.review-panel[hidden], .review-note-wrap[hidden], .review-note-wrap textarea[hidden], .review-export[hidden] { display: none !important; }
.review-panel h2 { font-size: 21px; line-height: 1.2; margin: 0 0 10px; letter-spacing: -.03em; }
.review-panel p { margin: 0 0 12px; color: #465f4c; font-size: 13px; line-height: 1.45; }
.review-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.review-actions button,
.review-note-wrap button { border: 1px solid #b9cdb8; border-radius: 7px; background: #eff5ed; color: #173d2b; padding: 9px 11px; font-size: 12px; font-weight: 800; cursor: pointer; }
.review-actions button:hover,
.review-note-wrap button:hover { background: #dfeedd; }
.review-count { display: block; margin: 12px 0 8px; font-size: 12px; font-weight: 800; }
.review-status { min-height: 18px; margin: 9px 0 0 !important; }
.review-export { display: block; width: 100%; min-height: 115px; margin-top: 10px; padding: 10px; border: 1px solid #b9cdb8; border-radius: 7px; font: 12px/1.4 Consolas, monospace; }
body.review-active .review-editable { cursor: text; border-radius: 3px; outline: 1px dashed rgba(37,109,69,.48); outline-offset: 3px; }
body.review-active .review-editable:hover { background: rgba(238,247,234,.75); }
body.review-active .review-edited { background: #fff3d6 !important; outline-color: #dca840; }
.review-note-wrap { position: relative; z-index: 3; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; width: min(1160px, calc(100% - 48px)); margin: -65px auto 40px; }
.review-note-wrap textarea { display: block; width: min(430px, 100%); min-height: 100px; padding: 10px; border: 1px solid #9db69e; border-radius: 8px; background: #fff; color: #173d2b; font: 13px/1.45 Arial, sans-serif; resize: vertical; }
.section-dark .review-note-wrap button,
.contact .review-note-wrap button { background: #fff; color: #173d2b; }
@media(max-width:760px) { .review-note-wrap { width: min(100% - 36px, 550px); margin: -40px auto 24px; } }
