/* ProfSignal presentation tokens. Deliberately scoped outside WordPress admin. */
body.aip-frontend {
    color-scheme: light;
    --aip-background: #f5f8fc;
    --aip-surface: #ffffff;
    --aip-text: #17293b;
    --aip-muted: #526575;
    --aip-border: #dbe4ee;
    --aip-input-border: #7a8c9e;
    --aip-primary: #3f6fb5;
    --aip-primary-strong: #315995;
    --aip-soft-blue: #e5eff8;
    --aip-error: #a12c35;
    --aip-error-surface: #fff3f4;
    --aip-success: #25665e;
    --aip-success-surface: #edf8f4;
    --aip-warning: #805300;
    --aip-warning-surface: #fff8e6;
    --aip-space-1: .25rem;
    --aip-space-2: .5rem;
    --aip-space-3: .75rem;
    --aip-space-4: 1rem;
    --aip-space-6: 1.5rem;
    --aip-space-8: 2rem;
    --aip-radius: 1rem;
    --aip-radius-small: .5rem;
    --aip-shadow: 0 4px 20px rgb(23 41 59 / 4%);
    --aip-font-small: .875rem;
    --aip-font-body: 1rem;
    min-block-size: 100vh;
    min-inline-size: 0;
    margin: 0;
    color: var(--aip-text);
    background: var(--aip-background);
    font-family: "Avenir Next", Avenir, "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif;
    font-size: var(--aip-font-body);
    line-height: 1.8;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}
