/* DADS v2.18：公式CSSのコンポーネント寸法・状態を保持し、製品レイアウトだけを接続する。 */
:root { --font-family-sans: "Noto Sans JP", "BIZ UDPGothic", system-ui, sans-serif; --font-family-mono: "Noto Sans Mono", monospace; }
body { font-family: var(--font-family-sans); font-size: 1rem; line-height: 1.7; letter-spacing: .02em; color: var(--color-neutral-solid-gray-800); }
*, *::before, *::after { box-sizing: border-box; }
button, input, textarea, select { font-family: inherit; }
button, [role="button"], summary { min-height: 44px; }
a { text-underline-offset: 3px; }
h1,h2,h3,h4,h5,h6,strong,b { font-weight: 700; }
small { font-size: .875rem; line-height: 1.5; }
.text-xs { font-size: .875rem; line-height: 1.5; }
aside nav a, aside > div > button, .app-dialog :is(p,li,a,button) { font-size: 1rem; }
.app-page p { font-size: 1rem; }
:focus-visible { outline: 4px solid #000; outline-offset: 2px; box-shadow: 0 0 0 2px #ffd43d; }
.ws-app h3, .ws-dialog h3 { font-size: 1.125rem; line-height: 1.5; }
.ws-app :is(.ws-muted,.ws-sync,.ws-brand-sub,.ws-breadcrumb,.ws-select-label,.ws-list-footer,.ws-schedule-caption,.ws-source,.ws-person-company,.ws-person-role,.ws-person-contact,.ws-side-secondary>span,.ws-gantt-label small,.ws-no-dates), .ws-dialog .ws-muted { color: #595959; }
.ws-app small, .ws-dialog small, .ws-app .ws-gantt-dates small { font-size: .875rem; color: #595959; }
.ws-app .ws-sidebar :is(a,button) { min-height: 44px; }
.ws-search > span { color: #1a1a1a; font-size: 1rem; white-space: nowrap; }
.key-row { flex-wrap: wrap; }
.key-row > label { width: 100%; }
input,textarea,select { font-size: 1rem; }
.access-form input { width: 100%; margin-top: 8px; }
.access-form > label { display: block; text-align: left; margin-top: 24px; }
.access-form .dads-button { width: 100%; margin-top: 16px; }
.access-form .access-error { color: var(--color-semantic-error-1); }
.access-form a { min-height: 44px; display: flex; align-items: center; }
.ws-app { font-family: var(--font-family-sans); }
.ws-app input, .ws-app select, .ws-app textarea { font-family: var(--font-family-sans); }
.ws-field { display: flex; flex-direction: column; gap: 8px; font-weight: 700; }
.ws-field textarea, .ws-field input { font-weight: 400; }
.ws-app .dads-select__select { min-height: 48px; }
.ws-app .ws-tabs { margin: 0; padding: 8px 8px 0; gap: 0; border: 0; }
.ws-app .dads-tab__tab { min-height: 48px; }
.ws-app .dads-tab__panel { padding: 16px; }
.ws-app .ws-icon-button { min-width: 44px; min-height: 44px; color: #1a1a1a; }
.ws-app .ws-contact-names button { min-height: 44px; text-decoration: underline; color: var(--color-key-1000); }
.ws-app .ws-gantt-event { min-height: 44px; min-width: 44px; }
.ws-app .ws-sidebar a[aria-current="page"] { background: var(--color-key-50); color: var(--color-key-900); font-weight: 700; box-shadow: inset 4px 0 var(--color-key-900); }
.ws-app .ws-toolbar { gap: 16px; flex-wrap: wrap; }
.ws-app .ws-search { border: 0; background: transparent; padding: 0; }
.ws-search input { flex: 1; min-width: 0; }
.ws-search kbd { font-size: 14px; }
.ws-app .ws-content, .ws-app .ws-main { min-width: 0; }
.ws-app .ws-main { overflow-wrap: anywhere; }
.ws-app .ws-page-head p { font-size: 1rem; }
.ws-app .ws-section p { line-height: 1.7; }
.ws-app .ws-filter-bar [role="group"] { display: flex; gap: 8px; flex-wrap: wrap; }
.ws-app .ws-filter-bar [aria-pressed="true"] { border-width: 3px; font-weight: 700; }
.ws-app .ws-button, .ws-dialog .ws-button { margin-block: 8px; }
.ws-dialog { font-family: var(--font-family-sans); line-height: 1.7; }
.ws-dialog :focus-visible { scroll-margin: 16px; }
.ws-skip { position: fixed; left: 16px; top: -100px; z-index: 1000; background: #fff; padding: 16px; }
.ws-skip:focus { top: 16px; }
.ws-app .ws-disabled-reason { font-size: 1rem; color: #595959; margin: 16px 0; }
/* 14pxはテーブルの補足・日付・モバイルナビ等、制約のある領域だけに使用。 */
.ktz-app .ktz-tab, .ws-app .ws-sidebar nav a, .ws-app .ws-side-bottom > a { font-size: 1rem; }
.app-page :is(.text-xs,.text-\[10px\],.text-\[11px\],.text-\[12px\],.text-\[13px\]), .ktz-app small { font-size: .875rem; line-height: 1.5; }
.menu-button { display: none; }
.nav-cta { text-decoration: none; }
.research-form { gap: 8px; }
.research-form > label { margin-top: 24px; font-size: 1.0625rem; }
.research-form > :is(input,textarea) { width: 100%; }
.research-form .dads-button { margin-top: 24px; }
.research-form .dads-input-text__error-text { margin: 0; }
.research-form p { font-size: 1rem; }
.copy-button { margin-left: 16px; flex-shrink: 0; }
.code-head { flex-wrap: wrap; gap: 16px; }
.plan .dads-button { width: 100%; margin-top: auto; }
.nav a, .footer-links a, .resource-links a { min-height: 44px; display: inline-flex; align-items: center; }
.text-link { min-height: 44px; display: inline-flex; align-items: center; }
.breadcrumb { line-height: 1.7; }
.prose table { font-size: 1rem; }
.prose :is(p,li) { line-height: 1.7; }
.skip:focus { z-index: 1000; }
[hidden] { display: none !important; }
@media(max-width:900px) { .menu-button { display: flex; } }
@media(max-width:600px) {
  .ws-app .ws-sidebar nav a, .ws-app .ws-side-bottom > a { font-size: .875rem; min-height: 80px; white-space: normal; }
  .ws-app .ws-sidebar { height: 88px; }
  .ws-app { padding-bottom: 96px; }
  .ws-app .ws-sidebar a[aria-current="page"] { box-shadow: inset 0 4px var(--color-key-900); }
  .ws-app .ws-toolbar { padding: 16px; height: auto; }
  .ws-app .ws-breadcrumb { width: 100%; }
  .ws-app .ws-search { width: calc(100% - 60px); }
  .ws-app .ws-search kbd { display: none; }
  .ws-app .ws-page-head { flex-wrap: wrap; gap: 16px; }
  .ws-dialog { width: calc(100% - 32px); max-height: calc(100dvh - 32px); padding: 16px; }
  .ws-dialog header { gap: 16px; }
  .plan .dads-button { margin-top: 24px; }
}
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
@media(forced-colors:active) { [aria-current="page"], [aria-selected="true"], [aria-pressed="true"] { outline: 3px solid Highlight; } }

.dads-checkbox__input { min-height: 0; }
.ws-schedule-caption .dads-checkbox { align-items: start; }
