/* ポータル専用画面と社員設定だけに適用。長い単語も折り返す。 */
#user-form input[name="portal_member"] { width: auto; padding: 0; margin: 0 5px 0 0; }
#portal-content { --portal-ink: #203c48; --portal-accent: #226d6a; color: #243845; line-height: 1.65; overflow-wrap: anywhere; }
#portal-content * { min-width: 0; }
#portal-content .portal-delete-control { margin-top: 32px; padding-top: 18px; border-top: 1px solid #dae3e7; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
#portal-content .portal-delete-control .btn { color: #89423b; background: transparent; border-color: #c8c8c8; }
#portal-content .portal-trash-dialog { box-sizing: border-box; width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); overflow-y: auto; border: 1px solid #c4d0d6; border-radius: 12px; padding: 24px; color: #243845; background: #fff; line-height: 1.65; }
#portal-content .portal-trash-dialog::backdrop { background: rgb(17 35 44 / 55%); }
#portal-content .portal-trash-dialog h3 { margin-top: 0; }
#portal-content .portal-trash-title { font-weight: 700; overflow-wrap: anywhere; }
#portal-content .portal-trash-impact { margin: 12px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 20px; }
#portal-content .portal-trash-impact > div { display: flex; justify-content: space-between; gap: 8px; border-bottom: 1px solid #e3e9ed; padding: 5px 0; }
#portal-content .portal-trash-impact dd { margin: 0; white-space: nowrap; }
#portal-content .portal-trash-notice { padding: 12px; background: #fff6e7; border-radius: 6px; }
#portal-content .portal-trash-dialog [data-destructive="true"] { color: #fff; background: #974a42; border-color: #974a42; }
#portal-content .portal-trash-dialog .portal-form-actions { justify-content: flex-end; }
#portal-content .portal-trash-list { display: grid; gap: 12px; }
#portal-content .related-guidance { margin: 24px 0; border-top: 3px solid #417c76; padding: 18px 0 0; }
#portal-content .related-guidance[hidden] { display: none; }
#portal-content .related-shortcut[hidden] { display: none; }
#portal-content .related-shortcut { margin: -6px 0 16px; }
#portal-content .related-shortcut .btn { color: #276962; background: #eff7f4; border-color: #bdd6cd; }
#portal-content .related-guidance { scroll-margin-top: 20px; }
#portal-content .related-heading h3 { margin-bottom: 4px; }
#portal-content .related-heading p, #portal-content .related-notice { color: #526671; font-size: 13px; margin: 6px 0 14px; }
#portal-content .related-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
#portal-content .related-card { padding: 16px; border: 1px solid #cbdcda; border-radius: 9px; background: #fff; }
#portal-content .related-card h4 { margin: 10px 0; font-size: 16px; }
#portal-content .related-card { min-width: 0; overflow-wrap: anywhere; }
#portal-content .related-prior-heading { color: #276962; font-size: 13px; font-weight: 600; }
#portal-content .related-prior-context h5 { margin: 16px 0 6px; font-size: 14px; }
#portal-content .related-passages { padding-left: 20px; white-space: pre-wrap; }
#portal-content .related-passages li { margin-bottom: 10px; }
#portal-content .related-passages small { display: block; color: #526671; }
#portal-content .related-link-confirm { margin-top: 12px; padding: 0 12px 8px; border: 1px solid #cbdcda; border-radius: 8px; background: #f7fbfa; }
#portal-content .related-link-confirm > summary { display: list-item; padding: 12px 0; min-height: 44px; cursor: pointer; font-weight: 600; }
#portal-content .related-link-confirm p { font-size: 13px; overflow-wrap: anywhere; }
#portal-content .related-link-confirm button { min-height: 44px; max-width: 100%; white-space: normal; }
#portal-content .portal-reader-related { margin: 0 0 20px; border: 1px solid #cbdcda; border-radius: 8px; background: #f4faf8; padding: 0 14px 8px; overflow-wrap: anywhere; }
#portal-content .portal-reader-related > summary { min-height: 44px; padding: 12px 0; font-size: 14px; font-weight: 600; cursor: pointer; }
#portal-content .portal-reader-related > summary span { color: #276962; }
#portal-content .portal-reader-related p, #portal-content .portal-reader-related li { font-size: 13px; }
#portal-content .portal-reader-related ul { padding-left: 20px; }
#portal-content .portal-reader-related li { margin: 10px 0; }
#portal-content .portal-reader-related li span { display: block; color: #526671; margin-top: 4px; }
#portal-content .portal-reader-related button { min-height: 44px; max-width: 100%; white-space: normal; }
#portal-content .related-meta { display: flex; flex-wrap: wrap; gap: 5px 9px; color: #526671; font-size: 12px; }
#portal-content .related-evidence { margin: 12px 0; }
#portal-content .related-evidence > div { border-top: 1px solid #e2e9ed; padding: 9px 0; }
#portal-content .related-evidence dt { color: #385e62; font-size: 12px; font-weight: 700; }
#portal-content .related-evidence dd { margin: 0; }
#portal-content .related-evidence p { margin: 4px 0; font-size: 13px; white-space: pre-wrap; line-height: 1.65; }
#portal-content .related-evidence small { display: block; color: #62747a; font-size: 11px; }
#portal-content .related-guidance .related-source { margin-top: 5px; text-align: left; padding: 7px 10px; font-size: 12px; min-height: 44px; }
#portal-content .related-evidence .related-source { color: #276962; background: #f2f7f6; }
#portal-content .related-guidance ul { padding-left: 19px; margin: 6px 0; font-size: 13px; }
#portal-content .related-reasons { color: #385e62; }
#portal-content .related-comparison { color: #276962; font-size: 12px; font-weight: 700; margin: 6px 0; }
#portal-content .related-details { border-top: 1px solid #e2e9ed; margin-top: 12px; font-size: 13px; }
#portal-content .related-details > summary { color: #276962; font-size: 13px; }
#portal-content .related-differences { margin-top: 10px; padding: 10px; background: #f1f6f6; border-radius: 5px; font-size: 12px; }
#portal-content .related-cautions { color: #6c563a; }
#portal-content .related-questions { margin-top: 14px; padding: 14px 18px; background: #fff8e9; border-radius: 8px; }
#portal-content .related-questions h4 { margin: 0 0 5px; font-size: 15px; }
@media (max-width: 900px) { #portal-content .related-cards { grid-template-columns: minmax(0, 1fr); } }
#portal-content .portal-head { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; padding: 24px; color: #fff; background: #203f50; border-radius: 12px; margin-bottom: 20px; }
#portal-content .portal-head h2 { font-size: 25px; letter-spacing: .04em; margin: 2px 0 6px; }
#portal-content .portal-head p { margin: 0; color: #e0ebef; }
#portal-content .portal-eyebrow { font-size: 12px; letter-spacing: .08em; }
#portal-content .portal-head-actions, #portal-content .portal-card-actions, #portal-content .portal-form-actions, #portal-content .portal-section-head, #portal-content .portal-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
#portal-content .portal-head-actions { align-self: flex-end; }
#portal-content .btn { min-height: 42px; font-size: 14px; white-space: normal; line-height: 1.5; }
#portal-content .btn.primary { background: #226d6a; border-color: #226d6a; color: #fff; }
#portal-content .btn.primary:hover { background: #175c59; }
#portal-content .portal-head .btn.primary { background: #e9f5ef; border-color: #e9f5ef; color: #174b49; }
#portal-content .btn:disabled { opacity: .5; cursor: default; }
#portal-content :focus-visible { outline: 3px solid #d68e14; outline-offset: 3px; }
#portal-content .portal-scope { display: flex; gap: 8px; margin-bottom: 24px; flex-wrap: wrap; }
#portal-content .portal-scope .btn { padding: 10px 20px; font-weight: 600; }
#portal-content [aria-pressed="true"] { background: #e0eeee; border-color: #226d6a; color: #185753; box-shadow: inset 0 -2px #226d6a; }
#portal-content h3 { font-size: 18px; margin: 0 0 12px; color: #203c48; }
#portal-content h4 { font-size: 17px; margin: 10px 0; line-height: 1.6; }
#portal-content .portal-section-head { margin-bottom: 18px; }
#portal-content .portal-section-head h3 { margin: 0; }
#portal-content .portal-list-controls { margin-bottom: 18px; }
#portal-content .portal-person { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-weight: 600; margin-bottom: 16px; }
#portal-content .portal-person select { min-width: 180px; max-width: 100%; }
#portal-content .portal-tabs { display: flex; gap: 6px; margin: 14px 0; flex-wrap: wrap; }
#portal-content .portal-tabs .btn { flex: 1 1 120px; }
#portal-content .portal-search { display: flex; gap: 8px; flex-wrap: wrap; }
#portal-content .portal-search label:first-child { flex: 1 1 180px; }
#portal-content .portal-search input, #portal-content .portal-search select { width: 100%; }
#portal-content input, #portal-content textarea, #portal-content select { max-width: 100%; background: #fff; padding: 10px 12px; font: inherit; border: 1px solid #abbec8; border-radius: 6px; color: #243845; min-height: 44px; }
#portal-content input[type="file"] { font-size: 14px; width: 100%; padding: 8px; }
#portal-content textarea { width: 100%; resize: vertical; line-height: 1.75; }
#portal-content .portal-list { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
#portal-content .portal-card { border: 1px solid #d7e0e6; border-radius: 9px; padding: 20px; background: #fff; margin-bottom: 14px; }
#portal-content .portal-list .portal-card { margin-bottom: 0; }
#portal-content .portal-detail { border-top: 4px solid #407e7b; }
#portal-content .portal-meta { color: #526671; font-size: 13px; margin-bottom: 12px; }
#portal-content .portal-meta h3 { margin: 0; }
#portal-content .portal-prose { white-space: pre-wrap; word-break: normal; overflow-wrap: anywhere; line-height: 1.85; }
#portal-content .portal-prose:empty { display: none; }
#portal-content .portal-excerpt { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
#portal-content .portal-card-actions { margin-top: 18px; }
#portal-content .portal-help, #portal-content .portal-field small, #portal-content .portal-selected-files { font-size: 13px; font-weight: normal; color: #526671; line-height: 1.7; }
#portal-content .portal-help { margin: 10px 0; }
#portal-content .portal-empty { border: 1px dashed #b9cbd4; border-radius: 9px; background: #f9fcfd; padding: 28px 22px; text-align: center; margin-bottom: 16px; }
#portal-content .portal-empty strong { font-size: 16px; }
#portal-content .portal-empty p { color: #526671; margin: 8px auto 0; max-width: 560px; }
#portal-content .portal-pagination { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 22px 0; }
#portal-content .portal-pagination span { white-space: nowrap; color: #526671; font-size: 13px; }
#portal-content .portal-badge { display: inline-block; border-radius: 20px; font-size: 12px; padding: 3px 11px; color: #355364; background: #e9f0f5; font-weight: 600; }
#portal-content .portal-done, #portal-content .portal-state-done { color: #285e42; background: #e6f2e9; }
#portal-content .portal-state-in_progress { color: #185f62; background: #e1f1f0; }
#portal-content .portal-state-on_hold { color: #795118; background: #fff0d7; }
#portal-content .portal-form { border-radius: 9px; border: 1px solid #d5e1e7; background: #fff; padding: 22px; margin: 14px 0; }
#portal-content fieldset { padding: 0; margin: 0; border: 0; }
#portal-content legend { font-size: 16px; font-weight: 700; padding: 0 0 16px; }
#portal-content .portal-field { display: flex; flex-direction: column; align-items: stretch; gap: 6px; margin-bottom: 18px; font-weight: 600; }
#portal-content .portal-field input[type="date"] { max-width: 230px; width: 100%; }
#portal-content .portal-form-actions { margin-top: 16px; }
#portal-content .portal-error, #portal-content .portal-form-error { color: #a02e22; font-size: 14px; white-space: pre-wrap; }
#portal-content .portal-form-error:empty { display: none; }
#portal-content .portal-loading { padding: 32px 0; color: #526671; }
#portal-content .portal-section { margin: 30px 0; }
#portal-content .portal-count { display: inline-block; margin-left: 4px; background: #e0e9ee; color: #355364; border-radius: 20px; padding: 0 9px; font-size: 13px; }
#portal-content .portal-source { background: #f0f5f7; border-left: 3px solid #9cb9c7; padding: 14px 16px; margin: 20px 0; }
#portal-content .portal-source .portal-prose { font-size: 13px; margin: 8px 0 12px; }
#portal-content .portal-revisit { background: #fff8e8; border-radius: 6px; padding: 12px 14px; margin: 15px 0; font-size: 13px; color: #624d21; }
#portal-content .portal-history > article { border-top: 1px solid #dce5ea; margin-top: 16px; padding-top: 16px; }
#portal-content .portal-history .portal-prose { font-size: 14px; }
#portal-content details > summary { cursor: pointer; font-weight: 600; padding: 10px 0; min-height: 44px; }
#portal-content .portal-compose { margin: 12px 0; border-top: 1px solid #d5e1e7; }
#portal-content .portal-compose > summary { color: #1b6563; }
#portal-content .portal-compose .portal-form { margin-top: 4px; }
#portal-content .portal-progress-history { margin-top: 15px; }
#portal-content .portal-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
#portal-content .portal-photos img { display: block; width: 100%; height: 170px; object-fit: cover; border-radius: 6px; background: #e8eef1; }
#portal-content .portal-photo { min-width: 0; padding: 10px; border: 1px solid #dce5ea; border-radius: 8px; }
#portal-content .portal-photo-date { margin: 10px 0; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
#portal-content .portal-photo .portal-help { margin: 8px 0 0; font-size: 12px; }
#portal-content .portal-photo-tombstone { display: grid; place-items: center; min-height: 90px; color: #62747e; background: #f2f5f6; border-radius: 6px; font-size: 14px; }
#portal-content [data-portal="photo-retention"] { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; white-space: normal; text-align: left; }
#portal-content .portal-photo-switch { display: inline-block; width: 32px; height: 20px; border: 1px solid #677d87; border-radius: 20px; background: #e2e9ec; flex: 0 0 auto; }
#portal-content .portal-photo-switch::after { content: ''; display: block; width: 14px; height: 14px; margin: 2px; border-radius: 50%; background: #627680; }
#portal-content [aria-checked="true"] .portal-photo-switch { background: #166667; border-color: #166667; }
#portal-content [aria-checked="true"] .portal-photo-switch::after { margin-left: 14px; background: #fff; }
#portal-content .portal-photo-message { margin: 8px 0 0; font-size: 13px; line-height: 1.7; color: #804719; }
#portal-content .portal-photo-message:empty { display: none; }
#portal-content .portal-storage-total { font-size: 16px; }
#portal-content .portal-storage-total strong { font-size: 25px; color: #254959; }
#portal-content .portal-photo-storage meter { display: block; width: 100%; height: 18px; }
#portal-content .portal-storage-counts { display: flex; flex-wrap: wrap; gap: 18px 32px; margin: 20px 0; }
#portal-content .portal-storage-counts dt { font-size: 12px; color: #526671; }
#portal-content .portal-storage-counts dd { font-size: 16px; font-weight: 600; margin: 4px 0 0; }
#portal-content .portal-storage-warning { padding: 12px 14px; background: #fff5de; border-left: 3px solid #aa6d16; line-height: 1.7; color: #684916; }
#portal-content .portal-storage-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
#portal-content .portal-storage-list .portal-card { margin: 0; }
#portal-content .portal-conflict { background: #fff6e6; padding: 16px; margin: 16px 0; border: 1px solid #dcc291; border-radius: 6px; }
#portal-content .portal-conflict .portal-prose { max-height: 300px; overflow-y: auto; margin: 10px 0; padding: 10px; background: #fff; }
#portal-content .portal-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
/* タイルから人を選び、原文は専用の閲覧欄で読む。 */
#portal-content .portal-reading-view { max-width: 1100px; margin: 0 auto; }
#portal-content .portal-reading-head { display: flex; gap: 12px; align-items: center; padding: 4px 0 12px; }
#portal-content .portal-reading-head h2 { flex: 1; font-size: 23px; margin: 0; color: var(--portal-ink); }
#portal-content .portal-reading-menu { position: relative; font-size: 13px; }
#portal-content .portal-reading-menu > div { position: absolute; right: 0; z-index: 9; min-width: 200px; padding: 12px; border: 1px solid #c4d0d6; border-radius: 8px; background: #fff; box-shadow: 0 6px 18px #203c4820; display: grid; gap: 8px; }
#portal-content .portal-reading-controls .portal-tabs { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 4px; margin: 0 0 12px; padding-bottom: 4px; }
#portal-content .portal-reading-controls .portal-tabs .btn { flex: 1 0 auto; white-space: nowrap; padding: 8px 12px; }
#portal-content .portal-reading-controls .portal-date-nav { margin: 0; }
#portal-content .portal-reading-filters { margin-top: 6px; border-bottom: 1px solid #d7e0e6; }
#portal-content .portal-reading-filters > summary { font-size: 13px; color: #526671; }
#portal-content .portal-reading-filters .portal-scope { margin: 10px 0; }
#portal-content .portal-reading-view .portal-day-summary { border: 0; padding: 0; margin: 8px 0; }
#portal-content .portal-reading-view .portal-day-summary h3 { font-size: 16px; }
#portal-content .portal-reading-view .portal-report-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
#portal-content .portal-report-tile { display: flex; flex-direction: column; gap: 5px; height: 192px; padding: 16px; border: 1px solid #cbd9df; border-radius: 9px; background: #fff; color: #243845; text-align: left; font: inherit; cursor: pointer; box-shadow: 0 2px 4px #203c4806; }
#portal-content .portal-report-tile:hover { border-color: #226d6a; background: #f7fbfa; }
#portal-content .portal-report-tile > strong { display: block; font-size: 19px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; }
#portal-content .portal-tile-time { font-size: 11px; color: #62747a; white-space: nowrap; }
#portal-content .portal-tile-excerpt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; white-space: pre-wrap; line-height: 1.65; font-size: 14px; margin-top: 5px; }
#portal-content .portal-tile-open { font-size: 12px; color: #226d6a; margin-top: auto; padding-top: 4px; }
#portal-content .portal-tile-help { margin: 4px 0 14px; }
html:has(.portal-report-reader[open]) { overflow: hidden; }
#portal-content .portal-report-reader { box-sizing: border-box; width: min(760px, calc(100vw - 40px)); max-width: none; height: min(820px, 90dvh); max-height: none; padding: 0; border: 1px solid #bdccd2; border-radius: 12px; background: #fff; color: #243845; overflow: hidden; }
#portal-content .portal-report-reader[open] { display: flex; flex-direction: column; }
#portal-content .portal-report-reader::backdrop { background: rgb(17 35 44 / 55%); }
#portal-content .portal-reader-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 24px 16px; border-bottom: 1px solid #dce5ea; flex-shrink: 0; }
#portal-content .portal-reader-header h2 { font-size: 22px; margin: 0; }
#portal-content .portal-reader-meta { margin: 5px 0 0; font-size: 12px; color: #62747a; }
#portal-content .portal-reader-header .btn { flex-shrink: 0; }
#portal-content .portal-reader-body { overflow-y: auto; overscroll-behavior: contain; padding: 24px; flex: 1; min-height: 0; }
#portal-content .portal-report-body { font-size: 16px; line-height: 1.95; max-width: 72ch; }
#portal-content .portal-reader-footer { padding: 12px 24px max(12px, env(safe-area-inset-bottom)); border-top: 1px solid #dce5ea; flex-shrink: 0; background: #f7fafb; }
#portal-content .portal-reader-footer nav { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
#portal-content .portal-reader-position { font-size: 13px; color: #526671; }
#portal-content .portal-reader-footer > .btn { margin-top: 10px; font-size: 12px; background: transparent; color: #526671; }
@media (min-width: 1100px) { #portal-content .portal-reading-view .portal-report-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  body:has(#view-portal:not(.hidden) .portal-reading-view) .topbar { position: static; }
  #portal-content .portal-reading-head { gap: 8px; }
  #portal-content .portal-reading-head h2 { font-size: 21px; }
  #portal-content .portal-reading-head > .btn { font-size: 13px; padding: 8px 12px; }
  #portal-content .portal-reading-controls .portal-tabs { display: flex; }
  #portal-content .portal-reading-view .portal-report-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  #portal-content .portal-report-tile { height: 184px; padding: 12px; }
  #portal-content .portal-report-tile > strong { font-size: 17px; }
  #portal-content .portal-report-reader { width: 100%; height: 100dvh; margin: 0; border: 0; border-radius: 0; }
  #portal-content .portal-reader-header { padding: 16px; gap: 8px; }
  #portal-content .portal-reader-body { padding: 20px 16px; }
  #portal-content .portal-reader-footer { padding: 10px 16px max(10px, env(safe-area-inset-bottom)); }
}
/* 日付で見渡し、必要な原文だけ開く。抜粋は原文とは別の役割として表示する。 */
#portal-content .portal-date-nav, #portal-content .portal-review-filters, #portal-content .portal-day-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
#portal-content .portal-date-nav input { width: 180px; }
#portal-content .portal-day-summary { justify-content: space-between; padding-top: 8px; border-top: 1px solid #d7e0e6; }
#portal-content .portal-day-summary h3 { margin: 0; }
#portal-content .portal-day-summary > span { color: #526671; font-size: 14px; }
#portal-content .portal-short-excerpt, #portal-content .portal-action-summary { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
#portal-content .portal-short-excerpt { font-size: 14px; }
#portal-content .portal-section-links { display: grid; gap: 5px; margin-bottom: 12px; }
#portal-content .portal-section-links .btn { text-align: left; font-weight: 600; color: #1b6563; padding: 8px 10px; background: #f2f7f6; border: 1px solid #d4e4e1; }
#portal-content .portal-section-links details > .btn { display: block; width: 100%; margin-top: 5px; }
#portal-content .portal-report-mode { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 10px 0 14px; }
#portal-content .portal-daily-card > .portal-meta { align-items: flex-start; justify-content: space-between; }
#portal-content .portal-daily-card > .portal-meta strong { font-size: 17px; color: #203c48; }
#portal-content .portal-daily-card > .portal-meta span { font-size: 12px; }
#portal-content .portal-review-part { border-top: 1px solid #e2e9ed; padding-top: 12px; margin-top: 12px; }
#portal-content .portal-review-part > strong { font-size: 13px; color: #51616b; }
#portal-content .portal-review-part > .portal-prose { margin-top: 6px; }
#portal-content .portal-action-summary { margin: 6px 0; font-size: 14px; -webkit-line-clamp: 2; }
#portal-content .portal-linked-topics, #portal-content .portal-source-links { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; border-top: 1px solid #e2e9ed; padding-top: 12px; margin-top: 12px; }
#portal-content .portal-linked-topics > span, #portal-content .portal-source-links > strong { width: 100%; font-size: 13px; color: #51616b; }
#portal-content .portal-linked-topics .btn, #portal-content .portal-source-links .btn { text-align: left; padding: 6px 10px; font-size: 13px; }
#portal-content .portal-report-section, #portal-content .portal-raw { border-top: 1px solid #dce5ea; padding: 8px 0; scroll-margin-top: 24px; }
#portal-content .portal-report-section[open] > .portal-prose, #portal-content .portal-raw[open] > .portal-prose { padding: 12px 0 20px; }
#portal-content .portal-report-section > summary { color: #1b6563; }
#portal-content .portal-overview { background: #f5faf8; border-color: #bcd4cc; }
#portal-content .portal-linked-reports { margin-top: 20px; }
#portal-content .portal-linked-reports > div { padding: 10px 0; border-top: 1px solid #dce5ea; }
#portal-content .portal-section { scroll-margin-top: 24px; }
#portal-content .portal-stale, #portal-content .portal-warnings { padding: 12px 16px; background: #fff8e8; border: 1px solid #decaa1; border-radius: 6px; font-size: 14px; }
#portal-content .portal-warnings { padding-left: 34px; }
#portal-content #portal-link-results { margin-top: 16px; }
#portal-content .portal-category-filters { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0; }
#portal-content .portal-category-filters .btn { padding: 8px 12px; }
#portal-content .portal-organized-filter-panel { border-top: 1px solid #d7e0e6; border-bottom: 1px solid #d7e0e6; margin: 12px 0; }
#portal-content .portal-organized-filter-panel > summary { color: #1b6563; font-size: 14px; }
#portal-content .portal-organized-filter-panel > summary small { display: block; font-size: 12px; font-weight: normal; color: #526671; margin-left: 18px; }
#portal-content .portal-organized-filter-panel[open] > summary { margin-bottom: 6px; }
#portal-content .portal-organized-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; border: 1px solid #d7e0e6; background: #f7fafb; border-radius: 9px; padding: 16px; }
#portal-content .portal-organized-filters label { display: flex; flex-direction: column; gap: 5px; font-size: 13px; font-weight: 600; }
#portal-content .portal-organized-filters input, #portal-content .portal-organized-filters select { width: 100%; }
#portal-content .portal-organized-filter-actions { display: flex; flex-wrap: wrap; gap: 8px; grid-column: 1 / -1; }
#portal-content .portal-organized-filters .portal-form-error { grid-column: 1 / -1; margin: 0; }
#portal-content .portal-organized-status { border-left: 3px solid #9bb9b2; border-radius: 3px; padding: 10px 16px; background: #f0f6f3; font-size: 13px; color: #425d59; margin: 16px 0; }
#portal-content .portal-organized-status p { margin: 4px 0; }
#portal-content .portal-organized-status summary { min-height: 36px; padding: 6px 0; font-weight: normal; }
#portal-content .portal-organized-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
#portal-content .portal-category-tag { display: inline-flex; flex-direction: column; gap: 1px; border-radius: 5px; border: 1px solid #d4e4e1; background: #edf5f2; padding: 4px 9px; color: #30594f; font-size: 13px; }
#portal-content .portal-category-tag small { font-size: 11px; font-weight: normal; }
#portal-content .portal-category-jev { background: #f1effa; border-color: #dcd6ef; color: #5b4f79; }
#portal-content .portal-organized-stores { margin: 8px 0; font-size: 13px; color: #526671; }
#portal-content .portal-snippet-label { margin: 12px 0 3px; font-size: 12px; color: #526671; }
#portal-content .portal-organized-excerpt { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; font-size: 14px; }
#portal-content .portal-organized-reason { margin-top: 14px; border-left: 2px solid #d4be91; padding: 2px 10px; font-size: 12px; color: #765d30; }
#portal-content .portal-organized-reason p { margin: 3px 0; }
#portal-content .portal-classification-correction { margin-top: 14px; border-top: 1px solid #d7e0e6; }
#portal-content .portal-classification-correction fieldset { border: 0; padding: 8px 0; min-width: 0; }
#portal-content .portal-classification-correction legend { font-size: 14px; font-weight: 600; }
#portal-content .portal-correction-choices { display: flex; flex-wrap: wrap; gap: 8px 16px; }
#portal-content .portal-correction-choices label { display: flex; align-items: center; gap: 8px; min-height: 44px; }
#portal-content .portal-correction-choices input { width: 20px; height: 20px; }
#portal-content .portal-usage-table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 13px; }
#portal-content .portal-usage-table th, #portal-content .portal-usage-table td { text-align: left; padding: 7px 4px; border-bottom: 1px solid #d0ddd7; }
#portal-content .portal-usage-table caption { text-align: left; font-weight: 600; }
#portal-content .related-feedback { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
#portal-content .related-feedback .btn { min-height: 44px; font-size: 13px; }
#portal-content .related-feedback .btn[aria-pressed="true"] { background: #dcefeb; border-color: #397d72; }
#portal-content .related-hidden-item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 10px 0; }
#portal-content .portal-auto-save-note { border-radius: 6px; padding: 13px 16px; background: #f0f6f3; color: #425d59; font-size: 13px; }
#portal-content .portal-auto-save-note p { margin: 6px 0 0; }
@media (min-width: 1100px) {
  #portal-content .portal-daily-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  #portal-content .portal-head { padding: 12px; gap: 8px; flex-wrap: nowrap; margin-bottom: 10px; }
  #portal-content .portal-head p { display: none; }
  #portal-content .portal-head h2 { font-size: 19px; margin: 0; white-space: nowrap; }
  #portal-content .portal-head-actions { width: auto; flex: 1; align-self: center; justify-content: flex-end; gap: 5px; }
  #portal-content .portal-head-actions .btn { flex: 0 1 auto; padding: 7px 8px; font-size: 12px; white-space: nowrap; }
  #portal-content .portal-scope { gap: 6px; margin-bottom: 10px; }
  #portal-content .portal-scope .btn { padding: 6px 12px; }
  #portal-content .portal-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin: 8px 0; }
  #portal-content .portal-tabs .btn { padding: 6px 2px; font-size: 12px; }
  #portal-content .portal-person { margin-bottom: 8px; font-size: 13px; }
  #portal-content .portal-date-nav { display: grid; grid-template-columns: .8fr 2fr .8fr .65fr; gap: 4px; margin: 8px 0; }
  #portal-content .portal-date-nav > .btn { padding: 6px 2px; font-size: 12px; }
  #portal-content .portal-date-nav > label { grid-column: 2; grid-row: 1; }
  #portal-content .portal-date-nav input { width: 100%; padding: 8px 3px; font-size: 14px; }
  #portal-content .portal-date-nav > .btn:last-child { grid-column: 4; grid-row: 1; }
  #portal-content .portal-report-mode { margin: 6px 0 8px; }
  #portal-content .portal-report-mode > .btn { padding: 6px 10px; font-size: 13px; }
  #portal-content .portal-list-controls { margin-bottom: 10px; }
  #portal-content .portal-day-summary { margin: 8px 0; }
  #portal-content .portal-day-summary + .portal-help { font-size: 12px; line-height: 1.5; margin: 6px 0 10px; }
  #portal-content .portal-review-filters .btn { flex: 1 1 130px; padding: 8px 6px; }
  #portal-content .portal-list { grid-template-columns: minmax(0, 1fr); }
  #portal-content .portal-card, #portal-content .portal-form { padding: 16px; }
  #portal-content .portal-card .portal-form { padding: 12px; }
  #portal-content input, #portal-content textarea, #portal-content select { font-size: 16px; }
  #portal-content .portal-person select { flex: 1; min-width: 130px; }
  #portal-content .portal-search label { flex: 1 1 170px; }
  #portal-content .portal-search button { flex: 0 0 auto; }
  #portal-content .portal-category-filters { gap: 6px; margin: 10px 0; }
  #portal-content .portal-category-filters .btn { padding: 7px 9px; font-size: 13px; }
  #portal-content .portal-organized-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px; }
  #portal-content .portal-organized-filters label:has(select), #portal-content .portal-organized-query { grid-column: 1 / -1; }
  #portal-content .portal-organized-filters input[type="date"] { padding: 8px 4px; font-size: 14px; }
  #portal-content .portal-organized-filter-actions .btn { flex: 1; }
  #portal-content .portal-card-actions { align-items: stretch; }
  #portal-content .portal-card-actions .btn { flex: 1 1 150px; }
  #portal-content .portal-form-actions .btn { width: 100%; }
  #portal-content .portal-photos { grid-template-columns: 1fr; gap: 12px; }
  #portal-content .portal-photos img { height: auto; max-height: 300px; object-fit: contain; }
  #portal-content .portal-photo { padding: 12px; }
  #portal-content .portal-storage-list { grid-template-columns: 1fr; }
  #portal-content .portal-pagination { gap: 8px; }
  #portal-content .portal-pagination .btn { padding: 8px 10px; }
}
#portal-content .portal-training-intro { line-height: 1.8; max-width: 680px; }
#portal-content .portal-training-action { padding: 16px; margin: 12px 0; border-left: 3px solid #2864a5; background: #f3f7fc; border-radius: 8px; }
#portal-content [data-training-action][hidden], #portal-content [data-training-no-action][hidden] { display: none; }
#portal-content .portal-training-next { border-left: 4px solid #2864a5; }
#portal-content form[data-kind="training-record"] { max-width: 740px; }