.aip-frontend, .aip-frontend *, .aip-frontend *::before, .aip-frontend *::after { box-sizing: border-box; }
.aip-frontend [hidden] { display: none !important; }
.aip-frontend :where(h1, h2, h3, h4, p, li, dt, dd, legend, label, a, button) { overflow-wrap: anywhere; }
.aip-frontend :where(section, article, form, fieldset, div, dl, ul) { min-inline-size: 0; }
.aip-frontend :where(h1, h2, h3, h4) { color: var(--aip-text); line-height: 1.5; }
.aip-frontend h1 { margin: 0 0 .75rem; font-size: clamp(1.65rem, 3.5vw, 2rem); letter-spacing: .01em; }
.aip-frontend h2 { margin: 0 0 1rem; font-size: 1.25rem; }
.aip-frontend h3 { font-size: 1.125rem; }
.aip-frontend p { margin-block: .5rem 1rem; }
.aip-frontend a { color: var(--aip-primary-strong); text-underline-offset: .25em; }
.aip-frontend a:hover { text-decoration-thickness: 2px; }
.aip-frontend :where([id], input, textarea, button) { scroll-margin-block: 1rem; }
.aip-frontend :where(img, iframe, svg, video, .cf-turnstile) { max-inline-size: 100%; }
.aip-frontend :where(pre, code) { max-inline-size: 100%; white-space: pre-wrap; overflow-wrap: anywhere; }
.aip-container { inline-size: min(calc(100% - 2rem), 70rem); min-inline-size: 0; margin-inline: auto; }
.aip-main { min-inline-size: 0; padding-block: 2rem 3rem; }
.aip-site-header { background: var(--aip-surface); border-block-end: 1px solid var(--aip-border); }
.aip-site-header > .aip-container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; padding-block: 1rem; }
.aip-brand { display: inline-flex; min-block-size: 44px; align-items: center; text-decoration: none; font-size: 1.4rem; font-weight: 800; letter-spacing: -.03em; }
.aip-brand img { display: block; inline-size: 176px; block-size: auto; }
.aip-site-footer { border-block-start: 1px solid var(--aip-border); color: var(--aip-muted); font-size: var(--aip-font-small); background: var(--aip-surface); }
.aip-site-footer .aip-container { padding-block: 1rem; }
.aip-navigation ul, .aip-page-actions ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.aip-navigation a, .aip-page-actions a { display: flex; min-block-size: 44px; align-items: center; padding: .5rem .875rem; border-radius: var(--aip-radius-small); font-size: var(--aip-font-small); font-weight: 600; text-decoration: none; }
.aip-navigation a:hover { background: var(--aip-background); }
.aip-navigation a[aria-current="page"] { background: var(--aip-soft-blue); color: var(--aip-primary-strong); }
.aip-workspace-label, .aip-sidebar-note { display: none; }
.aip-frontend[data-layout="workspace"] .aip-workspace-logout { margin: 0; }
.aip-frontend[data-layout="workspace"] .aip-workspace-logout button,
.aip-frontend[data-layout="workspace"] .aip-navigation-unavailable { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-start; inline-size: 100%; min-block-size: 44px; padding: .5rem .875rem; border: 0; border-radius: var(--aip-radius-small); background: transparent; color: var(--aip-primary-strong); font: inherit; font-size: var(--aip-font-small); font-weight: 600; line-height: 1.8; text-align: start; }
.aip-frontend[data-layout="workspace"] .aip-workspace-logout button:hover { background: var(--aip-background); }
.aip-frontend[data-layout="workspace"] .aip-navigation-unavailable { color: var(--aip-muted); }
.aip-breadcrumb { color: var(--aip-muted); font-size: .8125rem; margin-block: 0 1.5rem !important; }
.aip-breadcrumb span { padding-inline: .5rem; }
/* Keep the skip link available without focus-dependent visibility. */
.aip-skip-link { display: flex; align-items: center; inline-size: fit-content; max-inline-size: calc(100% - 2rem); min-block-size: 44px; margin-inline: 1rem; padding-block: .25rem; font-size: var(--aip-font-small); }
.aip-sr-only { position: absolute; inline-size: 1px; block-size: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.aip-page-heading { margin-block-end: 2rem; }
.aip-page-heading > p:last-child, .aip-page-lead { color: var(--aip-muted); }
.aip-eyebrow { margin: 0 0 .5rem !important; color: var(--aip-primary-strong); font-size: .75rem; font-weight: 700; letter-spacing: .14em; }
.aip-profile-overview { display: grid; gap: 1rem; }
.aip-overview-card, .aip-settings-card, .aip-frontend fieldset, #profile-image-settings, #profile-image-remove-settings {
    padding: 1.5rem;
    border: 1px solid var(--aip-border);
    border-radius: var(--aip-radius);
    background: var(--aip-surface);
    box-shadow: var(--aip-shadow);
}
.aip-overview-card { margin: 0; font-size: var(--aip-font-small); }
.aip-overview-card h2 { font-size: 1rem; }
.aip-overview-card p:last-child { margin-block-end: 0; }
.aip-overview-card--state { background: #edf4fc; }
.aip-overview-card dl { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .75rem; margin-block: 0 1rem; }
.aip-overview-card dd { margin: 0; }
#profile-visibility-value { display: inline-block; padding: .25rem .875rem; border: 1px solid #a9bdd7; border-radius: 2rem; color: var(--aip-primary-strong); background: white; font-weight: 700; }
#profile-publication-progress { font-weight: 700; color: var(--aip-primary-strong); }
#profile-edit-save-notice { margin-block: 1.5rem; color: var(--aip-muted); font-size: var(--aip-font-small); }
.aip-section-nav { display: flex; flex-wrap: wrap; gap: .25rem; padding: .5rem; border: 1px solid var(--aip-border); border-radius: var(--aip-radius); background: var(--aip-surface); }
.aip-section-nav a { display: inline-flex; align-items: center; min-block-size: 44px; padding: .5rem .875rem; border-radius: var(--aip-radius-small); font-size: var(--aip-font-small); font-weight: 600; text-decoration: none; }
.aip-section-nav a:hover { background: var(--aip-soft-blue); }
.aip-save-state { margin-block: 1rem .5rem !important; font-size: var(--aip-font-small); color: var(--aip-muted); }
.aip-save-state[data-save-state="unsaved"] { color: var(--aip-warning); }
.aip-editor-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; margin-block: .5rem 2rem; }
.aip-text-action { display: inline-flex; min-block-size: 44px; align-items: center; }
.aip-frontend fieldset { margin: 0 0 2rem; }
.aip-frontend legend { padding-inline: .5rem; font-size: 1.125rem; font-weight: 700; }
.aip-frontend fieldset fieldset { margin-block: 1rem 0; background: var(--aip-background); box-shadow: none; }
.aip-frontend form > div, .aip-frontend fieldset > div { min-inline-size: 0; margin-block: 1.25rem; }
.aip-frontend label { display: block; margin-block-end: .375rem; font-weight: 700; }
.aip-frontend label span { font-size: .8125rem; color: var(--aip-muted); font-weight: 400; }
.aip-frontend input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), .aip-frontend textarea, .aip-frontend select {
    display: block; inline-size: 100%; max-inline-size: 100%; min-inline-size: 0; min-block-size: 48px;
    padding: .75rem 1rem; border: 1px solid var(--aip-input-border); border-radius: var(--aip-radius-small);
    background: var(--aip-surface); color: var(--aip-text); font: inherit;
}
.aip-frontend textarea { resize: vertical; min-block-size: 8rem; line-height: 1.8; overflow-wrap: anywhere; }
.aip-frontend input[readonly] { background: var(--aip-background) !important; }
.aip-frontend input[type="file"] { padding: .75rem !important; font-size: var(--aip-font-small) !important; }
.aip-frontend input::file-selector-button { padding: .5rem; border: 1px solid var(--aip-input-border); border-radius: .25rem; background: var(--aip-background); color: var(--aip-text); font: inherit; }
.aip-frontend input[type="checkbox"], .aip-frontend input[type="radio"] { inline-size: 1.25rem; block-size: 1.25rem; margin: .2rem 0 0; accent-color: var(--aip-primary); }
.aip-choice-field { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .75rem; align-items: start; }
.aip-choice-field > :not(input):not(label) { grid-column: 2; }
.aip-frontend :where(.aip-field-help, [id$="-help"]) { margin-block: .25rem .5rem; color: var(--aip-muted); font-size: var(--aip-font-small); }
.aip-frontend :where(.aip-field-error, [id$="-server-error"]) { margin-block: .375rem; color: var(--aip-error); font-size: var(--aip-font-small); font-weight: 600; }
.aip-frontend [aria-invalid="true"] { border-color: var(--aip-error) !important; box-shadow: 0 0 0 1px var(--aip-error); }
.aip-frontend button, .aip-button { display: inline-flex; justify-content: center; align-items: center; max-inline-size: 100%; min-block-size: 44px; padding: .625rem 1.125rem; border: 1px solid var(--aip-primary); border-radius: var(--aip-radius-small); background: var(--aip-primary); color: white; font: inherit; font-weight: 700; line-height: 1.6; white-space: normal; text-align: center; text-decoration: none; cursor: pointer; }
.aip-frontend button:hover, .aip-button:hover { border-color: var(--aip-primary-strong); background: var(--aip-primary-strong); color: white; }
.aip-frontend .aip-button--secondary { background: var(--aip-surface); color: var(--aip-primary-strong); }
.aip-frontend .aip-button--secondary:hover { background: var(--aip-soft-blue); color: var(--aip-primary-strong); }
.aip-frontend :where(button:disabled, button[aria-disabled="true"], input:disabled, textarea:disabled, select:disabled) { opacity: .6; cursor: not-allowed; }
.aip-form-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; }
.aip-publication-settings { margin-block: 2rem; padding: 1.5rem; border: 1px solid #b8cce2; border-radius: var(--aip-radius); background: var(--aip-soft-blue); }
.aip-publication-settings h2 { font-size: 1.125rem; }
#profile-image-settings, #profile-image-remove-settings { margin-block: 2rem; }
.aip-public-url { padding: 1.5rem; margin-block: 1.5rem; border: 1px solid var(--aip-border); border-radius: var(--aip-radius); background: var(--aip-surface); }
.aip-public-url h2 { font-size: 1.125rem; }
.aip-public-url__controls { display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; margin-block: .5rem; }
.aip-public-url [readonly] { overflow: auto; }
.aip-messages { margin-block: 0 1.5rem; }
.aip-messages ul { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.aip-message, .aip-error-summary { padding: 1rem 1.25rem; border-inline-start: 4px solid var(--aip-primary); border-radius: var(--aip-radius-small); background: var(--aip-soft-blue); }
.aip-message--success { border-color: var(--aip-success); background: var(--aip-success-surface); }
.aip-message--warning { border-color: var(--aip-warning); background: var(--aip-warning-surface); }
.aip-message--error, .aip-error-summary { border-color: var(--aip-error); background: var(--aip-error-surface); }
.aip-error-summary { margin-block: 1.5rem; }
.aip-error-summary a { display: inline-block; min-block-size: 44px; padding-block: .5rem; }
.aip-status-notice, .aip-preview-notice { padding: 1rem 1.25rem; border-inline-start: 4px solid var(--aip-primary); border-radius: var(--aip-radius-small); background: var(--aip-soft-blue); }
.aip-status-notice { background: var(--aip-warning-surface); border-color: var(--aip-warning); }
.aip-settings-card { margin-block: 2rem; }
.aip-settings-card--danger { margin-block-start: 3rem; border-color: #dfb1b6; box-shadow: none; }
.aip-settings-card--danger h2 { color: var(--aip-error); }
.aip-settings-card--danger button { border-color: var(--aip-error); color: var(--aip-error); }
.aip-settings-card--danger button:hover { background: var(--aip-error-surface); color: var(--aip-error); }
.aip-public-profile { inline-size: min(100%, 52rem); margin: 0 auto; }
.aip-public-profile__header, .aip-public-profile__section { padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--aip-border); border-radius: var(--aip-radius); background: var(--aip-surface); box-shadow: var(--aip-shadow); }
.aip-public-profile__header { border-block-start: 6px solid var(--aip-primary); background: linear-gradient(125deg, #edf4fc, #ffffff 70%); }
.aip-public-profile__header h1 { margin-block: 0 .5rem; font-size: clamp(1.75rem, 4vw, 2.5rem); }
.aip-public-profile__image { display: block; inline-size: min(7rem, 100%); aspect-ratio: 1; margin-block-end: 1.5rem; border: 4px solid white; border-radius: 50%; object-fit: cover; background: var(--aip-soft-blue); box-shadow: var(--aip-shadow); }
.aip-public-profile__job-title { margin-block: .5rem !important; font-weight: 700; color: var(--aip-primary-strong); }
.aip-public-profile__catchphrase { margin-block: 1rem !important; font-size: 1.125rem; }
.aip-public-profile__username, .aip-public-profile__footer { color: var(--aip-muted); font-size: var(--aip-font-small); }
.aip-public-profile__section { margin-block: 1.5rem; }
.aip-public-profile__section h2, .aip-public-profile__section > h3 { margin-block: 0 1.5rem; padding-block-end: .75rem; border-block-end: 1px solid var(--aip-border); font-size: 1.25rem; }
.aip-public-profile__multiline { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.9; }
.aip-public-profile__details, .aip-public-profile__faq { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin: 0; }
.aip-public-profile__details dt, .aip-public-profile__faq dt { font-weight: 700; }
.aip-public-profile__details dt { color: var(--aip-primary-strong); font-size: var(--aip-font-small); }
.aip-public-profile__details dd, .aip-public-profile__faq dd { margin: .5rem 0 0; }
.aip-public-profile__faq > div + div { padding-block-start: 1.5rem; border-block-start: 1px solid var(--aip-border); }
.aip-public-profile__faq dt::before { content: "Q."; margin-inline-end: .5rem; color: var(--aip-primary-strong); }
.aip-public-profile__links { display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.aip-public-profile__links a { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-block-size: 48px; padding: .75rem 1rem; border: 1px solid var(--aip-border); border-radius: var(--aip-radius-small); text-decoration: none; font-weight: 600; }
.aip-public-profile__links a::after { content: ""; inline-size: .5rem; aspect-ratio: 1; border-block-start: 1.5px solid; border-inline-end: 1.5px solid; transform: rotate(45deg); flex-shrink: 0; }
.aip-public-profile__links a:hover { background: var(--aip-soft-blue); }
.aip-profile-primary-links { clear: both; padding-block-start: 1rem; }
.aip-profile-primary-links ul { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.aip-profile-primary-links a { display: inline-flex; align-items: center; justify-content: center; min-block-size: 44px; padding: .5rem 1rem; border: 1px solid #a9bdd7; border-radius: var(--aip-radius-small); background: var(--aip-surface); font-weight: 600; text-decoration: none; }
.aip-profile-primary-links a:hover { background: var(--aip-soft-blue); }
.aip-public-profile__footer { margin-block-start: 1.5rem; text-align: end; }
.aip-profile-preview { margin-block: 2rem; }
.aip-profile-preview header > p:first-child { font-size: var(--aip-font-small); color: var(--aip-muted); }
.aip-profile-preview header h2 { font-size: 1.75rem; }
.aip-profile-preview li { padding-block: .5rem; }
.aip-frontend[data-layout="standard"] .aip-main > .aip-container { max-inline-size: 48rem; }
.aip-frontend[data-layout="standard"] .aip-form { padding: 1.5rem; border: 1px solid var(--aip-border); border-radius: var(--aip-radius); background: var(--aip-surface); }
.aip-legal { overflow-wrap: anywhere; }
.aip-legal-table { overflow-x: auto; }
.aip-legal table { width: 100%; border-collapse: collapse; }
.aip-legal td, .aip-legal th { padding: .75rem; border: 1px solid var(--aip-border); vertical-align: top; text-align: left; }
@media (min-width: 48rem) {
    .aip-container { inline-size: min(calc(100% - 4rem), 70rem); }
    .aip-profile-overview { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
    #profile-section-links, #profile-section-social { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; }
    #profile-section-links > p, #profile-section-social > p { grid-column: 1 / -1; }
    .aip-public-url__controls { grid-template-columns: minmax(0, 1fr) max-content; }
    .aip-public-profile__details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .aip-public-profile__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .aip-public-profile__image { float: inline-start; margin-inline-end: 1.5rem; }
}
@media (min-width: 64rem) {
    .aip-frontend[data-layout="workspace"] { display: grid; grid-template-columns: 15rem minmax(0, 1fr); grid-template-rows: 1fr auto; }
    .aip-frontend[data-layout="workspace"] .aip-site-header { grid-row: 1 / 3; border-block-end: 0; border-inline-end: 1px solid var(--aip-border); }
    .aip-frontend[data-layout="workspace"] .aip-site-header > .aip-container { position: sticky; inset-block-start: 0; display: block; inline-size: 100%; padding: 2rem 1.25rem; }
    .aip-frontend[data-layout="workspace"] .aip-site-header .aip-navigation ul { display: grid; gap: .5rem; }
    .aip-frontend[data-layout="workspace"] .aip-site-header .aip-navigation :is(a, button, .aip-navigation-unavailable) { padding: .875rem; }
    .aip-workspace-label { display: block; margin-block: 2.5rem .75rem !important; padding-inline: .875rem; color: var(--aip-muted); font-size: .75rem; font-weight: 700; }
    .aip-sidebar-note { display: block; margin-block: 3rem 0 !important; padding: 1rem .875rem; border-block-start: 1px solid var(--aip-border); color: var(--aip-muted); font-size: .8125rem; }
    .aip-frontend[data-layout="workspace"] .aip-main { padding-block: 2rem 4rem; }
    .aip-frontend[data-layout="workspace"] .aip-site-footer { grid-column: 2; background: transparent; }
}
@media (max-width: 47.999rem) {
    .aip-overview-card, .aip-settings-card, .aip-frontend fieldset, .aip-publication-settings, #profile-image-settings, #profile-image-remove-settings { padding: 1rem; }
    .aip-frontend legend { font-size: 1rem; }
    .aip-form-actions { flex-direction: column; }
    .aip-site-header #aip-workspace-navigation { flex-basis: 100%; }
    .aip-frontend[data-layout="workspace"] .aip-site-header .aip-navigation ul { display: grid; }
    .aip-brand img { inline-size: 144px; }
    .aip-menu-toggle { font-size: .8125rem !important; padding-inline: .625rem !important; }
}
@media (prefers-reduced-motion: reduce) {
    .aip-frontend *, .aip-frontend *::before, .aip-frontend *::after { scroll-behavior: auto !important; }
}
