@import url("https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700&display=swap");
.ams-app{ --ink: #213d50; --teal: #087f98; --line: #cddfe7; --muted: #496779; font-family: "Be Vietnam Pro", Arial, "Segoe UI", sans-serif; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 18px; max-width: 1440px; margin: 0px auto 24px; overflow: hidden; font-size: 15px; line-height: 1.7; --navy: #174f6b; --surface: #eff7f9; --paper: #ffffff; --lavender: #f2edf8; --accent: #795698; box-shadow: rgba(22, 61, 80, 0.063) 0px 12px 48px; -webkit-font-smoothing: antialiased; }
.ams-app, .ams-app *, .ams-app *::before, .ams-app *::after{ box-sizing: border-box; }
.ams-app h1{ font-size: clamp(26px, 3vw, 38px); margin: 4px 0px; color: inherit; font-family: inherit; line-height: 1.35; font-weight: 700; letter-spacing: -0.035em; }
.ams-app .ams-eyebrow{ font-size: 11px; letter-spacing: 1.4px; font-weight: 700; }
.ams-app nav{ display: flex; gap: 6px; padding: 16px 24px; background: var(--paper); overflow-x: auto; border-bottom: 1px solid var(--line); flex-wrap: wrap; align-items: center; }
.ams-app button{ font-style: inherit; font-variant: inherit; font-stretch: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; cursor: pointer; border: 1px solid #c4dce5; background: var(--paper); color: #146b85; padding: 6px 10px; border-radius: 9px; line-height: 1.3; white-space: normal; font-family: inherit; min-height: 32px; font-size: 13px; font-weight: 600; transition: background 0.18s; }
.ams-app nav button{ white-space: nowrap; }
.ams-app button:hover{ background: #e8f5f9; border-color: #9fcbd9; }
.ams-app button.active, .ams-app button[type="submit"]{ background: var(--teal); color: #fff; border-color: var(--teal); }
.ams-app button:disabled{ opacity: 0.55; cursor: wait; }
.ams-app main{ padding: 32px; }
.ams-app h2{ font-size: 22px; margin: 0px 0px 6px; font-family: inherit; line-height: 1.5; text-transform: none; letter-spacing: -0.02em; font-weight: 700; }
.ams-app h3{ font-size: 17px; margin: 0px 0px 10px; font-family: inherit; line-height: 1.6; font-weight: 600; }
.ams-app p{ margin: 8px 0px 14px; }
.ams-app .ams-title{ display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 20px; }
.ams-app .ams-title p{ color: var(--muted); max-width: 800px; }
.ams-app .ams-actions{ display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin: 12px 0px; }
.ams-app .ams-grid{ display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 18px; }
.ams-app .ams-card{ background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 24px; margin-bottom: 16px; min-width: 0px; overflow-wrap: anywhere; box-shadow: rgba(18, 61, 89, 0.024) 0px 4px 20px; }
.ams-app .ams-label{ display: block; font-weight: 600; margin: 12px 0px; }
.ams-app input:not([type="checkbox"]):not([type="radio"]), .ams-app select{ display: block; width: 100%; max-width: 100%; border: 1px solid rgb(187, 218, 231); border-radius: 9px; background: var(--paper); color: var(--ink); padding: 11px 12px; font: inherit; margin-top: 6px; }
.ams-app textarea{ display: block; width: 100%; max-width: 100%; border: 1px solid rgb(187, 218, 231); border-radius: 9px; background: var(--paper); color: var(--ink); padding: 11px 12px; font: inherit; margin-top: 6px; resize: vertical; min-height: 95px; }
.ams-app select[multiple]{ min-height: 140px; }
.ams-app input[type="checkbox"], .ams-app input[type="radio"]{ width: 18px; height: 18px; vertical-align: middle; accent-color: var(--teal); }
.ams-app .ams-editor{ max-width: 960px; background: var(--paper); padding: 24px; border: 1px solid var(--line); border-radius: 12px; }
.ams-app fieldset{ border: 1px solid var(--line); border-radius: 8px; margin: 18px 0px; padding: 15px; }
.ams-app .ams-check, .ams-app .ams-choice label{ display: block; margin: 8px 0px; }
.ams-app .ams-badge{ display: inline-block; font-size: 12px; border-radius: 20px; padding: 4px 10px; background: rgb(237, 240, 242); color: rgb(70, 97, 106); }
.ams-app .ams-approved, .ams-app .ams-published, .ams-app .ams-publish, .ams-app .ams-open{ background: rgb(220, 241, 230); color: rgb(35, 91, 61); }
.ams-app .ams-submitted, .ams-app .ams-pending{ background: rgb(255, 240, 209); color: rgb(122, 83, 20); }
.ams-app .ams-table-wrap{ overflow: auto; margin: 20px 0px; }
.ams-app table{ width: 100%; border-collapse: collapse; background: var(--paper); font-size: 14px; }
.ams-app td{ text-align: left; vertical-align: top; padding: 12px; border-bottom: 1px solid var(--line); }
.ams-app th{ text-align: left; vertical-align: top; padding: 12px; border-bottom: 1px solid var(--line); background: #e9f4f8; font-weight: 600; }
.ams-app .ams-filters{ display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; align-items: end; }
.ams-app .ams-filters button{ margin-bottom: 12px; }
.ams-app .ams-alert{ margin: 14px 24px; padding: 12px 16px; background: rgb(228, 243, 238); border: 1px solid rgb(160, 199, 183); border-radius: 8px; }
.ams-app .ams-error{ background: rgb(255, 240, 236); border-color: rgb(224, 169, 156); color: rgb(146, 57, 33); }
.ams-app .ams-empty{ padding: 25px; text-align: center; color: var(--muted); border: 1px dashed rgb(185, 205, 202); border-radius: 10px; }
.ams-app .ams-pre{ white-space: pre-wrap; }
.ams-app .ams-section{ padding-top: 20px; border-bottom: 2px solid var(--line); }
.ams-app footer{ font-size: 12px; color: var(--muted); padding: 18px 26px; border-top: 1px solid var(--line); }
.ams-app details{ margin: 12px 0px; }
.ams-theme-user{ display: flex; align-items: center; max-width: 100%; list-style: none; }
.ams-theme-user .ams-user-name{ font-style: inherit; font-variant: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-weight: 600; overflow-wrap: anywhere; }
.ams-app .ams-menu-user{ display: inline-flex; align-items: center; margin-inline-start: auto; padding: 9px 14px; font-weight: 600; white-space: nowrap; }
.ams-app .ams-brand{ display: flex; align-items: center; gap: 20px; padding: 24px 32px; background: var(--paper); }
.ams-app .ams-brand-logo{ object-fit: contain; background: var(--paper); border-radius: 16px; flex-shrink: 0; }
.ams-app.ams-portal a{ color: rgb(6, 109, 128); text-decoration: none; font-weight: 600; }
.ams-app.ams-portal a:hover{ text-decoration: underline; }
.ams-app.ams-portal nav a{ padding: 10px 14px; white-space: nowrap; }
.ams-app nav > a{ padding: 10px 14px; white-space: normal; display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; border-radius: 9px; color: var(--ink); text-decoration: none; font-weight: 600; }
.ams-app a:focus-visible, .ams-app summary:focus-visible{ outline: 3px solid var(--accent); outline-offset: 4px; }
.ams-app .ams-hero{ background: rgb(19, 91, 133); color: white; padding: 48px; border-radius: 20px; margin-bottom: 36px; }
.ams-app .ams-hero h1{ font-size: clamp(26px, 3.5vw, 42px); line-height: 1.3; max-width: 900px; }
.ams-app .ams-hero p{ max-width: 760px; margin: 22px 0px; }
.ams-app .ams-hero a{ display: inline-block; background: var(--paper); border-radius: 10px; padding: 13px 20px; }
.ams-app.ams-portal main > h2, .ams-app.ams-portal main > section > h2{ margin: 25px 0px 18px; }
.ams-app.ams-portal summary{ cursor: pointer; font-size: 15px; font-weight: 600; line-height: 1.6; }
.ams-app .ams-login-layout{ display: grid; grid-template-columns: 1.1fr 1fr; min-height: 580px; border-radius: 22px; overflow: hidden; background: var(--paper); box-shadow: rgba(23, 54, 81, 0.07) 0px 20px 60px; }
.ams-app .ams-login-intro{ display: flex; flex-direction: column; justify-content: center; padding: 48px; color: white; background: rgb(21, 82, 125); }
.ams-app .ams-login-intro h1{ font-size: clamp(30px, 4vw, 48px); line-height: 1.25; margin: 24px 0px; }
.ams-app .ams-login-card{ padding: 40px; max-width: 560px; width: 100%; margin: auto; }
.ams-app .ams-login-card > img{ margin-bottom: 20px; }
.ams-app .ams-login-card button[type="submit"]{ width: 100%; min-height: 48px; margin: 16px 0px; }
.ams-app .ams-login-card .ams-alert{ margin: 12px 0px; }
.ams-app.ams-portal small{ color: var(--muted); }
.ams-app .ams-function-grid .ams-card{ border-top: 2px solid rgb(139, 163, 179); display: flex; flex-direction: column; }
.ams-app .ams-function-grid h3{ text-transform: uppercase; font-size: 14px; letter-spacing: 0.035em; }
.ams-app .ams-function-grid p{ font-size: 14px; color: var(--muted); flex: 1 1 0%; }
.ams-app .ams-card-meta{ font-size: 12px; color: var(--muted); padding-top: 14px; border-top: 1px solid rgb(237, 240, 243); }
.ams-app .ams-members-grid{ grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.ams-app .ams-members-grid .ams-card{ padding: 16px 18px; }
.ams-app .ams-members-grid p{ font-size: 13px; color: var(--muted); margin-bottom: 0px; }
.ams-app .ams-publications-grid{ display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 24px; }
.ams-app .ams-publication:first-child{ grid-column: 1 / -1; }
.ams-app .ams-publication > p, .ams-app .ams-members-grid > p{ font-size: 14px; color: var(--muted); padding: 16px 0px; margin: 0px; }
.ams-app.ams-portal details.ams-card{ margin: 0px 0px 10px; padding: 16px 18px; }
.ams-app.ams-portal details[open]:not(.ams-work-card) > summary{ padding-bottom: 12px; border-bottom: 1px solid var(--line); margin-bottom: 14px; }
.ams-app.ams-portal .ams-login-layout{ border: 1px solid var(--line); border-radius: 16px; box-shadow: rgba(18, 61, 89, 0.03) 0px 12px 32px; min-height: 480px; }
.ams-app.ams-portal .ams-login-intro{ background: rgb(21, 82, 125); color: white; padding: 40px; border: 0px; }
.ams-app.ams-portal .ams-login-intro h1{ font-size: 30px; }
.ams-app.ams-portal .ams-login-intro p{ color: rgb(224, 240, 244); }
.ams-app.ams-portal .ams-login-card h2{ font-size: 18px; }
.ams-app .ams-nav-current{ background: var(--lavender); color: #664780; border-radius: 9px; }
body.ams-hospital-page .site-main, body.ams-hospital-page .content-area, body.ams-hospital-page .site-content{ padding-top: 0px; margin-top: 0px; }
body.ams-hospital-page .entry-content, body.ams-hospital-page .wp-block-post-content{ margin-top: 0px; padding-top: 0px; }
body.ams-hospital-page .entry-header, body.ams-hospital-page .wp-block-post-title{ display: none; }
body.ams-hospital-page .entry-content > .ams-app, body.ams-hospital-page .wp-block-post-content > .ams-app{ margin-block-start: 0px; }
.ams-app:not(.ams-overview) .ams-introduction h1{ font-size: clamp(24px, 3vw, 32px); font-weight: 600; line-height: 1.4; margin: 0px 0px 20px; }
.ams-app:not(.ams-overview) .ams-introduction .ams-content-body{ max-width: 1000px; color: var(--muted); font-size: 15px; line-height: 1.8; }
.ams-app:not(.ams-overview) .ams-introduction .ams-content-body h2{ color: var(--ink); font-size: 15px; margin: 22px 0px 10px; }
.ams-app:not(.ams-overview) .ams-introduction .ams-content-body p:last-child{ margin-bottom: 0px; }
.ams-app .ams-collection{ min-width: 0px; max-width: 1120px; width: 100%; margin: 0px auto; }
.ams-app .ams-collection > h1{ font-size: clamp(23px, 2.6vw, 30px); line-height: 1.45; font-weight: 550; letter-spacing: -0.02em; margin: 18px 0px 26px; color: rgb(37, 70, 85); }
.ams-app .ams-back-link{ font-size: 13px; }
.ams-app .ams-full-article{ scroll-margin-top: 24px; margin: 0px 0px 20px; padding: 26px; border-radius: 14px; }
.ams-app .ams-full-article > h2{ font-size: 17px; text-transform: none; letter-spacing: 0px; line-height: 1.6; border-bottom: 1px solid var(--line); padding-bottom: 15px; margin-bottom: 20px; }
.ams-app .ams-full-article .ams-content-body{ font-size: 15px; line-height: 1.85; color: rgb(66, 93, 107); overflow-wrap: anywhere; }
.ams-app .ams-collection details[id]{ scroll-margin-top: 24px; }
.ams-app .ams-collection .ams-members-grid h2{ font-size: 16px; letter-spacing: 0px; text-transform: none; }
.ams-app .ams-directory-section{ border: 1px solid var(--line); border-radius: 14px; padding: 26px; margin: 0px 0px 24px; background: var(--paper); box-shadow: rgba(18, 61, 89, 0.024) 0px 4px 20px; }
.ams-app .ams-directory-section > h2{ font-size: 14px; letter-spacing: 0.055em; text-transform: uppercase; color: rgb(37, 75, 93); padding-bottom: 16px; margin: 0px 0px 4px; border-bottom: 1px solid rgb(227, 234, 237); }
.ams-app .ams-directory-rows{ display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); column-gap: 32px; }
.ams-app .ams-directory-person{ display: flex; flex-direction: column; gap: 2px; min-width: 0px; padding: 8px 0px; border-bottom: 1px solid rgb(237, 241, 243); }
.ams-app .ams-directory-name{ font-size: 15px; font-weight: 600; line-height: 1.45; color: rgb(41, 75, 93); overflow-wrap: anywhere; }
.ams-app .ams-directory-position{ font-size: 13px; line-height: 1.4; color: rgb(8, 117, 130); font-weight: 600; }
.ams-app .ams-directory-groups{ display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 24px; align-items: start; }
.ams-app .ams-directory-groups .ams-directory-section{ margin: 0px; }
.ams-app .ams-directory-groups .ams-directory-rows{ grid-template-columns: 1fr; }
.ams-app button[data-action="delete-item"]{ color: rgb(140, 76, 73); border-color: rgb(226, 204, 202); font-size: 13px; }
.ams-app button[data-action="delete-item"]:hover{ background: rgb(250, 241, 240); }
.ams-app .ams-directory-detail{ font-size: 12px; line-height: 1.4; color: rgb(111, 130, 138); margin-top: 0px; }
.ams-app .ams-group-assignment{ padding: 12px 0px; border-bottom: 1px solid var(--line); }
.ams-app nav > a:hover{ background: rgb(231, 247, 251); color: var(--teal); text-decoration: none; }
.ams-app nav > a[aria-current="page"]{ background: var(--lavender); color: #694987; box-shadow: inset 0 -2px var(--accent); }
.ams-app a{ color: rgb(6, 109, 128); text-underline-offset: 4px; }
.ams-app button.active:hover, .ams-app button[type="submit"]:hover{ background: #086a82; border-color: #086a82; }
.ams-app.ams-portal main{ display: grid; gap: 28px; padding: 32px; }
.ams-app.ams-portal .ams-card{ padding: 24px; border-radius: 14px; margin: 0px; }
@media (max-width: 900px) {.ams-app .ams-login-layout, .ams-app .ams-directory-groups{ grid-template-columns: 1fr; }}
@media (max-width: 640px) {.ams-app{ border-radius: 12px; margin: 0px 0px 16px; }.ams-app main, .ams-app.ams-portal main{ padding: 16px; gap: 18px; }.ams-app nav{ padding: 10px; gap: 4px; flex-wrap: wrap; }.ams-app nav > a{ font-size: 13px; padding: 8px 10px; }.ams-app .ams-menu-user{ margin-inline-start: 0px; white-space: normal; }.ams-app .ams-title{ flex-direction: column; gap: 8px; }.ams-app .ams-card, .ams-app.ams-portal .ams-card, .ams-app .ams-editor{ padding: 18px; }.ams-app .ams-directory-rows, .ams-app .ams-filters{ grid-template-columns: 1fr; }.ams-app input, .ams-app select, .ams-app textarea{ font-size: 16px; }.ams-app td, .ams-app th{ padding: 10px; }.ams-app .ams-login-card, .ams-app.ams-portal .ams-login-intro{ padding: 24px; }.ams-app .ams-brand{ padding: 18px; gap: 12px; }.ams-app .ams-brand-logo{ width: 56px; height: 56px; }.ams-app .ams-hero{ padding: 24px; }}
@media (prefers-reduced-motion: reduce) {.ams-app *{ transition: none; scroll-behavior: auto; }}
@media print {body *{ visibility: hidden; }#ams-app{ visibility: visible; position: absolute; left: 0px; top: 0px; width: 100%; max-width: none; margin: 0px; border: 0px; background: white; }#ams-app *{ visibility: visible; }#ams-app nav, #ams-app footer, #ams-app button, #ams-app .ams-filters, #ams-notice, #ams-sync{ display: none !important; }#ams-app .ams-card{ border: 0px; box-shadow: none; break-inside: avoid; }#ams-app .ams-editor{ border: 0px; box-shadow: none; }#ams-app main{ padding: 0px; }#ams-app input:disabled, #ams-app textarea:disabled, #ams-app select:disabled{ color: rgb(17, 17, 17); opacity: 1; }#ams-app details > *{ display: block; }#ams-app .ams-table-wrap{ overflow: visible; }#ams-app .ams-grid{ display: block; }.ams-theme-user, .ams-app .ams-menu-user{ display: none !important; }}
.ams-app .ams-search-wide{ grid-column: 1 / -1; }
.ams-app .ams-content-body{ min-width: 0px; overflow-x: auto; }
.ams-app .ams-content-body table{ min-width: 600px; width: 100%; border-collapse: collapse; }
.ams-app .ams-content-body th{ background: var(--navy); color: rgb(255, 255, 255); }
.ams-app .ams-content-body th, .ams-app .ams-content-body td{ border: 1px solid var(--line); }
.ams-app .ams-bulk-bar{ display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 12px 0px; }
.ams-app .ams-content-table{ min-width: 820px; }
.ams-app .ams-content-table td{ padding: 10px; vertical-align: middle; }
.ams-app .ams-content-table small{ display: block; color: rgb(100, 116, 139); margin-top: 4px; }
.ams-app .ams-content-table .ams-actions{ gap: 5px; }
.ams-app .ams-content-table button{ padding: 6px 9px; font-size: 12px; }
.ams-app .ams-config-import{ margin: 16px 0px; }
.ams-app .ams-config-import details .ams-content-body{ max-height: 420px; overflow: auto; white-space: pre-wrap; }
.ams-app .ams-one-search{ margin: 12px 0px 6px; }
.ams-app .ams-one-search .ams-alert{ margin: 6px 0px 15px; }
.ams-app .ams-search-line{ display: flex; gap: 10px; align-items: stretch; margin-top: 7px; }
.ams-app .ams-search-line input[type="search"]{ flex: 1 1 auto; width: 100%; min-width: 0px; min-height: 48px; margin: 0px; border: 1px solid rgb(186, 205, 201); border-radius: 9px; padding: 10px 14px; font-size: 16px; background: var(--paper); }
.ams-app .ams-search-line input[type="search"]:focus{ outline: 2px solid var(--teal); outline-offset: 1px; }
.ams-app .ams-search-line button{ flex: 0 0 auto; min-height: 48px; margin: 0px; padding-inline: 20px; }
.ams-app .ams-result-excerpt{ display: block; margin: 7px 0px 0px; font-size: 14px; line-height: 1.6; color: rgb(68, 91, 99); font-weight: 400; background: rgb(243, 248, 247); border-radius: 7px; padding: 9px 12px; }
.ams-app .ams-protocol-title{ font-weight: 700; }
.ams-app .ams-protocol-item summary{ cursor: pointer; }
@media (max-width: 540px) {.ams-app .ams-search-line{ gap: 6px; }.ams-app .ams-search-line button{ padding-inline: 12px; }}
.ams-app .ams-document-titles{ display: grid; gap: 8px; margin: 18px 0px 22px; }
.ams-app .ams-title-row{ background: var(--paper); border: 1px solid rgb(218, 229, 238); border-radius: 10px; padding: 13px 16px; margin: 8px 0px; }
.ams-app .ams-title-row a{ font-size: 1rem; font-weight: 650; text-decoration: none; }
.ams-app .ams-title-row a:hover{ text-decoration: underline; }
.ams-app .ams-reader-article{ margin-top: 20px; scroll-margin-top: 85px; }
.ams-app .ams-reader-gate{ border: 1px solid #ddd1e9; border-radius: 12px; padding: 18px; background: var(--lavender); }
.ams-app .ams-reader-login{ display: inline-block; padding: 10px 15px; border-radius: 8px; background: rgb(21, 94, 149); color: rgb(255, 255, 255); font-weight: 700; text-decoration: none; }
.ams-app .ams-reader-login:hover{ color: rgb(255, 255, 255); background: rgb(16, 71, 117); }
.ams-app .ams-reader-form{ display: flex; flex-wrap: wrap; align-items: end; gap: 12px; max-width: 680px; }
.ams-app .ams-reader-form .ams-label{ flex: 1 1 280px; }
.ams-app .ams-reader-form button{ margin-bottom: 0px; }
@media (max-width: 600px) {.ams-app .ams-reader-form{ display: block; }.ams-app .ams-reader-form button{ margin-top: 12px; width: 100%; }}
.ams-app .ams-single-article .ams-reader-article{ margin-top: 16px; }
.ams-app .ams-single-article .ams-reader-article > h2{ font-size: clamp(21px, 2.4vw, 28px); line-height: 1.38; }
.ams-app .mce-toolbar button, .ams-app .mce-toolbar button:hover{ min-height: 24px; padding: 2px 4px; border: 0px; border-radius: 2px; background: transparent; color: rgb(51, 51, 51); font-size: 12px; line-height: 20px; box-shadow: none; }
.ams-app .mce-toolbar .mce-btn{ margin: 2px; }
.ams-app .mce-toolbar .mce-listbox button{ padding: 2px 6px; }
.ams-app .wp-switch-editor{ min-height: 26px; padding: 3px 8px; font-size: 11px; line-height: 18px; border-radius: 3px 3px 0px 0px; }
.ams-app .quicktags-toolbar input{ width: auto; min-height: 26px; padding: 2px 6px; font-size: 11px; }
.ams-app .ams-content-body img{ max-width: 100%; height: auto; cursor: zoom-in; vertical-align: middle; border-radius: 4px; }
.ams-app .ams-content-body .ams-image-row{ display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ams-app .ams-content-body .ams-image-row img{ max-width: 100%; object-fit: contain; flex: 0 1 auto; }
.ams-image-viewer{ position: fixed; inset: 0px; z-index: 2147483640; background: rgba(7, 19, 27, 0.95); display: flex; align-items: center; justify-content: center; overflow: auto; overscroll-behavior: contain; }
.ams-image-viewer img{ display: block; max-height: 100dvh; max-width: 100vw; width: auto; height: auto; object-fit: contain; cursor: zoom-in; margin: auto; }
.ams-image-viewer.is-zoomed{ display: block; }
.ams-image-viewer.is-zoomed img{ max-height: none; max-width: none; width: auto; height: auto; cursor: zoom-out; }
.ams-image-viewer button{ position: fixed; right: 16px; top: 16px; width: 38px; height: 38px; border: 1px solid rgba(255, 255, 255, 0.5); border-radius: 50%; background: rgb(18, 44, 62); color: white; font: 26px Arial; cursor: pointer; }
@media print {.ams-image-viewer{ display: none; }}
.ams-app .ams-permissions-table td:first-child, .ams-app .ams-permissions-table th:first-child{ width: 90px; text-align: center; }
.ams-app .ams-permissions-table input[type="checkbox"]{ width: 18px; height: 18px; min-height: 0px; margin: 0px; accent-color: var(--teal); cursor: pointer; }
.ams-app .ams-permissions-table label{ display: block; cursor: pointer; padding: 4px 0px; white-space: normal; }
.ams-app .ams-permissions-table tr:has(input:checked){ background: rgb(237, 248, 247); }
.ams-app .ams-module-section{ margin-bottom: 24px; }
.ams-app .ams-module-section > h3{ font-size: 14px; color: var(--muted); margin: 0px 0px 12px; }
.ams-app .ams-module-section h4{ font-size: 16px; margin: 0px 0px 16px; color: var(--navy); }
.ams-app .ams-title-row small{ display: block; margin-top: 4px; color: rgb(95, 114, 128); font-size: 12px; font-weight: 500; }
.ams-app .ams-protocol-section, .ams-app .ams-content-body [id^="ams-protocol-body-"]{ scroll-margin-top: 96px; }
.ams-app .ams-section-anchor{ display: block; height: 0px; scroll-margin-top: 96px; }
.ams-app .ams-section-anchor:target + *{ outline: rgb(127, 184, 179) solid 2px; outline-offset: 6px; background: rgb(243, 250, 249); }
.ams-app .ams-config-import summary, .ams-app #ams-clinical-fields summary{ cursor: pointer; font-weight: 600; padding: 8px 0px; }
.ams-app .ams-config-import:not([open]){ padding: 8px 16px; margin-bottom: 12px; }
.ams-app .ams-import-body{ white-space: pre-wrap; max-height: 440px; overflow: auto; }
.ams-app [hidden]{ display: none !important; }
.ams-app .ams-protocol-section:target, .ams-app .ams-content-body [id^="ams-protocol-body-"]:target{ outline: rgb(127, 184, 179) solid 2px; outline-offset: 6px; border-radius: 4px; background: rgb(243, 250, 249); }
.ams-app form.ams-editor + .ams-config-import{ margin-top: 16px; }
.ams-app .ams-content-editor-screen button[data-action]{ width: auto; min-width: 0px; min-height: 28px; padding: 4px 8px; font-size: 11px; font-weight: 400; line-height: 18px; border: 1px solid rgb(213, 223, 229); border-radius: 5px; background: var(--paper); color: rgb(82, 101, 116); box-shadow: none; }
.ams-app .ams-content-editor-screen button[data-action]:hover{ background: rgb(238, 243, 246); border-color: rgb(183, 200, 209); color: rgb(35, 76, 96); }
.ams-app .ams-content-editor-screen .ams-config-import{ max-width: 960px; box-sizing: border-box; }
.ams-app .ams-content-editor-screen .ams-config-import > summary{ font-size: 12px; font-weight: 500; padding: 4px 0px; color: rgb(82, 101, 116); }
.ams-app .ams-content-editor-screen .ams-config-import > p{ font-size: 12px; margin: 8px 0px; }
.ams-app .ams-config-import button[data-action="config-template"], .ams-app .ams-config-import button[data-action="config-guide"]{ width: auto; min-width: 0px; min-height: 28px; padding: 4px 8px; font-size: 11px; font-weight: 400; line-height: 18px; border: 1px solid rgb(213, 223, 229); border-radius: 5px; background: var(--paper); color: rgb(82, 101, 116); box-shadow: none; }
.ams-app .ams-config-import button[data-action="config-template"]:hover, .ams-app .ams-config-import button[data-action="config-guide"]:hover{ background: rgb(238, 243, 246); border-color: rgb(183, 200, 209); color: rgb(35, 76, 96); }
.ams-app #ams-protocol-structured{ margin: 16px 0px 20px; }
.ams-app .ams-protocol-editor-head, .ams-app .ams-protocol-part-head{ display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.ams-app .ams-protocol-editor-head h3{ margin: 0px 0px 4px; }
.ams-app .ams-protocol-editor-head p{ margin: 0px; color: rgb(82, 96, 109); }
.ams-app #ams-protocol-sections{ display: grid; gap: 14px; margin-top: 14px; }
.ams-app .ams-protocol-part{ border: 1px solid rgb(216, 225, 232); border-radius: 12px; padding: 14px; background: var(--paper); box-shadow: rgba(15, 23, 42, 0.04) 0px 1px 2px; }
.ams-app .ams-protocol-part-head > label{ display: grid; gap: 6px; font-weight: 700; flex: 1 1 0%; }
.ams-app .ams-protocol-part-head input{ width: 100%; }
.ams-app .ams-protocol-part .wp-editor-wrap{ margin-top: 6px; }
.ams-app .ams-protocol-search-meta{ margin-top: 14px; }
.ams-app .ams-protocol-search-meta summary{ font-weight: 700; cursor: pointer; }
.ams-app .ams-import-body h2{ margin-top: 1.25em; border-bottom: 1px solid rgb(226, 232, 240); padding-bottom: 0.25em; }
@media (max-width: 700px) {.ams-app .ams-protocol-editor-head, .ams-app .ams-protocol-part-head{ align-items: stretch; flex-direction: column; }.ams-app .ams-protocol-part-head .ams-actions{ justify-content: flex-start; }}
.ams-app:not(.ams-overview) .ams-panel-empty{ padding: 18px 0px; color: var(--muted); font-size: 14px; }
.ams-app button:focus-visible, .ams-app input:focus-visible, .ams-app select:focus-visible, .ams-app textarea:focus-visible{ outline: 2px solid var(--accent); outline-offset: 3px; }
.ams-app .ams-single-article .ams-content-body{ line-height: 1.8; }
@media print {.ams-app, .ams-app .ams-card, .ams-app .ams-protocol-part{ background: rgb(255, 255, 255); color: rgb(17, 17, 17); box-shadow: none; }}
.ams-app nav.ams-primary-nav,
.ams-app.ams-portal > nav{ position: relative; z-index: 25; overflow: visible; }
.ams-app nav details.ams-lookup-menu{ position: relative; flex: 0 0 auto; margin: 0; min-width: 0; }
.ams-app nav details.ams-lookup-menu > summary{
    display: inline-flex; align-items: center; justify-content: space-between; gap: 9px;
    min-height: 44px; margin: 0; padding: 9px 15px;
    border: 1px solid #075b75; border-radius: 10px;
    background: #087b98; color: #fff;
    box-shadow: 0 3px 11px rgba(8, 87, 114, .19);
    font-family: inherit; font-size: 13px; font-weight: 750; line-height: 1.5;
    list-style: none; white-space: nowrap; cursor: pointer; user-select: none;
 }
.ams-app nav details.ams-lookup-menu > summary::-webkit-details-marker{ display: none; }
.ams-app nav details.ams-lookup-menu > summary::marker{ content: ""; }
.ams-app nav .ams-lookup-icon{ width:18px; height:18px; flex:0 0 18px; display:block; }
.ams-app nav .ams-lookup-label{ white-space:normal; text-align:left; }
.ams-app nav details.ams-lookup-menu > summary:hover,
.ams-app nav details.ams-lookup-menu[open] > summary{ background: #056982; border-color: #04596f; color: #fff; }
.ams-app nav details.ams-lookup-menu.ams-lookup-active > summary{ background: #076786; border-color: #07536c; color: #fff; box-shadow:inset 0 0 0 1px #a7d9e8,0 3px 11px rgba(8,87,114,.2); }
.ams-app nav details.ams-lookup-menu[open] > summary .ams-lookup-chevron{ transform: rotate(225deg); }
.ams-app nav .ams-lookup-chevron{
    display: inline-block; flex: 0 0 7px; width: 7px; height: 7px;
    border-bottom: 1.8px solid currentColor; border-right: 1.8px solid currentColor;
    transform: rotate(45deg) translateY(-2px); transition: transform .16s ease;
 }
.ams-app nav .ams-lookup-submenu{
    position: absolute; z-index: 100; top: calc(100% + 6px); left: 0;
    display: grid; gap: 3px; min-width: 266px; max-width: min(360px, 90vw);
    padding: 7px; border: 1px solid #c9e4ed; border-radius: 12px;
    background: #fff; box-shadow: 0 12px 30px rgba(16, 76, 99, .17);
 }
.ams-app nav .ams-lookup-submenu > a,
.ams-app nav .ams-lookup-submenu > button{
    display: flex; align-items: center; width: 100%; min-height: 40px;
    padding: 9px 12px; margin: 0; border: 1px solid transparent;
    border-radius: 8px; background: transparent; color: #194a60;
    font-family: inherit; font-size: 13px; font-weight: 600; line-height: 1.5;
    text-align: left; white-space: normal; text-decoration: none; box-shadow: none;
 }
.ams-app nav .ams-lookup-submenu > a:hover,
.ams-app nav .ams-lookup-submenu > button:hover,
.ams-app.ams-portal nav .ams-lookup-submenu > a:hover{ color: #056d8f; background: #edf8fc; border-color: #e0eef4; text-decoration: none; }
.ams-app nav .ams-lookup-submenu > a[aria-current="page"],
.ams-app nav .ams-lookup-submenu > button[aria-current="page"]{
    color: #066885; background: #e6f4f8; border-color: #bfdfe9;
    box-shadow: none;
 }
.ams-app.ams-portal nav details.ams-lookup-menu[open] > summary{
    margin: 0; padding: 9px 15px; border: 1px solid #04596f;
 }
@media (max-width: 700px) {.ams-app nav.ams-primary-nav,
    .ams-app.ams-portal > nav{ flex-wrap: wrap; overflow: visible; }.ams-app nav details.ams-lookup-menu{ position: static; }.ams-app nav details.ams-lookup-menu > summary{ min-height: 44px; padding: 9px 13px; font-size: 13px; }.ams-app nav .ams-lookup-submenu{
        top: calc(100% + 2px); left: 8px; min-width: 0;
        width: min(330px, calc(100% - 16px)); max-width: none;
     }.ams-app.ams-portal nav details.ams-lookup-menu[open] > summary{ padding: 9px 13px; }}
@media (prefers-reduced-motion: reduce) {.ams-app nav .ams-lookup-chevron{ transition: none; }}
.ams-app main, .ams-app .ams-collection, .ams-app .ams-title-row{ min-width:0; }
.ams-app .ams-title-row, .ams-app .ams-pre{ overflow-wrap:anywhere; }
@media screen and (max-width:640px) {.ams-app input:not([type="checkbox"]):not([type="radio"]), .ams-app select, .ams-app textarea{ font-size:16px; min-height:44px; }.ams-app button, .ams-app nav a, .ams-app nav summary{ min-height:44px; }.ams-app .ams-brand{ flex-wrap:wrap; }.ams-app .ams-brand > :not(img){ min-width:0; overflow-wrap:anywhere; }}
@media screen and (max-width:380px) {.ams-app .ams-search-line{ flex-wrap:wrap; }.ams-app .ams-search-line button{ width:100%; }}
.ams-app .ams-protocol-add-row{ display:flex; justify-content:center; margin:16px 0 22px; padding:16px; border:1px dashed #9ccddd; border-radius:12px; background:#eef9fd; }
.ams-app .ams-content-editor-screen button.ams-protocol-add-button{ min-height:46px; padding:12px 26px; border:1px solid #066f91; background:#087f98; color:#fff; font-size:15px; font-weight:700; box-shadow:0 5px 14px #087fa526; }
.ams-app .ams-content-editor-screen button.ams-protocol-add-button:hover{ background:#065d7c; border-color:#065d7c; }
@media screen and (max-width:640px) {.ams-app .ams-content-editor-screen button.ams-protocol-add-button{ width:100%; }}

/* Mobile shell: navigation and forms remain reachable at narrow widths. */
@media screen and (max-width:768px) {
  .ams-app main, .ams-app.ams-portal main { padding:16px; gap:18px; }
  .ams-app nav { min-width:0; padding:10px; gap:6px; }
  .ams-app nav > a, .ams-app nav details.ams-lookup-menu > summary { min-height:44px; font-size:14px; }
  .ams-app nav details.ams-lookup-menu { flex:1 1 100%; order:5; position:static; }
  .ams-app nav details.ams-lookup-menu > summary { width:100%; white-space:normal; justify-content:flex-start; font-size:15px; min-height:49px; padding:11px 15px; }
  .ams-app nav .ams-lookup-label{ flex:1; }
  .ams-app nav .ams-lookup-icon{ width:20px; height:20px; flex-basis:20px; }
  .ams-app nav .ams-lookup-submenu { position:static; min-width:0; max-width:none; width:100%; margin-top:6px; box-shadow:none; }
  .ams-app nav .ams-lookup-submenu a { min-height:44px; padding:12px; }
  .ams-app .ams-title { flex-wrap:wrap; }
  .ams-app .ams-actions { gap:8px; }
  .ams-app :is(.ams-editor, .ams-card, fieldset) { min-width:0; }
  .ams-app .ams-table-wrap { max-width:100%; overscroll-behavior-x:contain; }
  .ams-app .ams-filters { grid-template-columns:1fr; }
  .ams-app .ams-filters button { margin-bottom:0; }
}
@media screen and (max-width:480px) {
  .ams-app main, .ams-app.ams-portal main { padding:12px; gap:14px; }
  .ams-app .ams-card, .ams-app.ams-portal .ams-card, .ams-app .ams-editor { padding:14px; }
  .ams-app footer { padding:16px 12px; }
}
