/* Shared review controls and typography. Customer and administrator palettes stay distinct. */
.crown-reviews,.review-admin{
  --review-ink:#233047;--review-muted:#52647b;--review-border:#d7e0eb;
  --review-blue:#244f85;--review-focus:#1c609b;
  font-family:system-ui,-apple-system,"Segoe UI","Malgun Gothic",sans-serif;
  font-size:16px;line-height:1.65;color:var(--review-ink);
}
.crown-reviews *,.review-admin *{box-sizing:border-box}
.crown-reviews h1,.review-admin h1{font-size:clamp(26px,3vw,34px);line-height:1.3;letter-spacing:-.035em;font-weight:750}
.crown-reviews h2,.review-admin h2{font-size:23px;line-height:1.4;letter-spacing:-.025em;margin:0 0 18px}
.crown-reviews section{margin:28px 0;padding:28px;border:1px solid var(--review-border);border-radius:20px;background:#fff;box-shadow:0 5px 20px rgb(28 53 85 / 4%)}
.crown-reviews label{display:block}
.crown-reviews label:not(.rating-choice),.crown-reviews legend,.review-admin label{font-weight:650;font-size:14px;color:#344862}
.crown-reviews label small{font-weight:400;color:var(--review-muted)}
.crown-reviews input:not([type=radio]),.crown-reviews textarea{box-sizing:border-box;width:100%;padding:12px;margin:8px 0 18px;font:inherit}
.crown-reviews input:not([type=radio]),.crown-reviews textarea,.review-admin input{
  background:#fff;color:var(--review-ink);border:1px solid #b8c7d8;border-radius:10px;
  font-size:15px;font-weight:400;line-height:1.6;transition:border-color .15s,box-shadow .15s;
}
.crown-reviews input::placeholder,.crown-reviews textarea::placeholder{color:#6a788b;opacity:1}
.crown-reviews textarea{resize:vertical;min-height:155px}
.crown-reviews input:not([type=radio]):focus-visible,.crown-reviews textarea:focus-visible,.review-admin input:focus-visible{outline:2px solid var(--review-focus);outline-offset:2px;border-color:var(--review-focus);box-shadow:0 0 0 4px #e7eff8}
.crown-reviews button,.review-admin button{
  min-height:44px;padding:11px 20px;border:1px solid #b4c4d7;border-radius:10px;
  background:#fff;color:#294563;font:600 14px/1.5 system-ui,-apple-system,"Segoe UI","Malgun Gothic",sans-serif;
  cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;
}
.crown-reviews button:hover:not(:disabled),.review-admin button:hover:not(:disabled){background:#edf3fa;border-color:#7390b2}
.crown-reviews button:focus-visible,.review-admin button:focus-visible,.review-admin a:focus-visible{outline:3px solid var(--review-focus);outline-offset:3px}
.crown-reviews button:disabled,.review-admin button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.review-admin #review-login button,.review-admin .review-approve{background:var(--review-blue);border-color:var(--review-blue);color:#fff}
.review-admin #review-login button:hover:not(:disabled),.review-admin .review-approve:hover:not(:disabled){background:#193d6a;border-color:#193d6a}
.crown-reviews input[type=file]{font-size:13px;padding:10px;overflow:hidden}
.crown-reviews input[type=file]::file-selector-button{padding:8px 12px;margin-right:10px;background:#edf3fa;border:1px solid #c4d2e2;border-radius:7px;color:#294563;font:inherit;cursor:pointer}
#photo-help{font-size:13px;color:#526379}
#review-status:not(:empty),#review-admin-message:not(:empty){padding:12px 15px;background:#edf3fa;border:1px solid #d5e1ee;border-radius:10px;color:#294563;font-size:14px;overflow-wrap:anywhere}

/* Five-step rating controls. */
.review-fields{display:grid;grid-template-columns:minmax(160px,1fr) minmax(340px,2fr);gap:24px;align-items:start}
.review-fields>*{min-width:0}
.rating-field{border:0;padding:0;margin:0;min-width:0}
.rating-field legend{padding:0}
.rating-bar{display:grid;grid-template-columns:repeat(5,1fr);padding:3px 3px 12px;gap:8px;margin-top:8px}
.rating-choice{position:relative;text-align:center;cursor:pointer;font-size:14px;min-width:0;line-height:1.45;padding:3px 0 6px;border-radius:7px;color:#4b5d74}
.rating-choice input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.bar-color{display:block;height:16px;border-radius:4px;background:var(--rating)}
.rating-choice .bar-color{opacity:.8;border:1px solid rgb(0 0 0 / 8%);margin-bottom:10px}
.rating-1{--rating:#c73943}.rating-2{--rating:#d7782c}.rating-3{--rating:#8b792b}.rating-4{--rating:#26848e}.rating-5{--rating:#2465c7}
.rating-choice small{display:block;font-size:12px;margin-top:4px;line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}
.rating-choice input:checked~span{font-weight:800}
.rating-choice input:checked~span:not(.bar-color){color:#172e4d}
.rating-choice input:checked+.bar-color{opacity:1;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--rating)}
.rating-choice input:focus-visible+.bar-color{outline:3px solid #172b4d;outline-offset:5px}

/* Cards, photographs and selected attachments. */
.review-card{padding:24px;margin:16px 0;border:1px solid #dce3ed;border-radius:16px;background:#f7f9fc;border-left:5px solid #66809c;box-shadow:0 3px 14px rgb(28 53 85 / 3%);min-width:0;overflow-wrap:anywhere}
.review-card[data-rating="1"]{border-left-color:#c73943}.review-card[data-rating="5"]{border-left-color:#2465c7}
.review-card h3{margin:0 0 6px;font-size:18px;font-weight:700;line-height:1.55;overflow-wrap:anywhere}
.review-card p{font-size:15px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}
.review-card small{color:#5a6a7b}
.review-photos{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}
.review-photos img{width:180px;max-width:100%;height:140px;object-fit:contain;background:#f0f4f9;border-radius:12px;border:1px solid #d8e2ee}
#photo-preview .selected-photo{display:flex;align-items:center;gap:8px;max-width:100%;min-width:0;padding:8px;border:1px solid var(--review-border);border-radius:12px;background:#fff}
#photo-preview .selected-photo img{width:140px;max-width:calc(100% - 64px);height:112px;margin:0}
.crown-reviews #photo-preview .remove-photo{flex-shrink:0;min-width:48px;min-height:44px;padding:9px;color:#9a323d;border-color:#d9b5ba;background:#fff7f8}
.review-photo-count{color:#536b7d;font-size:.9rem}

/* Administrator screens retain their own blue palette. */
.review-admin{width:calc(100% - 40px);max-width:1040px;margin:32px auto 64px;background:#f5f7fb}
.review-admin [hidden]{display:none!important}
.review-admin #review-login,.review-admin #review-admin-content{padding:28px;background:#fff;border:1px solid var(--review-border);border-radius:20px;margin:24px 0;box-shadow:0 5px 20px rgb(28 53 85 / 4%)}
.review-admin label{display:block;margin-bottom:18px}
.review-admin input{display:block;width:100%;max-width:100%;padding:12px;margin-top:8px}
.review-admin>p{color:var(--review-muted);font-size:14px;line-height:1.8}
.review-admin #review-logout{margin-bottom:20px}
.review-admin .review-card{background:#f8fafd;border-left-color:#9b7d32}
.review-admin .review-card>button{margin:4px 8px 4px 0}
.review-admin .review-reject{color:#9a323d;border-color:#d9b5ba;background:#fff7f8}
.review-admin .review-reject:hover:not(:disabled){background:#fbe9ec;border-color:#b76973}
.review-state{display:inline-block;padding:3px 10px;margin-bottom:12px;border:1px solid #ddcba3;border-radius:20px;background:#fff7e5;color:#745418;font-size:12px;font-weight:650}
.state-approved{background:#e5f2fa!important;color:#155b85!important}.state-rejected{background:#f9e9e9!important;color:#8b3737!important}
.review-filter{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.review-filter select{min-height:44px;padding:8px 16px;border:1px solid #b9cbd8;border-radius:10px;background:white;font:inherit}
.admin-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}
.admin-summary-card{display:flex;flex-direction:column;gap:14px;padding:24px;border:1px solid #dbe5ed;border-radius:16px;background:#f4f8fb;color:#244f85;text-decoration:none}
.admin-summary-card strong{font-size:2rem}.admin-summary-card:hover{background:#eaf2f9}.admin-summary-card:focus-visible{outline:3px solid #1c609b;outline-offset:3px}

/* Customer layout, final field styles and page controls. */
.review-page-banner>img{object-position:50% 64%}
.crown-reviews{
  --review-ink:var(--crown-navy,#08244a);--review-muted:var(--crown-muted,#687482);
  --review-border:var(--crown-line,#e3e2dd);--review-blue:var(--crown-navy,#08244a);--review-focus:var(--crown-navy,#08244a);
  width:calc(100% - 48px);max-width:1220px;margin:40px auto 72px;padding:0;
  color:var(--review-ink);font-family:inherit;text-align:left;
}
.crown-reviews .review-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:28px;align-items:start}
.crown-reviews .review-layout>section{min-width:0;margin:0;padding:28px;border:1px solid var(--review-border);border-radius:14px;background:#fff;box-shadow:0 4px 18px rgb(8 36 74 / 3%)}
.crown-reviews #write{background:#fff}
.crown-reviews .review-panel-header{margin:0 0 22px;padding:0 0 22px;border-bottom:1px solid var(--review-border)}
.crown-reviews .review-panel-header .eyebrow{margin:0 0 10px;color:#93702f;font-size:10px;font-weight:700;letter-spacing:2px;line-height:1.5}
.crown-reviews .review-panel-header h2{margin:0 0 10px;color:var(--review-ink);font-size:24px;line-height:1.4;letter-spacing:-.7px}
.crown-reviews .review-panel-header>p:last-child{margin:0;color:var(--review-muted);font-size:13px;line-height:1.8;word-break:keep-all}
.crown-reviews #write>.review-write-help{margin:0 0 20px;color:var(--review-muted);font-size:12px;line-height:1.9}
.crown-reviews #write .review-fields{grid-template-columns:minmax(0,1fr);gap:0}
.crown-reviews .review-fields>.nickname,.crown-reviews .review-fields>.rating-field{min-width:0;align-self:stretch;margin:0 0 16px;padding:14px;border:1px solid var(--review-border);border-radius:10px;background:var(--crown-paper,#faf9f6)}
.crown-reviews .review-fields>.nickname input{margin-bottom:0}
.crown-reviews .rating-field>legend{float:left;width:100%;margin:0 0 8px;padding:0}
.crown-reviews .rating-field>.rating-bar{clear:both;margin-top:0;padding-bottom:4px}
.crown-reviews .rating-choice{font-size:12px}.crown-reviews .rating-choice small{font-size:10px}
.crown-reviews input:not([type=radio]),.crown-reviews textarea{border-color:#ccd1d4;color:var(--review-ink)}
.crown-reviews .notice{padding:12px 15px;border-radius:10px;background:var(--crown-paper,#faf9f6);color:var(--review-muted);font-size:12px;line-height:1.7}
.crown-reviews #submit-review{width:100%;margin-top:12px;background:var(--crown-navy,#08244a);border-color:var(--crown-navy,#08244a);color:#fff}
.crown-reviews #submit-review:hover:not(:disabled){background:#153a64;border-color:#153a64}
.crown-reviews #submit-review+#review-status{margin-top:10px}
.crown-reviews #review-status:not(:empty){background:#f5f4ef;border-color:var(--review-border);color:var(--review-ink);font-size:13px}
.crown-reviews .review-summary{margin:0 0 20px;padding:14px 16px;border:1px solid var(--review-border);border-radius:9px;background:var(--crown-paper,#faf9f6);color:var(--review-ink);font-size:13px;line-height:1.8}
.crown-reviews #review-list-panel .review-card{margin:0 0 18px;padding:22px;border-radius:11px;background:#fff;box-shadow:none}
.crown-reviews #review-list-panel .review-card h3{color:var(--review-ink);font-size:17px}
.crown-reviews #review-list-panel .review-card p{font-size:14px}
.crown-reviews #review-list-panel .review-card small{color:var(--review-muted);font-size:12px}
.crown-reviews #review-list-panel .review-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:0}
.crown-reviews #review-list-panel .review-photos img{width:100%;max-width:100%;height:120px;object-fit:cover}
.crown-reviews #review-pagination{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:7px;margin:26px 0 0;padding:0;height:auto;min-height:0;position:static;z-index:auto;background:transparent;color:var(--review-ink);transition:none}
.crown-reviews #review-pagination[hidden]{display:none!important}
.crown-reviews #review-pagination button,.crown-reviews #review-pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:42px;margin:0;padding:8px 12px;border:1px solid var(--review-border);border-radius:7px;background:#fff;color:var(--review-ink);font-size:13px;font-weight:600;line-height:1.4;text-decoration:none}
.crown-reviews #review-pagination [aria-current=page],.crown-reviews #review-pagination .is-current{background:var(--crown-navy,#08244a);border-color:var(--crown-navy,#08244a);color:#fff;opacity:1}
.crown-reviews #review-pagination button:hover:not(:disabled),.crown-reviews #review-pagination a:hover{background:var(--crown-paper,#faf9f6);border-color:var(--crown-gold,#c29a47)}
.crown-reviews #review-pagination [aria-current=page]:hover{background:var(--crown-navy,#08244a);color:#fff}

/* Shared photo lightbox; independent of the customer layout. */
.review-zoomable{cursor:zoom-in}.review-zoomable:focus-visible{outline:3px solid #1c609b;outline-offset:3px}
.review-lightbox{position:fixed;inset:0;z-index:10000;overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;padding:72px 20px 24px;background:rgb(12 23 39 / 92%);color:#fff}
.review-lightbox>img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px);object-fit:contain;flex-shrink:0;border-radius:8px}
.review-lightbox>img[hidden]{display:none}.review-lightbox>p{font:15px/1.6 system-ui,sans-serif;text-align:center;margin:0;max-width:40em}.review-lightbox>p:empty{display:none}
.review-lightbox>.review-lightbox-close{position:fixed;top:16px;right:20px;min-width:64px;min-height:44px;border:1px solid #b5c4d7;border-radius:10px;background:#fff;color:#243e60;padding:10px 16px;font:600 15px/1.4 system-ui,sans-serif;cursor:pointer}
.review-lightbox>.review-lightbox-close:focus-visible{outline:3px solid #82c5ff;outline-offset:3px}
.content-notice{box-sizing:border-box;max-width:900px;margin:24px auto;padding:28px 24px;border:1px solid #dbe5ed;border-radius:16px;background:#f4f8fb;color:#365268;text-align:center;line-height:1.7;overflow-wrap:anywhere}
#site-loading{min-height:180px;display:grid;place-items:center;margin:100px auto 32px}#site-loading[hidden]{display:none!important}

/* Breakpoints retain the final cascade, including zero outer customer padding. */
@media(max-width:1120px){.crown-reviews .review-layout{gap:22px}.crown-reviews .review-layout>section{padding:22px}}
@media(max-width:960px){
  .crown-reviews .review-layout{grid-template-columns:minmax(0,1fr);gap:24px}
  .crown-reviews #write .review-fields{grid-template-columns:minmax(140px,1fr) minmax(300px,1.8fr);gap:16px}
  .crown-reviews .rating-choice{font-size:14px}.crown-reviews .rating-choice small{font-size:12px}
}
@media(max-width:650px){
  .review-fields{grid-template-columns:1fr}.rating-bar{gap:6px}.rating-choice small{font-size:11px}
  .crown-reviews section{padding:18px}.crown-reviews h2,.review-admin h2{font-size:21px}
  .review-photos img{width:calc(50% - 6px);height:120px}
  .review-admin{width:calc(100% - 24px);margin:20px auto 40px}
  .review-admin #review-login,.review-admin #review-admin-content{padding:18px;border-radius:16px}
  .review-admin .review-card,.crown-reviews .review-card{padding:18px}
  .review-admin .review-photos img{width:calc(50% - 6px);height:120px}
  .admin-summary-grid{grid-template-columns:1fr}
  .crown-reviews{width:calc(100% - 24px);margin:24px auto 44px}
  .crown-reviews .review-layout{gap:20px}.crown-reviews .review-layout>section{padding:20px 18px}
  .crown-reviews .review-panel-header{margin-bottom:20px;padding-bottom:18px}.crown-reviews .review-panel-header h2{font-size:22px}
  .crown-reviews #write .review-fields{grid-template-columns:minmax(0,1fr);gap:0}.crown-reviews .rating-choice small{font-size:11px}
  .crown-reviews #review-list-panel .review-card{padding:18px}
  .crown-reviews #review-pagination{gap:5px}.crown-reviews #review-pagination button{min-width:38px;padding:8px 10px}
  .review-lightbox{padding:72px 12px 20px}.review-lightbox>.review-lightbox-close{right:12px}
}
@media(prefers-reduced-motion:reduce){.crown-reviews *,.review-admin *{transition:none!important}}

/* Administrator navigation, formerly a second stylesheet request. */
/* Scope strictly limited to the top navigation; estimate table/forms unchanged. */
nav.admin-top-navigation{position:static;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;width:auto;max-width:100%;margin:0 0 18px;padding:0;background:transparent;border:0;box-shadow:none;z-index:auto}
nav.admin-top-navigation>a{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;margin:0;border:1px solid #c7d6e3;border-radius:10px;background:#fff;color:#244f85;text-decoration:none;font:600 14px/1.4 system-ui,sans-serif;white-space:nowrap}
nav.admin-top-navigation>a:hover{background:#edf4fa;border-color:#789dbd}
nav.admin-top-navigation>a[aria-current=page]{background:#244f85;border-color:#244f85;color:#fff}
nav.admin-top-navigation>a:focus-visible{outline:3px solid #3984bd;outline-offset:3px}
@media(max-width:480px){nav.admin-top-navigation{gap:6px}nav.admin-top-navigation>a{padding:10px 13px}}
