/* Scoped styles: the site's fixed header and footer retain their own layout. */
.tw-page { padding: 20px; text-align: start; max-width: 1050px; margin: 0 auto; }
.tw-page h1 { font-size: 1.35rem; margin: 20px 0; }
.tw-page h2 { font-size: 1.2rem; }
.tw-page [hidden] { display: none !important; }
.tw-page fieldset { border: 1px solid #ddd6bc; border-radius: 12px; background: #fffdf3; padding: 18px; margin: 18px 0; min-width: 0; }
.tw-page legend { color: #963030; padding: 0 8px; font-size: 1.1rem; }
.tw-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.tw-fields label, .tw-evaluation label { display: flex; flex-direction: column; gap: 7px; font-weight: normal; min-width: 0; }
.tw-page input:not([type="hidden"]), .tw-page select, .tw-page textarea { box-sizing: border-box; width: 100%; min-height: 45px; padding: 9px; color: #292d3d; background: #fff; border: 1px solid #c4c5cc; border-radius: 7px; font: inherit; }
.tw-page textarea { resize: vertical; }
.tw-page input[type="file"] { font-size: .9rem; }
.tw-page .select2-container { width: 100% !important; text-align: start; }
.tw-page .select2-selection { min-height: 44px; padding: 5px; border-radius: 7px; }
.tw-notice { background: #f5f1e5; padding: 12px; border-radius: 8px; }
.tw-submit { margin: 15px 0; padding: 12px 30px; }
.tw-evaluation { text-align: center; border: 1px solid #ddd6bc; padding: 24px; border-radius: 15px; background: #fffdf3; }
.tw-faces { display: flex; justify-content: center; gap: 12px; margin: 24px 0; }
.tw-faces button { display: flex; flex: 0 1 145px; align-items: center; flex-direction: column; gap: 10px; padding: 15px 8px; border: 2px solid #dedbd1; border-radius: 14px; background: #fff; cursor: pointer; color: #292d3d; font: inherit; }
.tw-faces button span { font-size: 48px; line-height: 1.2; }
.tw-faces button[aria-pressed="true"] { border-color: #963030; background: #fff3e4; }
.tw-faces button:focus-visible, .tw-page button:focus-visible { outline: 3px solid #315883; outline-offset: 3px; }
.tw-evaluation label { max-width: 650px; margin: 0 auto 18px; text-align: start; }
.tw-new-request { display: block; margin-top: 22px; }
.tw-alert-layer { z-index: 1000000 !important; }
@media (max-width: 650px) {
    .tw-page { padding: 12px; }
    .tw-fields { grid-template-columns: minmax(0,1fr); }
    .tw-page fieldset { padding: 13px; }
    .tw-faces { gap: 7px; }
    .tw-faces button { font-size: .9rem; }
}
